@guodun/antdv 1.7.7 → 1.7.9
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.
- package/dist/es/components/pro-contract-template-designer/src/ContractTemplateChoiceOptionsEditor.mjs +5 -0
- package/dist/es/components/pro-contract-template-designer/src/ContractTemplateChoiceOptionsEditor.vue.mjs +132 -0
- package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.mjs +209 -246
- package/dist/es/components/pro-contract-template-designer/src/DesignerPage.vue.mjs +395 -325
- package/dist/es/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.mjs +1047 -1015
- package/dist/es/components/pro-contract-template-designer/src/composables/use-auto-pagination.mjs +122 -63
- package/dist/es/components/pro-contract-template-designer/src/composables/use-template-designer.mjs +192 -162
- package/dist/es/components/pro-contract-template-designer/src/extensions/template-variable.mjs +70 -68
- package/dist/es/components/pro-contract-template-designer/src/utils/advanced-controls.mjs +63 -25
- package/dist/es/components/pro-contract-template-designer/src/utils/caret-viewport.mjs +41 -0
- package/dist/es/components/pro-contract-template-designer/src/utils/template-renderer.mjs +129 -75
- package/dist/es/components/pro-contract-template-designer/src/utils/template-variable-render.mjs +17 -5
- package/dist/es/components/pro-contract-template-designer/style/index.css +1 -1
- package/dist/es/index.mjs +22 -22
- package/dist/es/node_modules/@tiptap/pm/dist/transform/index.mjs +1 -0
- package/dist/es/node_modules/prosemirror-transform/dist/index.mjs +161 -67
- package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateChoiceOptionsEditor.cjs +1 -0
- package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateChoiceOptionsEditor.vue.cjs +1 -0
- package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.cjs +1 -2
- package/dist/lib/components/pro-contract-template-designer/src/DesignerPage.vue.cjs +2 -2
- package/dist/lib/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/composables/use-auto-pagination.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-designer.cjs +4 -4
- package/dist/lib/components/pro-contract-template-designer/src/extensions/template-variable.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/utils/advanced-controls.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/utils/caret-viewport.cjs +1 -0
- package/dist/lib/components/pro-contract-template-designer/src/utils/template-renderer.cjs +3 -3
- package/dist/lib/components/pro-contract-template-designer/src/utils/template-variable-render.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/style/index.css +1 -1
- package/dist/lib/index.cjs +1 -1
- package/dist/lib/node_modules/@tiptap/pm/dist/transform/index.cjs +1 -0
- package/dist/lib/node_modules/prosemirror-transform/dist/index.cjs +2 -2
- package/dist/theme/icon.css +1 -1
- package/dist/theme/index.css +1 -1
- package/dist/types/components/pro-contract-template-designer/src/ContractTemplateChoiceOptionsEditor.vue.d.ts +12 -0
- package/dist/types/components/pro-contract-template-designer/src/DesignerPage.vue.d.ts +14 -0
- package/dist/types/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.d.ts +2 -0
- package/dist/types/components/pro-contract-template-designer/src/composables/use-auto-pagination.d.ts +17 -0
- package/dist/types/components/pro-contract-template-designer/src/composables/use-template-designer.d.ts +5 -1
- package/dist/types/components/pro-contract-template-designer/src/types.d.ts +15 -2
- package/dist/types/components/pro-contract-template-designer/src/utils/advanced-controls.d.ts +10 -0
- package/dist/types/components/pro-contract-template-designer/src/utils/caret-viewport.d.ts +18 -0
- package/dist/types/components/pro-contract-template-designer/src/utils/template-variable-render.d.ts +7 -0
- package/package.json +5 -5
- package/dist/theme/dept-selector.css +0 -1
- package/dist/theme/pro-selector-group.css +0 -1
- package/dist/theme/role-selector.css +0 -1
|
@@ -1,2 +1 @@
|
|
|
1
|
-
require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./composables/use-template-designer.cjs`),t=require(`./utils/template-tool-icons.cjs`),n=require(`./ContractTemplatePanelTabs.cjs`),ee=require(`./ContractTemplateControlLibrary.cjs`),te=require(`./ContractTemplateVariableAdvanced.cjs`);let r=require(`vue`),i=require(`ant-design-vue`),a=require(`@ant-design/icons-vue`);var ne=[`aria-label`,`aria-expanded`],re={class:`gd-contract-template-designer__panel-stack`},ie={class:`gd-contract-authoring-panel__body`},ae=[`id`,`aria-labelledby`],oe=[`id`,`aria-labelledby`],se={class:`gd-contract-authoring-panel__section-heading`},ce={key:0,class:`gd-contract-authoring-panel__meta`},le={key:0,class:`gd-contract-authoring-panel__empty`},ue={class:`gd-contract-authoring-panel__selection`},o={class:`gd-contract-authoring-panel__variable-icon`,"aria-hidden":`true`},s={class:`gd-contract-authoring-panel__variable-copy`},c={class:`gd-contract-authoring-panel__item-title`},l={class:`gd-contract-authoring-panel__meta`},u={class:`gd-contract-authoring-panel__property-group`},d={class:`gd-contract-authoring-panel__fields`},f={class:`gd-contract-authoring-panel__field`},p={class:`gd-contract-authoring-panel__field`},m={class:`gd-contract-authoring-panel__field`},h={open:``,class:`gd-contract-authoring-panel__property-group`},g={class:`gd-contract-authoring-panel__group-title`},_={class:`gd-contract-authoring-panel__fields`},v={class:`gd-contract-authoring-panel__switch`},y={class:`gd-contract-authoring-panel__switch`},b={key:0,class:`gd-contract-authoring-panel__field`},x={key:1,class:`gd-contract-authoring-panel__field`},S={class:`gd-contract-authoring-panel__field`},C={class:`gd-contract-authoring-panel__field`},w={class:`gd-contract-authoring-panel__switch`},T={class:`gd-contract-authoring-panel__field`},E={class:`gd-contract-authoring-panel__field`},D={key:4,class:`gd-contract-authoring-panel__switch`},O={class:`gd-contract-authoring-panel__field`},k={class:`gd-contract-authoring-panel__field`},A={key:0,class:`gd-contract-authoring-panel__field`},j={class:`gd-contract-authoring-panel__field`},M={class:`gd-contract-authoring-panel__field`},N={class:`gd-contract-authoring-panel__property-group`},P={class:`gd-contract-authoring-panel__group-title`},F={class:`gd-contract-authoring-panel__fields`},I={class:`gd-contract-authoring-panel__field-pair`},L={class:`gd-contract-authoring-panel__field`},R={class:`gd-contract-authoring-panel__field`},z={class:`gd-contract-authoring-panel__switch`},B={class:`gd-contract-authoring-panel__switch`},V={class:`gd-contract-authoring-panel__field`},de={class:`gd-contract-authoring-panel__field`},H={class:`gd-contract-authoring-panel__color`},fe=[`value`,`disabled`],pe={class:`gd-contract-authoring-panel__color`},me=[`value`,`disabled`],he={class:`gd-contract-authoring-panel__color`},ge=[`value`,`disabled`],_e={class:`gd-contract-authoring-panel__field`},ve={class:`gd-contract-authoring-panel__field`},ye={class:`gd-contract-authoring-panel__field`},be={class:`gd-contract-authoring-panel__danger-zone`},U=(0,r.defineComponent)({name:`ContractTemplateDesignerInspector`,__name:`ContractTemplateDesignerInspector`,props:{collapsed:{type:Boolean},readonly:{type:Boolean},disabled:{type:Boolean},bodyControlToolItems:{},selectedVariable:{},variables:{},currentVariableFontFamily:{},fontFamilySelectOptions:{},textAlignOptions:{},borderStyleOptions:{},objectFitOptions:{},selectedVariableWidthMax:{},selectedVariableHeightMax:{},minFontSize:{},maxFontSize:{},defaultMultilineRows:{}},emits:[`toggle`,`variableDragStart`,`insertVariable`,`duplicateVariable`,`removeVariable`,`patchVariable`,`renameVariable`,`patchStyle`,`patchMultiline`,`patchRows`,`patchFontFamily`,`patchFontSize`,`patchTextAlign`,`patchBorderStyle`,`patchObjectFit`],setup(U,{emit:W}){let G=U,K=W,q=`gd-contract-inspector-${(0,r.useId)()}`,J=(0,r.shallowRef)(`insert`),xe=[{value:`insert`,label:`插入控件`},{value:`properties`,label:`控件属性`}],Y=(0,r.computed)(()=>G.readonly||G.disabled),Se=(0,r.computed)(()=>G.selectedVariable?G.bodyControlToolItems.find(e=>e.type===(G.selectedVariable?.type||`text`))?.label||e.getFieldOption(G.selectedVariable.type||`text`).label:``),Ce=(0,r.computed)(()=>G.selectedVariable?.type===`select`||G.selectedVariable?.type===`radio`),X=(0,r.computed)(()=>G.selectedVariable?.type===`select`||!!G.selectedVariable?.type?.endsWith(`-selector`)),we=(0,r.computed)(()=>(G.selectedVariable?.options??[]).map(e=>`${e.value}|${e.label}`).join(`
|
|
2
|
-
`));(0,r.watch)(()=>G.selectedVariable?.id,e=>{J.value=e?`properties`:`insert`},{immediate:!0});function Z(e){G.selectedVariable&&!Y.value&&K(`patchVariable`,e)}function Q(e){G.selectedVariable&&!Y.value&&K(`patchStyle`,e)}function $(e){let t=G.selectedVariable?.dataSource;t&&Z({dataSource:{...t,...e}})}function Te(e){e===`none`?Z({dataSource:void 0}):e===`url`?Z({dataSource:{kind:`url`,url:``,method:`GET`}}):e===`resolver`&&Z({dataSource:{kind:`resolver`,resolverKey:``}})}function Ee(e){Z({options:e.target.value.split(/\r?\n/).map(e=>e.trim()).filter(Boolean).map(e=>{let[t,...n]=e.split(`|`);return{value:t.trim(),label:n.join(`|`).trim()||t.trim(),type:G.selectedVariable?.type||`select`}})})}function De(){G.selectedVariable&&!Y.value&&K(`duplicateVariable`,G.selectedVariable)}function Oe(){G.selectedVariable&&!Y.value&&K(`removeVariable`,G.selectedVariable)}return(U,W)=>((0,r.openBlock)(),(0,r.createElementBlock)(`aside`,{class:(0,r.normalizeClass)([`gd-contract-template-designer__inspector gd-contract-authoring-panel`,{"is-collapsed":G.collapsed}]),"aria-label":`控件插入与属性`},[(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:G.collapsed?`展开属性栏`:`收起属性栏`},{default:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`button`,{type:`button`,class:`gd-contract-template-designer__panel-handle gd-contract-authoring-panel__handle`,"aria-label":G.collapsed?`展开属性栏`:`收起属性栏`,"aria-expanded":!G.collapsed,onClick:W[0]||=e=>K(`toggle`)},[G.collapsed?((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(a.LeftOutlined),{key:0,"aria-hidden":`true`})):((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(a.RightOutlined),{key:1,"aria-hidden":`true`}))],8,ne)]),_:1},8,[`title`]),(0,r.createElementVNode)(`div`,re,[(0,r.createElementVNode)(`div`,ie,[(0,r.createVNode)(n.default,{id:q,modelValue:J.value,"onUpdate:modelValue":W[1]||=e=>J.value=e,items:xe,label:`控件面板视图`},null,8,[`modelValue`]),(0,r.withDirectives)((0,r.createElementVNode)(`section`,{id:`${q}-panel-insert`,class:`gd-contract-authoring-panel__view`,role:`tabpanel`,"aria-labelledby":`${q}-tab-insert`},[(0,r.createVNode)(ee.default,{items:G.bodyControlToolItems,readonly:Y.value,onInsertVariable:W[2]||=e=>K(`insertVariable`,e),onVariableDragStart:W[3]||=(e,t)=>K(`variableDragStart`,e,t)},null,8,[`items`,`readonly`])],8,ae),[[r.vShow,J.value===`insert`]]),(0,r.withDirectives)((0,r.createElementVNode)(`section`,{id:`${q}-panel-properties`,class:`gd-contract-authoring-panel__view`,role:`tabpanel`,"aria-labelledby":`${q}-tab-properties`},[(0,r.createElementVNode)(`div`,se,[W[34]||=(0,r.createElementVNode)(`strong`,null,`属性`,-1),Y.value?((0,r.openBlock)(),(0,r.createElementBlock)(`small`,ce,`只读`)):(0,r.createCommentVNode)(``,!0)]),G.selectedVariable?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{key:G.selectedVariable.id,class:`gd-contract-authoring-panel__properties`},[(0,r.createElementVNode)(`div`,ue,[(0,r.createElementVNode)(`span`,o,[((0,r.openBlock)(),(0,r.createBlock)((0,r.resolveDynamicComponent)((0,r.unref)(t.resolveFieldTypeIcon)(G.selectedVariable.type))))]),(0,r.createElementVNode)(`div`,s,[(0,r.createElementVNode)(`span`,c,(0,r.toDisplayString)(G.selectedVariable.label),1),(0,r.createElementVNode)(`small`,l,(0,r.toDisplayString)(Se.value),1)]),(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`复制变量`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{type:`text`,disabled:Y.value,"aria-label":`复制变量`,onClick:De},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(a.CopyOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})]),(0,r.createVNode)(te.default,{variable:G.selectedVariable,variables:G.variables,readonly:Y.value,onPatchVariable:Z,onRenameVariable:W[5]||=e=>K(`renameVariable`,e)},null,8,[`variable`,`variables`,`readonly`]),(0,r.createElementVNode)(`section`,u,[W[41]||=(0,r.createElementVNode)(`h3`,{class:`gd-contract-authoring-panel__group-title`},`基础信息`,-1),(0,r.createElementVNode)(`div`,d,[(0,r.createElementVNode)(`label`,f,[W[38]||=(0,r.createElementVNode)(`span`,null,`名称`,-1),(0,r.createVNode)((0,r.unref)(i.Input),{value:G.selectedVariable.label,disabled:Y.value,"aria-label":`变量名称`,onChange:W[6]||=e=>Z({label:e.target.value})},null,8,[`value`,`disabled`])]),(0,r.createElementVNode)(`label`,p,[W[39]||=(0,r.createElementVNode)(`span`,null,`占位文案`,-1),(0,r.createVNode)((0,r.unref)(i.Input),{value:G.selectedVariable.placeholder,disabled:Y.value,"aria-label":`占位文案`,onChange:W[7]||=e=>Z({placeholder:e.target.value})},null,8,[`value`,`disabled`])]),(0,r.createElementVNode)(`label`,m,[W[40]||=(0,r.createElementVNode)(`span`,null,`默认值`,-1),(0,r.createVNode)((0,r.unref)(i.Input),{value:G.selectedVariable.defaultValue,disabled:Y.value,"aria-label":`默认值`,onChange:W[8]||=e=>Z({defaultValue:e.target.value})},null,8,[`value`,`disabled`])])])]),(0,r.createElementVNode)(`details`,h,[(0,r.createElementVNode)(`summary`,g,[(0,r.createVNode)((0,r.unref)(a.RightOutlined),{class:`gd-contract-authoring-panel__chevron`,"aria-hidden":`true`}),W[42]||=(0,r.createElementVNode)(`span`,null,`填写规则`,-1)]),(0,r.createElementVNode)(`div`,_,[(0,r.createElementVNode)(`label`,v,[W[43]||=(0,r.createElementVNode)(`span`,null,`必填`,-1),(0,r.createVNode)((0,r.unref)(i.Switch),{checked:G.selectedVariable.required,disabled:Y.value,"aria-label":`必填`,onChange:W[9]||=e=>Z({required:!!e})},null,8,[`checked`,`disabled`])]),!G.selectedVariable.type||G.selectedVariable.type===`text`?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:0},[(0,r.createElementVNode)(`label`,y,[W[44]||=(0,r.createElementVNode)(`span`,null,`多行`,-1),(0,r.createVNode)((0,r.unref)(i.Switch),{checked:!!G.selectedVariable.multiline,disabled:Y.value,"aria-label":`多行`,onChange:W[10]||=e=>K(`patchMultiline`,!!e)},null,8,[`checked`,`disabled`])]),G.selectedVariable.multiline?((0,r.openBlock)(),(0,r.createElementBlock)(`label`,b,[W[45]||=(0,r.createElementVNode)(`span`,null,`行数`,-1),(0,r.createVNode)((0,r.unref)(i.InputNumber),{value:G.selectedVariable.rows||G.defaultMultilineRows,min:2,max:12,disabled:Y.value,"aria-label":`行数`,onChange:W[11]||=e=>K(`patchRows`,e)},null,8,[`value`,`disabled`])])):(0,r.createCommentVNode)(``,!0)],64)):(0,r.createCommentVNode)(``,!0),G.selectedVariable.type===`date`?((0,r.openBlock)(),(0,r.createElementBlock)(`label`,x,[W[46]||=(0,r.createElementVNode)(`span`,null,`日期格式`,-1),(0,r.createVNode)((0,r.unref)(i.Input),{value:G.selectedVariable.format,disabled:Y.value,"aria-label":`日期格式`,onChange:W[12]||=e=>Z({format:e.target.value})},null,8,[`value`,`disabled`])])):(0,r.createCommentVNode)(``,!0),G.selectedVariable.type===`number`?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:2},[(0,r.createElementVNode)(`label`,S,[W[47]||=(0,r.createElementVNode)(`span`,null,`数字格式`,-1),(0,r.createVNode)((0,r.unref)(i.Input),{value:G.selectedVariable.format,disabled:Y.value,"aria-label":`数字格式`,onChange:W[13]||=e=>Z({format:e.target.value})},null,8,[`value`,`disabled`])]),(0,r.createElementVNode)(`label`,C,[W[48]||=(0,r.createElementVNode)(`span`,null,`小数位`,-1),(0,r.createVNode)((0,r.unref)(i.InputNumber),{value:G.selectedVariable.precision,min:0,max:6,disabled:Y.value,"aria-label":`小数位`,onChange:W[14]||=e=>Z({precision:typeof e==`number`?e:void 0})},null,8,[`value`,`disabled`])]),(0,r.createElementVNode)(`label`,w,[W[49]||=(0,r.createElementVNode)(`span`,null,`千分位`,-1),(0,r.createVNode)((0,r.unref)(i.Switch),{checked:G.selectedVariable.useGrouping!==!1,disabled:Y.value,"aria-label":`千分位`,onChange:W[15]||=e=>Z({useGrouping:!!e})},null,8,[`checked`,`disabled`])])],64)):(0,r.createCommentVNode)(``,!0),G.selectedVariable.type===`checkbox`?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:3},[(0,r.createElementVNode)(`label`,T,[W[50]||=(0,r.createElementVNode)(`span`,null,`勾选文本`,-1),(0,r.createVNode)((0,r.unref)(i.Input),{value:G.selectedVariable.checkedText,disabled:Y.value,"aria-label":`勾选文本`,onChange:W[16]||=e=>Z({checkedText:e.target.value})},null,8,[`value`,`disabled`])]),(0,r.createElementVNode)(`label`,E,[W[51]||=(0,r.createElementVNode)(`span`,null,`未选文本`,-1),(0,r.createVNode)((0,r.unref)(i.Input),{value:G.selectedVariable.uncheckedText,disabled:Y.value,"aria-label":`未选文本`,onChange:W[17]||=e=>Z({uncheckedText:e.target.value})},null,8,[`value`,`disabled`])])],64)):(0,r.createCommentVNode)(``,!0),X.value?((0,r.openBlock)(),(0,r.createElementBlock)(`label`,D,[W[52]||=(0,r.createElementVNode)(`span`,null,`允许多选`,-1),(0,r.createVNode)((0,r.unref)(i.Switch),{checked:!!G.selectedVariable.multiple,disabled:Y.value,"aria-label":`允许多选`,onChange:W[18]||=e=>Z({multiple:!!e})},null,8,[`checked`,`disabled`])])):(0,r.createCommentVNode)(``,!0),Ce.value?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:5},[(0,r.createElementVNode)(`label`,O,[W[53]||=(0,r.createElementVNode)(`span`,null,[(0,r.createTextVNode)(`本地选项 `),(0,r.createElementVNode)(`small`,{class:`gd-contract-authoring-panel__meta`},`每行 value|label`)],-1),(0,r.createVNode)((0,r.unref)(i.Input).TextArea,{value:we.value,rows:4,disabled:Y.value,"aria-label":`本地选项`,onChange:Ee},null,8,[`value`,`disabled`])]),(0,r.createElementVNode)(`label`,k,[W[54]||=(0,r.createElementVNode)(`span`,null,`数据来源`,-1),(0,r.createVNode)((0,r.unref)(i.Select),{value:G.selectedVariable.dataSource?.kind||`none`,options:[{label:`仅本地选项`,value:`none`},{label:`宿主 Resolver`,value:`resolver`},{label:`受限 URL`,value:`url`}],disabled:Y.value,"aria-label":`数据来源`,onChange:Te},null,8,[`value`,`disabled`])]),G.selectedVariable.dataSource?.kind===`resolver`?((0,r.openBlock)(),(0,r.createElementBlock)(`label`,A,[W[55]||=(0,r.createElementVNode)(`span`,null,`Resolver Key`,-1),(0,r.createVNode)((0,r.unref)(i.Input),{value:G.selectedVariable.dataSource.resolverKey,disabled:Y.value,"aria-label":`Resolver Key`,onChange:W[19]||=e=>$({resolverKey:e.target.value})},null,8,[`value`,`disabled`])])):(0,r.createCommentVNode)(``,!0),G.selectedVariable.dataSource?.kind===`url`?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:1},[(0,r.createElementVNode)(`label`,j,[W[56]||=(0,r.createElementVNode)(`span`,null,`请求 URL`,-1),(0,r.createVNode)((0,r.unref)(i.Input),{value:G.selectedVariable.dataSource.url,disabled:Y.value,"aria-label":`请求 URL`,onChange:W[20]||=e=>$({url:e.target.value})},null,8,[`value`,`disabled`])]),(0,r.createElementVNode)(`label`,M,[W[57]||=(0,r.createElementVNode)(`span`,null,`请求方法`,-1),(0,r.createVNode)((0,r.unref)(i.Select),{value:G.selectedVariable.dataSource.method||`GET`,options:[{label:`GET`,value:`GET`},{label:`POST`,value:`POST`}],disabled:Y.value,"aria-label":`请求方法`,onChange:W[21]||=e=>$({method:e})},null,8,[`value`,`disabled`])])],64)):(0,r.createCommentVNode)(``,!0)],64)):(0,r.createCommentVNode)(``,!0)])]),(0,r.createElementVNode)(`details`,N,[(0,r.createElementVNode)(`summary`,P,[(0,r.createVNode)((0,r.unref)(a.RightOutlined),{class:`gd-contract-authoring-panel__chevron`,"aria-hidden":`true`}),W[58]||=(0,r.createElementVNode)(`span`,null,`外观`,-1)]),(0,r.createElementVNode)(`div`,F,[(0,r.createElementVNode)(`div`,I,[(0,r.createElementVNode)(`label`,L,[W[59]||=(0,r.createElementVNode)(`span`,null,[(0,r.createTextVNode)(`宽度 `),(0,r.createElementVNode)(`small`,{class:`gd-contract-authoring-panel__meta`},`px`)],-1),(0,r.createVNode)((0,r.unref)(i.InputNumber),{value:G.selectedVariable.width,min:48,max:G.selectedVariableWidthMax,disabled:Y.value,"aria-label":`控件宽度`,onChange:W[22]||=e=>Z({width:Number(e||48)})},null,8,[`value`,`max`,`disabled`])]),(0,r.createElementVNode)(`label`,R,[W[60]||=(0,r.createElementVNode)(`span`,null,[(0,r.createTextVNode)(`高度 `),(0,r.createElementVNode)(`small`,{class:`gd-contract-authoring-panel__meta`},`px`)],-1),(0,r.createVNode)((0,r.unref)(i.InputNumber),{value:G.selectedVariable.height,min:24,max:G.selectedVariableHeightMax,disabled:Y.value,"aria-label":`控件高度`,onChange:W[23]||=e=>Z({height:Number(e||24)})},null,8,[`value`,`max`,`disabled`])])]),(0,r.createElementVNode)(`label`,z,[W[61]||=(0,r.createElementVNode)(`span`,null,`边框`,-1),(0,r.createVNode)((0,r.unref)(i.Switch),{checked:!!G.selectedVariable.style?.border,disabled:Y.value,"aria-label":`边框`,onChange:W[24]||=e=>Q({border:!!e})},null,8,[`checked`,`disabled`])]),(0,r.createElementVNode)(`label`,B,[W[62]||=(0,r.createElementVNode)(`span`,null,`下划线`,-1),(0,r.createVNode)((0,r.unref)(i.Switch),{checked:!!G.selectedVariable.style?.underline,disabled:Y.value,"aria-label":`下划线`,onChange:W[25]||=e=>Q({underline:!!e})},null,8,[`checked`,`disabled`])]),(0,r.createElementVNode)(`label`,V,[W[63]||=(0,r.createElementVNode)(`span`,null,`字体`,-1),(0,r.createVNode)((0,r.unref)(i.Select),{value:G.currentVariableFontFamily,options:G.fontFamilySelectOptions,disabled:Y.value,"aria-label":`控件字体`,onChange:W[26]||=e=>K(`patchFontFamily`,e)},null,8,[`value`,`options`,`disabled`])]),(0,r.createElementVNode)(`label`,de,[W[64]||=(0,r.createElementVNode)(`span`,null,`字号`,-1),(0,r.createVNode)((0,r.unref)(i.InputNumber),{value:G.selectedVariable.style?.fontSize,min:G.minFontSize,max:G.maxFontSize,disabled:Y.value,"aria-label":`控件字号`,onChange:W[27]||=e=>K(`patchFontSize`,e)},null,8,[`value`,`min`,`max`,`disabled`])]),(0,r.createElementVNode)(`label`,H,[W[65]||=(0,r.createElementVNode)(`span`,null,`颜色`,-1),(0,r.createElementVNode)(`input`,{type:`color`,value:G.selectedVariable.style?.color||(0,r.unref)(e.DEFAULT_FIELD_STYLE).color,disabled:Y.value,"aria-label":`控件文字颜色`,onInput:W[28]||=e=>Q({color:e.target.value})},null,40,fe)]),(0,r.createElementVNode)(`label`,pe,[W[66]||=(0,r.createElementVNode)(`span`,null,`占位颜色`,-1),(0,r.createElementVNode)(`input`,{type:`color`,value:G.selectedVariable.style?.placeholderColor||(0,r.unref)(e.DEFAULT_FIELD_STYLE).placeholderColor,disabled:Y.value,"aria-label":`控件占位颜色`,onInput:W[29]||=e=>Q({placeholderColor:e.target.value})},null,40,me)]),(0,r.createElementVNode)(`label`,he,[W[67]||=(0,r.createElementVNode)(`span`,null,`线条颜色`,-1),(0,r.createElementVNode)(`input`,{type:`color`,value:G.selectedVariable.style?.lineColor||(0,r.unref)(e.DEFAULT_FIELD_STYLE).lineColor,disabled:Y.value,"aria-label":`控件线条颜色`,onInput:W[30]||=e=>Q({lineColor:e.target.value})},null,40,ge)]),(0,r.createElementVNode)(`label`,_e,[W[68]||=(0,r.createElementVNode)(`span`,null,`文字对齐`,-1),(0,r.createVNode)((0,r.unref)(i.Select),{value:G.selectedVariable.style?.textAlign||`left`,options:G.textAlignOptions,disabled:Y.value,"aria-label":`控件文字对齐`,onChange:W[31]||=e=>K(`patchTextAlign`,e)},null,8,[`value`,`options`,`disabled`])]),G.selectedVariable.type===`image`?((0,r.openBlock)(),(0,r.createElementBlock)(r.Fragment,{key:0},[(0,r.createElementVNode)(`label`,ve,[W[69]||=(0,r.createElementVNode)(`span`,null,`边框样式`,-1),(0,r.createVNode)((0,r.unref)(i.Select),{value:G.selectedVariable.style?.borderStyle||`dashed`,options:G.borderStyleOptions,disabled:Y.value,"aria-label":`图片边框样式`,onChange:W[32]||=e=>K(`patchBorderStyle`,e)},null,8,[`value`,`options`,`disabled`])]),(0,r.createElementVNode)(`label`,ye,[W[70]||=(0,r.createElementVNode)(`span`,null,`图片适配`,-1),(0,r.createVNode)((0,r.unref)(i.Select),{value:G.selectedVariable.style?.objectFit||`contain`,options:G.objectFitOptions,disabled:Y.value,"aria-label":`图片适配`,onChange:W[33]||=e=>K(`patchObjectFit`,e)},null,8,[`value`,`options`,`disabled`])])],64)):(0,r.createCommentVNode)(``,!0)])]),(0,r.createElementVNode)(`div`,be,[(0,r.createVNode)((0,r.unref)(i.Popconfirm),{title:`删除此变量及其全部引用?`,"ok-text":`删除变量`,"cancel-text":`取消`,"ok-button-props":{danger:!0},disabled:Y.value,onConfirm:Oe},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{type:`text`,danger:``,disabled:Y.value,"aria-label":`删除变量`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(a.DeleteOutlined),{"aria-hidden":`true`}),W[71]||=(0,r.createTextVNode)(`删除变量`,-1)]),_:1},8,[`disabled`])]),_:1},8,[`disabled`])])])):((0,r.openBlock)(),(0,r.createElementBlock)(`div`,le,[W[36]||=(0,r.createElementVNode)(`span`,null,`先选择一个正文变量`,-1),W[37]||=(0,r.createElementVNode)(`small`,{class:`gd-contract-authoring-panel__meta`},`点击正文控件,或从左侧「变量」中定位。`,-1),(0,r.createVNode)((0,r.unref)(i.Button),{onClick:W[4]||=e=>J.value=`insert`},{default:(0,r.withCtx)(()=>[...W[35]||=[(0,r.createTextVNode)(`前往插入控件`,-1)]]),_:1})]))],8,oe),[[r.vShow,J.value===`properties`]])])])],2))}});exports.default=U;
|
|
1
|
+
require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./composables/use-template-designer.cjs`),t=require(`./utils/template-tool-icons.cjs`),n=require(`./ContractTemplatePanelTabs.cjs`),r=require(`./ContractTemplateChoiceOptionsEditor.cjs`),ee=require(`./ContractTemplateControlLibrary.cjs`),te=require(`./ContractTemplateVariableAdvanced.cjs`);let i=require(`vue`),a=require(`ant-design-vue`),o=require(`@ant-design/icons-vue`);var ne=[`aria-label`,`aria-expanded`],re={class:`gd-contract-template-designer__panel-stack`},ie={class:`gd-contract-authoring-panel__body`},ae=[`id`,`aria-labelledby`],oe=[`id`,`aria-labelledby`],se={class:`gd-contract-authoring-panel__section-heading`},ce={key:0,class:`gd-contract-authoring-panel__meta`},le={key:0,class:`gd-contract-authoring-panel__empty`},ue={class:`gd-contract-authoring-panel__selection`},s={class:`gd-contract-authoring-panel__variable-icon`,"aria-hidden":`true`},c={class:`gd-contract-authoring-panel__variable-copy`},l={class:`gd-contract-authoring-panel__item-title`},u={class:`gd-contract-authoring-panel__meta`},d={class:`gd-contract-authoring-panel__property-group`},f={class:`gd-contract-authoring-panel__fields`},p={class:`gd-contract-authoring-panel__field`},m={class:`gd-contract-authoring-panel__field`},h={key:0,class:`gd-contract-authoring-panel__field`},g={open:``,class:`gd-contract-authoring-panel__property-group`},_={class:`gd-contract-authoring-panel__group-title`},v={class:`gd-contract-authoring-panel__fields`},y={class:`gd-contract-authoring-panel__switch`},b={class:`gd-contract-authoring-panel__switch`},x={key:0,class:`gd-contract-authoring-panel__field`},S={key:1,class:`gd-contract-authoring-panel__field`},C={class:`gd-contract-authoring-panel__field`},w={class:`gd-contract-authoring-panel__field`},T={class:`gd-contract-authoring-panel__switch`},E={class:`gd-contract-authoring-panel__field`},D={class:`gd-contract-authoring-panel__field`},O={key:4,class:`gd-contract-authoring-panel__switch`},k={key:5,class:`gd-contract-authoring-panel__field`},A={class:`gd-contract-authoring-panel__property-group`},j={class:`gd-contract-authoring-panel__group-title`},M={class:`gd-contract-authoring-panel__fields`},N={class:`gd-contract-authoring-panel__field-pair`},P={class:`gd-contract-authoring-panel__field`},F={class:`gd-contract-authoring-panel__field`},I={class:`gd-contract-authoring-panel__switch`},L={class:`gd-contract-authoring-panel__switch`},R={class:`gd-contract-authoring-panel__field`},z={class:`gd-contract-authoring-panel__field`},B={class:`gd-contract-authoring-panel__color`},V=[`value`,`disabled`],H={class:`gd-contract-authoring-panel__color`},de=[`value`,`disabled`],fe={class:`gd-contract-authoring-panel__color`},pe=[`value`,`disabled`],me={class:`gd-contract-authoring-panel__field`},he={class:`gd-contract-authoring-panel__field`},ge={class:`gd-contract-authoring-panel__field`},_e={class:`gd-contract-authoring-panel__danger-zone`},U=(0,i.defineComponent)({name:`ContractTemplateDesignerInspector`,__name:`ContractTemplateDesignerInspector`,props:{collapsed:{type:Boolean},readonly:{type:Boolean},disabled:{type:Boolean},bodyControlToolItems:{},selectedVariable:{},variables:{},currentVariableFontFamily:{},fontFamilySelectOptions:{},textAlignOptions:{},borderStyleOptions:{},objectFitOptions:{},selectedVariableWidthMax:{},selectedVariableHeightMax:{},minFontSize:{},maxFontSize:{},defaultMultilineRows:{}},emits:[`toggle`,`variableDragStart`,`insertVariable`,`duplicateVariable`,`removeVariable`,`patchVariable`,`renameVariable`,`patchStyle`,`patchMultiline`,`patchRows`,`patchFontFamily`,`patchFontSize`,`patchTextAlign`,`patchBorderStyle`,`patchObjectFit`],setup(U,{emit:W}){let G=U,K=W,q=`gd-contract-inspector-${(0,i.useId)()}`,J=(0,i.shallowRef)(`insert`),ve=[{value:`insert`,label:`插入控件`},{value:`properties`,label:`控件属性`}],Y=(0,i.computed)(()=>G.readonly||G.disabled),ye=(0,i.computed)(()=>G.selectedVariable?G.bodyControlToolItems.find(e=>e.type===(G.selectedVariable?.type||`text`))?.label||e.getFieldOption(G.selectedVariable.type||`text`).label:``),X=(0,i.computed)(()=>G.selectedVariable?.type===`select`||G.selectedVariable?.type===`radio`),be=(0,i.computed)(()=>G.selectedVariable?.type===`select`||!!G.selectedVariable?.type?.endsWith(`-selector`)),xe=(0,i.computed)(()=>G.selectedVariable?.type===`select`&&!!G.selectedVariable.multiple),Se=(0,i.computed)(()=>G.selectedVariable?.defaultValue||void 0),Ce=(0,i.computed)(()=>(G.selectedVariable?.options??[]).map(e=>({label:e.label,value:String(e.value)})));(0,i.watch)(()=>G.selectedVariable?.id,e=>{J.value=e?`properties`:`insert`},{immediate:!0});function Z(e){G.selectedVariable&&!Y.value&&K(`patchVariable`,e)}function Q(e){G.selectedVariable&&!Y.value&&K(`patchStyle`,e)}function $(e){Z({defaultValue:e==null?``:String(e)})}function we(e){let t={multiple:e};e&&G.selectedVariable?.type===`select`&&(t.defaultValue=``),Z(t)}function Te(e){let t=e??[],n=G.selectedVariable?.defaultValue,r={options:t};n&&!t.some(e=>String(e.value)===String(n))&&(r.defaultValue=``),Z(r)}function Ee(){G.selectedVariable&&!Y.value&&K(`duplicateVariable`,G.selectedVariable)}function De(){G.selectedVariable&&!Y.value&&K(`removeVariable`,G.selectedVariable)}return(U,W)=>((0,i.openBlock)(),(0,i.createElementBlock)(`aside`,{class:(0,i.normalizeClass)([`gd-contract-template-designer__inspector gd-contract-authoring-panel`,{"is-collapsed":G.collapsed}]),"aria-label":`控件插入与属性`},[(0,i.createVNode)((0,i.unref)(a.Tooltip),{title:G.collapsed?`展开属性栏`:`收起属性栏`},{default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`button`,{type:`button`,class:`gd-contract-template-designer__panel-handle gd-contract-authoring-panel__handle`,"aria-label":G.collapsed?`展开属性栏`:`收起属性栏`,"aria-expanded":!G.collapsed,onClick:W[0]||=e=>K(`toggle`)},[G.collapsed?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(o.LeftOutlined),{key:0,"aria-hidden":`true`})):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(o.RightOutlined),{key:1,"aria-hidden":`true`}))],8,ne)]),_:1},8,[`title`]),(0,i.createElementVNode)(`div`,re,[(0,i.createElementVNode)(`div`,ie,[(0,i.createVNode)(n.default,{id:q,modelValue:J.value,"onUpdate:modelValue":W[1]||=e=>J.value=e,items:ve,label:`控件面板视图`},null,8,[`modelValue`]),(0,i.withDirectives)((0,i.createElementVNode)(`section`,{id:`${q}-panel-insert`,class:`gd-contract-authoring-panel__view`,role:`tabpanel`,"aria-labelledby":`${q}-tab-insert`},[(0,i.createVNode)(ee.default,{items:G.bodyControlToolItems,readonly:Y.value,onInsertVariable:W[2]||=e=>K(`insertVariable`,e),onVariableDragStart:W[3]||=(e,t)=>K(`variableDragStart`,e,t)},null,8,[`items`,`readonly`])],8,ae),[[i.vShow,J.value===`insert`]]),(0,i.withDirectives)((0,i.createElementVNode)(`section`,{id:`${q}-panel-properties`,class:`gd-contract-authoring-panel__view`,role:`tabpanel`,"aria-labelledby":`${q}-tab-properties`},[(0,i.createElementVNode)(`div`,se,[W[31]||=(0,i.createElementVNode)(`strong`,null,`属性`,-1),Y.value?((0,i.openBlock)(),(0,i.createElementBlock)(`small`,ce,`只读`)):(0,i.createCommentVNode)(``,!0)]),G.selectedVariable?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:G.selectedVariable.id,class:`gd-contract-authoring-panel__properties`},[(0,i.createElementVNode)(`div`,ue,[(0,i.createElementVNode)(`span`,s,[((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)((0,i.unref)(t.resolveFieldTypeIcon)(G.selectedVariable.type))))]),(0,i.createElementVNode)(`div`,c,[(0,i.createElementVNode)(`span`,l,(0,i.toDisplayString)(G.selectedVariable.label),1),(0,i.createElementVNode)(`small`,u,(0,i.toDisplayString)(ye.value),1)]),(0,i.createVNode)((0,i.unref)(a.Tooltip),{title:`复制变量`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.Button),{type:`text`,disabled:Y.value,"aria-label":`复制变量`,onClick:Ee},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(o.CopyOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})]),(0,i.createVNode)(te.default,{variable:G.selectedVariable,variables:G.variables,readonly:Y.value,onPatchVariable:Z,onRenameVariable:W[5]||=e=>K(`renameVariable`,e)},null,8,[`variable`,`variables`,`readonly`]),(0,i.createElementVNode)(`section`,d,[W[38]||=(0,i.createElementVNode)(`h3`,{class:`gd-contract-authoring-panel__group-title`},`基础信息`,-1),(0,i.createElementVNode)(`div`,f,[(0,i.createElementVNode)(`label`,p,[W[35]||=(0,i.createElementVNode)(`span`,null,`名称`,-1),(0,i.createVNode)((0,i.unref)(a.Input),{value:G.selectedVariable.label,disabled:Y.value,"aria-label":`变量名称`,onChange:W[6]||=e=>Z({label:e.target.value})},null,8,[`value`,`disabled`])]),(0,i.createElementVNode)(`label`,m,[W[36]||=(0,i.createElementVNode)(`span`,null,`占位文案`,-1),(0,i.createVNode)((0,i.unref)(a.Input),{value:G.selectedVariable.placeholder,disabled:Y.value,"aria-label":`占位文案`,onChange:W[7]||=e=>Z({placeholder:e.target.value})},null,8,[`value`,`disabled`])]),xe.value?(0,i.createCommentVNode)(``,!0):((0,i.openBlock)(),(0,i.createElementBlock)(`label`,h,[W[37]||=(0,i.createElementVNode)(`span`,null,`默认值`,-1),X.value?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.Select),{key:0,value:Se.value,options:Ce.value,disabled:Y.value,"allow-clear":``,placeholder:`请选择`,"aria-label":`默认值`,onChange:$},null,8,[`value`,`options`,`disabled`])):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.Input),{key:1,value:G.selectedVariable.defaultValue,disabled:Y.value,"aria-label":`默认值`,onChange:W[8]||=e=>Z({defaultValue:e.target.value})},null,8,[`value`,`disabled`]))]))])]),(0,i.createElementVNode)(`details`,g,[(0,i.createElementVNode)(`summary`,_,[(0,i.createVNode)((0,i.unref)(o.RightOutlined),{class:`gd-contract-authoring-panel__chevron`,"aria-hidden":`true`}),W[39]||=(0,i.createElementVNode)(`span`,null,`填写规则`,-1)]),(0,i.createElementVNode)(`div`,v,[(0,i.createElementVNode)(`label`,y,[W[40]||=(0,i.createElementVNode)(`span`,null,`必填`,-1),(0,i.createVNode)((0,i.unref)(a.Switch),{checked:G.selectedVariable.required,disabled:Y.value,"aria-label":`必填`,onChange:W[9]||=e=>Z({required:!!e})},null,8,[`checked`,`disabled`])]),!G.selectedVariable.type||G.selectedVariable.type===`text`?((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:0},[(0,i.createElementVNode)(`label`,b,[W[41]||=(0,i.createElementVNode)(`span`,null,`多行`,-1),(0,i.createVNode)((0,i.unref)(a.Switch),{checked:!!G.selectedVariable.multiline,disabled:Y.value,"aria-label":`多行`,onChange:W[10]||=e=>K(`patchMultiline`,!!e)},null,8,[`checked`,`disabled`])]),G.selectedVariable.multiline?((0,i.openBlock)(),(0,i.createElementBlock)(`label`,x,[W[42]||=(0,i.createElementVNode)(`span`,null,`行数`,-1),(0,i.createVNode)((0,i.unref)(a.InputNumber),{value:G.selectedVariable.rows||G.defaultMultilineRows,min:2,max:12,disabled:Y.value,"aria-label":`行数`,onChange:W[11]||=e=>K(`patchRows`,e)},null,8,[`value`,`disabled`])])):(0,i.createCommentVNode)(``,!0)],64)):(0,i.createCommentVNode)(``,!0),G.selectedVariable.type===`date`?((0,i.openBlock)(),(0,i.createElementBlock)(`label`,S,[W[43]||=(0,i.createElementVNode)(`span`,null,`日期格式`,-1),(0,i.createVNode)((0,i.unref)(a.Input),{value:G.selectedVariable.format,disabled:Y.value,"aria-label":`日期格式`,onChange:W[12]||=e=>Z({format:e.target.value})},null,8,[`value`,`disabled`])])):(0,i.createCommentVNode)(``,!0),G.selectedVariable.type===`number`?((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:2},[(0,i.createElementVNode)(`label`,C,[W[44]||=(0,i.createElementVNode)(`span`,null,`数字格式`,-1),(0,i.createVNode)((0,i.unref)(a.Input),{value:G.selectedVariable.format,disabled:Y.value,"aria-label":`数字格式`,onChange:W[13]||=e=>Z({format:e.target.value})},null,8,[`value`,`disabled`])]),(0,i.createElementVNode)(`label`,w,[W[45]||=(0,i.createElementVNode)(`span`,null,`小数位`,-1),(0,i.createVNode)((0,i.unref)(a.InputNumber),{value:G.selectedVariable.precision,min:0,max:6,disabled:Y.value,"aria-label":`小数位`,onChange:W[14]||=e=>Z({precision:typeof e==`number`?e:void 0})},null,8,[`value`,`disabled`])]),(0,i.createElementVNode)(`label`,T,[W[46]||=(0,i.createElementVNode)(`span`,null,`千分位`,-1),(0,i.createVNode)((0,i.unref)(a.Switch),{checked:G.selectedVariable.useGrouping!==!1,disabled:Y.value,"aria-label":`千分位`,onChange:W[15]||=e=>Z({useGrouping:!!e})},null,8,[`checked`,`disabled`])])],64)):(0,i.createCommentVNode)(``,!0),G.selectedVariable.type===`checkbox`?((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:3},[(0,i.createElementVNode)(`label`,E,[W[47]||=(0,i.createElementVNode)(`span`,null,`勾选文本`,-1),(0,i.createVNode)((0,i.unref)(a.Input),{value:G.selectedVariable.checkedText,disabled:Y.value,"aria-label":`勾选文本`,onChange:W[16]||=e=>Z({checkedText:e.target.value})},null,8,[`value`,`disabled`])]),(0,i.createElementVNode)(`label`,D,[W[48]||=(0,i.createElementVNode)(`span`,null,`未选文本`,-1),(0,i.createVNode)((0,i.unref)(a.Input),{value:G.selectedVariable.uncheckedText,disabled:Y.value,"aria-label":`未选文本`,onChange:W[17]||=e=>Z({uncheckedText:e.target.value})},null,8,[`value`,`disabled`])])],64)):(0,i.createCommentVNode)(``,!0),be.value?((0,i.openBlock)(),(0,i.createElementBlock)(`label`,O,[W[49]||=(0,i.createElementVNode)(`span`,null,`允许多选`,-1),(0,i.createVNode)((0,i.unref)(a.Switch),{checked:!!G.selectedVariable.multiple,disabled:Y.value,"aria-label":`允许多选`,onChange:W[18]||=e=>we(!!e)},null,8,[`checked`,`disabled`])])):(0,i.createCommentVNode)(``,!0),X.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,k,[W[50]||=(0,i.createElementVNode)(`span`,null,`选项`,-1),((0,i.openBlock)(),(0,i.createBlock)(r.default,{key:G.selectedVariable.id,options:G.selectedVariable.options??[],"variable-type":G.selectedVariable.type||`select`,readonly:Y.value,onChange:Te},null,8,[`options`,`variable-type`,`readonly`]))])):(0,i.createCommentVNode)(``,!0)])]),(0,i.createElementVNode)(`details`,A,[(0,i.createElementVNode)(`summary`,j,[(0,i.createVNode)((0,i.unref)(o.RightOutlined),{class:`gd-contract-authoring-panel__chevron`,"aria-hidden":`true`}),W[51]||=(0,i.createElementVNode)(`span`,null,`外观`,-1)]),(0,i.createElementVNode)(`div`,M,[(0,i.createElementVNode)(`div`,N,[(0,i.createElementVNode)(`label`,P,[W[52]||=(0,i.createElementVNode)(`span`,null,[(0,i.createTextVNode)(`宽度 `),(0,i.createElementVNode)(`small`,{class:`gd-contract-authoring-panel__meta`},`px`)],-1),(0,i.createVNode)((0,i.unref)(a.InputNumber),{value:G.selectedVariable.width,min:48,max:G.selectedVariableWidthMax,disabled:Y.value,"aria-label":`控件宽度`,onChange:W[19]||=e=>Z({width:Number(e||48)})},null,8,[`value`,`max`,`disabled`])]),(0,i.createElementVNode)(`label`,F,[W[53]||=(0,i.createElementVNode)(`span`,null,[(0,i.createTextVNode)(`高度 `),(0,i.createElementVNode)(`small`,{class:`gd-contract-authoring-panel__meta`},`px`)],-1),(0,i.createVNode)((0,i.unref)(a.InputNumber),{value:G.selectedVariable.height,min:24,max:G.selectedVariableHeightMax,disabled:Y.value,"aria-label":`控件高度`,onChange:W[20]||=e=>Z({height:Number(e||24)})},null,8,[`value`,`max`,`disabled`])])]),(0,i.createElementVNode)(`label`,I,[W[54]||=(0,i.createElementVNode)(`span`,null,`边框`,-1),(0,i.createVNode)((0,i.unref)(a.Switch),{checked:!!G.selectedVariable.style?.border,disabled:Y.value,"aria-label":`边框`,onChange:W[21]||=e=>Q({border:!!e})},null,8,[`checked`,`disabled`])]),(0,i.createElementVNode)(`label`,L,[W[55]||=(0,i.createElementVNode)(`span`,null,`下划线`,-1),(0,i.createVNode)((0,i.unref)(a.Switch),{checked:!!G.selectedVariable.style?.underline,disabled:Y.value,"aria-label":`下划线`,onChange:W[22]||=e=>Q({underline:!!e})},null,8,[`checked`,`disabled`])]),(0,i.createElementVNode)(`label`,R,[W[56]||=(0,i.createElementVNode)(`span`,null,`字体`,-1),(0,i.createVNode)((0,i.unref)(a.Select),{value:G.currentVariableFontFamily,options:G.fontFamilySelectOptions,disabled:Y.value,"aria-label":`控件字体`,onChange:W[23]||=e=>K(`patchFontFamily`,e)},null,8,[`value`,`options`,`disabled`])]),(0,i.createElementVNode)(`label`,z,[W[57]||=(0,i.createElementVNode)(`span`,null,`字号`,-1),(0,i.createVNode)((0,i.unref)(a.InputNumber),{value:G.selectedVariable.style?.fontSize,min:G.minFontSize,max:G.maxFontSize,disabled:Y.value,"aria-label":`控件字号`,onChange:W[24]||=e=>K(`patchFontSize`,e)},null,8,[`value`,`min`,`max`,`disabled`])]),(0,i.createElementVNode)(`label`,B,[W[58]||=(0,i.createElementVNode)(`span`,null,`颜色`,-1),(0,i.createElementVNode)(`input`,{type:`color`,value:G.selectedVariable.style?.color||(0,i.unref)(e.DEFAULT_FIELD_STYLE).color,disabled:Y.value,"aria-label":`控件文字颜色`,onInput:W[25]||=e=>Q({color:e.target.value})},null,40,V)]),(0,i.createElementVNode)(`label`,H,[W[59]||=(0,i.createElementVNode)(`span`,null,`占位颜色`,-1),(0,i.createElementVNode)(`input`,{type:`color`,value:G.selectedVariable.style?.placeholderColor||(0,i.unref)(e.DEFAULT_FIELD_STYLE).placeholderColor,disabled:Y.value,"aria-label":`控件占位颜色`,onInput:W[26]||=e=>Q({placeholderColor:e.target.value})},null,40,de)]),(0,i.createElementVNode)(`label`,fe,[W[60]||=(0,i.createElementVNode)(`span`,null,`线条颜色`,-1),(0,i.createElementVNode)(`input`,{type:`color`,value:G.selectedVariable.style?.lineColor||(0,i.unref)(e.DEFAULT_FIELD_STYLE).lineColor,disabled:Y.value,"aria-label":`控件线条颜色`,onInput:W[27]||=e=>Q({lineColor:e.target.value})},null,40,pe)]),(0,i.createElementVNode)(`label`,me,[W[61]||=(0,i.createElementVNode)(`span`,null,`文字对齐`,-1),(0,i.createVNode)((0,i.unref)(a.Select),{value:G.selectedVariable.style?.textAlign||`left`,options:G.textAlignOptions,disabled:Y.value,"aria-label":`控件文字对齐`,onChange:W[28]||=e=>K(`patchTextAlign`,e)},null,8,[`value`,`options`,`disabled`])]),G.selectedVariable.type===`image`?((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:0},[(0,i.createElementVNode)(`label`,he,[W[62]||=(0,i.createElementVNode)(`span`,null,`边框样式`,-1),(0,i.createVNode)((0,i.unref)(a.Select),{value:G.selectedVariable.style?.borderStyle||`dashed`,options:G.borderStyleOptions,disabled:Y.value,"aria-label":`图片边框样式`,onChange:W[29]||=e=>K(`patchBorderStyle`,e)},null,8,[`value`,`options`,`disabled`])]),(0,i.createElementVNode)(`label`,ge,[W[63]||=(0,i.createElementVNode)(`span`,null,`图片适配`,-1),(0,i.createVNode)((0,i.unref)(a.Select),{value:G.selectedVariable.style?.objectFit||`contain`,options:G.objectFitOptions,disabled:Y.value,"aria-label":`图片适配`,onChange:W[30]||=e=>K(`patchObjectFit`,e)},null,8,[`value`,`options`,`disabled`])])],64)):(0,i.createCommentVNode)(``,!0)])]),(0,i.createElementVNode)(`div`,_e,[(0,i.createVNode)((0,i.unref)(a.Popconfirm),{title:`删除此变量及其全部引用?`,"ok-text":`删除变量`,"cancel-text":`取消`,"ok-button-props":{danger:!0},disabled:Y.value,onConfirm:De},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.Button),{type:`text`,danger:``,disabled:Y.value,"aria-label":`删除变量`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(o.DeleteOutlined),{"aria-hidden":`true`}),W[64]||=(0,i.createTextVNode)(`删除变量`,-1)]),_:1},8,[`disabled`])]),_:1},8,[`disabled`])])])):((0,i.openBlock)(),(0,i.createElementBlock)(`div`,le,[W[33]||=(0,i.createElementVNode)(`span`,null,`先选择一个正文变量`,-1),W[34]||=(0,i.createElementVNode)(`small`,{class:`gd-contract-authoring-panel__meta`},`点击正文控件,或从左侧「变量」中定位。`,-1),(0,i.createVNode)((0,i.unref)(a.Button),{onClick:W[4]||=e=>J.value=`insert`},{default:(0,i.withCtx)(()=>[...W[32]||=[(0,i.createTextVNode)(`前往插入控件`,-1)]]),_:1})]))],8,oe),[[i.vShow,J.value===`properties`]])])])],2))}});exports.default=U;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./constants.cjs`),t=require(`./utils/page-decorations.cjs`),n=require(`./composables/use-template-designer.cjs`),r=require(`./utils/editor-snapshot-cache.cjs`),i=require(`./composables/use-page-authoring.cjs`)
|
|
2
|
-
`)}function ge(){let e=O.value,t=e?.state.selection;if(!(!e||!t||t.empty))try{let n=e.view.coordsAtPos(t.from),r=e.view.coordsAtPos(t.to,-1);if(Math.abs(r.top-n.top)>ae)return;let i=Math.abs(r.left-n.left)/U.value;return Number.isFinite(i)&&i>0?i:void 0}catch{return}}function _e(){let e=O.value,t=e?.state.selection;if(!(!e||!t||t.empty)&&!(t instanceof d.CellSelection||t instanceof f.NodeSelection))try{let n=e.view.coordsAtPos(t.from),r=e.view.coordsAtPos(t.to,-1);return{top:Math.min(n.top,r.top),bottom:Math.max(n.bottom,r.bottom),left:Math.min(n.left,r.left),right:Math.max(n.left,r.right)}}catch{return}}function ve(){let e=O.value;if(!e)return``;let t=e.state.selection.$from,n=t.pos;for(let e=t.depth;e>0;--e){let r=t.node(e).type.name;if(r===`paragraph`||r===`heading`){n=t.start(e);break}}return e.state.doc.textBetween(n,e.state.selection.from,``)}function ye(e){return e.key===`ContextMenu`||e.shiftKey&&e.key===`F10`}function A(e){for(let t=e.depth;t>0;--t){let n=e.node(t).type.spec.tableRole;if(n===`cell`||n===`header_cell`)return e.before(t)}}function be(e,t){let n=O.value,r=n?.view.posAtCoords({left:e,top:t})?.pos;if(!(!n||typeof r!=`number`))return A(n.state.doc.resolve(r))}function xe(){let e=O.value;if(e)return A(e.state.selection.$from)}function Se(e,t,n){let r=O.value,i=n instanceof HTMLElement?n:null;if(!r||!i?.closest(`td,th`))return!1;if(r.state.selection instanceof d.CellSelection&&i.closest(`td.selectedCell,th.selectedCell`))return!0;let a=be(e,t);return typeof a==`number`?(r.view.dispatch(r.state.tr.setSelection(d.CellSelection.create(r.state.doc,a))),!0):!1}function j(){let e=O.value,t=e?.isActive(`table`)?e.can():void 0,n=e=>!!(t&&e(t));return{addRowBefore:n(e=>e.addRowBefore()),addRowAfter:n(e=>e.addRowAfter()),deleteRow:n(e=>e.deleteRow()),addColumnBefore:n(e=>e.addColumnBefore()),addColumnAfter:n(e=>e.addColumnAfter()),deleteColumn:n(e=>e.deleteColumn()),mergeCells:n(e=>e.mergeCells()),splitCell:n(e=>e.splitCell()),alignLeft:n(e=>e.setCellAttribute(`textAlign`,`left`)),alignCenter:n(e=>e.setCellAttribute(`textAlign`,`center`)),alignRight:n(e=>e.setCellAttribute(`textAlign`,`right`)),toggleHeaderRow:n(e=>e.toggleHeaderRow()),toggleHeaderColumn:n(e=>e.toggleHeaderColumn()),deleteTable:n(e=>e.deleteTable())}}function Ce(){let e=O.value,t=e?.state.selection;if(!e||!(t instanceof d.CellSelection))return`left`;let n=new Set;return t.forEachCell(e=>{let t=e.attrs.textAlign;n.add(t===`center`||t===`right`?t:`left`)}),n.size===1?n.values().next().value??`left`:`mixed`}function M(e=O.value?.state.doc){let t=0;return e?.descendants(e=>{e.type.name===`templateVariable`&&(t+=1)}),t}function N(e){let t=O.value;if(!t)return 0;let n=M(t.state.doc),r=n,i=e=>{r=M(e.doc)};return e===`delete-table-row`?(0,d.deleteRow)(t.state,i):e===`delete-table-column`?(0,d.deleteColumn)(t.state,i):(0,d.deleteTable)(t.state,i),Math.max(0,n-r)}function P(e){let t=O.value?.state.selection,n=!!(t&&!t.empty);g(`editor-context-menu`,{type:`text`,...e,hasSelection:n,selectionWidth:n?ge():void 0,leadingText:ve()})}function we(e,t){P({pageId:h.page.id,clientX:e,clientY:t})}function F(e,t){g(`editor-context-menu`,{type:`image`,...e,image:t})}function I(e,t){if(!(e.type.name!==`image`||typeof e.attrs.src!=`string`||!e.attrs.src))return{position:t,src:e.attrs.src,alt:typeof e.attrs.alt==`string`?e.attrs.alt:void 0,title:typeof e.attrs.title==`string`?e.attrs.title:void 0,width:o.normalizeContractImageDimension(e.attrs.width),height:o.normalizeContractImageDimension(e.attrs.height)}}function L(){let e=O.value?.state.selection;if(e instanceof f.NodeSelection)return I(e.node,e.from)}function Te(e,t){let n=t instanceof HTMLElement?t.closest(`[data-template-variable], img[src]`):null;if(n)try{let t=e.posAtDOM(n,0),r=e.state.doc.nodeAt(t);return!r||r.type.name!==`templateVariable`&&r.type.name!==`image`?void 0:(r.type.name===`templateVariable`&&typeof r.attrs.key==`string`&&g(`variable-select`,r.attrs.key),(!(e.state.selection instanceof f.NodeSelection)||e.state.selection.from!==t)&&e.dispatch(e.state.tr.setSelection(f.NodeSelection.create(e.state.doc,t))),I(r,t))}catch{return}}function R(e){g(`editor-context-menu`,{type:`table`,...e,capabilities:j(),activeAlignment:Ce(),affectedVariableCounts:{deleteRow:N(`delete-table-row`),deleteColumn:N(`delete-table-column`),deleteTable:N(`delete-table`)}})}function Ee(e){return typeof e==`number`&&Number.isInteger(e)&&e>=1&&e<=6}function z(){let e=O.value;if(!e)return[];let{doc:t,selection:n}=e.state,r=[],i=e=>{e.type.name===`paragraph`?r.push(`paragraph`):e.type.name===`heading`&&Ee(e.attrs.level)&&r.push(e.attrs.level)};if(n.empty)for(let e=n.$from.depth;e>0;e--){let t=n.$from.node(e);if(t.type.name===`paragraph`||t.type.name===`heading`){i(t);break}}else t.nodesBetween(n.from,n.to,e=>(i(e),!0));return Array.from(new Set(r))}function De(){let e=z();return e.length===1&&e[0]!==`paragraph`?e[0]:void 0}function Oe(){return z().length>1}function ke(){return[`center`,`right`].find(e=>O.value?.isActive(`heading`,{textAlign:e})||O.value?.isActive(`paragraph`,{textAlign:e}))??`left`}function B(){let e=O.value,t=t=>!!e?.isActive(t),n=e?.getAttributes(`textStyle`)??{};return{isFocused:!!e?.isFocused,canUndo:!!e?.can().undo(),canRedo:!!e?.can().redo(),isBold:t(`bold`),isItalic:t(`italic`),isUnderline:t(`underline`),isBulletList:t(`bulletList`),isOrderedList:t(`orderedList`),isTableActive:t(`table`),currentHeadingLevel:De(),hasMixedBlockFormats:Oe(),textAlign:ke(),fontFamily:typeof n.fontFamily==`string`?n.fontFamily:void 0,fontSize:me(n.fontSize),textColor:typeof n.color==`string`?n.color:void 0,selectionText:he(),selectedContentImage:L()}}function V(){g(`editor-state-change`,h.page.id,B())}(0,l.watch)(_,e=>{O.value?.setEditable(!e),V()}),(0,l.watch)(()=>h.page.contentHtml,e=>{H(e)});function H(e){if(!O.value||e===$()){S=void 0;return}if(E()){S=e;return}O.value.commands.setContent(e||`<p></p>`,{emitUpdate:!1}),V()}let Ae=(0,l.computed)(()=>{let e=t.normalizePageDecorations(h.pageDecorations),n=h.pageIndex+1,r=t.hasEnabledPageHeader(e,n)?t.getPageDecorationSafePadding(e.header):t.CONTRACT_PAGE_BASE_PADDING.top,i=t.hasEnabledPageFooter(e,n)?t.getPageDecorationSafePadding(e.footer):t.CONTRACT_PAGE_BASE_PADDING.bottom;return{width:`${h.pageSize.width}px`,height:`${h.pageSize.height}px`,paddingTop:`${r}px`,paddingBottom:`${i}px`,"--gd-contract-page-content-height":`${Math.max(120,h.pageSize.height-r-i)}px`}}),U=(0,l.computed)(()=>Math.max(.1,h.zoom||1)),je=(0,l.computed)(()=>({width:`${Math.ceil((h.pageSize.width+10)*U.value)}px`,height:`${Math.ceil((h.pageSize.height+40)*U.value)}px`})),Me=(0,l.computed)(()=>({"--gd-contract-page-zoom":String(U.value)})),Ne=(0,l.computed)(()=>n.resolvePageSize(h.pageSize));function Pe(e){if(h.readonly||h.disabled){e.preventDefault(),e.stopPropagation();return}let t=e.dataTransfer?.getData(`application/x-gd-contract-variable`);if(t){e.preventDefault(),e.stopPropagation(),g(`variable-drop`,h.page.id,t,e.clientX,e.clientY);return}let n=e.dataTransfer?.getData(p);n&&n!==h.page.id&&(e.preventDefault(),e.stopPropagation(),g(`variable-move-blocked`,h.page.id))}function Fe(e,t){let n=O.value;if(!n)return;let r=t?n.view.posAtCoords(t)?.pos:void 0;return a.insertTemplateVariableNode(n,e,r),Z(),W()}function Ie(e,t){let n=O.value;if(n)return s.runContractTemplateEditorCommand(n,{type:`insert-content-image`,image:e,position:t}),W()}function Le(e){let t=O.value,n=t?.state.selection;if(!t||!(n instanceof f.NodeSelection)||n.node.type.name!==`image`)return;let r={...n.node.attrs},i=!1;if([`width`,`height`].forEach(t=>{if(!Object.prototype.hasOwnProperty.call(e,t))return;let n=e[t]===void 0?null:o.normalizeContractImageDimension(e[t])??null;r[t]!==n&&(r[t]=n,i=!0)}),!i)return;let a=t.state.tr.setNodeMarkup(n.from,void 0,r);return a.setSelection(f.NodeSelection.create(a.doc,n.from)),t.view.dispatch(a),W()}function Re(){let e=O.value?.state.selection;return e?{from:e.from,to:e.to}:void 0}function W(){return{...h.page,pageSize:Ne.value,contentHtml:$(),contentJson:Q()??h.page.contentJson}}function ze(e){if(!T())return{contentHtml:e.contentHtml,contentJson:e.contentJson};let t=$();return!E()&&e.contentHtml!==h.page.contentHtml&&e.contentHtml!==t?{contentHtml:e.contentHtml,contentJson:e.contentJson}:{contentHtml:t,contentJson:Q()}}function G(e){return{type:`doc`,content:e.length?e:[{type:`paragraph`}]}}function Be(e){return e?.length?e.length===1&&e[0].type===`paragraph`&&!e[0].content?.length:!0}function Ve(e){return(0,re.generateHTML)(G(e),D)}function He(){if(h.pageDecorations){let e=t.normalizePageDecorations(h.pageDecorations),n=h.pageIndex+1,r=t.hasEnabledPageHeader(e,n)?t.getPageDecorationSafePadding(e.header):t.CONTRACT_PAGE_BASE_PADDING.top,i=t.hasEnabledPageFooter(e,n)?t.getPageDecorationSafePadding(e.footer):t.CONTRACT_PAGE_BASE_PADDING.bottom;return Math.max(120,h.pageSize.height-r-i)}let e=v.value;if(!e)return h.pageSize.height-108;let n=window.getComputedStyle(e),r=Number.parseFloat(n.paddingTop)||0,i=Number.parseFloat(n.paddingBottom)||0;return Math.max(120,h.pageSize.height-r-i)}function Ue(){let e=v.value?.querySelector(`.gd-contract-template-designer__editor-prose`);if(!e)return[];let t=e.getBoundingClientRect(),n=U.value;return Array.from(e.children).map(r=>{let i=r.getBoundingClientRect(),a=r instanceof HTMLTableElement?r:r.querySelector(`:scope > table`),o=a?Array.from(a.rows).map(e=>{let r=e.getBoundingClientRect();return{top:(r.top-t.top)/n,height:r.height/n}}):void 0;return{top:(i.top-t.top)/n,height:i.height/n,...o?.length?{tableRows:o,trailingTextBlockHeight:Number.parseFloat(window.getComputedStyle(e).lineHeight)||28}:{}}})}function K(){if(!O.value)return;let e=Ue(),t=He();if(e.some(e=>e.top+e.height>t+1))return n.splitPageContentByMeasurements(Q()?.content,e,t)}function We(){return!!K()}function Ge(){if(!O.value||!T()||E())return;let e=K();if(e)return O.value.commands.setContent(G(e.currentContent),{emitUpdate:!1}),{page:W(),overflowContent:e.overflowContent,overflowHtml:Ve(e.overflowContent)}}function Ke(e){if(!O.value||!T()||E()||!e.length)return;let t=Q()?.content,n=[...e,...Be(t)?[]:t??[]];return O.value.commands.setContent(G(n),{emitUpdate:!1}),W()}function q(e,t){let n=[];return e.descendants((e,r)=>{e.type.name===`templateVariable`&&e.attrs.key===t&&n.push({node:e,pos:r})}),n}function J(e,t=e.key){if(!O.value)return;let n=a.buildTemplateVariableAttrs(e),r=!1;return O.value.commands.command(({tr:e,state:i,dispatch:a})=>(q(i.doc,t).forEach(({node:t,pos:i})=>{e.setNodeMarkup(i,void 0,{...t.attrs,...n}),r=!0}),r&&a?.(e),r)),Z(),r?W():void 0}function qe(e){if(!O.value)return;let t=0;return O.value.commands.command(({tr:n,state:r,dispatch:i})=>{let a=q(r.doc,e).map(({node:e,pos:t})=>({from:t,to:t+e.nodeSize})).sort((e,t)=>t.from-e.from);return a.forEach(e=>n.delete(e.from,e.to)),t=a.length,t&&i?.(n),t>0}),t?W():void 0}function Y(){v.value?.querySelectorAll(`.gd-contract-template-variable.is-active`).forEach(e=>e.classList.remove(`is-active`))}function X(e){if(e)return Array.from(v.value?.querySelectorAll(`[data-template-variable]`)??[]).find(t=>t.dataset.key===e)}function Je(e){Y();let t=X(e);return t?(t.classList.add(`is-active`),t.scrollIntoView({behavior:`smooth`,block:`center`,inline:`center`}),O.value?.commands.focus(),!0):!1}function Z(){Y(),X(h.selectedVariableKey)?.classList.add(`is-active`)}function Ye(t){let r=e.CONTRACT_TEXT_STYLE_PRESETS.find(e=>e.key===t),i=O.value;if(!r||!i)return;let a=i.chain().focus().clearNodes();r.headingLevel?a.setHeading({level:r.headingLevel}):a.setParagraph(),a.unsetAllMarks().unsetTextAlign().unsetFontSize().unsetFontFamily().unsetColor().setTextAlign(r.textAlign).setFontSize(`${r.fontSize}px`).setFontFamily(r.fontFamily||e.DEFAULT_CONTRACT_FONT_FAMILY).setColor(n.DEFAULT_FIELD_STYLE.color||`#1f2937`),r.bold?a.setBold():a.unsetBold(),r.italic?a.setItalic():a.unsetItalic(),r.underline?a.setUnderline():a.unsetUnderline(),a.run()}(0,l.watch)([()=>h.selectedVariableKey,()=>h.variables],()=>{(0,l.nextTick)(Z)},{deep:!0,flush:`post`});function Xe(e){_.value||(e.type===`apply-block-style`?O.value&&ee.applyContractTemplateBlockStyle(O.value,e.format):e.type===`apply-text-style-preset`?Ye(e.preset):s.runContractTemplateEditorCommand(O.value,e),V())}function Ze(){O.value?.commands.focus()}function Q(){return O.value?y.read(O.value).getJSON():h.page.contentJson}function $(){return O.value?y.read(O.value).getHTML():h.page.contentHtml}function Qe(e){let t=h.variables.find(t=>t.id===e||t.key===e),n=t?X(t.key):void 0;Z(),n?.scrollIntoView({behavior:`smooth`,block:`center`})}function $e(){v.value?.scrollIntoView({behavior:`smooth`,block:`start`,inline:`center`})}return(0,l.onBeforeUnmount)(()=>{C=!0,x!==void 0&&clearTimeout(x),O.value?.off(`contract-word-paste`,k),O.value?.destroy()}),oe({findText:ue,revealSearchMatch:de,replaceSearchMatches:fe,focusHeading:pe,focus:Ze,getHTML:$,getJSON:Q,getContentSnapshot:ze,getEditorState:B,getTableCommandCapabilities:j,getAffectedVariableCount:N,insertVariable:Fe,insertContentImage:Ie,updateSelectedContentImage:Le,getSelectionRange:Re,getSelectionViewportRect:_e,requestTextContextMenu:we,isReady:T,isComposing:E,hasOverflowContent:We,updateVariable:J,removeVariable:qe,splitOverflowContent:Ge,prependContent:Ke,runCommand:Xe,scrollIntoField:Qe,scrollIntoVariable:Je,scrollIntoPage:$e}),(e,t)=>((0,l.openBlock)(),(0,l.createElementBlock)(`section`,{class:`gd-contract-template-designer__page-shell`,style:(0,l.normalizeStyle)(je.value)},[(0,l.createElementVNode)(`div`,{class:(0,l.normalizeClass)([`gd-contract-template-designer__page-zoom`,{"is-active":m.active}]),style:(0,l.normalizeStyle)(Me.value)},[(0,l.createElementVNode)(`header`,ie,[(0,l.createElementVNode)(`span`,null,(0,l.toDisplayString)(m.page.title||`第 ${m.pageIndex+1} 页`),1),(0,l.createElementVNode)(`span`,null,`第 `+(0,l.toDisplayString)(m.pageIndex+1)+` 页 · `+(0,l.toDisplayString)(m.pageSize.label||`A4`)+` · `+(0,l.toDisplayString)(m.pageSize.width)+` × `+(0,l.toDisplayString)(m.pageSize.height),1)]),(0,l.createElementVNode)(`div`,{ref_key:`pageElement`,ref:v,class:`gd-contract-template-designer__page`,style:(0,l.normalizeStyle)(Ae.value),onLoadCapture:t[0]||=e=>g(`page-layout-change`,m.page.id),onDragover:t[1]||=(0,l.withModifiers)(()=>{},[`prevent`]),onDrop:Pe,onClick:t[2]||=e=>g(`editor-focus`,m.page.id)},[(0,l.createVNode)(te.default,{decorations:m.pageDecorations,"page-number":m.pageIndex+1,"total-pages":m.totalPages,variables:m.variables},null,8,[`decorations`,`page-number`,`total-pages`,`variables`]),(0,l.unref)(O)?((0,l.openBlock)(),(0,l.createBlock)((0,l.unref)(u.EditorContent),{key:0,class:`gd-contract-template-page__content`,editor:(0,l.unref)(O)},null,8,[`editor`])):(0,l.createCommentVNode)(``,!0)],36)],6)],4))}});exports.default=m;
|
|
1
|
+
require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./constants.cjs`),t=require(`./utils/page-decorations.cjs`),n=require(`./composables/use-template-designer.cjs`),r=require(`./utils/editor-snapshot-cache.cjs`),i=require(`../../../node_modules/prosemirror-transform/dist/index.cjs`),a=require(`./composables/use-page-authoring.cjs`);require(`../../../node_modules/@tiptap/pm/dist/transform/index.cjs`);const o=require(`./extensions/template-variable.cjs`),s=require(`./utils/content-image.cjs`),c=require(`./extensions/editor-extensions.cjs`),l=require(`./utils/context-variable.cjs`),u=require(`./utils/block-style.cjs`),ee=require(`./ContractTemplatePageDecorations.cjs`),d=require(`./utils/caret-viewport.cjs`);let f=require(`vue`),te=require(`ant-design-vue`),p=require(`@tiptap/vue-3`),ne=require(`@tiptap/core`),m=require(`@tiptap/pm/tables`),h=require(`@tiptap/pm/state`);var re={class:`gd-contract-template-designer__page-title`},g=`application/x-gd-contract-variable-move`,ie=8,_=(0,f.defineComponent)({name:`ProContractTemplateDesignerPage`,__name:`DesignerPage`,props:{page:{},pageIndex:{},pageSize:{},pageDecorations:{default:void 0},totalPages:{default:1},variables:{},selectedVariableKey:{default:``},active:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},zoom:{default:1},processImageFile:{type:Function,default:void 0},searchQuery:{default:``},searchMatchCase:{type:Boolean,default:!1},activeSearchMatch:{default:void 0},getScrollContainer:{type:Function,default:void 0}},emits:[`page-update`,`variable-drop`,`variable-select`,`variable-move-blocked`,`editor-focus`,`editor-ready`,`composition-end`,`page-layout-change`,`editor-state-change`,`editor-context-menu`,`word-paste`],setup(_,{expose:ae,emit:oe}){let v=_,y=oe,b=(0,f.computed)(()=>v.readonly||v.disabled),x=(0,f.ref)(),S=r.createEditorSnapshotCache(),C=!1,w,T,E=!1,D=!1,se=!1,O=!1,k=0,A,ce=v.page.contentHtml,le=(0,f.toRaw)(v.page);function j(){return D&&!E}function M(){return C||!!P.value?.view.composing}function ue(e){let t=e.filter(Boolean).join(`、`);return typeof window>`u`?!1:new Promise(e=>{te.Modal.confirm({title:`粘贴内容包含不兼容字体`,content:`检测到 ${t||`外部`} 字体。为保证 Mac 与 Windows 排版一致,将统一转换为合同标准字体(GD Contract Latin + 系统宋体)。是否继续粘贴?`,okText:`继续粘贴`,cancelText:`取消粘贴`,onOk:()=>e(!0),onCancel:()=>e(!1)})})}let N=c.createEditorExtensions(`请输入合同正文,或从 WPS / Word 粘贴合同内容`,{processImageFile:v.processImageFile,confirmExternalFontPaste:ue,getZoom:()=>Math.max(.1,v.zoom||1)}),P=(0,p.useEditor)({content:v.page.contentHtml,editable:!b.value,extensions:N,editorProps:{attributes:{class:`gd-contract-template-designer__editor-prose`},handleClick:(e,t,n)=>{let r=(n.target instanceof HTMLElement?n.target.closest(`[data-template-variable]`):void 0)?.dataset.key;if(!r)return!1;let i=v.variables.find(e=>e.key===r);return i&&y(`variable-select`,i.key),!1},handleDOMEvents:{compositionstart:()=>(C=!0,w!==void 0&&clearTimeout(w),!1),compositionend:()=>(C=!1,w=setTimeout(()=>{if(w=void 0,!(E||M())){if(T!==void 0){let e=T;T=void 0,W(e)}y(`page-update`,K()),y(`composition-end`,v.page.id)}},0),!1),contextmenu:(e,t)=>{if(b.value)return!1;let n=Ae(e,t.target);if(n)return t.preventDefault(),Oe({pageId:v.page.id,clientX:t.clientX,clientY:t.clientY},n),!0;let r=P.value?.state.selection,i=r instanceof m.CellSelection,a=t.target instanceof HTMLElement?!!t.target.closest(`td, th`):!1,o=l.resolveEditorContextMenuKind({isCellSelection:i,selectionEmpty:!r||r.empty,inTable:a});return t.preventDefault(),o===`table`&&(i||Ce(t.clientX,t.clientY,t.target))?(B({pageId:v.page.id,clientX:t.clientX,clientY:t.clientY}),!0):(R({pageId:v.page.id,clientX:t.clientX,clientY:t.clientY}),!0)},dragstart:(e,t)=>b.value?(t.preventDefault(),!0):(t.target instanceof HTMLElement?t.target:null)?.closest(`[data-template-variable]`)?(t.dataTransfer?.setData(g,v.page.id),t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`),x.value?.classList.add(`is-variable-dragging`),!1):!1,dragend:()=>(x.value?.classList.remove(`is-variable-dragging`),!1),drop:(e,t)=>{if(b.value)return t.preventDefault(),t.stopPropagation(),!0;let n=t.dataTransfer?.getData(g);return!n||n===v.page.id?!1:(t.preventDefault(),y(`variable-move-blocked`,v.page.id),!0)}},handleKeyDown:(e,t)=>{if(b.value||!be(t))return!1;let n=P.value;if(!n)return!1;t.preventDefault();let r=n.state.selection,i=z();if(i){let e=n.view.coordsAtPos(r.from);return Oe({pageId:v.page.id,clientX:e.left,clientY:e.bottom},i),!0}let a=r instanceof m.CellSelection;if(l.resolveEditorContextMenuKind({isCellSelection:a,selectionEmpty:r.empty,inTable:n.isActive(`table`)})===`table`){if(!a){let e=Se();typeof e==`number`&&n.view.dispatch(n.state.tr.setSelection(m.CellSelection.create(n.state.doc,e)))}let e=n.view.coordsAtPos(n.state.selection.from);return B({pageId:v.page.id,clientX:e.left,clientY:e.bottom}),!0}let o=n.view.coordsAtPos(n.state.selection.from);return R({pageId:v.page.id,clientX:o.left,clientY:o.bottom}),!0},handleScrollToSelection:e=>d.scrollCaretIntoCanvas(e,()=>v.getScrollContainer?.(),()=>x.value)},onTransaction:({transaction:e,appendedTransactions:t})=>{[e,...t].some(e=>e.docChanged&&!e.getMeta(`preventUpdate`))&&(se=!0),!D&&[e,...t].some(e=>e.selectionSet||e.storedMarksSet)&&(O=!0),[e,...t].some(e=>e.docChanged||e.selectionSet||e.storedMarksSet||e.getMeta(`blur`))&&(k+=1)},onUpdate:({editor:e})=>{y(`page-update`,{...v.page,contentHtml:S.read(e).getHTML(),contentJson:S.read(e).getJSON()}),U()},onFocus:()=>{y(`editor-focus`,v.page.id),U()},onBlur:U,onSelectionUpdate:U,onMount:()=>{A=k},onCreate:({editor:e})=>{if(v.page.contentHtml!==ce&&v.page.contentHtml!==S.read(e).getHTML())if(C||e.view.composing)T=v.page.contentHtml;else{let t=A===k?k+1:void 0;e.commands.setContent(v.page.contentHtml||`<p></p>`,{emitUpdate:!1}),A=t}D=!0,e.on(`contract-word-paste`,F),U(),y(`editor-ready`,v.page.id)}}),{findText:de,revealSearchMatch:fe,replaceSearchMatches:pe,focusHeading:me}=a.usePageAuthoring({editor:()=>P.value,readonly:()=>b.value,search:()=>({query:v.searchQuery,matchCase:v.searchMatchCase,activeMatch:v.activeSearchMatch})});function F(e){y(`word-paste`,e)}function he(e){if(typeof e==`number`&&Number.isFinite(e))return e;let t=String(e||``).match(/(\d+(\.\d+)?)/);return t?Number(t[1]):void 0}function ge(){if(!P.value)return``;let{from:e,to:t}=P.value.state.selection;return P.value.state.doc.textBetween(e,t,`
|
|
2
|
+
`)}function _e(){let e=P.value,t=e?.state.selection;if(!(!e||!t||t.empty))try{let n=e.view.coordsAtPos(t.from),r=e.view.coordsAtPos(t.to,-1);if(Math.abs(r.top-n.top)>ie)return;let i=Math.abs(r.left-n.left)/G.value;return Number.isFinite(i)&&i>0?i:void 0}catch{return}}function ve(){let e=P.value,t=e?.state.selection;if(!(!e||!t||t.empty)&&!(t instanceof m.CellSelection||t instanceof h.NodeSelection))try{let n=e.view.coordsAtPos(t.from),r=e.view.coordsAtPos(t.to,-1);return{top:Math.min(n.top,r.top),bottom:Math.max(n.bottom,r.bottom),left:Math.min(n.left,r.left),right:Math.max(n.left,r.right)}}catch{return}}function ye(){let e=P.value;if(!e)return``;let t=e.state.selection.$from,n=t.pos;for(let e=t.depth;e>0;--e){let r=t.node(e).type.name;if(r===`paragraph`||r===`heading`){n=t.start(e);break}}return e.state.doc.textBetween(n,e.state.selection.from,``)}function be(e){return e.key===`ContextMenu`||e.shiftKey&&e.key===`F10`}function I(e){for(let t=e.depth;t>0;--t){let n=e.node(t).type.spec.tableRole;if(n===`cell`||n===`header_cell`)return e.before(t)}}function xe(e,t){let n=P.value,r=n?.view.posAtCoords({left:e,top:t})?.pos;if(!(!n||typeof r!=`number`))return I(n.state.doc.resolve(r))}function Se(){let e=P.value;if(e)return I(e.state.selection.$from)}function Ce(e,t,n){let r=P.value,i=n instanceof HTMLElement?n:null;if(!r||!i?.closest(`td,th`))return!1;if(r.state.selection instanceof m.CellSelection&&i.closest(`td.selectedCell,th.selectedCell`))return!0;let a=xe(e,t);return typeof a==`number`?(r.view.dispatch(r.state.tr.setSelection(m.CellSelection.create(r.state.doc,a))),!0):!1}function we(){let e=P.value,t=e?.isActive(`table`)?e.can():void 0,n=e=>!!(t&&e(t));return{addRowBefore:n(e=>e.addRowBefore()),addRowAfter:n(e=>e.addRowAfter()),deleteRow:n(e=>e.deleteRow()),addColumnBefore:n(e=>e.addColumnBefore()),addColumnAfter:n(e=>e.addColumnAfter()),deleteColumn:n(e=>e.deleteColumn()),mergeCells:n(e=>e.mergeCells()),splitCell:n(e=>e.splitCell()),alignLeft:n(e=>e.setCellAttribute(`textAlign`,`left`)),alignCenter:n(e=>e.setCellAttribute(`textAlign`,`center`)),alignRight:n(e=>e.setCellAttribute(`textAlign`,`right`)),toggleHeaderRow:n(e=>e.toggleHeaderRow()),toggleHeaderColumn:n(e=>e.toggleHeaderColumn()),deleteTable:n(e=>e.deleteTable())}}function Te(){let e=P.value,t=e?.state.selection;if(!e||!(t instanceof m.CellSelection))return`left`;let n=new Set;return t.forEachCell(e=>{let t=e.attrs.textAlign;n.add(t===`center`||t===`right`?t:`left`)}),n.size===1?n.values().next().value??`left`:`mixed`}function Ee(e=P.value?.state.doc){let t=0;return e?.descendants(e=>{e.type.name===`templateVariable`&&(t+=1)}),t}function L(e){let t=P.value;if(!t)return 0;let n=Ee(t.state.doc),r=n,i=e=>{r=Ee(e.doc)};return e===`delete-table-row`?(0,m.deleteRow)(t.state,i):e===`delete-table-column`?(0,m.deleteColumn)(t.state,i):(0,m.deleteTable)(t.state,i),Math.max(0,n-r)}function R(e){let t=P.value?.state.selection,n=!!(t&&!t.empty);y(`editor-context-menu`,{type:`text`,...e,hasSelection:n,selectionWidth:n?_e():void 0,leadingText:ye()})}function De(e,t){R({pageId:v.page.id,clientX:e,clientY:t})}function Oe(e,t){y(`editor-context-menu`,{type:`image`,...e,image:t})}function ke(e,t){if(!(e.type.name!==`image`||typeof e.attrs.src!=`string`||!e.attrs.src))return{position:t,src:e.attrs.src,alt:typeof e.attrs.alt==`string`?e.attrs.alt:void 0,title:typeof e.attrs.title==`string`?e.attrs.title:void 0,width:s.normalizeContractImageDimension(e.attrs.width),height:s.normalizeContractImageDimension(e.attrs.height)}}function z(){let e=P.value?.state.selection;if(e instanceof h.NodeSelection)return ke(e.node,e.from)}function Ae(e,t){let n=t instanceof HTMLElement?t.closest(`[data-template-variable], img[src]`):null;if(n)try{let t=e.posAtDOM(n,0),r=e.state.doc.nodeAt(t);return!r||r.type.name!==`templateVariable`&&r.type.name!==`image`?void 0:(r.type.name===`templateVariable`&&typeof r.attrs.key==`string`&&y(`variable-select`,r.attrs.key),(!(e.state.selection instanceof h.NodeSelection)||e.state.selection.from!==t)&&e.dispatch(e.state.tr.setSelection(h.NodeSelection.create(e.state.doc,t))),ke(r,t))}catch{return}}function B(e){y(`editor-context-menu`,{type:`table`,...e,capabilities:we(),activeAlignment:Te(),affectedVariableCounts:{deleteRow:L(`delete-table-row`),deleteColumn:L(`delete-table-column`),deleteTable:L(`delete-table`)}})}function je(e){return typeof e==`number`&&Number.isInteger(e)&&e>=1&&e<=6}function V(){let e=P.value;if(!e)return[];let{doc:t,selection:n}=e.state,r=[],i=e=>{e.type.name===`paragraph`?r.push(`paragraph`):e.type.name===`heading`&&je(e.attrs.level)&&r.push(e.attrs.level)};if(n.empty)for(let e=n.$from.depth;e>0;e--){let t=n.$from.node(e);if(t.type.name===`paragraph`||t.type.name===`heading`){i(t);break}}else t.nodesBetween(n.from,n.to,e=>(i(e),!0));return Array.from(new Set(r))}function Me(){let e=V();return e.length===1&&e[0]!==`paragraph`?e[0]:void 0}function Ne(){return V().length>1}function Pe(){return[`center`,`right`].find(e=>P.value?.isActive(`heading`,{textAlign:e})||P.value?.isActive(`paragraph`,{textAlign:e}))??`left`}function H(){let e=P.value,t=t=>!!e?.isActive(t),n=e?.getAttributes(`textStyle`)??{};return{isFocused:!!e?.isFocused,canUndo:!!e?.can().undo(),canRedo:!!e?.can().redo(),isBold:t(`bold`),isItalic:t(`italic`),isUnderline:t(`underline`),isBulletList:t(`bulletList`),isOrderedList:t(`orderedList`),isTableActive:t(`table`),currentHeadingLevel:Me(),hasMixedBlockFormats:Ne(),textAlign:Pe(),fontFamily:typeof n.fontFamily==`string`?n.fontFamily:void 0,fontSize:he(n.fontSize),textColor:typeof n.color==`string`?n.color:void 0,selectionText:ge(),selectedContentImage:z()}}function U(){y(`editor-state-change`,v.page.id,H())}(0,f.watch)(b,e=>{P.value?.setEditable(!e),U()}),(0,f.watch)(()=>v.page.contentHtml,e=>{W(e)});function W(e){if(!P.value||e===$()){T=void 0;return}if(M()){T=e;return}P.value.commands.setContent(e||`<p></p>`,{emitUpdate:!1}),U()}let Fe=(0,f.computed)(()=>{let e=t.normalizePageDecorations(v.pageDecorations),n=v.pageIndex+1,r=t.hasEnabledPageHeader(e,n)?t.getPageDecorationSafePadding(e.header):t.CONTRACT_PAGE_BASE_PADDING.top,i=t.hasEnabledPageFooter(e,n)?t.getPageDecorationSafePadding(e.footer):t.CONTRACT_PAGE_BASE_PADDING.bottom;return{width:`${v.pageSize.width}px`,height:`${v.pageSize.height}px`,paddingTop:`${r}px`,paddingBottom:`${i}px`,"--gd-contract-page-content-height":`${Math.max(120,v.pageSize.height-r-i)}px`}}),G=(0,f.computed)(()=>Math.max(.1,v.zoom||1)),Ie=(0,f.computed)(()=>({width:`${Math.ceil((v.pageSize.width+10)*G.value)}px`,height:`${Math.ceil((v.pageSize.height+40)*G.value)}px`})),Le=(0,f.computed)(()=>({"--gd-contract-page-zoom":String(G.value)})),Re=(0,f.computed)(()=>n.resolvePageSize(v.pageSize));function ze(e){if(v.readonly||v.disabled){e.preventDefault(),e.stopPropagation();return}let t=e.dataTransfer?.getData(`application/x-gd-contract-variable`);if(t){e.preventDefault(),e.stopPropagation(),y(`variable-drop`,v.page.id,t,e.clientX,e.clientY);return}let n=e.dataTransfer?.getData(g);n&&n!==v.page.id&&(e.preventDefault(),e.stopPropagation(),y(`variable-move-blocked`,v.page.id))}function Be(e,t){let n=P.value;if(!n)return;let r=t?n.view.posAtCoords(t)?.pos:void 0;return o.insertTemplateVariableNode(n,e,r),Z(),K()}function Ve(e,t){let n=P.value;if(n)return c.runContractTemplateEditorCommand(n,{type:`insert-content-image`,image:e,position:t}),K()}function He(e){let t=P.value,n=t?.state.selection;if(!t||!(n instanceof h.NodeSelection)||n.node.type.name!==`image`)return;let r={...n.node.attrs},i=!1;if([`width`,`height`].forEach(t=>{if(!Object.prototype.hasOwnProperty.call(e,t))return;let n=e[t]===void 0?null:s.normalizeContractImageDimension(e[t])??null;r[t]!==n&&(r[t]=n,i=!0)}),!i)return;let a=t.state.tr.setNodeMarkup(n.from,void 0,r);return a.setSelection(h.NodeSelection.create(a.doc,n.from)),t.view.dispatch(a),K()}function Ue(){let e=P.value?.state.selection;return e?{from:e.from,to:e.to}:void 0}function K(){return{...v.page,pageSize:Re.value,contentHtml:$(),contentJson:Q()??v.page.contentJson}}function We(e){if(!j())return{contentHtml:e.contentHtml,contentJson:e.contentJson};let t=$();return!M()&&e.contentHtml!==v.page.contentHtml&&e.contentHtml!==t?{contentHtml:e.contentHtml,contentJson:e.contentJson}:{contentHtml:t,contentJson:Q()}}function q(e){return{type:`doc`,content:e.length?e:[{type:`paragraph`}]}}function J(e){return e?.length?e.length===1&&e[0].type===`paragraph`&&!e[0].content?.length:!0}function Ge(e){return(0,ne.generateHTML)(q(e),N)}function Ke(){if(v.pageDecorations){let e=t.normalizePageDecorations(v.pageDecorations),n=v.pageIndex+1,r=t.hasEnabledPageHeader(e,n)?t.getPageDecorationSafePadding(e.header):t.CONTRACT_PAGE_BASE_PADDING.top,i=t.hasEnabledPageFooter(e,n)?t.getPageDecorationSafePadding(e.footer):t.CONTRACT_PAGE_BASE_PADDING.bottom;return Math.max(120,v.pageSize.height-r-i)}let e=x.value;if(!e)return v.pageSize.height-108;let n=window.getComputedStyle(e),r=Number.parseFloat(n.paddingTop)||0,i=Number.parseFloat(n.paddingBottom)||0;return Math.max(120,v.pageSize.height-r-i)}function qe(){let e=x.value?.querySelector(`.gd-contract-template-designer__editor-prose`);if(!e)return[];let t=e.getBoundingClientRect(),n=G.value;return Array.from(e.children).map(r=>{let i=r.getBoundingClientRect(),a=r instanceof HTMLTableElement?r:r.querySelector(`:scope > table`),o=a?Array.from(a.rows).map(e=>{let r=e.getBoundingClientRect();return{top:(r.top-t.top)/n,height:r.height/n}}):void 0;return{top:(i.top-t.top)/n,height:i.height/n,...o?.length?{tableRows:o,trailingTextBlockHeight:Number.parseFloat(window.getComputedStyle(e).lineHeight)||28}:{}}})}function Y(){if(!P.value)return;let e=qe(),t=Ke();if(e.some(e=>e.top+e.height>t+1))return n.splitPageContentByMeasurements(Q()?.content,e,t)}function Je(){return!!Y()}function Ye(){let e=P.value;if(!e||!j()||M()||!e.view.hasFocus())return!1;let t=Y();if(!t)return!1;let n=0;for(let r=0;r<t.splitIndex;r++)n+=e.state.doc.child(r).nodeSize;if(t.currentContent.length>t.splitIndex){let r=e.state.doc.child(t.splitIndex),i=t.currentContent[t.splitIndex].content.length;for(let e=0;e<i;e++)n+=r.child(e).nodeSize;n+=1}return e.state.selection.ranges.every(e=>e.$from.pos>=n)}function Xe(e){return(!e||(0,f.toRaw)(e)===le)&&!se&&!M()&&!P.value?.view.hasFocus()&&J(Q()?.content)}function Ze(){if(!P.value||!j()||M())return;let e=Y();if(!e)return;let t=P.value,{doc:n,selection:r,storedMarks:a}=t.state,o=t.state.tr,s=0;for(let t=0;t<e.splitIndex;t++)s+=n.child(t).nodeSize;let c=s,l=s;if(e.currentContent.length>e.splitIndex){let t=n.child(e.splitIndex),r=e.currentContent[e.splitIndex].content.length;for(let e=0;e<r;e++)c+=t.child(e).nodeSize;l=c+1,o.delete(l,s+t.nodeSize-1),o.delete(c+2,o.doc.content.size)}else o.delete(s,n.content.size);let u=t.view.hasFocus()&&r.ranges.every(e=>e.$from.pos>=l)?r.map(t.schema.nodeFromJSON(q(e.overflowContent)),new i.Mapping([new i.StepMap([0,c,0])])):void 0;o.setMeta(`preventUpdate`,!0).setMeta(`addToHistory`,!1).setStoredMarks(a);let ee=k+1;t.view.dispatch(o);let d=u&&{selection:u,storedMarks:a,isCurrent:()=>!E&&P.value===t&&!t.isDestroyed&&!b.value&&!M()&&t.view.hasFocus()&&k===ee};return{page:K(),overflowContent:e.overflowContent,overflowHtml:Ge(e.overflowContent),selection:d}}function Qe(e){if(!P.value||!j()||M()||!e.length)return;let t=P.value,n=t.schema.nodeFromJSON(q(e)).content,{doc:r,storedMarks:i}=t.state,a=t.state.tr;J(Q()?.content)?a.replaceWith(0,r.content.size,n):a.insert(0,n),a.setMeta(`preventUpdate`,!0).setMeta(`addToHistory`,!1).setStoredMarks(i);let o=k+1;return t.view.dispatch(a),A=O?void 0:o,O=!1,K()}function $e(e,t){let n=P.value,r=A;if(A=void 0,!n||!j()||b.value||M()||r!==k||!e.isCurrent()||$()!==t)return;let i=h.Selection.fromJSON(n.state.doc,e.selection.toJSON()),a=k+1;n.view.dispatch(n.state.tr.setSelection(i).setStoredMarks(e.storedMarks?.map(e=>n.schema.markFromJSON(e.toJSON()))??null).setMeta(`addToHistory`,!1)),!(!e.isCurrent()||k!==a)&&(n.view.focus(),n.view.hasFocus()&&k===a&&n.commands.scrollIntoView())}function et(e,t){let n=[];return e.descendants((e,r)=>{e.type.name===`templateVariable`&&e.attrs.key===t&&n.push({node:e,pos:r})}),n}function tt(e,t=e.key){if(!P.value)return;let n=o.buildTemplateVariableAttrs(e),r=!1;return P.value.commands.command(({tr:e,state:i,dispatch:a})=>(et(i.doc,t).forEach(({node:t,pos:i})=>{e.setNodeMarkup(i,void 0,{...t.attrs,...n}),r=!0}),r&&a?.(e),r)),Z(),r?K():void 0}function nt(e){if(!P.value)return;let t=0;return P.value.commands.command(({tr:n,state:r,dispatch:i})=>{let a=et(r.doc,e).map(({node:e,pos:t})=>({from:t,to:t+e.nodeSize})).sort((e,t)=>t.from-e.from);return a.forEach(e=>n.delete(e.from,e.to)),t=a.length,t&&i?.(n),t>0}),t?K():void 0}function rt(){x.value?.querySelectorAll(`.gd-contract-template-variable.is-active`).forEach(e=>e.classList.remove(`is-active`))}function X(e){if(e)return Array.from(x.value?.querySelectorAll(`[data-template-variable]`)??[]).find(t=>t.dataset.key===e)}function it(e){rt();let t=X(e);return t?(t.classList.add(`is-active`),t.scrollIntoView({behavior:`smooth`,block:`center`,inline:`center`}),P.value?.commands.focus(),!0):!1}function Z(){rt(),X(v.selectedVariableKey)?.classList.add(`is-active`)}function at(t){let r=e.CONTRACT_TEXT_STYLE_PRESETS.find(e=>e.key===t),i=P.value;if(!r||!i)return;let a=i.chain().focus().clearNodes();r.headingLevel?a.setHeading({level:r.headingLevel}):a.setParagraph(),a.unsetAllMarks().unsetTextAlign().unsetFontSize().unsetFontFamily().unsetColor().setTextAlign(r.textAlign).setFontSize(`${r.fontSize}px`).setFontFamily(r.fontFamily||e.DEFAULT_CONTRACT_FONT_FAMILY).setColor(n.DEFAULT_FIELD_STYLE.color||`#1f2937`),r.bold?a.setBold():a.unsetBold(),r.italic?a.setItalic():a.unsetItalic(),r.underline?a.setUnderline():a.unsetUnderline(),a.run()}(0,f.watch)([()=>v.selectedVariableKey,()=>v.variables],()=>{(0,f.nextTick)(Z)},{deep:!0,flush:`post`});function ot(e){b.value||(e.type===`apply-block-style`?P.value&&u.applyContractTemplateBlockStyle(P.value,e.format):e.type===`apply-text-style-preset`?at(e.preset):c.runContractTemplateEditorCommand(P.value,e),U())}function st(){P.value?.commands.focus()}function Q(){return P.value?S.read(P.value).getJSON():v.page.contentJson}function $(){return P.value?S.read(P.value).getHTML():v.page.contentHtml}function ct(e){let t=v.variables.find(t=>t.id===e||t.key===e),n=t?X(t.key):void 0;Z(),n?.scrollIntoView({behavior:`smooth`,block:`center`})}function lt(){x.value?.scrollIntoView({behavior:`smooth`,block:`start`,inline:`center`})}return(0,f.onBeforeUnmount)(()=>{E=!0,w!==void 0&&clearTimeout(w),P.value?.off(`contract-word-paste`,F),P.value?.destroy()}),ae({findText:de,revealSearchMatch:fe,replaceSearchMatches:pe,focusHeading:me,focus:st,getHTML:$,getJSON:Q,getContentSnapshot:We,getEditorState:H,getTableCommandCapabilities:we,getAffectedVariableCount:L,insertVariable:Be,insertContentImage:Ve,updateSelectedContentImage:He,getSelectionRange:Ue,getSelectionViewportRect:ve,requestTextContextMenu:De,isReady:j,isComposing:M,hasOverflowContent:Je,hasOverflowSelection:Ye,isUntouchedPaginationBlank:Xe,updateVariable:tt,removeVariable:nt,splitOverflowContent:Ze,prependContent:Qe,restorePaginationSelection:$e,runCommand:ot,scrollIntoField:ct,scrollIntoVariable:it,scrollIntoPage:lt}),(e,t)=>((0,f.openBlock)(),(0,f.createElementBlock)(`section`,{class:`gd-contract-template-designer__page-shell`,style:(0,f.normalizeStyle)(Ie.value)},[(0,f.createElementVNode)(`div`,{class:(0,f.normalizeClass)([`gd-contract-template-designer__page-zoom`,{"is-active":_.active}]),style:(0,f.normalizeStyle)(Le.value)},[(0,f.createElementVNode)(`header`,re,[(0,f.createElementVNode)(`span`,null,(0,f.toDisplayString)(_.page.title||`第 ${_.pageIndex+1} 页`),1),(0,f.createElementVNode)(`span`,null,`第 `+(0,f.toDisplayString)(_.pageIndex+1)+` 页 · `+(0,f.toDisplayString)(_.pageSize.label||`A4`)+` · `+(0,f.toDisplayString)(_.pageSize.width)+` × `+(0,f.toDisplayString)(_.pageSize.height),1)]),(0,f.createElementVNode)(`div`,{ref_key:`pageElement`,ref:x,class:`gd-contract-template-designer__page`,style:(0,f.normalizeStyle)(Fe.value),onLoadCapture:t[0]||=e=>y(`page-layout-change`,_.page.id),onDragover:t[1]||=(0,f.withModifiers)(()=>{},[`prevent`]),onDrop:ze,onClick:t[2]||=e=>y(`editor-focus`,_.page.id)},[(0,f.createVNode)(ee.default,{decorations:_.pageDecorations,"page-number":_.pageIndex+1,"total-pages":_.totalPages,variables:_.variables},null,8,[`decorations`,`page-number`,`total-pages`,`variables`]),(0,f.unref)(P)?((0,f.openBlock)(),(0,f.createBlock)((0,f.unref)(p.EditorContent),{key:0,class:`gd-contract-template-page__content`,editor:(0,f.unref)(P)},null,8,[`editor`])):(0,f.createCommentVNode)(``,!0)],36)],6)],4))}});exports.default=_;
|
package/dist/lib/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./constants.cjs`),t=require(`./utils/page-decorations.cjs`),n=require(`./types.cjs`),r=require(`./composables/use-template-designer.cjs`),i=require(`./utils/image-url.cjs`),a=require(`./utils/template-renderer.cjs`),o=require(`./composables/use-fit-width-zoom.cjs`),s=require(`./utils/content-image.cjs`),ee=require(`./utils/signing-layout-presets.cjs`),te=require(`./utils/context-variable.cjs`),ne=require(`./DesignerPage.cjs`),re=require(`./TableContextMenu.cjs`),ie=require(`./ContractTemplateDesignerWorkspaceHeader.cjs`),ae=require(`./utils/template-tool-icons.cjs`),oe=require(`./ContractTemplateDesignerToolbar.cjs`),se=require(`./ContractTemplateAuthoringBar.cjs`),ce=require(`./composables/use-template-authoring.cjs`),le=require(`./ContractTemplateTextContextMenu.cjs`),ue=require(`./ContractTemplateTextBubbleMenu.cjs`),de=require(`./ContractTemplateImageContextMenu.cjs`),fe=require(`./ContractTemplatePreviewModal.cjs`),pe=require(`./ContractTemplateSubmitDataModal.cjs`),me=require(`./ContractTemplateVariableDataModal.cjs`),he=require(`./SigningLayoutCustomModal.cjs`),ge=require(`./composables/use-template-draft-cache.cjs`),_e=require(`./composables/use-auto-pagination.cjs`),ve=require(`./composables/use-designer-files.cjs`),c=require(`./composables/use-template-files.cjs`),ye=require(`./composables/use-draft-cache-session.cjs`),be=require(`./ContractTemplateFileBar.cjs`),xe=require(`./ContractTemplateDesignerSidebar.cjs`),Se=require(`./ContractTemplateDesignerInspector.cjs`),Ce=require(`./ContractTemplatePageDecorationsStudio.cjs`),l=require(`./utils/serialize-fingerprint.cjs`),we=require(`./utils/editor-state.cjs`),u=require(`./utils/context-menu-viewport.cjs`);let d=require(`vue`),Te=require(`ant-design-vue`),Ee=require(`@vueuse/core`),De=require(`@ant-design/icons-vue`);var Oe={key:2,class:`gd-contract-template-designer__validation`},ke={key:0,class:`gd-contract-template-designer__validation-list`},Ae=[`onClick`],je={class:`gd-contract-template-designer__sr-status`,"aria-live":`polite`},Me=.5,Ne=1.5,Pe=.1,Fe=120,Ie=128,Le=108,Re=48,ze=24,Be=10,Ve=48,He=8,f=(0,d.defineComponent)({name:`ProContractTemplateDesigner`,__name:`ProContractTemplateDesigner`,props:{modelValue:{default:void 0},files:{},activeFileId:{},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},height:{default:760},pageSize:{default:()=>r.DEFAULT_PAGE_SIZE},pageSizeOptions:{},maxPages:{default:20},imageCompression:{type:[Object,Boolean]},imageUpload:{},variableTypes:{default:()=>r.DEFAULT_FIELD_TYPES},signingLayoutPresets:{},showAdvancedChoiceControls:{type:Boolean,default:!1},showBuiltinSelectorControls:{type:Boolean,default:!1},showCustomControls:{type:Boolean,default:!1},defaultVariableStyle:{default:()=>r.DEFAULT_FIELD_STYLE},fontFamilies:{default:void 0},fontFamilyMode:{default:`append`},contractFontBaseUrl:{default:void 0},showSubmitDataViewer:{type:Boolean,default:!0},showVariableDataViewer:{type:Boolean,default:!0},showClearButton:{type:Boolean,default:!0},enableDraftCache:{type:Boolean,default:!0},draftCacheKey:{default:ge.DEFAULT_DRAFT_CACHE_KEY},draftCacheInterval:{default:ge.DEFAULT_DRAFT_CACHE_INTERVAL},draftCacheMaxBytes:{default:ge.DEFAULT_DRAFT_CACHE_MAX_BYTES},showDraftCacheStatus:{type:Boolean,default:!0}},emits:[`update:modelValue`,`change`,`update:files`,`update:activeFileId`,`files-change`,`file-add`,`file-change`,`file-remove`,`file-move`,`variable-add`,`validate`,`draft-cache-change`,`page-limit`,`image-error`],setup(f,{expose:Ue,emit:We}){let p=f,m=We,Ge=(0,d.computed)(()=>({height:typeof p.height==`number`?`${p.height}px`:p.height})),Ke=(0,d.ref)(),qe=(0,d.ref)(),Je=(0,d.ref)(),Ye=(0,d.ref)(),Xe=(0,d.ref)(),Ze=`gd-contract-template-page-decorations-studio-${(0,d.useId)()}`,Qe=`gd-contract-template-workspace-chrome-${(0,d.useId)()}`,$e=(0,d.ref)(),et=(0,d.ref)(),tt=(0,d.ref)(),h=``,g=``,nt=r.createTemplateBodySync(),rt=new Map,it=(0,d.ref)(!1),_=(0,d.computed)(()=>it.value||Array.isArray(p.files)),at=c.normalizeContractTemplateFiles(p.files,p.modelValue,p.pageSize),ot=c.constrainContractTemplateFiles(at,p.pageSizeOptions),st=_.value?ot.files:at,ct=c.resolveContractTemplateActiveFileId(st,p.activeFileId),v=(0,d.ref)(st),y=(0,d.ref)(ct),lt=st.find(e=>e.id===ct)??st[0],ut=r.normalizeTemplateValue(lt?.template??p.modelValue,p.pageSize),b=(0,d.ref)(r.constrainTemplatePageSizes(ut,p.pageSizeOptions));if(_.value){if(v.value=c.replaceContractTemplateFile(v.value,y.value,b.value),l.serializeFingerprint(v.value)!==l.serializeFingerprint(at)){let e=c.cloneContractTemplateFiles(v.value);h=l.serializeFingerprint(e),m(`update:files`,e),m(`files-change`,c.cloneContractTemplateFiles(e))}}else p.modelValue&&l.serializeFingerprint(b.value)!==l.serializeFingerprint(ut)&&(g=l.serializeFingerprint(b.value),m(`update:modelValue`,r.cloneTemplateValue(b.value)),m(`change`,r.cloneTemplateValue(b.value)));let x=(0,d.ref)(``),S=(0,d.ref)(b.value.pages[0]?.id??``),C=(0,d.ref)(!1),w=(0,d.ref)([]),T=new Map,dt=(0,d.ref)(!1),ft=(0,d.ref)(``),E=(0,d.ref)(!1),D=(0,d.ref)(),pt=(0,d.ref)(),mt=(0,d.ref)(``),ht=(0,d.ref)(!1),gt=(0,d.ref)(``),_t=(0,d.ref)(!1),vt=(0,d.ref)({values:{},variables:[]}),O=(0,d.ref)(1),k=(0,d.ref)(!1),yt=(0,d.ref)(!1),bt=(0,d.ref)(!1),A=(0,d.ref)(!1),j=(0,d.ref)(!1),xt=(0,d.ref)(),M=(0,d.ref)(!1),St=(0,d.ref)(`header`),Ct=(0,d.ref)(!1),wt=(0,d.ref)({}),N=(0,d.ref)(``),P=(0,d.ref)(!1),F=(0,d.ref)(!1),Tt=(0,d.ref)(!1),Et=(0,d.ref)(!1),Dt=(0,d.ref)(!1),Ot=(0,d.ref)(!1),kt=(0,d.ref)(!1),At=(0,d.ref)(``),jt=(0,d.ref)(),Mt=(0,d.ref)(),Nt=(0,d.ref)(``),Pt=(0,d.ref)(!1),I=(0,d.ref)(),Ft=(0,d.ref)(),L=(0,d.ref)(),It=(0,d.ref)(),Lt=(0,d.ref)(!1),Rt,zt=(0,d.ref)(!1),Bt,Vt=(0,d.ref)(!1),Ht=(0,d.ref)(``),R=(0,d.ref)(),Ut=(0,d.ref)(),z=(0,d.ref)(),Wt=(0,d.ref)(),Gt=(0,d.ref)(),Kt=(0,d.ref)(),B=(0,d.ref)(``),V=(0,d.ref)(ge.createDraftCacheStatus(`idle`,`暂无本地草稿`)),qt=(0,d.ref)({rows:3,cols:3,withHeaderRow:!0}),Jt=new WeakSet,Yt=[`.gd-contract-template-designer__page-decorations-select-popup`,`.gd-contract-template-designer__page-decorations-dropdown-popup`].join(`,`),Xt,Zt,Qt=!1,$t=!1,en,H=(0,d.computed)(()=>p.readonly||p.disabled),{panel:tn,query:nn,replacement:rn,matchCase:an,matches:on,currentIndex:sn,currentMatch:cn,feedback:ln,highlightQuery:un,open:dn,close:fn,navigate:pn,replaceCurrent:mn,replaceAll:hn,handleKeydown:gn}=ce.useTemplateAuthoring({pages:()=>b.value.pages,fileId:()=>y.value,readonly:()=>H.value,root:()=>Ke.value,pageRefs:T,activatePage:ca,beforeOpen:()=>{$(),Xa(),A.value=!1},focusPanel:()=>tt.value?.focusPanel(),focusTrigger:e=>tt.value?.focusTrigger(e)}),_n=(0,d.computed)(()=>!!(I.value||tn.value||R.value||z.value||P.value||F.value||Ct.value||Tt.value||Et.value||Dt.value||Ot.value||kt.value)),vn=(0,d.computed)(()=>!!p.enableDraftCache&&!H.value),yn=(0,d.computed)(()=>v.value.find(e=>e.id===y.value)??v.value[0]),bn=(0,d.computed)(()=>D.value?r.buildTemplatePreviewPages(D.value):[]),xn=(0,d.computed)(()=>(pt.value??[]).map(e=>({file:e,pages:r.buildTemplatePreviewPages(e.template)}))),Sn=(0,d.computed)(()=>xn.value.find(e=>e.file.id===mt.value)??xn.value[0]),U=(0,d.computed)(()=>b.value.pages.find(e=>e.id===S.value)??b.value.pages[0]),Cn=(0,d.computed)(()=>r.resolvePageSize(U.value?.pageSize,b.value.pageSize)),wn=(0,d.computed)(()=>C.value&&w.value.length===0),Tn=(0,d.computed)(()=>C.value?wn.value?`校验通过,正文变量与变量配置一致`:`发现 ${w.value.length} 个校验问题`:``),En=(0,d.computed)(()=>{let e=U.value?.title||`合同正文`;return`${_.value&&yn.value?`${yn.value.name} · `:``}${e} · ${Cn.value.label} · 共 ${b.value.pages.length} 页`}),Dn=(0,d.computed)(()=>({none:`无装饰`,"page-number":`标准页码`,"internal-review":`内部审阅`,draft:`草稿`,custom:`自定义`})[t.resolvePageDecorationPreset(b.value.pageDecorations)]),On=(0,d.computed)(()=>{let e=t.normalizePageDecorations(b.value.pageDecorations);return{header:e.header.enabled,footer:e.footer.enabled,watermark:e.watermark.enabled}}),kn=(0,d.computed)(()=>Object.values(On.value).filter(Boolean).length),An=(0,d.computed)(()=>{switch(V.value.type){case`saved`:return`草稿已缓存 ${ge.formatDraftCacheSavedAt(V.value.savedAt)}`;case`restored`:return`已恢复本地草稿`;case`too-large`:return`草稿过大,未缓存`;case`unavailable`:case`read-failed`:case`write-failed`:return`草稿缓存失败`;case`cleared`:return`草稿缓存已清理`;default:return``}}),jn=(0,d.computed)(()=>({"is-success":V.value.type===`saved`||V.value.type===`restored`,"is-warning":V.value.type===`too-large`,"is-error":V.value.type===`unavailable`||V.value.type===`read-failed`||V.value.type===`write-failed`})),Mn=(0,d.computed)(()=>`${Math.round(O.value*100)}%`),Nn=(0,d.computed)(()=>e.resolveFontFamilyOptions(p.fontFamilies,p.fontFamilyMode)),Pn=(0,d.computed)(()=>Nn.value.map(e=>({label:e.label,value:e.value}))),Fn=e.DEFAULT_TEXT_ALIGN_OPTIONS,In=[...e.CONTRACT_BLOCK_STYLES.map(e=>({label:e.label,value:e.format}))],Ln=[{label:`实线`,value:`solid`},{label:`虚线`,value:`dashed`}],Rn=[{label:`完整显示`,value:`contain`},{label:`铺满裁剪`,value:`cover`},{label:`拉伸填充`,value:`fill`}],zn=(0,d.computed)(()=>r.normalizePageSizeOptions(p.pageSizeOptions)),Bn=(0,d.computed)(()=>zn.value.map(e=>({label:`${e.label} · ${e.width} × ${e.height}`,value:r.getPageSizeKey(e)}))),Vn=(0,d.computed)(()=>r.getPageSizeKey(Cn.value)),Hn=(0,d.computed)(()=>p.draftCacheKey),W=(0,d.computed)(()=>b.value.variables.find(e=>e.key===x.value)),Un=(0,d.computed)(()=>{let e=[...p.variableTypes,...p.showAdvancedChoiceControls?r.DEFAULT_ADVANCED_CHOICE_FIELD_TYPES:[],...p.showBuiltinSelectorControls?r.DEFAULT_BUILTIN_SELECTOR_FIELD_TYPES:[],...p.showCustomControls?r.DEFAULT_CUSTOM_FIELD_TYPES:[]].filter(e=>n.isContractTemplateFieldType(e?.type));return Array.from(new Map(e.map(e=>[e.type,e])).values())}),Wn=(0,d.computed)(()=>{let e=[...ee.SIGNING_LAYOUT_PRESET_KEYS.map(e=>ee.SIGNING_LAYOUT_PRESETS[e]),...(p.signingLayoutPresets??[]).filter(e=>!!e?.key)];return Array.from(new Map(e.map(e=>[e.key,e])).values())}),Gn=(0,d.computed)(()=>Un.value.map(e=>({...e,icon:ae.resolveFieldTypeIcon(e.type),group:e.type===`select`||e.type===`radio`?`advanced-choice`:e.type.endsWith(`-selector`)?`builtin-selector`:e.type===`custom`?`custom`:`basic`}))),G=(0,d.computed)(()=>r.normalizeContractTemplateMaxPages(p.maxPages)),Kn=(0,d.computed)(()=>b.value.pages.length>=G.value),qn=(0,d.computed)(()=>{let e=nt.collectKeys(b.value);return Array.from(t.collectPageDecorationVariableKeys(b.value.pageDecorations)).filter(t=>!e.has(t))}),{scheduleAutoPaginate:Jn,scheduleFullPagination:K,resetPagination:Yn,disposePagination:Xn}=_e.useAutoPagination({templateValue:b,readonlyState:H,isAutoPaginating:dt,pendingPaginationPageId:ft,activePageId:S,normalizedMaxPages:G,pageRefs:T,applyPagesChange:e=>{b.value={...b.value,pages:e},C.value=!1,w.value=[],Sr()},getPageSize:Ir,notifyPageLimit:Rr}),{saveDraftCache:Zn,loadDraftCache:Qn,clearDraftCache:$n,restoreDraftCacheIfNeeded:er,stopDraftCacheTimer:tr,restartDraftCacheTimer:nr,resetDraftFingerprint:rr}=ye.useDraftCacheSession({draftCacheWritable:vn,multipleFilesMode:_,filesValue:v,activeFileIdValue:y,templateValue:b,draftCacheKey:Hn,draftCacheInterval:()=>p.draftCacheInterval,draftCacheMaxBytes:()=>p.draftCacheMaxBytes,pageSize:()=>p.pageSize,pageSizeOptions:()=>p.pageSizeOptions,syncActiveFileSnapshot:J,syncPageEditors:()=>(xr(),yr()),setActiveFileId:X,emitFilesChange:Y,commit:Z,updateDraftCacheStatus:Tr,scheduleFullPagination:K,activePageId:S,selectedVariableKey:x}),ir=(0,d.computed)(()=>{let e=Ht.value.trim().toLowerCase(),t=b.value.variables;return e?t.filter(t=>t.label.toLowerCase().includes(e)||t.key.toLowerCase().includes(e)):t}),ar=(0,d.computed)(()=>Math.max(Re,Cn.value.width-Ie)),or=(0,d.computed)(()=>Math.max(ze,Cn.value.height-Le)),q=(0,d.computed)(()=>wt.value[S.value]??mr()),sr=(0,d.computed)(()=>q.value.hasMixedBlockFormats?void 0:q.value.currentHeadingLevel??`paragraph`),cr=(0,d.computed)(()=>q.value.fontFamily||e.DEFAULT_CONTRACT_FONT_FAMILY),lr=(0,d.computed)(()=>q.value.fontSize??r.DEFAULT_FIELD_STYLE.fontSize??14),ur=(0,d.computed)(()=>q.value.textColor||r.DEFAULT_FIELD_STYLE.color||`#1f2937`),dr=(0,d.computed)(()=>W.value?.style?.fontFamily||r.DEFAULT_FIELD_STYLE.fontFamily||e.DEFAULT_CONTRACT_FONT_FAMILY),fr=(0,d.computed)(()=>{let t=e.DEFAULT_FONT_SIZE_PRESETS.map(e=>({label:`${e}px`,value:e})),n=vr(lr.value),r=vr(N.value),i=new Map;return r&&!e.DEFAULT_FONT_SIZE_PRESETS.includes(r)&&i.set(r,{label:`使用 ${r}px`,value:r}),n&&!e.DEFAULT_FONT_SIZE_PRESETS.includes(n)&&i.set(n,{label:r===n?`使用 ${n}px`:`${n}px`,value:n}),[...Array.from(i.values()),...t]});(0,d.watch)(()=>p.modelValue,e=>{if(!e||_.value)return;if(l.serializeFingerprint(e)===g){g=``;return}let t=r.normalizeTemplateValue(e,p.pageSize),n=r.constrainTemplatePageSizes(t,p.pageSizeOptions),i=l.serializeFingerprint(n)!==l.serializeFingerprint(b.value),a=l.serializeFingerprint(n),o=a===g;o&&(g=``),(i||!o)&&(g=``,Yn(),nt.clear(),br(),b.value=n,v.value=c.replaceContractTemplateFile(v.value,y.value,n),S.value=n.pages[0]?.id??``,x.value=``,K()),l.serializeFingerprint(n)!==l.serializeFingerprint(t)&&(g=a,m(`update:modelValue`,r.cloneTemplateValue(n)),m(`change`,r.cloneTemplateValue(n)))},{deep:!0}),(0,d.watch)(()=>p.files,e=>{if(!Array.isArray(e))return;if(l.serializeFingerprint(e)===h){h=``;return}let t=c.normalizeContractTemplateFiles(e,void 0,p.pageSize),n=c.constrainContractTemplateFiles(t,p.pageSizeOptions).files,r=l.serializeFingerprint(n),i=l.serializeFingerprint(v.value);r===h&&(h=``);let a=c.resolveContractTemplateActiveFileId(n,p.activeFileId||y.value);if(r===i?a!==y.value&&X(a,{syncCurrent:!1,shouldEmit:!1}):(h=``,v.value=n,X(a,{syncCurrent:!1,shouldEmit:!1,forceRefresh:!0})),r!==l.serializeFingerprint(t)){let e=c.cloneContractTemplateFiles(n);h=l.serializeFingerprint(e),m(`update:files`,e),m(`files-change`,c.cloneContractTemplateFiles(e))}},{deep:!0}),(0,d.watch)(()=>p.activeFileId,e=>{!_.value||!e||e===y.value||X(e,{syncCurrent:!0,shouldEmit:!1})});function pr(e,t){let n=l.serializeFingerprint(v.value);J(!1);let i=c.normalizeContractTemplateFiles(v.value,void 0,e),{files:a}=c.constrainContractTemplateFiles(i,t),o=l.serializeFingerprint(a)!==n,s=a.find(e=>e.id===y.value);return s&&l.serializeFingerprint(s.template)!==l.serializeFingerprint(b.value)&&(b.value=r.cloneTemplateValue(s.template)),o&&(C.value=!1,w.value=[],Y(a,``)),o}(0,d.watch)([()=>p.pageSize,()=>p.pageSizeOptions],([e,t])=>{if(_.value){pr(e,t),K();return}let n=r.normalizeTemplateValue(b.value,e),i=r.constrainTemplatePageSizes(n,t);l.serializeFingerprint(i)!==l.serializeFingerprint(b.value)&&Z(i),K()},{deep:!0}),(0,d.watch)(G,()=>{K()}),(0,d.watch)(H,e=>{e?($(),P.value=!1,F.value=!1):K()}),(0,d.watch)(S,()=>{L.value=void 0}),(0,d.watch)([_n,M,E],()=>{$a()}),(0,d.watch)(()=>[p.enableDraftCache,Hn.value,p.draftCacheInterval,H.value],()=>{rr(),nr()}),(0,d.watch)(k,e=>{if(!(typeof document>`u`)){if(e){Xt=document.body.style.overflow,document.body.style.overflow=`hidden`;return}document.body.style.overflow=Xt??``,Xt=void 0}}),(0,d.onMounted)(()=>{er(),nr(),K(),document.fonts?.ready.then(K),document.fonts?.addEventListener(`loadingdone`,K),window.addEventListener(`pointerdown`,so,!0),window.addEventListener(`pointerup`,io),window.addEventListener(`keydown`,uo,!0),window.addEventListener(`keydown`,fo),window.addEventListener(`resize`,ao),window.addEventListener(`scroll`,co,!0)}),(0,d.onBeforeUnmount)(()=>{Xn(),xr(),Qt=!0,k.value&&typeof document<`u`&&(document.body.style.overflow=Xt??``),document.fonts?.removeEventListener(`loadingdone`,K),window.removeEventListener(`pointerdown`,so,!0),window.removeEventListener(`pointerup`,io),window.removeEventListener(`keydown`,uo,!0),window.removeEventListener(`keydown`,fo),window.removeEventListener(`resize`,ao),window.removeEventListener(`scroll`,co,!0),Bt!==void 0&&cancelAnimationFrame(Bt),tr()});function mr(){return{isFocused:!1,canUndo:!1,canRedo:!1,isBold:!1,isItalic:!1,isUnderline:!1,isBulletList:!1,isOrderedList:!1,isTableActive:!1,textAlign:`left`,fontFamily:e.DEFAULT_CONTRACT_FONT_FAMILY,fontSize:r.DEFAULT_FIELD_STYLE.fontSize??14,textColor:r.DEFAULT_FIELD_STYLE.color??`#1f2937`,selectionText:``,hasMixedBlockFormats:!1}}function hr(e){return e===`left`||e===`center`||e===`right`}function gr(e){return typeof e==`number`&&Number.isInteger(e)&&e>=1&&e<=6}function _r(e,t=lr.value){let n=Number(e);return Number.isFinite(n)?Math.min(Ve,Math.max(Be,Math.round(n))):t}function vr(e){let t=String(e||``).trim().match(/(\d+(\.\d+)?)/);if(!t)return;let n=Number(t[1]);if(Number.isFinite(n))return Math.min(Ve,Math.max(Be,Math.round(n)))}function yr(e=b.value){let t=!1,n=e.pages.map(e=>{let n=T.get(e.id)?.getContentSnapshot(e),r=n?.contentHtml??e.contentHtml,i=n?.contentJson??e.contentJson;return r===e.contentHtml&&(0,d.toRaw)(i)===(0,d.toRaw)(e.contentJson)?e:(t=!0,{...e,contentHtml:r,contentJson:i})});return t?{...e,pages:n}:e}function br(){$t=!1,en&&=(clearTimeout(en),void 0)}function xr(){let e=$t;br(),e&&wr()}function Sr(){$t=!0,en&&clearTimeout(en),en=setTimeout(()=>{if(en=void 0,!(!$t||Qt)){if(dt.value){Sr();return}$t=!1,wr()}},Fe)}function Cr(e){let t=b.value.pages,n=t.findIndex(t=>t.id===e.id);if(n<0)return;let r=t[n];if(r.contentHtml===e.contentHtml&&r.contentJson===e.contentJson&&r.title===e.title&&r.pageSize===e.pageSize)return;let i=t.slice();i[n]=e,b.value={...b.value,pages:i}}function wr(){let e=yr(),t=nt.sync(e);x.value&&!t.variables.some(e=>e.key===x.value)&&(x.value=``),Z(t,{normalizedBody:!0})}function J(e=!1){xr();let t=r.cloneTemplateValue(yr());if(!_.value)return t;let n=v.value.find(e=>e.id===y.value)?.template,i=l.serializeFingerprint(n)!==l.serializeFingerprint(t),a=c.replaceContractTemplateFile(v.value,y.value,t);return v.value=a,i&&e&&Y(a),t}function Y(e,t=y.value){if(!_.value)return;let n=c.cloneContractTemplateFiles(e);v.value=n,h=l.serializeFingerprint(n),m(`update:files`,c.cloneContractTemplateFiles(n)),m(`files-change`,c.cloneContractTemplateFiles(n));let r=n.find(e=>e.id===t);r&&m(`file-change`,c.cloneContractTemplateFiles([r])[0])}function X(e,t={}){let{syncCurrent:n,shouldEmit:i,forceRefresh:a}=ve.resolveSetActiveFileIdOptions(t),o=c.resolveContractTemplateActiveFileId(v.value,e),s=o!==y.value;if(n?J(!0):br(),!s&&!a)return;let ee=v.value.find(e=>e.id===o);ee&&(y.value=o,b.value=r.cloneTemplateValue(ee.template),x.value=``,S.value=b.value.pages[0]?.id??``,wt.value={},T.clear(),nt.clear(),rt.clear(),Yn(),C.value=!1,w.value=[],E.value=!1,D.value=void 0,pt.value=void 0,rr(),i&&s&&m(`update:activeFileId`,o),n&&s&&vn.value&&Zn(),(0,d.nextTick)(()=>{K()}))}function Z(e,t={}){br();let n=t.normalizedBody?e:r.constrainTemplatePageSizes(r.normalizeTemplateValue(e,p.pageSize),p.pageSizeOptions);return t.normalizedBody||(nt.clear(),rt.clear()),b.value=n,C.value=!1,w.value=[],_.value?Y(c.replaceContractTemplateFile(v.value,y.value,n)):(v.value=c.replaceContractTemplateFile(v.value,y.value,n),g=l.serializeFingerprint(n),m(`update:modelValue`,r.cloneTemplateValue(n)),m(`change`,r.cloneTemplateValue(n))),n}function Tr(e,t=e.type!==`unchanged`){V.value=e,t&&m(`draft-cache-change`,{...e})}function Er(){return{...V.value}}function Dr(e,t){t?T.set(e,t):T.delete(e)}function Or(e){$(),Dt.value=!1,Q({type:`insert-signing-layout`,preset:ee.isSigningLayoutPresetKey(e.key)?e.key:void 0,options:e.options})}function kr(e){$(),Q({type:`insert-signing-layout`,options:e})}function Ar(){Dt.value=!1,kt.value=!0}function jr(e){$(),Ot.value=!1,Q({type:`insert-signing-mark`,mark:{markType:e}})}function Q(e,t=U.value?.id??S.value){H.value||T.get(t)?.runCommand(e)}function Mr(e){Q(e),$()}function Nr(e){let t=I.value?.pageId;t&&(T.get(t)?.focus(),B.value=typeof document<`u`&&document.execCommand(e)?`${e===`copy`?`已复制`:e===`cut`?`已剪切`:`已粘贴`}`:`浏览器未授权剪贴板操作,请使用系统快捷键。`,$())}function Pr(e){let t=Z(r.syncTemplateVariablesWithPages(e));return x.value&&!t.variables.some(e=>e.key===x.value)&&(x.value=``),t}function Fr(e){Cr(e),Sr(),Jn(e.id)}function Ir(e){let t=r.resolvePageSize(e?.pageSize,b.value.pageSize),n=`${r.getPageSizeKey(t)}:${t.label??``}`;return rt.get(n)||(rt.set(n,t),t)}function Lr(e){if(H.value||!U.value)return;let t=zn.value.find(t=>r.getPageSizeKey(t)===e);if(!t)return;let n=U.value.id,i=r.resolvePageSize(t,b.value.pageSize);Z({...b.value,pages:b.value.pages.map(e=>e.id===n?{...e,pageSize:i}:e)}),Jn(n)}function Rr(e){let t=G.value;B.value=`合同最多支持 ${t} 页`,m(`page-limit`,t,e)}function zr(){if(H.value)return;if(Kn.value){Rr(`add`);return}let e=r.createDefaultPage(b.value.pages.length+1,Cn.value);Z({...b.value,pages:[...b.value.pages,e]}),S.value=e.id,K()}function Br(e){if(H.value)return;if(Kn.value){Rr(`duplicate`);return}let t=b.value.pages.findIndex(t=>t.id===e.id);if(t<0)return;let n=r.cloneTemplateValue({pages:[e],variables:[],pageSize:b.value.pageSize}).pages[0],i=r.createBlankPage(t+2,Ir(e),n.contentHtml,n.contentJson);i.title=`${e.title||`第 ${t+1} 页`}副本`;let a=[...b.value.pages];a.splice(t+1,0,i),Z({...b.value,pages:a}),S.value=i.id,K()}function Vr(e){if(H.value||b.value.pages.length<=1)return;let t=b.value.pages.findIndex(t=>t.id===e.id);if(t<0)return;let n=b.value.pages.filter(t=>t.id!==e.id),r=Pr({...b.value,pages:n});S.value=r.pages[Math.min(t,r.pages.length-1)]?.id??``,K()}function Hr(e){H.value||b.value.pages.length<=1||Te.Modal.confirm({title:`删除合同页面`,content:`删除页面会同时移除页面正文,是否继续?`,okText:`确认删除`,okType:`danger`,cancelText:`取消`,onOk:()=>{Vr(e)}})}function Ur(e){let t=new Set(b.value.variables.map(e=>e.key)),n=1;for(;t.has(`${e}_${n}`);)n+=1;return`${e}_${n}`}function Wr(e){let t=e.type??`text`;return r.createTemplateVariable({...e,type:t,key:e.key||Ur(t),label:e.label||r.getFieldOption(t,Un.value).label},Un.value,p.defaultVariableStyle)}function Gr(e,t=U.value?.id??b.value.pages[0].id,n){if(H.value)return e;let r=T.get(t)?.insertVariable(e,n),i=!b.value.variables.some(t=>t.key===e.key);return Z({...b.value,pages:r?b.value.pages.map(e=>e.id===r.id?r:e):b.value.pages,variables:i?[...b.value.variables,e]:b.value.variables}),x.value=e.key,S.value=t,i&&m(`variable-add`,e),Jn(t),e}function Kr(e){let{width:t,height:n,...r}=e,i=s.normalizeContractImageDimension(t),a=s.normalizeContractImageDimension(n);return{...r,...i===void 0?{}:{width:i},...a===void 0?{}:{height:a}}}function qr(e={}){let t=s.normalizeContractImageDimension(jt.value),n=s.normalizeContractImageDimension(Mt.value);return{...e,...t===void 0?{}:{width:t},...n===void 0?{}:{height:n}}}function Jr(){At.value=``,jt.value=void 0,Mt.value=void 0,Nt.value=``}function Yr(e,t=U.value?.id??b.value.pages[0]?.id,n){let r=Kr({...e,src:e.src.trim()});if(!(H.value||!t||!i.isSafeContractImageUrl(r.src)||!r.src||!T.get(t)?.insertContentImage(r,n)))return S.value=t,x.value=``,r.src}function Xr(e){return e instanceof Error?e:Error(`图片处理失败`)}async function Zr(e,t){t===`toolbar`&&(Pt.value=!0,Nt.value=``);try{let n=await s.processContractImageFile(e,{source:t,compression:p.imageCompression,upload:p.imageUpload});return Qt?void 0:n.src}catch(e){let n=Xr(e);t===`toolbar`&&(Nt.value=n.message),B.value=n.message,m(`image-error`,n,t);return}finally{t===`toolbar`&&(Pt.value=!1)}}let Qr=0;function $r(e){let t=e.replacedFontFamilies.filter(Boolean);if(!t.length)return;let n=Date.now();n-Qr<800||(Qr=n,Te.message.info(`已将 ${t.length} 种外部字体(${t.join(`、`)})统一为合同标准字体,以保证 Mac 与 Windows 排版一致`))}async function ei(e){return await Zr(e,`paste`)??null}async function ti(e,t={}){if(H.value)return;let n=U.value?.id??b.value.pages[0]?.id,r=n?T.get(n)?.getSelectionRange():void 0,a=typeof e==`string`?e.trim():await Zr(e,`toolbar`);if(Qt)return;if(!a||!i.isSafeContractImageUrl(a)){typeof e==`string`&&(Nt.value=`请输入安全的图片 URL`);return}if(n&&!T.has(n))return;let o=Yr({...t,src:a},n,r);return o&&(Et.value=!1,Jr(),B.value=`已插入图片`),o}function ni(){H.value||Pt.value||($(),Nt.value=``,et.value&&(et.value.value=``),et.value?.click())}async function ri(e){let t=e.target.files?.[0];t&&await ti(t,qr({alt:t.name}))}async function ii(){let e=At.value;await ti(e,qr())}function ai(e){Ti(e),Tt.value=!1}function oi(){$(),zr()}function si(e,t,n,r){$(),Gr(Wr({type:t}),e,{left:n,top:r})}function ci(e){$(),x.value=e}function li(e){let n=b.value.variables.find(t=>t.id===e.id);if(!n)return;let i=e.key.trim();if(i!==n.key){let t=r.validateContractTemplateVariableKey(i,b.value.variables,e.id);if(t){B.value=t;return}}e={...e,key:i};let a=[...b.value.pages],o=n.key;T.forEach((t,n)=>{let r=t.updateVariable(e,o);if(r){let e=a.findIndex(e=>e.id===n);e>=0&&(a[e]=r)}}),Z({...b.value,pages:a,variables:b.value.variables.map(t=>t.id===e.id?e:t),...o!==e.key&&b.value.pageDecorations?{pageDecorations:t.rewritePageDecorationVariableTokens(b.value.pageDecorations,o,e.key)}:{}}),x.value=e.key,K()}function ui(e){W.value&&li({...W.value,...e,style:{...W.value.style,...e.style}})}function di(e){H.value||!W.value||ui({key:e})}function fi(e){H.value||(Z({...b.value,pageDecorations:t.normalizePageDecorations(e)}),K())}function pi(e){(e===`left`||e===`center`||e===`right`)&&ui({style:{textAlign:e}})}function mi(e){(e===`solid`||e===`dashed`)&&ui({style:{borderStyle:e}})}function hi(e){(e===`contain`||e===`cover`||e===`fill`)&&ui({style:{objectFit:e}})}function gi(e){ui({style:e})}function _i(t){gi({fontFamily:String(t||``).trim()||e.DEFAULT_CONTRACT_FONT_FAMILY})}function vi(e){gi({fontSize:_r(e,W.value?.style?.fontSize??14)})}function yi(e){W.value&&ui({multiline:e,rows:W.value.rows||3,lineHeight:W.value.lineHeight||28,style:e?{underline:!0}:void 0})}function bi(e){W.value&&ui({rows:Number(e||3),lineHeight:W.value.lineHeight||28})}function xi(e){if(H.value)return;let n=[...b.value.pages];T.forEach((t,r)=>{let i=t.removeVariable(e.key);if(i){let e=n.findIndex(e=>e.id===r);e>=0&&(n[e]=i)}}),Z({...b.value,pages:n,variables:b.value.variables.filter(t=>t.id!==e.id),...b.value.pageDecorations?{pageDecorations:t.rewritePageDecorationVariableTokens(b.value.pageDecorations,e.key)}:{}}),x.value=``}function Si(e){let t=(e.trim()||`variable`).replace(/\s+/g,`_`),n=new Set(b.value.variables.map(e=>e.key));if(!n.has(t))return t;let r=2;for(;n.has(`${t}_${r}`);)r+=1;return`${t}_${r}`}function Ci(e){H.value||Gr(r.createTemplateVariable({...e,id:void 0,key:Si(`${e.key||e.type}_copy`),label:`${e.label}副本`,style:{...e.style}},Un.value,p.defaultVariableStyle))}function wi(e){return H.value?void 0:Gr(b.value.variables.find(t=>t.key===e.key)??r.createTemplateVariable(e,Un.value,p.defaultVariableStyle))}function Ti(e){if(!H.value)return Gr(Wr({type:e}))}function Ei(e){if(H.value||!n.isContractTemplateFieldType(e))return;let t=I.value,r=Un.value.find(t=>t.type===e);if(!t||!r)return;let i=te.inferContextVariableLabel(t.leadingText)||r.label,a=te.resolveContextVariableWidth(t.selectionWidth,Re,ar.value),o=Di();Gr(Wr({type:e,label:i,...a?{width:a}:{},...o?{style:o}:{}}),t.pageId),B.value=t.hasSelection?`已将选中内容替换为${r.label}控件`:`已插入${r.label}控件`,$()}function Di(){let e=q.value,t={};return e.isUnderline&&(t.underline=!0),typeof e.fontSize==`number`&&Number.isFinite(e.fontSize)&&(t.fontSize=e.fontSize),e.fontFamily&&(t.fontFamily=e.fontFamily),e.textColor&&(t.color=e.textColor),Object.keys(t).length?t:void 0}function Oi(e){if(H.value)return;let t=I.value;t&&(Gr(e,t.pageId),B.value=`已绑定到${e.label},沿用原控件尺寸`,$())}function ki(e){let t=e.type&&n.isContractTemplateFieldType(e.type)?e.type:`text`;return r.getFieldOption(t,Un.value).label}function Ai(){b.value.variables.length&&(Vt.value=!0,(0,d.nextTick)(()=>{Ua(),Ft.value?.focusBindSearch()}))}function ji(e,t){e.dataTransfer?.setData(`application/x-gd-contract-variable`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`copy`)}function Mi(e){return O.value=Math.round(Math.min(Ne,Math.max(Me,Number.isFinite(e)?e:1))*100)/100,O.value}let{width:Ni}=(0,Ee.useElementSize)(qe),Pi=(0,d.computed)(()=>Math.max(...b.value.pages.map(e=>Ir(e).width),r.DEFAULT_PAGE_SIZE.width)+10),{fitWidth:Fi,applyAutoFit:Ii,markUserAdjusted:Li,userAdjusted:Ri}=o.useFitWidthZoom({viewportWidth:Ni,widestPageWidth:Pi,padding:48,minZoom:Me,maxZoom:Ne,getZoom:()=>O.value,applyZoom:Mi});function zi(e){return Li(),Mi(e)}function Bi(){return Ii()}function Vi(){return O.value}function Hi(){zi(O.value+Pe)}function Ui(){zi(O.value-Pe)}function Wi(){$(),Xa(),k.value=!k.value}(0,d.watch)(Ni,e=>{j.value&&!Ri.value&&e>0&&Fi()});function Gi(e){A.value?$e.value?.focus():e()}function Ki(){$(),Xa(),M.value=!1,Zt={fullscreen:k.value,sidebar:yt.value,inspector:bt.value,chrome:A.value,zoom:O.value,userAdjusted:Ri.value},k.value=!0,yt.value=!0,bt.value=!0,A.value=!0,j.value=!0,(0,d.nextTick)(()=>{H.value?xt.value?.focus():T.get(S.value)?.focus()})}function qi(){let e=Zt;j.value=!1,Zt=void 0,e&&(k.value=e.fullscreen,yt.value=e.sidebar,bt.value=e.inspector,A.value=e.chrome,e.userAdjusted?zi(e.zoom):Ii(),(0,d.nextTick)(()=>Gi(()=>Ye.value?.focusImmersive())))}function Ji(){j.value?qi():Ki()}function Yi(){$(),L.value=void 0;let e=J(!1);_.value?(pt.value=c.cloneContractTemplateFiles(v.value),D.value=void 0,mt.value=y.value||v.value[0]?.id||``):(D.value=r.cloneTemplateValue(e),pt.value=void 0,mt.value=``),E.value=!0}function Xi(){E.value=!1,D.value=void 0,pt.value=void 0,mt.value=``}function Zi(){return Ea()}function Qi(){$();let e=Zi();return gt.value=JSON.stringify(e,null,2),ht.value=!0,e}function $i(){ht.value=!1}function ea(){return a.buildTemplateVariableData(J(!1))}function ta(){$();let e=ea();return vt.value=e,_t.value=!0,e}function na(){_t.value=!1}function ra(){$(),L.value=void 0,P.value=!1,F.value=!1,x.value=``,S.value=``,E.value=!1,D.value=void 0,pt.value=void 0,ht.value=!1,gt.value=``,_t.value=!1,vt.value={values:{},variables:[]},wt.value={},Yn();let e=Z(r.createBlankTemplate(r.DEFAULT_PAGE_SIZE));return S.value=e.pages[0]?.id??``,r.cloneTemplateValue(e)}function ia(){H.value||($(),Te.Modal.confirm({title:`清空合同内容`,content:`将清空全部合同正文、页面和模板变量,仅保留一个空白 A4 合同页。此操作不可撤销。`,okText:`确认清空`,okType:`danger`,cancelText:`取消`,onOk:()=>{ra()}}))}function aa(e){let t=yr().pages,n=t.find(e=>e.id===S.value);return(n?[n,...t.filter(e=>e.id!==n.id)]:t).find(t=>t.contentHtml.includes(`data-key="${e.key}"`)||t.contentHtml.includes(`data-key='${e.key}'`))}function oa(e){$(),x.value=e.key;let t=aa(e);t&&(S.value=t.id,(0,d.nextTick)(()=>{T.get(t.id)?.scrollIntoVariable(e.key)}))}function sa(e){let t=b.value.variables.find(t=>t.key===e||t.id===e);t&&oa(t)}function ca(e,t=!0){$(),S.value=e,t&&(0,d.nextTick)(()=>{T.get(e)?.scrollIntoPage()})}function la(e){ca(e.pageId,!1),T.get(e.pageId)?.focusHeading(e.headingIndex)}function ua(e){b.value.pages.some(t=>t.id===e)&&ca(e)}function da(){if(M.value){fa();return}M.value=!0}function fa(){M.value=!1,(0,d.nextTick)(()=>Gi(()=>Ye.value?.focusPageDecorations()))}function pa(){return xr(),r.cloneTemplateValue(yr())}function ma(e){Yn(),Z(e),K()}function ha(){let e=J(!1);return _.value?c.cloneContractTemplateFiles(v.value):c.cloneContractTemplateFiles(c.replaceContractTemplateFile(v.value,y.value,e))}function ga(e,t){let n=c.normalizeContractTemplateFiles(e,void 0,p.pageSize),r=c.constrainContractTemplateFiles(n,p.pageSizeOptions),i=v.value;it.value=!0,J(!1),v.value=r.files,X(c.resolveContractTemplateActiveFileId(v.value,t??y.value),{syncCurrent:!1,shouldEmit:!0,forceRefresh:!0}),l.serializeFingerprint(i)!==l.serializeFingerprint(v.value)&&Y(v.value,``)}function _a(e){if(H.value)return;it.value=!0,J(!0);let t=c.createContractTemplateFile(e||`合同文件 ${v.value.length+1}`,p.pageSize);return v.value=[...v.value,t],Y(v.value,``),m(`file-add`,c.cloneContractTemplateFiles([t])[0]),X(t.id,{syncCurrent:!1,shouldEmit:!0,forceRefresh:!0}),c.cloneContractTemplateFiles([t])[0]}function va(e){!_.value&&!v.value.some(t=>t.id===e)||(it.value=!0,X(e))}function ya(e,t){if(H.value)return;it.value=!0,J(!1);let n=c.renameContractTemplateFile(v.value,e,t),r=n.find(t=>t.id===e);if(r)return v.value=n,Y(n,e),c.cloneContractTemplateFiles([r])[0]}function ba(e){if(H.value||v.value.length<=1)return;it.value=!0,J(!1);let t=v.value.find(t=>t.id===e);if(!t)return;let n=c.removeContractTemplateFile(v.value,e);if(n.length!==v.value.length)return v.value=n,Y(n,``),m(`file-remove`,c.cloneContractTemplateFiles([t])[0]),y.value===e&&X(c.resolveContractTemplateActiveFileId(n,n[0]?.id),{syncCurrent:!1,shouldEmit:!0,forceRefresh:!0}),c.cloneContractTemplateFiles([t])[0]}function xa(e){if(H.value||v.value.length<=1)return;let t=v.value.find(t=>t.id===e);t&&Te.Modal.confirm({title:`删除合同文件`,content:`删除“${t.name}”后,其正文和变量将无法恢复,是否继续?`,okText:`确认删除`,okType:`danger`,cancelText:`取消`,onOk:()=>{ba(e)}})}function Sa(e,t){if(H.value)return;it.value=!0,J(!1);let n=v.value.findIndex(t=>t.id===e),r=c.moveContractTemplateFile(v.value,e,t),i=r.findIndex(t=>t.id===e),a=r[i];if(!(!a||n===i))return v.value=r,Y(r,``),m(`file-move`,c.cloneContractTemplateFiles([a])[0],n,i),c.cloneContractTemplateFiles([a])[0]}function Ca(){J(!1);let e=Oa(_.value?v.value.flatMap(e=>r.validateTemplateValue(e.template,{maxPages:G.value}).map(t=>({...t,fileId:e.id}))):r.validateTemplateValue(yr(),{maxPages:G.value}));return w.value=e,C.value=!0,m(`validate`,e),e}function wa(e){if(e.fileId&&e.fileId!==y.value){va(e.fileId),(0,d.nextTick)(()=>wa({...e,fileId:void 0}));return}let n=t.resolvePageDecorationValidationPath(e);if(n){M.value=!0,(0,d.nextTick)(()=>Xe.value?.focusField(n));return}if(e.variableKey){sa(e.variableKey);return}if(e.pageId){ua(e.pageId);return}let r=b.value.variables.find(t=>t.id===e.id||t.key===e.id);if(r){oa(r);return}b.value.pages.some(t=>t.id===e.id)&&ca(e.id)}function Ta(e){return t.resolvePageDecorationValidationPath(e)?`页面装饰`:e.type===`variable`?`变量`:`字段`}function Ea(){return xr(),r.exportTemplateValue(yr())}function Da(){let e=J(!1),t=_.value?v.value:c.replaceContractTemplateFile(v.value,y.value,e);return c.exportContractTemplateFiles(t)}function Oa(e){let t=new Set;return e.filter(e=>{let n=`${e.fileId??``}|${e.code??``}|${e.id}|${e.pageId??``}|${e.message}`;return t.has(n)?!1:(t.add(n),!0)})}function ka(e){w.value=[...e],C.value=!0}function Aa(){w.value=[],C.value=!1}function ja(){T.get(U.value?.id??S.value)?.focus()}function Ma(e){hr(e)&&Q({type:`set-text-align`,value:e})}function Na(e){(e===`paragraph`||gr(e))&&Q({type:`apply-block-style`,format:e})}function Pa(e){let t=vr(e);t&&(Q({type:`set-font-size`,value:t}),N.value=``)}function Fa(e){let t=String(e||``).trim();if(!t){Q({type:`unset-font-family`});return}Q({type:`set-font-family`,value:t})}function Ia(e){La(e.target?.value??``)}function La(e){let t=e.trim();t&&Q({type:`set-color`,value:t})}function Ra(e){N.value=e}function za(){N.value.trim()&&Pa(N.value)}function Ba(e){e.key===`Enter`&&(e.preventDefault(),za())}function Va(e){e||(za(),N.value=``)}function Ha(e){if(H.value)return;S.value=e.pageId,P.value=!1,F.value=!1,R.value=void 0,z.value=void 0,Vt.value=!1,Ht.value=``;let t=u.clampContextMenuPosition(e.clientX,e.clientY,304,300);I.value={pageId:e.pageId,x:t.x,y:t.y,hasSelection:e.hasSelection,selectionWidth:e.selectionWidth,leadingText:e.leadingText},(0,d.nextTick)(()=>{Ua(),Ft.value?.focusFirstButton()})}function Ua(){let e=Ft.value?.getMenuElement(),t=I.value;if(!e||!t)return;let n=u.clampContextMenuToElement(t.x,t.y,e);I.value={...t,x:n.x,y:n.y}}function Wa(e){if(H.value)return;S.value=e.pageId,P.value=!1,F.value=!1,I.value=void 0,z.value=void 0;let t=u.clampContextMenuPosition(e.clientX,e.clientY,248,400);R.value={...e,x:t.x,y:t.y},(0,d.nextTick)(()=>{let e=Ut.value?.getMenuElement(),t=R.value;if(e&&t){let n=u.clampContextMenuToElement(t.x,t.y,e);R.value={...t,x:n.x,y:n.y}}Ut.value?.focusFirstItem()})}function Ga(e){if(H.value)return;S.value=e.pageId,P.value=!1,F.value=!1,I.value=void 0,R.value=void 0,Gt.value=e.image.width,Kt.value=e.image.height,x.value=``;let t=u.clampContextMenuPosition(e.clientX,e.clientY,288,196);z.value={pageId:e.pageId,image:e.image,x:t.x,y:t.y},(0,d.nextTick)(()=>{Ka(),Wt.value?.getMenuElement()?.querySelector(`input, button:not(:disabled)`)?.focus()})}function Ka(){let e=Wt.value?.getMenuElement(),t=z.value;if(!e||!t)return;let n=u.clampContextMenuToElement(t.x,t.y,e);z.value={...t,x:n.x,y:n.y}}function qa(){let e=z.value;!e||H.value||(T.get(e.pageId)?.updateSelectedContentImage({width:s.normalizeContractImageDimension(Gt.value),height:s.normalizeContractImageDimension(Kt.value)})&&(B.value=`已更新图片尺寸`),$())}function Ja(){let e=z.value;!e||H.value||(T.get(e.pageId)?.updateSelectedContentImage({width:void 0,height:void 0})&&(B.value=`已恢复图片自然尺寸`),$())}function Ya(e){e.type===`table`?Wa(e):e.type===`image`?Ga(e):Ha(e)}function $(){I.value=void 0,R.value=void 0,z.value=void 0,Vt.value=!1,Ht.value=``}function Xa(){fn(!1),P.value=!1,F.value=!1,Ct.value=!1,Tt.value=!1,Et.value=!1,Dt.value=!1,Ot.value=!1}function Za(){Xa(),A.value=!A.value,(0,d.nextTick)(()=>Gi(()=>Ye.value?.focusChromeToggle()))}let Qa=[`.gd-contract-template-designer__context-menu`,`.gd-contract-template-designer__bubble-menu`,`.gd-contract-template-designer__bubble-menu-popup`].join(`,`);function $a(){let e=H.value||zt.value||Lt.value||_n.value||M.value||E.value,t=S.value,n=e?void 0:T.get(t)?.getSelectionViewportRect();if(!n){L.value=void 0;return}let r=n.top-40-He,i=r>=12?r:n.bottom+He,a=(n.left+n.right)/2-380/2,o=u.clampContextMenuPosition(a,i,380,40);L.value={pageId:t,x:o.x,y:o.y},(0,d.nextTick)(()=>eo(n))}function eo(e){let t=It.value?.getMenuElement(),n=L.value;if(!t||!n)return;let r=t.getBoundingClientRect(),i=e.top-r.height-He,a=i>=12?i:e.bottom+He,o=(e.left+e.right)/2-r.width/2,s=u.clampContextMenuToElement(o,a,t);L.value={...n,x:s.x,y:s.y}}function to(){let e=L.value?.pageId??S.value,t=T.get(e)?.getSelectionRange();Rt=t?{pageId:e,...t}:void 0,Lt.value=!0,L.value=void 0}function no(e){if(!Lt.value)return;let t=Rt,n=T.get(e)?.getSelectionRange();t&&n&&t.pageId===e&&t.from===n.from&&t.to===n.to||(Lt.value=!1,Rt=void 0)}function ro(){!L.value||Bt!==void 0||(Bt=requestAnimationFrame(()=>{Bt=void 0,$a()}))}function io(){zt.value&&(zt.value=!1,$a())}function ao(){$(),ro()}function oo(e,t){T.get(L.value?.pageId??S.value)?.requestTextContextMenu(e,t)}function so(e){let t=e.target instanceof Element?e.target:null;t?.closest(`.ProseMirror`)&&(zt.value=!0,L.value=void 0),!(!I.value&&!R.value&&!z.value&&!L.value)&&(t?.closest(Qa)||($(),L.value&&to()))}function co(e){(e.target instanceof Element?e.target:null)?.closest(Qa)||($(),ro())}function lo(e){let t=Ke.value;if(!t||typeof document>`u`)return!1;let n=e.target instanceof Node?e.target:void 0,r=document.activeElement;return!!(n&&t.contains(n)||r&&t.contains(r)||n instanceof Element&&n.closest(`.gd-contract-template-designer__context-menu`))}function uo(e){if(e.key!==`Escape`||!M.value||typeof document>`u`)return;let t=Ke.value?.querySelector(`.gd-contract-template-designer__page-decorations-studio`);if(!t)return;let n=e.target instanceof Element?e.target:null,r=document.activeElement instanceof Element?document.activeElement:null,i=!!(n?.closest(Yt)||r?.closest(Yt)),a=!!(n&&t.contains(n)||r&&t.contains(r)),o=!!t.querySelector(`.ant-select-open, .ant-dropdown-open`);if(i||a&&o){Jt.add(e);return}!_n.value&&(a||e.target===document)&&(e.preventDefault(),e.stopPropagation(),fa())}function fo(e){if((e.ctrlKey||e.metaKey)&&!e.altKey&&e.key.toLowerCase()===`s`){if(!vn.value||!lo(e))return;e.preventDefault(),Zn();return}if(e.key===`Escape`){if(Jt.has(e)){Jt.delete(e);return}let t=_n.value,n=t||M.value;if(!t&&M.value&&fa(),$(),Xa(),n&&e.stopPropagation(),!n){if(L.value){to(),e.stopPropagation();return}j.value?qi():k.value=!1}}}function po(e,t){e===S.value&&t.selectedContentImage&&(x.value=``),e===S.value&&(no(e),$a());let n=wt.value[e];n&&we.isSameEditorState(n,t)||(wt.value={...wt.value,[e]:t})}function mo(e=qt.value.rows,t=qt.value.cols){Q({type:`insert-table`,options:{rows:Math.min(10,Math.max(1,Math.round(Number(e)||3))),cols:Math.min(10,Math.max(1,Math.round(Number(t)||3))),withHeaderRow:!!qt.value.withHeaderRow}}),P.value=!1,$()}let ho={"delete-table-row":{label:`删除当前行`,countKey:`deleteRow`},"delete-table-column":{label:`删除当前列`,countKey:`deleteColumn`},"delete-table":{label:`删除表格`,countKey:`deleteTable`}};function go(e){let t=R.value;if(!t)return;let n=()=>{Q(e,t.pageId),$()},r=ho[e.type];if(!r){n();return}let i=t.affectedVariableCounts[r.countKey];$(),Te.Modal.confirm({title:r.label,content:i?`此操作将移除 ${i} 个正文变量节点,是否继续?`:`此操作将修改表格结构,是否继续?`,okText:`确认`,okType:`danger`,cancelText:`取消`,onOk:n,onCancel:()=>T.get(t.pageId)?.focus()})}function _o(e){let t=Ut.value?.getMenuElement();if(!t)return;if(e.key===`Escape`){e.preventDefault(),e.stopPropagation();let t=R.value?.pageId;$(),T.get(t??``)?.focus();return}let n=Array.from(t.querySelectorAll(`button:not(:disabled)`));if(!n.length)return;if(e.key===`Home`||e.key===`End`){e.preventDefault(),n[e.key===`Home`?0:n.length-1]?.focus();return}if(![`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`].includes(e.key))return;let r=(Math.max(0,n.indexOf(document.activeElement))+(e.key===`ArrowUp`||e.key===`ArrowLeft`?-1:1)+n.length)%n.length;e.preventDefault(),n[r]?.focus()}function vo(e){if(e.key!==`Escape`)return;e.preventDefault(),e.stopPropagation();let t=I.value?.pageId;$(),T.get(t??``)?.focus()}function yo(e){if(e.key!==`Escape`)return;e.preventDefault(),e.stopPropagation();let t=z.value?.pageId;$(),T.get(t??``)?.focus()}function bo(e){Q({type:e}),F.value=!1,$()}return Ue({getValue:pa,setValue:ma,getFiles:ha,setFiles:ga,addFile:_a,selectFile:va,renameFile:ya,removeFile:ba,moveFile:Sa,validate:Ca,exportTemplate:Ea,exportFiles:Da,getSubmitData:Zi,clearTemplate:ra,saveDraftCache:Zn,loadDraftCache:Qn,clearDraftCache:$n,getDraftCacheStatus:Er,insertVariable:wi,insertImage:ti,focus:ja,openPreview:Yi,closePreview:Xi,openSubmitDataViewer:Qi,closeSubmitDataViewer:$i,getVariableData:ea,openVariableDataViewer:ta,closeVariableDataViewer:na,setServerValidationErrors:ka,clearValidationErrors:Aa,scrollToVariable:sa,scrollToPage:ua,setZoom:zi,resetZoom:Bi,getZoom:Vi,fitWidth:Fi}),(e,t)=>((0,d.openBlock)(),(0,d.createElementBlock)(`div`,{ref_key:`designerElement`,ref:Ke,class:(0,d.normalizeClass)([`gd-contract-template-designer`,{"is-disabled":f.disabled,"is-readonly":H.value,"is-fullscreen":k.value,"is-immersive":j.value}]),style:(0,d.normalizeStyle)(Ge.value),onKeydownCapture:t[31]||=(...e)=>(0,d.unref)(gn)&&(0,d.unref)(gn)(...e)},[_.value?((0,d.openBlock)(),(0,d.createBlock)(be.default,{key:0,files:v.value,"active-file-id":y.value,readonly:H.value,onSelect:va,onAdd:t[0]||=e=>_a(),onRename:ya,onRemove:xa,onMove:Sa},null,8,[`files`,`active-file-id`,`readonly`])):(0,d.createCommentVNode)(``,!0),(0,d.createElementVNode)(`div`,{class:(0,d.normalizeClass)([`gd-contract-template-designer__layout`,{"is-sidebar-collapsed":yt.value,"is-inspector-collapsed":bt.value}])},[(0,d.createVNode)(xe.default,{collapsed:yt.value,"file-id":y.value,pages:b.value.pages,variables:b.value.variables,"decoration-variable-keys":qn.value,"active-page-id":S.value,"selected-variable-key":x.value,"normalized-max-pages":G.value,"page-limit-reached":Kn.value,"selected-page":U.value,"selected-page-size":Cn.value,"normalized-page-size-options":zn.value,"page-size-options":Bn.value,"selected-page-size-option-value":Vn.value,readonly:H.value,"get-page-size":Ir,onToggle:t[1]||=e=>yt.value=!yt.value,onAddPage:zr,onActivatePage:ca,onNavigateOutline:la,onDuplicatePage:Br,onRemovePage:Hr,onPatchPageFormat:Lr,onScrollToVariable:oa},null,8,[`collapsed`,`file-id`,`pages`,`variables`,`decoration-variable-keys`,`active-page-id`,`selected-variable-key`,`normalized-max-pages`,`page-limit-reached`,`selected-page`,`selected-page-size`,`normalized-page-size-options`,`page-size-options`,`selected-page-size-option-value`,`readonly`]),(0,d.createElementVNode)(`main`,{ref_key:`workspaceElement`,ref:Je,class:`gd-contract-template-designer__workspace`},[(0,d.withDirectives)((0,d.createElementVNode)(`div`,{id:Qe,class:`gd-contract-template-designer__workspace-chrome`},[(0,d.createVNode)(ie.default,{ref_key:`workspaceHeaderElement`,ref:Ye,summary:En.value,"draft-cache-status-text":An.value,"draft-cache-status-class":jn.value,"show-draft-cache-status":f.showDraftCacheStatus,"show-clear-button":f.showClearButton,"show-submit-data-viewer":f.showSubmitDataViewer,"show-variable-data-viewer":f.showVariableDataViewer,readonly:H.value,"zoom-percent":Mn.value,"zoom-out-disabled":O.value<=Me,"zoom-in-disabled":O.value>=Ne,"is-fullscreen":k.value,immersive:j.value,"page-decorations-open":M.value,"page-decorations-studio-id":Ze,"page-decorations-preset-label":Dn.value,"page-decorations-enabled-count":kn.value,"page-decorations-enabled-states":On.value,"chrome-controls-id":Qe,onZoomOut:Ui,onZoomIn:Hi,onFitWidth:(0,d.unref)(Fi),onResetZoom:Bi,onToggleFullscreen:Wi,onToggleImmersive:Ji,onClear:ia,onValidate:Ca,onPreview:Yi,onSubmitData:Qi,onVariableData:ta,onTogglePageDecorations:da,onToggleChrome:Za},{authoring:(0,d.withCtx)(()=>[(0,d.createVNode)(se.default,{ref_key:`authoringBarElement`,ref:tt,compact:``,query:(0,d.unref)(nn),"onUpdate:query":t[2]||=e=>(0,d.isRef)(nn)?nn.value=e:null,replacement:(0,d.unref)(rn),"onUpdate:replacement":t[3]||=e=>(0,d.isRef)(rn)?rn.value=e:null,"match-case":(0,d.unref)(an),"onUpdate:matchCase":t[4]||=e=>(0,d.isRef)(an)?an.value=e:null,panel:(0,d.unref)(tn),readonly:H.value,total:(0,d.unref)(on).length,"current-index":(0,d.unref)(sn),"current-page":(0,d.unref)(cn)?(0,d.unref)(cn).pageIndex+1:void 0,feedback:(0,d.unref)(ln),onOpen:(0,d.unref)(dn),onClose:t[5]||=e=>(0,d.unref)(fn)(),onNavigate:(0,d.unref)(pn),onReplaceCurrent:(0,d.unref)(mn),onReplaceAll:(0,d.unref)(hn)},null,8,[`query`,`replacement`,`match-case`,`panel`,`readonly`,`total`,`current-index`,`current-page`,`feedback`,`onOpen`,`onNavigate`,`onReplaceCurrent`,`onReplaceAll`])]),_:1},8,[`summary`,`draft-cache-status-text`,`draft-cache-status-class`,`show-draft-cache-status`,`show-clear-button`,`show-submit-data-viewer`,`show-variable-data-viewer`,`readonly`,`zoom-percent`,`zoom-out-disabled`,`zoom-in-disabled`,`is-fullscreen`,`immersive`,`page-decorations-open`,`page-decorations-preset-label`,`page-decorations-enabled-count`,`page-decorations-enabled-states`,`onFitWidth`]),(0,d.createVNode)(oe.default,{"variable-insert-popover-open":Tt.value,"onUpdate:variableInsertPopoverOpen":t[6]||=e=>Tt.value=e,"signing-layout-popover-open":Dt.value,"onUpdate:signingLayoutPopoverOpen":t[7]||=e=>Dt.value=e,"signing-mark-popover-open":Ot.value,"onUpdate:signingMarkPopoverOpen":t[8]||=e=>Ot.value=e,"image-insert-popover-open":Et.value,"onUpdate:imageInsertPopoverOpen":t[9]||=e=>Et.value=e,"image-insert-url":At.value,"onUpdate:imageInsertUrl":t[10]||=e=>At.value=e,"image-insert-width":jt.value,"onUpdate:imageInsertWidth":t[11]||=e=>jt.value=e,"image-insert-height":Mt.value,"onUpdate:imageInsertHeight":t[12]||=e=>Mt.value=e,"table-insert-popover-open":P.value,"onUpdate:tableInsertPopoverOpen":t[13]||=e=>P.value=e,"table-actions-popover-open":F.value,"onUpdate:tableActionsPopoverOpen":t[14]||=e=>F.value=e,"table-insert-draft":qt.value,"onUpdate:tableInsertDraft":t[15]||=e=>qt.value=e,"toolbar-more-open":Ct.value,"onUpdate:toolbarMoreOpen":t[16]||=e=>Ct.value=e,readonly:H.value,"editor-state":q.value,"current-block-format":sr.value,"block-format-options":In,"font-family-select-options":Pn.value,"current-editor-font-family":cr.value,"font-size-preset-options":fr.value,"current-editor-font-size":lr.value,"editor-font-size-search-value":N.value,"current-editor-text-color":ur.value,"body-control-tool-items":Gn.value,"signing-layout-presets":Wn.value,"page-limit-reached":Kn.value,"normalized-max-pages":G.value,"image-processing":Pt.value,"image-insert-error":Nt.value,onCommand:t[17]||=e=>Q(e),onPatchBlockFormat:Na,onPatchFontFamily:Fa,onPatchFontSize:Pa,onPatchColor:Ia,onPatchTextAlign:Ma,onInsertVariable:ai,onInsertSigningLayout:Or,onInsertSigningMark:jr,onOpenSigningLayoutCustom:Ar,onOpenImageFile:ni,onInsertImageUrl:ii,onAddPage:zr,onInsertTable:mo,onTableAction:bo,onFontSizeSearch:Ra,onFontSizeCommit:za,onFontSizeDropdownChange:Va,onFontSizeKeydown:Ba},null,8,`variable-insert-popover-open.signing-layout-popover-open.signing-mark-popover-open.image-insert-popover-open.image-insert-url.image-insert-width.image-insert-height.table-insert-popover-open.table-actions-popover-open.table-insert-draft.toolbar-more-open.readonly.editor-state.current-block-format.font-family-select-options.current-editor-font-family.font-size-preset-options.current-editor-font-size.editor-font-size-search-value.current-editor-text-color.body-control-tool-items.signing-layout-presets.page-limit-reached.normalized-max-pages.image-processing.image-insert-error`.split(`.`))],512),[[d.vShow,!A.value]]),A.value?((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(Te.Tooltip),{key:0,title:`展开工具区`},{default:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`button`,{ref_key:`workspaceChromeHandleElement`,ref:$e,type:`button`,class:`gd-contract-template-designer__workspace-chrome-handle`,"aria-label":`展开工具区`,"aria-expanded":!1,"aria-controls":Qe,onClick:Za},[(0,d.createVNode)((0,d.unref)(De.DownOutlined),{"aria-hidden":`true`})],512)]),_:1})):(0,d.createCommentVNode)(``,!0),j.value&&!M.value?((0,d.openBlock)(),(0,d.createElementBlock)(`button`,{key:1,ref_key:`immersiveExitElement`,ref:xt,type:`button`,class:`gd-contract-template-designer__immersive-exit`,"aria-label":`退出沉浸写作`,onClick:qi},[(0,d.createVNode)((0,d.unref)(De.CompressOutlined),{"aria-hidden":`true`}),t[32]||=(0,d.createElementVNode)(`span`,{class:`gd-contract-template-designer__immersive-exit-label`},`退出沉浸`,-1),t[33]||=(0,d.createElementVNode)(`kbd`,null,`Esc`,-1)],512)):(0,d.createCommentVNode)(``,!0),C.value?((0,d.openBlock)(),(0,d.createElementBlock)(`section`,Oe,[(0,d.createVNode)((0,d.unref)(Te.Alert),{type:wn.value?`success`:`error`,message:Tn.value,"show-icon":``},null,8,[`type`,`message`]),w.value.length?((0,d.openBlock)(),(0,d.createElementBlock)(`div`,ke,[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(w.value,e=>((0,d.openBlock)(),(0,d.createElementBlock)(`button`,{key:`${e.id}-${e.message}`,type:`button`,class:`gd-contract-template-designer__validation-item`,onClick:t=>wa(e)},[(0,d.createElementVNode)(`span`,null,(0,d.toDisplayString)(e.message),1),(0,d.createElementVNode)(`small`,null,(0,d.toDisplayString)(Ta(e)),1)],8,Ae))),128))])):(0,d.createCommentVNode)(``,!0)])):(0,d.createCommentVNode)(``,!0),(0,d.createElementVNode)(`div`,{ref_key:`canvasElement`,ref:qe,class:`gd-contract-template-designer__canvas`},[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(b.value.pages,(e,n)=>((0,d.openBlock)(),(0,d.createBlock)(ne.default,{key:`${y.value}:${e.id}`,ref_for:!0,ref:t=>Dr(e.id,t),page:e,"page-index":n,"page-size":Ir(e),"page-decorations":b.value.pageDecorations,"total-pages":b.value.pages.length,variables:b.value.variables,"selected-variable-key":x.value,active:S.value===e.id,readonly:f.readonly,disabled:f.disabled,zoom:O.value,"process-image-file":ei,"search-query":(0,d.unref)(un),"search-match-case":(0,d.unref)(an),"active-search-match":(0,d.unref)(cn)?.pageId===e.id?(0,d.unref)(cn):void 0,onPageUpdate:Fr,onVariableDrop:si,onVariableSelect:ci,onEditorFocus:t[18]||=e=>ca(e,!1),onEditorReady:(0,d.unref)(Jn),onCompositionEnd:(0,d.unref)(Jn),onPageLayoutChange:(0,d.unref)(Jn),onEditorStateChange:po,onEditorContextMenu:Ya,onWordPaste:$r,onVariableMoveBlocked:t[19]||=e=>B.value=`变量只能在当前页内移动,跨页移动尚未支持。`},null,8,[`page`,`page-index`,`page-size`,`page-decorations`,`total-pages`,`variables`,`selected-variable-key`,`active`,`readonly`,`disabled`,`zoom`,`search-query`,`search-match-case`,`active-search-match`,`onEditorReady`,`onCompositionEnd`,`onPageLayoutChange`]))),128))],512)],512),(0,d.createVNode)(Se.default,{collapsed:bt.value,readonly:f.readonly,disabled:f.disabled,"body-control-tool-items":Gn.value,"selected-variable":W.value,variables:b.value.variables,"current-variable-font-family":dr.value,"font-family-select-options":Pn.value,"text-align-options":(0,d.unref)(Fn),"border-style-options":Ln,"object-fit-options":Rn,"selected-variable-width-max":ar.value,"selected-variable-height-max":or.value,"min-font-size":Be,"max-font-size":Ve,"default-multiline-rows":(0,d.unref)(3),onToggle:t[20]||=e=>bt.value=!bt.value,onVariableDragStart:ji,onInsertVariable:Ti,onDuplicateVariable:Ci,onRemoveVariable:xi,onPatchVariable:ui,onRenameVariable:di,onPatchStyle:gi,onPatchMultiline:yi,onPatchRows:bi,onPatchFontFamily:_i,onPatchFontSize:vi,onPatchTextAlign:pi,onPatchBorderStyle:mi,onPatchObjectFit:hi},null,8,[`collapsed`,`readonly`,`disabled`,`body-control-tool-items`,`selected-variable`,`variables`,`current-variable-font-family`,`font-family-select-options`,`text-align-options`,`selected-variable-width-max`,`selected-variable-height-max`,`default-multiline-rows`])],2),(0,d.withDirectives)((0,d.createVNode)(Ce.default,{ref_key:`pageDecorationsStudioElement`,ref:Xe,id:Ze,open:M.value,decorations:b.value.pageDecorations,variables:b.value.variables,"font-family-options":Pn.value,readonly:f.readonly,disabled:f.disabled,"active-tab":St.value,"onUpdate:activeTab":t[21]||=e=>St.value=e,onChange:fi,onClose:fa},null,8,[`open`,`decorations`,`variables`,`font-family-options`,`readonly`,`disabled`,`active-tab`]),[[d.vShow,M.value]]),((0,d.openBlock)(),(0,d.createBlock)(d.Teleport,{to:`body`},[R.value?((0,d.openBlock)(),(0,d.createBlock)(re.default,{key:0,ref_key:`tableContextMenuElement`,ref:Ut,capabilities:R.value.capabilities,"active-alignment":R.value.activeAlignment,style:(0,d.normalizeStyle)({left:`${R.value.x}px`,top:`${R.value.y}px`}),onExecute:go,onKeydown:_o},null,8,[`capabilities`,`active-alignment`,`style`])):(0,d.createCommentVNode)(``,!0),z.value?((0,d.openBlock)(),(0,d.createBlock)(de.default,{key:1,ref_key:`imageContextMenuElement`,ref:Wt,width:Gt.value,"onUpdate:width":t[22]||=e=>Gt.value=e,height:Kt.value,"onUpdate:height":t[23]||=e=>Kt.value=e,x:z.value.x,y:z.value.y,readonly:H.value,onRestore:Ja,onApply:qa,onKeydown:yo},null,8,[`width`,`height`,`x`,`y`,`readonly`])):(0,d.createCommentVNode)(``,!0),I.value?((0,d.openBlock)(),(0,d.createBlock)(le.default,{key:2,ref_key:`textContextMenuElement`,ref:Ft,"bind-open":Vt.value,"onUpdate:bindOpen":t[24]||=e=>Vt.value=e,"bind-keyword":Ht.value,"onUpdate:bindKeyword":t[25]||=e=>Ht.value=e,x:I.value.x,y:I.value.y,"has-selection":I.value.hasSelection,"editor-state":q.value,"current-editor-text-color":ur.value,"body-control-tool-items":Gn.value,"text-menu-bindable-variables":ir.value,"variables-count":b.value.variables.length,"resolve-bind-variable-type-label":ki,onCommand:Mr,onClipboard:Nr,onAddPage:oi,onInsertVariable:Ei,onBindVariable:Oi,onOpenBindPanel:Ai,onKeydown:vo,onPatchColor:La},null,8,[`bind-open`,`bind-keyword`,`x`,`y`,`has-selection`,`editor-state`,`current-editor-text-color`,`body-control-tool-items`,`text-menu-bindable-variables`,`variables-count`])):(0,d.createCommentVNode)(``,!0),L.value?((0,d.openBlock)(),(0,d.createBlock)(ue.default,{key:3,ref_key:`textBubbleElement`,ref:It,x:L.value.x,y:L.value.y,"editor-state":q.value,"font-size-preset-options":fr.value,"current-editor-font-size":lr.value,"editor-font-size-search-value":N.value,"current-editor-text-color":ur.value,"text-align-options":(0,d.unref)(Fn),onCommand:Q,onPatchFontSize:Pa,onPatchTextAlign:Ma,onPatchColor:La,onFontSizeSearch:Ra,onFontSizeCommit:za,onFontSizeDropdownChange:Va,onFontSizeKeydown:Ba,onMore:oo},null,8,[`x`,`y`,`editor-state`,`font-size-preset-options`,`current-editor-font-size`,`editor-font-size-search-value`,`current-editor-text-color`,`text-align-options`])):(0,d.createCommentVNode)(``,!0)])),(0,d.createElementVNode)(`input`,{ref_key:`imageFileInputElement`,ref:et,class:`gd-contract-template-designer__hidden-file-input`,type:`file`,accept:`image/png,image/jpeg,image/webp,image/gif,image/bmp`,tabindex:`-1`,"aria-hidden":`true`,onChange:ri},null,544),(0,d.createElementVNode)(`span`,je,(0,d.toDisplayString)(B.value),1),(0,d.createVNode)(fe.default,{open:E.value,"onUpdate:open":t[26]||=e=>E.value=e,"preview-pages":bn.value,"preview-file-groups":xn.value,"preview-active-group":Sn.value,"preview-snapshot":D.value,"font-base-url":f.contractFontBaseUrl,onCancel:Xi,onSelectFile:t[27]||=e=>mt.value=e},null,8,[`open`,`preview-pages`,`preview-file-groups`,`preview-active-group`,`preview-snapshot`,`font-base-url`]),(0,d.createVNode)(pe.default,{open:ht.value,"onUpdate:open":t[28]||=e=>ht.value=e,json:gt.value,onCancel:$i},null,8,[`open`,`json`]),(0,d.createVNode)(me.default,{open:_t.value,"onUpdate:open":t[29]||=e=>_t.value=e,data:vt.value,"file-name":yn.value?.name,onCancel:na},null,8,[`open`,`data`,`file-name`]),(0,d.createVNode)(he.default,{open:kt.value,"onUpdate:open":t[30]||=e=>kt.value=e,disabled:H.value,onInsert:kr},null,8,[`open`,`disabled`])],38))}});exports.default=f;
|
|
1
|
+
require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./constants.cjs`),t=require(`./utils/page-decorations.cjs`),n=require(`./types.cjs`),r=require(`./composables/use-template-designer.cjs`),i=require(`./utils/image-url.cjs`),a=require(`./utils/template-renderer.cjs`),o=require(`./composables/use-fit-width-zoom.cjs`),s=require(`./utils/content-image.cjs`),ee=require(`./utils/signing-layout-presets.cjs`),te=require(`./utils/context-variable.cjs`),ne=require(`./utils/caret-viewport.cjs`),re=require(`./DesignerPage.cjs`),ie=require(`./TableContextMenu.cjs`),ae=require(`./ContractTemplateDesignerWorkspaceHeader.cjs`),oe=require(`./utils/template-tool-icons.cjs`),se=require(`./ContractTemplateDesignerToolbar.cjs`),ce=require(`./ContractTemplateAuthoringBar.cjs`),le=require(`./composables/use-template-authoring.cjs`),ue=require(`./ContractTemplateTextContextMenu.cjs`),de=require(`./ContractTemplateTextBubbleMenu.cjs`),fe=require(`./ContractTemplateImageContextMenu.cjs`),pe=require(`./ContractTemplatePreviewModal.cjs`),me=require(`./ContractTemplateSubmitDataModal.cjs`),he=require(`./ContractTemplateVariableDataModal.cjs`),ge=require(`./SigningLayoutCustomModal.cjs`),_e=require(`./composables/use-template-draft-cache.cjs`),ve=require(`./composables/use-auto-pagination.cjs`),ye=require(`./composables/use-designer-files.cjs`),c=require(`./composables/use-template-files.cjs`),be=require(`./composables/use-draft-cache-session.cjs`),xe=require(`./ContractTemplateFileBar.cjs`),Se=require(`./ContractTemplateDesignerSidebar.cjs`),Ce=require(`./ContractTemplateDesignerInspector.cjs`),we=require(`./ContractTemplatePageDecorationsStudio.cjs`),l=require(`./utils/serialize-fingerprint.cjs`),Te=require(`./utils/editor-state.cjs`),u=require(`./utils/context-menu-viewport.cjs`);let d=require(`vue`),Ee=require(`ant-design-vue`),De=require(`@vueuse/core`),Oe=require(`@ant-design/icons-vue`);var ke={key:2,class:`gd-contract-template-designer__validation`},Ae={key:0,class:`gd-contract-template-designer__validation-list`},je=[`onClick`],Me={class:`gd-contract-template-designer__sr-status`,"aria-live":`polite`},Ne=.5,Pe=1.5,Fe=.1,Ie=300,Le=500,Re=128,ze=108,Be=48,Ve=24,He=10,Ue=48,We=8,f=(0,d.defineComponent)({name:`ProContractTemplateDesigner`,__name:`ProContractTemplateDesigner`,props:{modelValue:{default:void 0},files:{},activeFileId:{},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},height:{default:760},pageSize:{default:()=>r.DEFAULT_PAGE_SIZE},pageSizeOptions:{},maxPages:{default:20},imageCompression:{type:[Object,Boolean]},imageUpload:{},variableTypes:{default:()=>r.DEFAULT_FIELD_TYPES},signingLayoutPresets:{},showImageControl:{type:Boolean,default:!1},showCheckboxControl:{type:Boolean,default:!1},showAdvancedChoiceControls:{type:Boolean,default:!1},showBuiltinSelectorControls:{type:Boolean,default:!1},showCustomControls:{type:Boolean,default:!1},defaultVariableStyle:{default:()=>r.DEFAULT_FIELD_STYLE},fontFamilies:{default:void 0},fontFamilyMode:{default:`append`},contractFontBaseUrl:{default:void 0},showSubmitDataViewer:{type:Boolean,default:!0},showVariableDataViewer:{type:Boolean,default:!0},showClearButton:{type:Boolean,default:!0},enableDraftCache:{type:Boolean,default:!0},draftCacheKey:{default:_e.DEFAULT_DRAFT_CACHE_KEY},draftCacheInterval:{default:_e.DEFAULT_DRAFT_CACHE_INTERVAL},draftCacheMaxBytes:{default:_e.DEFAULT_DRAFT_CACHE_MAX_BYTES},showDraftCacheStatus:{type:Boolean,default:!0}},emits:[`update:modelValue`,`change`,`update:files`,`update:activeFileId`,`files-change`,`file-add`,`file-change`,`file-remove`,`file-move`,`variable-add`,`validate`,`draft-cache-change`,`page-limit`,`image-error`],setup(f,{expose:Ge,emit:Ke}){let p=f,m=Ke,qe=(0,d.computed)(()=>({height:typeof p.height==`number`?`${p.height}px`:p.height})),Je=(0,d.ref)(),Ye=(0,d.ref)();function Xe(){return Ye.value}function Ze(){let e=dt,t=Ye.value;return ne.captureCaretViewport(t,()=>e===dt&&!ln&&!B.value&&t?.isConnected!==!1)}function Qe(){dt+=1}let $e=(0,d.ref)(),et=(0,d.ref)(),tt=(0,d.ref)(),nt=`gd-contract-template-page-decorations-studio-${(0,d.useId)()}`,rt=`gd-contract-template-workspace-chrome-${(0,d.useId)()}`,it=(0,d.ref)(),at=(0,d.ref)(),ot=(0,d.ref)(),st=``,ct=``,lt,ut,dt=0,ft=r.createTemplateBodySync(),pt=new Map,mt=(0,d.ref)(!1),h=(0,d.computed)(()=>mt.value||Array.isArray(p.files)),ht=c.normalizeContractTemplateFiles(p.files,p.modelValue,p.pageSize),gt=c.constrainContractTemplateFiles(ht,p.pageSizeOptions),_t=h.value?gt.files:ht,vt=c.resolveContractTemplateActiveFileId(_t,p.activeFileId),g=(0,d.ref)(_t),_=(0,d.ref)(vt),yt=_t.find(e=>e.id===vt)??_t[0],bt=r.normalizeTemplateValue(yt?.template??p.modelValue,p.pageSize),v=(0,d.ref)(r.constrainTemplatePageSizes(bt,p.pageSizeOptions));h.value?(g.value=c.replaceContractTemplateFile(g.value,_.value,v.value),l.serializeFingerprint(g.value)!==l.serializeFingerprint(ht)&&J(g.value)):p.modelValue&&l.serializeFingerprint(v.value)!==l.serializeFingerprint(bt)&&Ir(v.value);let y=(0,d.ref)(``),b=(0,d.ref)(v.value.pages[0]?.id??``),x=(0,d.ref)(!1),S=(0,d.ref)([]),C=new Map,xt=(0,d.ref)(!1),St=(0,d.ref)(``),w=(0,d.ref)(!1),T=(0,d.ref)(),Ct=(0,d.ref)(),wt=(0,d.ref)(``),Tt=(0,d.ref)(!1),Et=(0,d.ref)(``),Dt=(0,d.ref)(!1),Ot=(0,d.ref)({values:{},variables:[]}),E=(0,d.ref)(1),D=(0,d.ref)(!1),kt=(0,d.ref)(!1),At=(0,d.ref)(!1),O=(0,d.ref)(!1),k=(0,d.ref)(!1),jt=(0,d.ref)(),A=(0,d.ref)(!1),Mt=(0,d.ref)(`header`),Nt=(0,d.ref)(!1),Pt=(0,d.ref)({}),j=(0,d.ref)(``),M=(0,d.ref)(!1),N=(0,d.ref)(!1),Ft=(0,d.ref)(!1),It=(0,d.ref)(!1),Lt=(0,d.ref)(!1),Rt=(0,d.ref)(!1),zt=(0,d.ref)(!1),Bt=(0,d.ref)(``),Vt=(0,d.ref)(),Ht=(0,d.ref)(),Ut=(0,d.ref)(``),Wt=(0,d.ref)(!1),P=(0,d.ref)(),Gt=(0,d.ref)(),F=(0,d.ref)(),Kt=(0,d.ref)(),qt=(0,d.ref)(!1),Jt,Yt=(0,d.ref)(!1),Xt,Zt=(0,d.ref)(!1),Qt=(0,d.ref)(``),I=(0,d.ref)(),$t=(0,d.ref)(),L=(0,d.ref)(),en=(0,d.ref)(),tn=(0,d.ref)(),nn=(0,d.ref)(),R=(0,d.ref)(``),z=(0,d.ref)(_e.createDraftCacheStatus(`idle`,`暂无本地草稿`)),rn=(0,d.ref)({rows:3,cols:3,withHeaderRow:!0}),an=new WeakSet,on=[`.gd-contract-template-designer__page-decorations-select-popup`,`.gd-contract-template-designer__page-decorations-dropdown-popup`].join(`,`),sn,cn,ln=!1,un=!1,dn,fn,B=(0,d.computed)(()=>p.readonly||p.disabled),{panel:pn,query:mn,replacement:hn,matchCase:gn,matches:_n,currentIndex:vn,currentMatch:yn,feedback:bn,highlightQuery:xn,open:Sn,close:Cn,navigate:wn,replaceCurrent:Tn,replaceAll:En,handleKeydown:Dn}=le.useTemplateAuthoring({pages:()=>v.value.pages,fileId:()=>_.value,readonly:()=>B.value,root:()=>Je.value,pageRefs:C,activatePage:ya,beforeOpen:()=>{$(),so(),O.value=!1},focusPanel:()=>ot.value?.focusPanel(),focusTrigger:e=>ot.value?.focusTrigger(e)}),On=(0,d.computed)(()=>!!(P.value||pn.value||I.value||L.value||M.value||N.value||Nt.value||Ft.value||It.value||Lt.value||Rt.value||zt.value)),kn=(0,d.computed)(()=>!!p.enableDraftCache&&!B.value),An=(0,d.computed)(()=>g.value.find(e=>e.id===_.value)??g.value[0]),jn=(0,d.computed)(()=>T.value?r.buildTemplatePreviewPages(T.value):[]),Mn=(0,d.computed)(()=>(Ct.value??[]).map(e=>({file:e,pages:r.buildTemplatePreviewPages(e.template)}))),Nn=(0,d.computed)(()=>Mn.value.find(e=>e.file.id===wt.value)??Mn.value[0]),V=(0,d.computed)(()=>v.value.pages.find(e=>e.id===b.value)??v.value.pages[0]),Pn=(0,d.computed)(()=>r.resolvePageSize(V.value?.pageSize,v.value.pageSize)),Fn=(0,d.computed)(()=>x.value&&S.value.length===0),In=(0,d.computed)(()=>x.value?Fn.value?`校验通过,正文变量与变量配置一致`:`发现 ${S.value.length} 个校验问题`:``),Ln=(0,d.computed)(()=>{let e=V.value?.title||`合同正文`;return`${h.value&&An.value?`${An.value.name} · `:``}${e} · ${Pn.value.label} · 共 ${v.value.pages.length} 页`}),Rn=(0,d.computed)(()=>({none:`无装饰`,"page-number":`标准页码`,"internal-review":`内部审阅`,draft:`草稿`,custom:`自定义`})[t.resolvePageDecorationPreset(v.value.pageDecorations)]),zn=(0,d.computed)(()=>{let e=t.normalizePageDecorations(v.value.pageDecorations);return{header:e.header.enabled,footer:e.footer.enabled,watermark:e.watermark.enabled}}),Bn=(0,d.computed)(()=>Object.values(zn.value).filter(Boolean).length),Vn=(0,d.computed)(()=>{switch(z.value.type){case`saved`:return`草稿已缓存 ${_e.formatDraftCacheSavedAt(z.value.savedAt)}`;case`restored`:return`已恢复本地草稿`;case`too-large`:return`草稿过大,未缓存`;case`unavailable`:case`read-failed`:case`write-failed`:return`草稿缓存失败`;case`cleared`:return`草稿缓存已清理`;default:return``}}),Hn=(0,d.computed)(()=>({"is-success":z.value.type===`saved`||z.value.type===`restored`,"is-warning":z.value.type===`too-large`,"is-error":z.value.type===`unavailable`||z.value.type===`read-failed`||z.value.type===`write-failed`})),Un=(0,d.computed)(()=>`${Math.round(E.value*100)}%`),Wn=(0,d.computed)(()=>e.resolveFontFamilyOptions(p.fontFamilies,p.fontFamilyMode)),Gn=(0,d.computed)(()=>Wn.value.map(e=>({label:e.label,value:e.value}))),Kn=e.DEFAULT_TEXT_ALIGN_OPTIONS,qn=[...e.CONTRACT_BLOCK_STYLES.map(e=>({label:e.label,value:e.format}))],Jn=[{label:`实线`,value:`solid`},{label:`虚线`,value:`dashed`}],Yn=[{label:`完整显示`,value:`contain`},{label:`铺满裁剪`,value:`cover`},{label:`拉伸填充`,value:`fill`}],Xn=(0,d.computed)(()=>r.normalizePageSizeOptions(p.pageSizeOptions)),Zn=(0,d.computed)(()=>Xn.value.map(e=>({label:`${e.label} · ${e.width} × ${e.height}`,value:r.getPageSizeKey(e)}))),Qn=(0,d.computed)(()=>r.getPageSizeKey(Pn.value)),$n=(0,d.computed)(()=>p.draftCacheKey),H=(0,d.computed)(()=>v.value.variables.find(e=>e.key===y.value)),U=(0,d.computed)(()=>{let e=[...p.variableTypes,...p.showImageControl?[r.DEFAULT_IMAGE_FIELD_TYPE]:[],...p.showCheckboxControl?[r.DEFAULT_CHECKBOX_FIELD_TYPE]:[],...p.showAdvancedChoiceControls?r.DEFAULT_ADVANCED_CHOICE_FIELD_TYPES:[],...p.showBuiltinSelectorControls?r.DEFAULT_BUILTIN_SELECTOR_FIELD_TYPES:[],...p.showCustomControls?r.DEFAULT_CUSTOM_FIELD_TYPES:[]].filter(e=>n.isContractTemplateFieldType(e?.type));return Array.from(new Map(e.map(e=>[e.type,e])).values())}),er=(0,d.computed)(()=>{let e=[...ee.SIGNING_LAYOUT_PRESET_KEYS.map(e=>ee.SIGNING_LAYOUT_PRESETS[e]),...(p.signingLayoutPresets??[]).filter(e=>!!e?.key)];return Array.from(new Map(e.map(e=>[e.key,e])).values())}),tr=(0,d.computed)(()=>U.value.map(e=>({...e,icon:oe.resolveFieldTypeIcon(e.type),group:e.type===`select`||e.type===`radio`?`basic`:e.type.endsWith(`-selector`)?`builtin-selector`:e.type===`custom`?`custom`:`basic`}))),W=(0,d.computed)(()=>r.normalizeContractTemplateMaxPages(p.maxPages)),nr=(0,d.computed)(()=>v.value.pages.length>=W.value),rr=(0,d.computed)(()=>{let e=ft.collectKeys(v.value);return Array.from(t.collectPageDecorationVariableKeys(v.value.pageDecorations)).filter(t=>!e.has(t))}),{scheduleAutoPaginate:ir,scheduleFullPagination:G,resetPagination:ar,disposePagination:or}=ve.useAutoPagination({templateValue:v,readonlyState:B,isAutoPaginating:xt,pendingPaginationPageId:St,activePageId:b,normalizedMaxPages:W,pageRefs:C,applyPagesChange:e=>{v.value={...v.value,pages:e},x.value=!1,S.value=[],Nr()},getPageSize:Jr,notifyPageLimit:Xr,captureViewport:Ze}),{saveDraftCache:sr,loadDraftCache:cr,clearDraftCache:lr,restoreDraftCacheIfNeeded:ur,stopDraftCacheTimer:dr,restartDraftCacheTimer:fr,resetDraftFingerprint:pr}=be.useDraftCacheSession({draftCacheWritable:kn,multipleFilesMode:h,filesValue:g,activeFileIdValue:_,templateValue:v,draftCacheKey:$n,draftCacheInterval:()=>p.draftCacheInterval,draftCacheMaxBytes:()=>p.draftCacheMaxBytes,pageSize:()=>p.pageSize,pageSizeOptions:()=>p.pageSizeOptions,syncActiveFileSnapshot:q,syncPageEditors:()=>(Mr(),kr()),setActiveFileId:Y,emitFilesChange:J,commit:X,updateDraftCacheStatus:Lr,scheduleFullPagination:G,activePageId:b,selectedVariableKey:y}),mr=(0,d.computed)(()=>{let e=Qt.value.trim().toLowerCase(),t=v.value.variables;return e?t.filter(t=>t.label.toLowerCase().includes(e)||t.key.toLowerCase().includes(e)):t}),hr=(0,d.computed)(()=>Math.max(Be,Pn.value.width-Re)),gr=(0,d.computed)(()=>Math.max(Ve,Pn.value.height-ze)),K=(0,d.computed)(()=>Pt.value[b.value]??wr()),_r=(0,d.computed)(()=>K.value.hasMixedBlockFormats?void 0:K.value.currentHeadingLevel??`paragraph`),vr=(0,d.computed)(()=>K.value.fontFamily||e.DEFAULT_CONTRACT_FONT_FAMILY),yr=(0,d.computed)(()=>K.value.fontSize??r.DEFAULT_FIELD_STYLE.fontSize??14),br=(0,d.computed)(()=>K.value.textColor||r.DEFAULT_FIELD_STYLE.color||`#1f2937`),xr=(0,d.computed)(()=>H.value?.style?.fontFamily||r.DEFAULT_FIELD_STYLE.fontFamily||e.DEFAULT_CONTRACT_FONT_FAMILY),Sr=(0,d.computed)(()=>{let t=e.DEFAULT_FONT_SIZE_PRESETS.map(e=>({label:`${e}px`,value:e})),n=Or(yr.value),r=Or(j.value),i=new Map;return r&&!e.DEFAULT_FONT_SIZE_PRESETS.includes(r)&&i.set(r,{label:`使用 ${r}px`,value:r}),n&&!e.DEFAULT_FONT_SIZE_PRESETS.includes(n)&&i.set(n,{label:r===n?`使用 ${n}px`:`${n}px`,value:n}),[...Array.from(i.values()),...t]});(0,d.watch)(()=>p.modelValue,(e,t)=>{if(!e||h.value)return;if(e!==t&&ut&&(0,d.toRaw)(e)===(0,d.toRaw)(ut)){ct=``;return}if(l.serializeFingerprint(e)===ct){ct=``;return}let n=r.normalizeTemplateValue(e,p.pageSize),i=r.constrainTemplatePageSizes(n,p.pageSizeOptions),a=l.serializeFingerprint(i)!==l.serializeFingerprint(v.value),o=l.serializeFingerprint(i)===ct;o&&(ct=``),(a||!o)&&(ct=``,Qe(),ar(),ft.clear(),jr(),v.value=i,g.value=c.replaceContractTemplateFile(g.value,_.value,i),b.value=i.pages[0]?.id??``,y.value=``,G()),l.serializeFingerprint(i)!==l.serializeFingerprint(n)&&Ir(i)},{deep:!0}),(0,d.watch)(()=>p.files,(e,t)=>{if(!Array.isArray(e))return;if(e!==t&<&&(0,d.toRaw)(e)===(0,d.toRaw)(lt)){st=``;return}if(l.serializeFingerprint(e)===st){st=``;return}let n=c.normalizeContractTemplateFiles(e,void 0,p.pageSize),r=c.constrainContractTemplateFiles(n,p.pageSizeOptions).files,i=l.serializeFingerprint(r),a=l.serializeFingerprint(g.value);i===st&&(st=``);let o=c.resolveContractTemplateActiveFileId(r,p.activeFileId||_.value);i===a?o!==_.value&&Y(o,{syncCurrent:!1,shouldEmit:!1}):(st=``,g.value=r,Y(o,{syncCurrent:!1,shouldEmit:!1,forceRefresh:!0})),i!==l.serializeFingerprint(n)&&J(r)},{deep:!0}),(0,d.watch)(()=>p.activeFileId,e=>{!h.value||!e||e===_.value||Y(e,{syncCurrent:!0,shouldEmit:!1})});function Cr(e,t){let n=l.serializeFingerprint(g.value);q(!1);let i=c.normalizeContractTemplateFiles(g.value,void 0,e),{files:a}=c.constrainContractTemplateFiles(i,t),o=l.serializeFingerprint(a)!==n,s=a.find(e=>e.id===_.value);return s&&l.serializeFingerprint(s.template)!==l.serializeFingerprint(v.value)&&(v.value=r.cloneTemplateValue(s.template)),o&&(x.value=!1,S.value=[],J(a,``)),o}(0,d.watch)([()=>p.pageSize,()=>p.pageSizeOptions],([e,t])=>{if(h.value){Cr(e,t),G();return}let n=r.normalizeTemplateValue(v.value,e),i=r.constrainTemplatePageSizes(n,t);l.serializeFingerprint(i)!==l.serializeFingerprint(v.value)&&X(i),G()},{deep:!0}),(0,d.watch)(W,()=>{G()}),(0,d.watch)(B,e=>{e?($(),M.value=!1,N.value=!1):G()}),(0,d.watch)(b,()=>{F.value=void 0}),(0,d.watch)([On,A,w],()=>{uo()}),(0,d.watch)(()=>[p.enableDraftCache,$n.value,p.draftCacheInterval,B.value],()=>{pr(),fr()}),(0,d.watch)(D,e=>{if(!(typeof document>`u`)){if(e){sn=document.body.style.overflow,document.body.style.overflow=`hidden`;return}document.body.style.overflow=sn??``,sn=void 0}}),(0,d.onMounted)(()=>{ur(),fr(),G(),document.fonts?.ready.then(G),document.fonts?.addEventListener(`loadingdone`,G),window.addEventListener(`pointerdown`,yo,!0),window.addEventListener(`pointerup`,go),window.addEventListener(`keydown`,So,!0),window.addEventListener(`keydown`,Co),window.addEventListener(`resize`,_o),window.addEventListener(`scroll`,bo,!0)}),(0,d.onBeforeUnmount)(()=>{Qe(),or(),Mr(),ln=!0,D.value&&typeof document<`u`&&(document.body.style.overflow=sn??``),document.fonts?.removeEventListener(`loadingdone`,G),window.removeEventListener(`pointerdown`,yo,!0),window.removeEventListener(`pointerup`,go),window.removeEventListener(`keydown`,So,!0),window.removeEventListener(`keydown`,Co),window.removeEventListener(`resize`,_o),window.removeEventListener(`scroll`,bo,!0),Xt!==void 0&&cancelAnimationFrame(Xt),dr()});function wr(){return{isFocused:!1,canUndo:!1,canRedo:!1,isBold:!1,isItalic:!1,isUnderline:!1,isBulletList:!1,isOrderedList:!1,isTableActive:!1,textAlign:`left`,fontFamily:e.DEFAULT_CONTRACT_FONT_FAMILY,fontSize:r.DEFAULT_FIELD_STYLE.fontSize??14,textColor:r.DEFAULT_FIELD_STYLE.color??`#1f2937`,selectionText:``,hasMixedBlockFormats:!1}}function Tr(e){return e===`left`||e===`center`||e===`right`}function Er(e){return typeof e==`number`&&Number.isInteger(e)&&e>=1&&e<=6}function Dr(e,t=yr.value){let n=Number(e);return Number.isFinite(n)?Math.min(Ue,Math.max(He,Math.round(n))):t}function Or(e){let t=String(e||``).trim().match(/(\d+(\.\d+)?)/);if(!t)return;let n=Number(t[1]);if(Number.isFinite(n))return Math.min(Ue,Math.max(He,Math.round(n)))}function kr(e=v.value){let t=!1,n=e.pages.map(e=>{let n=C.get(e.id)?.getContentSnapshot(e),r=n?.contentHtml??e.contentHtml,i=n?.contentJson??e.contentJson;return r===e.contentHtml&&(0,d.toRaw)(i)===(0,d.toRaw)(e.contentJson)?e:(t=!0,{...e,contentHtml:r,contentJson:i})});return t?{...e,pages:n}:e}function Ar(){dn!==void 0&&(clearTimeout(dn),dn=void 0),fn!==void 0&&typeof cancelIdleCallback==`function`&&cancelIdleCallback(fn),fn=void 0}function jr(){un=!1,Ar()}function Mr(){let e=un;jr(),e&&Fr()}function Nr(){un=!0,Ar(),dn=setTimeout(()=>{dn=void 0;let e=()=>{if(fn=void 0,!(!un||ln)){if(xt.value)return Nr();un=!1,Fr()}};typeof requestIdleCallback==`function`?fn=requestIdleCallback(e,{timeout:Le}):e()},Ie)}function Pr(e){let t=v.value.pages,n=t.findIndex(t=>t.id===e.id);if(n<0)return;let r=t[n];if(r.contentHtml===e.contentHtml&&r.contentJson===e.contentJson&&r.title===e.title&&r.pageSize===e.pageSize)return;let i=t.slice();i[n]=e,v.value={...v.value,pages:i}}function Fr(){let e=kr(),t=ft.sync(e);y.value&&!t.variables.some(e=>e.key===y.value)&&(y.value=``),X(t,{normalizedBody:!0})}function q(e=!1){Mr();let t=r.cloneTemplateValue(kr());if(!h.value)return t;let n=g.value.find(e=>e.id===_.value)?.template,i=l.serializeFingerprint(n)!==l.serializeFingerprint(t),a=c.replaceContractTemplateFile(g.value,_.value,t);return g.value=a,i&&e&&J(a),t}function Ir(e){let t=r.cloneTemplateValue(e);ut=t,ct=l.serializeFingerprint(e),m(`update:modelValue`,t),m(`change`,r.cloneTemplateValue(e))}function J(e,t=_.value){if(!h.value)return;let n=c.cloneContractTemplateFiles(e),r=c.cloneContractTemplateFiles(n);g.value=n,lt=r,st=l.serializeFingerprint(r),m(`update:files`,r),m(`files-change`,c.cloneContractTemplateFiles(r));let i=r.find(e=>e.id===t);i&&m(`file-change`,c.cloneContractTemplateFiles([i])[0])}function Y(e,t={}){let{syncCurrent:n,shouldEmit:i,forceRefresh:a}=ye.resolveSetActiveFileIdOptions(t),o=c.resolveContractTemplateActiveFileId(g.value,e),s=o!==_.value;if((s||a)&&g.value.some(e=>e.id===o)&&(Qe(),ar()),n?q(!0):jr(),!s&&!a)return;let ee=g.value.find(e=>e.id===o);ee&&(_.value=o,v.value=r.cloneTemplateValue(ee.template),y.value=``,b.value=v.value.pages[0]?.id??``,Pt.value={},C.clear(),ft.clear(),pt.clear(),x.value=!1,S.value=[],w.value=!1,T.value=void 0,Ct.value=void 0,pr(),i&&s&&m(`update:activeFileId`,o),n&&s&&kn.value&&sr(),(0,d.nextTick)(()=>{G()}))}function X(e,t={}){jr();let n=t.normalizedBody?e:r.constrainTemplatePageSizes(r.normalizeTemplateValue(e,p.pageSize),p.pageSizeOptions);return t.normalizedBody||(ft.clear(),pt.clear()),v.value=n,x.value=!1,S.value=[],h.value?J(c.replaceContractTemplateFile(g.value,_.value,n)):(g.value=c.replaceContractTemplateFile(g.value,_.value,n),Ir(n)),n}function Lr(e,t=e.type!==`unchanged`){z.value=e,t&&m(`draft-cache-change`,{...e})}function Rr(){return{...z.value}}function zr(e,t){t?C.set(e,t):C.delete(e)}function Br(e){$(),Lt.value=!1,Z({type:`insert-signing-layout`,preset:ee.isSigningLayoutPresetKey(e.key)?e.key:void 0,options:e.options})}function Vr(e){$(),Z({type:`insert-signing-layout`,options:e})}function Hr(){Lt.value=!1,zt.value=!0}function Ur(e){$(),Rt.value=!1,Z({type:`insert-signing-mark`,mark:{markType:e}})}function Z(e,t=V.value?.id??b.value){B.value||C.get(t)?.runCommand(e)}function Wr(e){Z(e),$()}function Gr(e){let t=P.value?.pageId;t&&(C.get(t)?.focus(),R.value=typeof document<`u`&&document.execCommand(e)?`${e===`copy`?`已复制`:e===`cut`?`已剪切`:`已粘贴`}`:`浏览器未授权剪贴板操作,请使用系统快捷键。`,$())}function Kr(e){let t=X(r.syncTemplateVariablesWithPages(e));return y.value&&!t.variables.some(e=>e.key===y.value)&&(y.value=``),t}function qr(e){Pr(e),Nr(),ir(e.id)}function Jr(e){let t=r.resolvePageSize(e?.pageSize,v.value.pageSize),n=`${r.getPageSizeKey(t)}:${t.label??``}`;return pt.get(n)||(pt.set(n,t),t)}function Yr(e){if(B.value||!V.value)return;let t=Xn.value.find(t=>r.getPageSizeKey(t)===e);if(!t)return;let n=V.value.id,i=r.resolvePageSize(t,v.value.pageSize);X({...v.value,pages:v.value.pages.map(e=>e.id===n?{...e,pageSize:i}:e)}),ir(n)}function Xr(e){let t=W.value;R.value=`合同最多支持 ${t} 页`,m(`page-limit`,t,e)}function Zr(){if(B.value)return;if(nr.value){Xr(`add`);return}let e=r.createDefaultPage(v.value.pages.length+1,Pn.value);X({...v.value,pages:[...v.value.pages,e]}),b.value=e.id,G()}function Qr(e){if(B.value)return;if(nr.value){Xr(`duplicate`);return}let t=v.value.pages.findIndex(t=>t.id===e.id);if(t<0)return;let n=r.cloneTemplateValue({pages:[e],variables:[],pageSize:v.value.pageSize}).pages[0],i=r.createBlankPage(t+2,Jr(e),n.contentHtml,n.contentJson);i.title=`${e.title||`第 ${t+1} 页`}副本`;let a=[...v.value.pages];a.splice(t+1,0,i),X({...v.value,pages:a}),b.value=i.id,G()}function $r(e){if(B.value||v.value.pages.length<=1)return;let t=v.value.pages.findIndex(t=>t.id===e.id);if(t<0)return;let n=v.value.pages.filter(t=>t.id!==e.id),r=Kr({...v.value,pages:n});b.value=r.pages[Math.min(t,r.pages.length-1)]?.id??``,G()}function ei(e){B.value||v.value.pages.length<=1||Ee.Modal.confirm({title:`删除合同页面`,content:`删除页面会同时移除页面正文,是否继续?`,okText:`确认删除`,okType:`danger`,cancelText:`取消`,onOk:()=>{$r(e)}})}function ti(e){let t=new Set(v.value.variables.map(e=>e.key)),n=1;for(;t.has(`${e}_${n}`);)n+=1;return`${e}_${n}`}function ni(e){let t=e.type??`text`;return r.createTemplateVariable({...e,type:t,key:e.key||ti(t),label:e.label||r.getFieldOption(t,U.value).label},U.value,p.defaultVariableStyle)}function ri(e,t=V.value?.id??v.value.pages[0].id,n){if(B.value)return e;let r=C.get(t)?.insertVariable(e,n),i=!v.value.variables.some(t=>t.key===e.key);return X({...v.value,pages:r?v.value.pages.map(e=>e.id===r.id?r:e):v.value.pages,variables:i?[...v.value.variables,e]:v.value.variables}),y.value=e.key,b.value=t,i&&m(`variable-add`,e),ir(t),e}function ii(e){let{width:t,height:n,...r}=e,i=s.normalizeContractImageDimension(t),a=s.normalizeContractImageDimension(n);return{...r,...i===void 0?{}:{width:i},...a===void 0?{}:{height:a}}}function ai(e={}){let t=s.normalizeContractImageDimension(Vt.value),n=s.normalizeContractImageDimension(Ht.value);return{...e,...t===void 0?{}:{width:t},...n===void 0?{}:{height:n}}}function oi(){Bt.value=``,Vt.value=void 0,Ht.value=void 0,Ut.value=``}function si(e,t=V.value?.id??v.value.pages[0]?.id,n){let r=ii({...e,src:e.src.trim()});if(!(B.value||!t||!i.isSafeContractImageUrl(r.src)||!r.src||!C.get(t)?.insertContentImage(r,n)))return b.value=t,y.value=``,r.src}function ci(e){return e instanceof Error?e:Error(`图片处理失败`)}async function li(e,t){t===`toolbar`&&(Wt.value=!0,Ut.value=``);try{let n=await s.processContractImageFile(e,{source:t,compression:p.imageCompression,upload:p.imageUpload});return ln?void 0:n.src}catch(e){let n=ci(e);t===`toolbar`&&(Ut.value=n.message),R.value=n.message,m(`image-error`,n,t);return}finally{t===`toolbar`&&(Wt.value=!1)}}let ui=0;function di(e){let t=e.replacedFontFamilies.filter(Boolean);if(!t.length)return;let n=Date.now();n-ui<800||(ui=n,Ee.message.info(`已将 ${t.length} 种外部字体(${t.join(`、`)})统一为合同标准字体,以保证 Mac 与 Windows 排版一致`))}async function fi(e){return await li(e,`paste`)??null}async function pi(e,t={}){if(B.value)return;let n=V.value?.id??v.value.pages[0]?.id,r=n?C.get(n)?.getSelectionRange():void 0,a=typeof e==`string`?e.trim():await li(e,`toolbar`);if(ln)return;if(!a||!i.isSafeContractImageUrl(a)){typeof e==`string`&&(Ut.value=`请输入安全的图片 URL`);return}if(n&&!C.has(n))return;let o=si({...t,src:a},n,r);return o&&(It.value=!1,oi(),R.value=`已插入图片`),o}function mi(){B.value||Wt.value||($(),Ut.value=``,at.value&&(at.value.value=``),at.value?.click())}async function hi(e){let t=e.target.files?.[0];t&&await pi(t,ai({alt:t.name}))}async function gi(){let e=Bt.value;await pi(e,ai())}function _i(e){Ii(e),Ft.value=!1}function vi(){$(),Zr()}function yi(e,t,n,r){$(),ri(ni({type:t}),e,{left:n,top:r})}function bi(e){$(),y.value=e}function xi(e){let n=v.value.variables.find(t=>t.id===e.id);if(!n)return;let i=e.key.trim();if(i!==n.key){let t=r.validateContractTemplateVariableKey(i,v.value.variables,e.id);if(t){R.value=t;return}}e={...e,key:i};let a=[...v.value.pages],o=n.key;C.forEach((t,n)=>{let r=t.updateVariable(e,o);if(r){let e=a.findIndex(e=>e.id===n);e>=0&&(a[e]=r)}}),X({...v.value,pages:a,variables:v.value.variables.map(t=>t.id===e.id?e:t),...o!==e.key&&v.value.pageDecorations?{pageDecorations:t.rewritePageDecorationVariableTokens(v.value.pageDecorations,o,e.key)}:{}}),y.value=e.key,G()}function Q(e){H.value&&xi({...H.value,...e,style:{...H.value.style,...e.style}})}function Si(e){B.value||!H.value||Q({key:e})}function Ci(e){B.value||(X({...v.value,pageDecorations:t.normalizePageDecorations(e)}),G())}function wi(e){(e===`left`||e===`center`||e===`right`)&&Q({style:{textAlign:e}})}function Ti(e){(e===`solid`||e===`dashed`)&&Q({style:{borderStyle:e}})}function Ei(e){(e===`contain`||e===`cover`||e===`fill`)&&Q({style:{objectFit:e}})}function Di(e){Q({style:e})}function Oi(t){Di({fontFamily:String(t||``).trim()||e.DEFAULT_CONTRACT_FONT_FAMILY})}function ki(e){Di({fontSize:Dr(e,H.value?.style?.fontSize??14)})}function Ai(e){H.value&&Q({multiline:e,rows:H.value.rows||3,lineHeight:H.value.lineHeight||28,style:e?{underline:!0}:void 0})}function ji(e){H.value&&Q({rows:Number(e||3),lineHeight:H.value.lineHeight||28})}function Mi(e){if(B.value)return;let n=[...v.value.pages];C.forEach((t,r)=>{let i=t.removeVariable(e.key);if(i){let e=n.findIndex(e=>e.id===r);e>=0&&(n[e]=i)}}),X({...v.value,pages:n,variables:v.value.variables.filter(t=>t.id!==e.id),...v.value.pageDecorations?{pageDecorations:t.rewritePageDecorationVariableTokens(v.value.pageDecorations,e.key)}:{}}),y.value=``}function Ni(e){let t=(e.trim()||`variable`).replace(/\s+/g,`_`),n=new Set(v.value.variables.map(e=>e.key));if(!n.has(t))return t;let r=2;for(;n.has(`${t}_${r}`);)r+=1;return`${t}_${r}`}function Pi(e){B.value||ri(r.createTemplateVariable({...e,id:void 0,key:Ni(`${e.key||e.type}_copy`),label:`${e.label}副本`,style:{...e.style}},U.value,p.defaultVariableStyle))}function Fi(e){return B.value?void 0:ri(v.value.variables.find(t=>t.key===e.key)??r.createTemplateVariable(e,U.value,p.defaultVariableStyle))}function Ii(e){if(!B.value)return ri(ni({type:e}))}function Li(e){if(B.value||!n.isContractTemplateFieldType(e))return;let t=P.value,r=U.value.find(t=>t.type===e);if(!t||!r)return;let i=te.inferContextVariableLabel(t.leadingText)||r.label,a=te.resolveContextVariableWidth(t.selectionWidth,Be,hr.value),o=Ri();ri(ni({type:e,label:i,...a?{width:a}:{},...o?{style:o}:{}}),t.pageId),R.value=t.hasSelection?`已将选中内容替换为${r.label}控件`:`已插入${r.label}控件`,$()}function Ri(){let e=K.value,t={};return e.isUnderline&&(t.underline=!0),typeof e.fontSize==`number`&&Number.isFinite(e.fontSize)&&(t.fontSize=e.fontSize),e.fontFamily&&(t.fontFamily=e.fontFamily),e.textColor&&(t.color=e.textColor),Object.keys(t).length?t:void 0}function zi(e){if(B.value)return;let t=P.value;t&&(ri(e,t.pageId),R.value=`已绑定到${e.label},沿用原控件尺寸`,$())}function Bi(e){let t=e.type&&n.isContractTemplateFieldType(e.type)?e.type:`text`;return r.getFieldOption(t,U.value).label}function Vi(){v.value.variables.length&&(Zt.value=!0,(0,d.nextTick)(()=>{eo(),Gt.value?.focusBindSearch()}))}function Hi(e,t){e.dataTransfer?.setData(`application/x-gd-contract-variable`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`copy`)}function Ui(e){return E.value=Math.round(Math.min(Pe,Math.max(Ne,Number.isFinite(e)?e:1))*100)/100,E.value}let{width:Wi}=(0,De.useElementSize)(Ye),Gi=(0,d.computed)(()=>Math.max(...v.value.pages.map(e=>Jr(e).width),r.DEFAULT_PAGE_SIZE.width)+10),{fitWidth:Ki,applyAutoFit:qi,markUserAdjusted:Ji,userAdjusted:Yi}=o.useFitWidthZoom({viewportWidth:Wi,widestPageWidth:Gi,padding:48,minZoom:Ne,maxZoom:Pe,getZoom:()=>E.value,applyZoom:Ui});function Xi(e){return Ji(),Ui(e)}function Zi(){return qi()}function Qi(){return E.value}function $i(){Xi(E.value+Fe)}function ea(){Xi(E.value-Fe)}function ta(){$(),so(),D.value=!D.value}(0,d.watch)(Wi,e=>{k.value&&!Yi.value&&e>0&&Ki()});function na(e){O.value?it.value?.focus():e()}function ra(){$(),so(),A.value=!1,cn={fullscreen:D.value,sidebar:kt.value,inspector:At.value,chrome:O.value,zoom:E.value,userAdjusted:Yi.value},D.value=!0,kt.value=!0,At.value=!0,O.value=!0,k.value=!0,(0,d.nextTick)(()=>{B.value?jt.value?.focus():C.get(b.value)?.focus()})}function ia(){let e=cn;k.value=!1,cn=void 0,e&&(D.value=e.fullscreen,kt.value=e.sidebar,At.value=e.inspector,O.value=e.chrome,e.userAdjusted?Xi(e.zoom):qi(),(0,d.nextTick)(()=>na(()=>et.value?.focusImmersive())))}function aa(){k.value?ia():ra()}function oa(){$(),F.value=void 0;let e=q(!1);h.value?(Ct.value=c.cloneContractTemplateFiles(g.value),T.value=void 0,wt.value=_.value||g.value[0]?.id||``):(T.value=r.cloneTemplateValue(e),Ct.value=void 0,wt.value=``),w.value=!0}function sa(){w.value=!1,T.value=void 0,Ct.value=void 0,wt.value=``}function ca(){return La()}function la(){$();let e=ca();return Et.value=JSON.stringify(e,null,2),Tt.value=!0,e}function ua(){Tt.value=!1}function da(){return a.buildTemplateVariableData(q(!1))}function fa(){$();let e=da();return Ot.value=e,Dt.value=!0,e}function pa(){Dt.value=!1}function ma(){$(),F.value=void 0,M.value=!1,N.value=!1,y.value=``,b.value=``,w.value=!1,T.value=void 0,Ct.value=void 0,Tt.value=!1,Et.value=``,Dt.value=!1,Ot.value={values:{},variables:[]},Pt.value={},Qe(),ar();let e=X(r.createBlankTemplate(r.DEFAULT_PAGE_SIZE));return b.value=e.pages[0]?.id??``,r.cloneTemplateValue(e)}function ha(){B.value||($(),Ee.Modal.confirm({title:`清空合同内容`,content:`将清空全部合同正文、页面和模板变量,仅保留一个空白 A4 合同页。此操作不可撤销。`,okText:`确认清空`,okType:`danger`,cancelText:`取消`,onOk:()=>{ma()}}))}function ga(e){let t=kr().pages,n=t.find(e=>e.id===b.value);return(n?[n,...t.filter(e=>e.id!==n.id)]:t).find(t=>t.contentHtml.includes(`data-key="${e.key}"`)||t.contentHtml.includes(`data-key='${e.key}'`))}function _a(e){$(),y.value=e.key;let t=ga(e);t&&(b.value=t.id,(0,d.nextTick)(()=>{C.get(t.id)?.scrollIntoVariable(e.key)}))}function va(e){let t=v.value.variables.find(t=>t.key===e||t.id===e);t&&_a(t)}function ya(e,t=!0){$(),b.value=e,t&&(0,d.nextTick)(()=>{C.get(e)?.scrollIntoPage()})}function ba(e){ya(e.pageId,!1),C.get(e.pageId)?.focusHeading(e.headingIndex)}function xa(e){v.value.pages.some(t=>t.id===e)&&ya(e)}function Sa(){if(A.value){Ca();return}A.value=!0}function Ca(){A.value=!1,(0,d.nextTick)(()=>na(()=>et.value?.focusPageDecorations()))}function wa(){return Mr(),r.cloneTemplateValue(kr())}function Ta(e){Qe(),ar(),X(e),G()}function Ea(){let e=q(!1);return h.value?c.cloneContractTemplateFiles(g.value):c.cloneContractTemplateFiles(c.replaceContractTemplateFile(g.value,_.value,e))}function Da(e,t){let n=c.normalizeContractTemplateFiles(e,void 0,p.pageSize),r=c.constrainContractTemplateFiles(n,p.pageSizeOptions),i=g.value;mt.value=!0,q(!1),g.value=r.files,Y(c.resolveContractTemplateActiveFileId(g.value,t??_.value),{syncCurrent:!1,shouldEmit:!0,forceRefresh:!0}),l.serializeFingerprint(i)!==l.serializeFingerprint(g.value)&&J(g.value,``)}function Oa(e){if(B.value)return;mt.value=!0,q(!0);let t=c.createContractTemplateFile(e||`合同文件 ${g.value.length+1}`,p.pageSize);return g.value=[...g.value,t],J(g.value,``),m(`file-add`,c.cloneContractTemplateFiles([t])[0]),Y(t.id,{syncCurrent:!1,shouldEmit:!0,forceRefresh:!0}),c.cloneContractTemplateFiles([t])[0]}function ka(e){!h.value&&!g.value.some(t=>t.id===e)||(mt.value=!0,Y(e))}function Aa(e,t){if(B.value)return;mt.value=!0,q(!1);let n=c.renameContractTemplateFile(g.value,e,t),r=n.find(t=>t.id===e);if(r)return g.value=n,J(n,e),c.cloneContractTemplateFiles([r])[0]}function ja(e){if(B.value||g.value.length<=1)return;mt.value=!0,q(!1);let t=g.value.find(t=>t.id===e);if(!t)return;let n=c.removeContractTemplateFile(g.value,e);if(n.length!==g.value.length)return g.value=n,J(n,``),m(`file-remove`,c.cloneContractTemplateFiles([t])[0]),_.value===e&&Y(c.resolveContractTemplateActiveFileId(n,n[0]?.id),{syncCurrent:!1,shouldEmit:!0,forceRefresh:!0}),c.cloneContractTemplateFiles([t])[0]}function Ma(e){if(B.value||g.value.length<=1)return;let t=g.value.find(t=>t.id===e);t&&Ee.Modal.confirm({title:`删除合同文件`,content:`删除“${t.name}”后,其正文和变量将无法恢复,是否继续?`,okText:`确认删除`,okType:`danger`,cancelText:`取消`,onOk:()=>{ja(e)}})}function Na(e,t){if(B.value)return;mt.value=!0,q(!1);let n=g.value.findIndex(t=>t.id===e),r=c.moveContractTemplateFile(g.value,e,t),i=r.findIndex(t=>t.id===e),a=r[i];if(!(!a||n===i))return g.value=r,J(r,``),m(`file-move`,c.cloneContractTemplateFiles([a])[0],n,i),c.cloneContractTemplateFiles([a])[0]}function Pa(){q(!1);let e=za(h.value?g.value.flatMap(e=>r.validateTemplateValue(e.template,{maxPages:W.value}).map(t=>({...t,fileId:e.id}))):r.validateTemplateValue(kr(),{maxPages:W.value}));return S.value=e,x.value=!0,m(`validate`,e),e}function Fa(e){if(e.fileId&&e.fileId!==_.value){ka(e.fileId),(0,d.nextTick)(()=>Fa({...e,fileId:void 0}));return}let n=t.resolvePageDecorationValidationPath(e);if(n){A.value=!0,(0,d.nextTick)(()=>tt.value?.focusField(n));return}if(e.variableKey){va(e.variableKey);return}if(e.pageId){xa(e.pageId);return}let r=v.value.variables.find(t=>t.id===e.id||t.key===e.id);if(r){_a(r);return}v.value.pages.some(t=>t.id===e.id)&&ya(e.id)}function Ia(e){return t.resolvePageDecorationValidationPath(e)?`页面装饰`:e.type===`variable`?`变量`:`字段`}function La(){return Mr(),r.exportTemplateValue(kr())}function Ra(){let e=q(!1),t=h.value?g.value:c.replaceContractTemplateFile(g.value,_.value,e);return c.exportContractTemplateFiles(t)}function za(e){let t=new Set;return e.filter(e=>{let n=`${e.fileId??``}|${e.code??``}|${e.id}|${e.pageId??``}|${e.message}`;return t.has(n)?!1:(t.add(n),!0)})}function Ba(e){S.value=[...e],x.value=!0}function Va(){S.value=[],x.value=!1}function Ha(){C.get(V.value?.id??b.value)?.focus()}function Ua(e){Tr(e)&&Z({type:`set-text-align`,value:e})}function Wa(e){(e===`paragraph`||Er(e))&&Z({type:`apply-block-style`,format:e})}function Ga(e){let t=Or(e);t&&(Z({type:`set-font-size`,value:t}),j.value=``)}function Ka(e){let t=String(e||``).trim();if(!t){Z({type:`unset-font-family`});return}Z({type:`set-font-family`,value:t})}function qa(e){Ja(e.target?.value??``)}function Ja(e){let t=e.trim();t&&Z({type:`set-color`,value:t})}function Ya(e){j.value=e}function Xa(){j.value.trim()&&Ga(j.value)}function Za(e){e.key===`Enter`&&(e.preventDefault(),Xa())}function Qa(e){e||(Xa(),j.value=``)}function $a(e){if(B.value)return;b.value=e.pageId,M.value=!1,N.value=!1,I.value=void 0,L.value=void 0,Zt.value=!1,Qt.value=``;let t=u.clampContextMenuPosition(e.clientX,e.clientY,304,300);P.value={pageId:e.pageId,x:t.x,y:t.y,hasSelection:e.hasSelection,selectionWidth:e.selectionWidth,leadingText:e.leadingText},(0,d.nextTick)(()=>{eo(),Gt.value?.focusFirstButton()})}function eo(){let e=Gt.value?.getMenuElement(),t=P.value;if(!e||!t)return;let n=u.clampContextMenuToElement(t.x,t.y,e);P.value={...t,x:n.x,y:n.y}}function to(e){if(B.value)return;b.value=e.pageId,M.value=!1,N.value=!1,P.value=void 0,L.value=void 0;let t=u.clampContextMenuPosition(e.clientX,e.clientY,248,400);I.value={...e,x:t.x,y:t.y},(0,d.nextTick)(()=>{let e=$t.value?.getMenuElement(),t=I.value;if(e&&t){let n=u.clampContextMenuToElement(t.x,t.y,e);I.value={...t,x:n.x,y:n.y}}$t.value?.focusFirstItem()})}function no(e){if(B.value)return;b.value=e.pageId,M.value=!1,N.value=!1,P.value=void 0,I.value=void 0,tn.value=e.image.width,nn.value=e.image.height,y.value=``;let t=u.clampContextMenuPosition(e.clientX,e.clientY,288,196);L.value={pageId:e.pageId,image:e.image,x:t.x,y:t.y},(0,d.nextTick)(()=>{ro(),en.value?.getMenuElement()?.querySelector(`input, button:not(:disabled)`)?.focus()})}function ro(){let e=en.value?.getMenuElement(),t=L.value;if(!e||!t)return;let n=u.clampContextMenuToElement(t.x,t.y,e);L.value={...t,x:n.x,y:n.y}}function io(){let e=L.value;!e||B.value||(C.get(e.pageId)?.updateSelectedContentImage({width:s.normalizeContractImageDimension(tn.value),height:s.normalizeContractImageDimension(nn.value)})&&(R.value=`已更新图片尺寸`),$())}function ao(){let e=L.value;!e||B.value||(C.get(e.pageId)?.updateSelectedContentImage({width:void 0,height:void 0})&&(R.value=`已恢复图片自然尺寸`),$())}function oo(e){e.type===`table`?to(e):e.type===`image`?no(e):$a(e)}function $(){P.value=void 0,I.value=void 0,L.value=void 0,Zt.value=!1,Qt.value=``}function so(){Cn(!1),M.value=!1,N.value=!1,Nt.value=!1,Ft.value=!1,It.value=!1,Lt.value=!1,Rt.value=!1}function co(){so(),O.value=!O.value,(0,d.nextTick)(()=>na(()=>et.value?.focusChromeToggle()))}let lo=[`.gd-contract-template-designer__context-menu`,`.gd-contract-template-designer__bubble-menu`,`.gd-contract-template-designer__bubble-menu-popup`].join(`,`);function uo(){let e=B.value||Yt.value||qt.value||On.value||A.value||w.value,t=b.value,n=e?void 0:C.get(t)?.getSelectionViewportRect();if(!n){F.value=void 0;return}let r=n.top-40-We,i=r>=12?r:n.bottom+We,a=(n.left+n.right)/2-380/2,o=u.clampContextMenuPosition(a,i,380,40);F.value={pageId:t,x:o.x,y:o.y},(0,d.nextTick)(()=>fo(n))}function fo(e){let t=Kt.value?.getMenuElement(),n=F.value;if(!t||!n)return;let r=t.getBoundingClientRect(),i=e.top-r.height-We,a=i>=12?i:e.bottom+We,o=(e.left+e.right)/2-r.width/2,s=u.clampContextMenuToElement(o,a,t);F.value={...n,x:s.x,y:s.y}}function po(){let e=F.value?.pageId??b.value,t=C.get(e)?.getSelectionRange();Jt=t?{pageId:e,...t}:void 0,qt.value=!0,F.value=void 0}function mo(e){if(!qt.value)return;let t=Jt,n=C.get(e)?.getSelectionRange();t&&n&&t.pageId===e&&t.from===n.from&&t.to===n.to||(qt.value=!1,Jt=void 0)}function ho(){!F.value||Xt!==void 0||(Xt=requestAnimationFrame(()=>{Xt=void 0,uo()}))}function go(){Yt.value&&(Yt.value=!1,uo())}function _o(){$(),ho()}function vo(e,t){C.get(F.value?.pageId??b.value)?.requestTextContextMenu(e,t)}function yo(e){let t=e.target instanceof Element?e.target:null;t?.closest(`.ProseMirror`)&&(Yt.value=!0,F.value=void 0),!(!P.value&&!I.value&&!L.value&&!F.value)&&(t?.closest(lo)||($(),F.value&&po()))}function bo(e){(e.target instanceof Element?e.target:null)?.closest(lo)||($(),ho())}function xo(e){let t=Je.value;if(!t||typeof document>`u`)return!1;let n=e.target instanceof Node?e.target:void 0,r=document.activeElement;return!!(n&&t.contains(n)||r&&t.contains(r)||n instanceof Element&&n.closest(`.gd-contract-template-designer__context-menu`))}function So(e){if(e.key!==`Escape`||!A.value||typeof document>`u`)return;let t=Je.value?.querySelector(`.gd-contract-template-designer__page-decorations-studio`);if(!t)return;let n=e.target instanceof Element?e.target:null,r=document.activeElement instanceof Element?document.activeElement:null,i=!!(n?.closest(on)||r?.closest(on)),a=!!(n&&t.contains(n)||r&&t.contains(r)),o=!!t.querySelector(`.ant-select-open, .ant-dropdown-open`);if(i||a&&o){an.add(e);return}!On.value&&(a||e.target===document)&&(e.preventDefault(),e.stopPropagation(),Ca())}function Co(e){if((e.ctrlKey||e.metaKey)&&!e.altKey&&e.key.toLowerCase()===`s`){if(!kn.value||!xo(e))return;e.preventDefault(),sr();return}if(e.key===`Escape`){if(an.has(e)){an.delete(e);return}let t=On.value,n=t||A.value;if(!t&&A.value&&Ca(),$(),so(),n&&e.stopPropagation(),!n){if(F.value){po(),e.stopPropagation();return}k.value?ia():D.value=!1}}}function wo(e,t){e===b.value&&t.selectedContentImage&&(y.value=``),e===b.value&&(mo(e),uo());let n=Pt.value[e];n&&Te.isSameEditorState(n,t)||(Pt.value={...Pt.value,[e]:t})}function To(e=rn.value.rows,t=rn.value.cols){Z({type:`insert-table`,options:{rows:Math.min(10,Math.max(1,Math.round(Number(e)||3))),cols:Math.min(10,Math.max(1,Math.round(Number(t)||3))),withHeaderRow:!!rn.value.withHeaderRow}}),M.value=!1,$()}let Eo={"delete-table-row":{label:`删除当前行`,countKey:`deleteRow`},"delete-table-column":{label:`删除当前列`,countKey:`deleteColumn`},"delete-table":{label:`删除表格`,countKey:`deleteTable`}};function Do(e){let t=I.value;if(!t)return;let n=()=>{Z(e,t.pageId),$()},r=Eo[e.type];if(!r){n();return}let i=t.affectedVariableCounts[r.countKey];$(),Ee.Modal.confirm({title:r.label,content:i?`此操作将移除 ${i} 个正文变量节点,是否继续?`:`此操作将修改表格结构,是否继续?`,okText:`确认`,okType:`danger`,cancelText:`取消`,onOk:n,onCancel:()=>C.get(t.pageId)?.focus()})}function Oo(e){let t=$t.value?.getMenuElement();if(!t)return;if(e.key===`Escape`){e.preventDefault(),e.stopPropagation();let t=I.value?.pageId;$(),C.get(t??``)?.focus();return}let n=Array.from(t.querySelectorAll(`button:not(:disabled)`));if(!n.length)return;if(e.key===`Home`||e.key===`End`){e.preventDefault(),n[e.key===`Home`?0:n.length-1]?.focus();return}if(![`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`].includes(e.key))return;let r=(Math.max(0,n.indexOf(document.activeElement))+(e.key===`ArrowUp`||e.key===`ArrowLeft`?-1:1)+n.length)%n.length;e.preventDefault(),n[r]?.focus()}function ko(e){if(e.key!==`Escape`)return;e.preventDefault(),e.stopPropagation();let t=P.value?.pageId;$(),C.get(t??``)?.focus()}function Ao(e){if(e.key!==`Escape`)return;e.preventDefault(),e.stopPropagation();let t=L.value?.pageId;$(),C.get(t??``)?.focus()}function jo(e){Z({type:e}),N.value=!1,$()}return Ge({getValue:wa,setValue:Ta,getFiles:Ea,setFiles:Da,addFile:Oa,selectFile:ka,renameFile:Aa,removeFile:ja,moveFile:Na,validate:Pa,exportTemplate:La,exportFiles:Ra,getSubmitData:ca,clearTemplate:ma,saveDraftCache:sr,loadDraftCache:cr,clearDraftCache:lr,getDraftCacheStatus:Rr,insertVariable:Fi,insertImage:pi,focus:Ha,openPreview:oa,closePreview:sa,openSubmitDataViewer:la,closeSubmitDataViewer:ua,getVariableData:da,openVariableDataViewer:fa,closeVariableDataViewer:pa,setServerValidationErrors:Ba,clearValidationErrors:Va,scrollToVariable:va,scrollToPage:xa,setZoom:Xi,resetZoom:Zi,getZoom:Qi,fitWidth:Ki}),(e,t)=>((0,d.openBlock)(),(0,d.createElementBlock)(`div`,{ref_key:`designerElement`,ref:Je,class:(0,d.normalizeClass)([`gd-contract-template-designer`,{"is-disabled":f.disabled,"is-readonly":B.value,"is-fullscreen":D.value,"is-immersive":k.value}]),style:(0,d.normalizeStyle)(qe.value),onKeydownCapture:t[31]||=(...e)=>(0,d.unref)(Dn)&&(0,d.unref)(Dn)(...e)},[h.value?((0,d.openBlock)(),(0,d.createBlock)(xe.default,{key:0,files:g.value,"active-file-id":_.value,readonly:B.value,onSelect:ka,onAdd:t[0]||=e=>Oa(),onRename:Aa,onRemove:Ma,onMove:Na},null,8,[`files`,`active-file-id`,`readonly`])):(0,d.createCommentVNode)(``,!0),(0,d.createElementVNode)(`div`,{class:(0,d.normalizeClass)([`gd-contract-template-designer__layout`,{"is-sidebar-collapsed":kt.value,"is-inspector-collapsed":At.value}])},[(0,d.createVNode)(Se.default,{collapsed:kt.value,"file-id":_.value,pages:v.value.pages,variables:v.value.variables,"decoration-variable-keys":rr.value,"active-page-id":b.value,"selected-variable-key":y.value,"normalized-max-pages":W.value,"page-limit-reached":nr.value,"selected-page":V.value,"selected-page-size":Pn.value,"normalized-page-size-options":Xn.value,"page-size-options":Zn.value,"selected-page-size-option-value":Qn.value,readonly:B.value,"get-page-size":Jr,onToggle:t[1]||=e=>kt.value=!kt.value,onAddPage:Zr,onActivatePage:ya,onNavigateOutline:ba,onDuplicatePage:Qr,onRemovePage:ei,onPatchPageFormat:Yr,onScrollToVariable:_a},null,8,[`collapsed`,`file-id`,`pages`,`variables`,`decoration-variable-keys`,`active-page-id`,`selected-variable-key`,`normalized-max-pages`,`page-limit-reached`,`selected-page`,`selected-page-size`,`normalized-page-size-options`,`page-size-options`,`selected-page-size-option-value`,`readonly`]),(0,d.createElementVNode)(`main`,{ref_key:`workspaceElement`,ref:$e,class:`gd-contract-template-designer__workspace`},[(0,d.withDirectives)((0,d.createElementVNode)(`div`,{id:rt,class:`gd-contract-template-designer__workspace-chrome`},[(0,d.createVNode)(ae.default,{ref_key:`workspaceHeaderElement`,ref:et,summary:Ln.value,"draft-cache-status-text":Vn.value,"draft-cache-status-class":Hn.value,"show-draft-cache-status":f.showDraftCacheStatus,"show-clear-button":f.showClearButton,"show-submit-data-viewer":f.showSubmitDataViewer,"show-variable-data-viewer":f.showVariableDataViewer,readonly:B.value,"zoom-percent":Un.value,"zoom-out-disabled":E.value<=Ne,"zoom-in-disabled":E.value>=Pe,"is-fullscreen":D.value,immersive:k.value,"page-decorations-open":A.value,"page-decorations-studio-id":nt,"page-decorations-preset-label":Rn.value,"page-decorations-enabled-count":Bn.value,"page-decorations-enabled-states":zn.value,"chrome-controls-id":rt,onZoomOut:ea,onZoomIn:$i,onFitWidth:(0,d.unref)(Ki),onResetZoom:Zi,onToggleFullscreen:ta,onToggleImmersive:aa,onClear:ha,onValidate:Pa,onPreview:oa,onSubmitData:la,onVariableData:fa,onTogglePageDecorations:Sa,onToggleChrome:co},{authoring:(0,d.withCtx)(()=>[(0,d.createVNode)(ce.default,{ref_key:`authoringBarElement`,ref:ot,compact:``,query:(0,d.unref)(mn),"onUpdate:query":t[2]||=e=>(0,d.isRef)(mn)?mn.value=e:null,replacement:(0,d.unref)(hn),"onUpdate:replacement":t[3]||=e=>(0,d.isRef)(hn)?hn.value=e:null,"match-case":(0,d.unref)(gn),"onUpdate:matchCase":t[4]||=e=>(0,d.isRef)(gn)?gn.value=e:null,panel:(0,d.unref)(pn),readonly:B.value,total:(0,d.unref)(_n).length,"current-index":(0,d.unref)(vn),"current-page":(0,d.unref)(yn)?(0,d.unref)(yn).pageIndex+1:void 0,feedback:(0,d.unref)(bn),onOpen:(0,d.unref)(Sn),onClose:t[5]||=e=>(0,d.unref)(Cn)(),onNavigate:(0,d.unref)(wn),onReplaceCurrent:(0,d.unref)(Tn),onReplaceAll:(0,d.unref)(En)},null,8,[`query`,`replacement`,`match-case`,`panel`,`readonly`,`total`,`current-index`,`current-page`,`feedback`,`onOpen`,`onNavigate`,`onReplaceCurrent`,`onReplaceAll`])]),_:1},8,[`summary`,`draft-cache-status-text`,`draft-cache-status-class`,`show-draft-cache-status`,`show-clear-button`,`show-submit-data-viewer`,`show-variable-data-viewer`,`readonly`,`zoom-percent`,`zoom-out-disabled`,`zoom-in-disabled`,`is-fullscreen`,`immersive`,`page-decorations-open`,`page-decorations-preset-label`,`page-decorations-enabled-count`,`page-decorations-enabled-states`,`onFitWidth`]),(0,d.createVNode)(se.default,{"variable-insert-popover-open":Ft.value,"onUpdate:variableInsertPopoverOpen":t[6]||=e=>Ft.value=e,"signing-layout-popover-open":Lt.value,"onUpdate:signingLayoutPopoverOpen":t[7]||=e=>Lt.value=e,"signing-mark-popover-open":Rt.value,"onUpdate:signingMarkPopoverOpen":t[8]||=e=>Rt.value=e,"image-insert-popover-open":It.value,"onUpdate:imageInsertPopoverOpen":t[9]||=e=>It.value=e,"image-insert-url":Bt.value,"onUpdate:imageInsertUrl":t[10]||=e=>Bt.value=e,"image-insert-width":Vt.value,"onUpdate:imageInsertWidth":t[11]||=e=>Vt.value=e,"image-insert-height":Ht.value,"onUpdate:imageInsertHeight":t[12]||=e=>Ht.value=e,"table-insert-popover-open":M.value,"onUpdate:tableInsertPopoverOpen":t[13]||=e=>M.value=e,"table-actions-popover-open":N.value,"onUpdate:tableActionsPopoverOpen":t[14]||=e=>N.value=e,"table-insert-draft":rn.value,"onUpdate:tableInsertDraft":t[15]||=e=>rn.value=e,"toolbar-more-open":Nt.value,"onUpdate:toolbarMoreOpen":t[16]||=e=>Nt.value=e,readonly:B.value,"editor-state":K.value,"current-block-format":_r.value,"block-format-options":qn,"font-family-select-options":Gn.value,"current-editor-font-family":vr.value,"font-size-preset-options":Sr.value,"current-editor-font-size":yr.value,"editor-font-size-search-value":j.value,"current-editor-text-color":br.value,"body-control-tool-items":tr.value,"signing-layout-presets":er.value,"page-limit-reached":nr.value,"normalized-max-pages":W.value,"image-processing":Wt.value,"image-insert-error":Ut.value,onCommand:t[17]||=e=>Z(e),onPatchBlockFormat:Wa,onPatchFontFamily:Ka,onPatchFontSize:Ga,onPatchColor:qa,onPatchTextAlign:Ua,onInsertVariable:_i,onInsertSigningLayout:Br,onInsertSigningMark:Ur,onOpenSigningLayoutCustom:Hr,onOpenImageFile:mi,onInsertImageUrl:gi,onAddPage:Zr,onInsertTable:To,onTableAction:jo,onFontSizeSearch:Ya,onFontSizeCommit:Xa,onFontSizeDropdownChange:Qa,onFontSizeKeydown:Za},null,8,`variable-insert-popover-open.signing-layout-popover-open.signing-mark-popover-open.image-insert-popover-open.image-insert-url.image-insert-width.image-insert-height.table-insert-popover-open.table-actions-popover-open.table-insert-draft.toolbar-more-open.readonly.editor-state.current-block-format.font-family-select-options.current-editor-font-family.font-size-preset-options.current-editor-font-size.editor-font-size-search-value.current-editor-text-color.body-control-tool-items.signing-layout-presets.page-limit-reached.normalized-max-pages.image-processing.image-insert-error`.split(`.`))],512),[[d.vShow,!O.value]]),O.value?((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(Ee.Tooltip),{key:0,title:`展开工具区`},{default:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`button`,{ref_key:`workspaceChromeHandleElement`,ref:it,type:`button`,class:`gd-contract-template-designer__workspace-chrome-handle`,"aria-label":`展开工具区`,"aria-expanded":!1,"aria-controls":rt,onClick:co},[(0,d.createVNode)((0,d.unref)(Oe.DownOutlined),{"aria-hidden":`true`})],512)]),_:1})):(0,d.createCommentVNode)(``,!0),k.value&&!A.value?((0,d.openBlock)(),(0,d.createElementBlock)(`button`,{key:1,ref_key:`immersiveExitElement`,ref:jt,type:`button`,class:`gd-contract-template-designer__immersive-exit`,"aria-label":`退出沉浸写作`,onClick:ia},[(0,d.createVNode)((0,d.unref)(Oe.CompressOutlined),{"aria-hidden":`true`}),t[32]||=(0,d.createElementVNode)(`span`,{class:`gd-contract-template-designer__immersive-exit-label`},`退出沉浸`,-1),t[33]||=(0,d.createElementVNode)(`kbd`,null,`Esc`,-1)],512)):(0,d.createCommentVNode)(``,!0),x.value?((0,d.openBlock)(),(0,d.createElementBlock)(`section`,ke,[(0,d.createVNode)((0,d.unref)(Ee.Alert),{type:Fn.value?`success`:`error`,message:In.value,"show-icon":``},null,8,[`type`,`message`]),S.value.length?((0,d.openBlock)(),(0,d.createElementBlock)(`div`,Ae,[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(S.value,e=>((0,d.openBlock)(),(0,d.createElementBlock)(`button`,{key:`${e.id}-${e.message}`,type:`button`,class:`gd-contract-template-designer__validation-item`,onClick:t=>Fa(e)},[(0,d.createElementVNode)(`span`,null,(0,d.toDisplayString)(e.message),1),(0,d.createElementVNode)(`small`,null,(0,d.toDisplayString)(Ia(e)),1)],8,je))),128))])):(0,d.createCommentVNode)(``,!0)])):(0,d.createCommentVNode)(``,!0),(0,d.createElementVNode)(`div`,{ref_key:`canvasElement`,ref:Ye,class:`gd-contract-template-designer__canvas`},[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(v.value.pages,(e,n)=>((0,d.openBlock)(),(0,d.createBlock)(re.default,{key:`${_.value}:${e.id}`,ref_for:!0,ref:t=>zr(e.id,t),page:e,"page-index":n,"page-size":Jr(e),"page-decorations":v.value.pageDecorations,"total-pages":v.value.pages.length,variables:v.value.variables,"selected-variable-key":y.value,active:b.value===e.id,readonly:f.readonly,disabled:f.disabled,zoom:E.value,"process-image-file":fi,"search-query":(0,d.unref)(xn),"search-match-case":(0,d.unref)(gn),"active-search-match":(0,d.unref)(yn)?.pageId===e.id?(0,d.unref)(yn):void 0,"get-scroll-container":Xe,onPageUpdate:qr,onVariableDrop:yi,onVariableSelect:bi,onEditorFocus:t[18]||=e=>ya(e,!1),onEditorReady:(0,d.unref)(ir),onCompositionEnd:(0,d.unref)(ir),onPageLayoutChange:(0,d.unref)(ir),onEditorStateChange:wo,onEditorContextMenu:oo,onWordPaste:di,onVariableMoveBlocked:t[19]||=e=>R.value=`变量只能在当前页内移动,跨页移动尚未支持。`},null,8,[`page`,`page-index`,`page-size`,`page-decorations`,`total-pages`,`variables`,`selected-variable-key`,`active`,`readonly`,`disabled`,`zoom`,`search-query`,`search-match-case`,`active-search-match`,`onEditorReady`,`onCompositionEnd`,`onPageLayoutChange`]))),128))],512)],512),(0,d.createVNode)(Ce.default,{collapsed:At.value,readonly:f.readonly,disabled:f.disabled,"body-control-tool-items":tr.value,"selected-variable":H.value,variables:v.value.variables,"current-variable-font-family":xr.value,"font-family-select-options":Gn.value,"text-align-options":(0,d.unref)(Kn),"border-style-options":Jn,"object-fit-options":Yn,"selected-variable-width-max":hr.value,"selected-variable-height-max":gr.value,"min-font-size":He,"max-font-size":Ue,"default-multiline-rows":(0,d.unref)(3),onToggle:t[20]||=e=>At.value=!At.value,onVariableDragStart:Hi,onInsertVariable:Ii,onDuplicateVariable:Pi,onRemoveVariable:Mi,onPatchVariable:Q,onRenameVariable:Si,onPatchStyle:Di,onPatchMultiline:Ai,onPatchRows:ji,onPatchFontFamily:Oi,onPatchFontSize:ki,onPatchTextAlign:wi,onPatchBorderStyle:Ti,onPatchObjectFit:Ei},null,8,[`collapsed`,`readonly`,`disabled`,`body-control-tool-items`,`selected-variable`,`variables`,`current-variable-font-family`,`font-family-select-options`,`text-align-options`,`selected-variable-width-max`,`selected-variable-height-max`,`default-multiline-rows`])],2),(0,d.withDirectives)((0,d.createVNode)(we.default,{ref_key:`pageDecorationsStudioElement`,ref:tt,id:nt,open:A.value,decorations:v.value.pageDecorations,variables:v.value.variables,"font-family-options":Gn.value,readonly:f.readonly,disabled:f.disabled,"active-tab":Mt.value,"onUpdate:activeTab":t[21]||=e=>Mt.value=e,onChange:Ci,onClose:Ca},null,8,[`open`,`decorations`,`variables`,`font-family-options`,`readonly`,`disabled`,`active-tab`]),[[d.vShow,A.value]]),((0,d.openBlock)(),(0,d.createBlock)(d.Teleport,{to:`body`},[I.value?((0,d.openBlock)(),(0,d.createBlock)(ie.default,{key:0,ref_key:`tableContextMenuElement`,ref:$t,capabilities:I.value.capabilities,"active-alignment":I.value.activeAlignment,style:(0,d.normalizeStyle)({left:`${I.value.x}px`,top:`${I.value.y}px`}),onExecute:Do,onKeydown:Oo},null,8,[`capabilities`,`active-alignment`,`style`])):(0,d.createCommentVNode)(``,!0),L.value?((0,d.openBlock)(),(0,d.createBlock)(fe.default,{key:1,ref_key:`imageContextMenuElement`,ref:en,width:tn.value,"onUpdate:width":t[22]||=e=>tn.value=e,height:nn.value,"onUpdate:height":t[23]||=e=>nn.value=e,x:L.value.x,y:L.value.y,readonly:B.value,onRestore:ao,onApply:io,onKeydown:Ao},null,8,[`width`,`height`,`x`,`y`,`readonly`])):(0,d.createCommentVNode)(``,!0),P.value?((0,d.openBlock)(),(0,d.createBlock)(ue.default,{key:2,ref_key:`textContextMenuElement`,ref:Gt,"bind-open":Zt.value,"onUpdate:bindOpen":t[24]||=e=>Zt.value=e,"bind-keyword":Qt.value,"onUpdate:bindKeyword":t[25]||=e=>Qt.value=e,x:P.value.x,y:P.value.y,"has-selection":P.value.hasSelection,"editor-state":K.value,"current-editor-text-color":br.value,"body-control-tool-items":tr.value,"text-menu-bindable-variables":mr.value,"variables-count":v.value.variables.length,"resolve-bind-variable-type-label":Bi,onCommand:Wr,onClipboard:Gr,onAddPage:vi,onInsertVariable:Li,onBindVariable:zi,onOpenBindPanel:Vi,onKeydown:ko,onPatchColor:Ja},null,8,[`bind-open`,`bind-keyword`,`x`,`y`,`has-selection`,`editor-state`,`current-editor-text-color`,`body-control-tool-items`,`text-menu-bindable-variables`,`variables-count`])):(0,d.createCommentVNode)(``,!0),F.value?((0,d.openBlock)(),(0,d.createBlock)(de.default,{key:3,ref_key:`textBubbleElement`,ref:Kt,x:F.value.x,y:F.value.y,"editor-state":K.value,"font-size-preset-options":Sr.value,"current-editor-font-size":yr.value,"editor-font-size-search-value":j.value,"current-editor-text-color":br.value,"text-align-options":(0,d.unref)(Kn),onCommand:Z,onPatchFontSize:Ga,onPatchTextAlign:Ua,onPatchColor:Ja,onFontSizeSearch:Ya,onFontSizeCommit:Xa,onFontSizeDropdownChange:Qa,onFontSizeKeydown:Za,onMore:vo},null,8,[`x`,`y`,`editor-state`,`font-size-preset-options`,`current-editor-font-size`,`editor-font-size-search-value`,`current-editor-text-color`,`text-align-options`])):(0,d.createCommentVNode)(``,!0)])),(0,d.createElementVNode)(`input`,{ref_key:`imageFileInputElement`,ref:at,class:`gd-contract-template-designer__hidden-file-input`,type:`file`,accept:`image/png,image/jpeg,image/webp,image/gif,image/bmp`,tabindex:`-1`,"aria-hidden":`true`,onChange:hi},null,544),(0,d.createElementVNode)(`span`,Me,(0,d.toDisplayString)(R.value),1),(0,d.createVNode)(pe.default,{open:w.value,"onUpdate:open":t[26]||=e=>w.value=e,"preview-pages":jn.value,"preview-file-groups":Mn.value,"preview-active-group":Nn.value,"preview-snapshot":T.value,"font-base-url":f.contractFontBaseUrl,onCancel:sa,onSelectFile:t[27]||=e=>wt.value=e},null,8,[`open`,`preview-pages`,`preview-file-groups`,`preview-active-group`,`preview-snapshot`,`font-base-url`]),(0,d.createVNode)(me.default,{open:Tt.value,"onUpdate:open":t[28]||=e=>Tt.value=e,json:Et.value,onCancel:ua},null,8,[`open`,`json`]),(0,d.createVNode)(he.default,{open:Dt.value,"onUpdate:open":t[29]||=e=>Dt.value=e,data:Ot.value,"file-name":An.value?.name,onCancel:pa},null,8,[`open`,`data`,`file-name`]),(0,d.createVNode)(ge.default,{open:zt.value,"onUpdate:open":t[30]||=e=>zt.value=e,disabled:B.value,onInsert:Vr},null,8,[`open`,`disabled`])],38))}});exports.default=f;
|
package/dist/lib/components/pro-contract-template-designer/src/composables/use-auto-pagination.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./use-template-designer.cjs`);let t=require(`vue`);function n(e){return{type:`doc`,content:e.length?e:[{type:`paragraph`}]}}function r(e){return e.replace(/<p>\s*(<br>)?\s*<\/p>/gi,``).trim().length===0}function i(e,t,i){let a=e.contentJson?.content,o=[...t,...a?.length?a:[]],s=r(e.contentHtml||``)?``:e.contentHtml;return{...e,contentHtml:`${i}${s}`,contentJson:n(o)}}function a(
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./use-template-designer.cjs`);let t=require(`vue`);function n(e){return{type:`doc`,content:e.length?e:[{type:`paragraph`}]}}function r(e){return e.replace(/<p>\s*(<br>)?\s*<\/p>/gi,``).trim().length===0}function i(e,t,i){let a=e.contentJson?.content,o=[...t,...a?.length?a:[]],s=r(e.contentHtml||``)?``:e.contentHtml;return{...e,contentHtml:`${i}${s}`,contentJson:n(o)}}function a(a){let o=new Set,s=new Set,c=new Map,l=new Map,u=!1,d=!1,f=0,p,m,h=(0,t.watch)(a.readonlyState,e=>{e&&C()},{flush:`sync`});function g(e){let n=new Set;for(let[i,o]of Array.from(l)){if(e&&o.sourceId!==e)continue;l.delete(i);let s=a.templateValue.value.pages.find(e=>e.id===i),c=s?.contentJson?.content,u=!c?.length||c.length===1&&c[0].type===`paragraph`&&!c[0].content?.length,d=a.pageRefs.get(i),p=d?.isUntouchedPaginationBlank?.(o.page);o.generation===f&&s&&((0,t.toRaw)(s)===o.page||p===!0)&&u&&r(s.contentHtml||``)&&!d?.isComposing?.()&&p!==!1&&n.add(i)}let i=a.templateValue.value.pages;if(i.length&&i.every(e=>n.has(e.id))&&n.delete(i[0].id),n.size){for(let e of Array.from(n))o.delete(e),s.delete(e),c.delete(e);a.applyPagesChange(a.templateValue.value.pages.filter(e=>!n.has(e.id))),_()}return n}function _(){a.pendingPaginationPageId.value=o.values().next().value??s.values().next().value??``}function v(){u||d||a.isAutoPaginating.value||a.readonlyState.value||(u=!0,(0,t.nextTick)(()=>{u=!1,d||S()}))}function y(e=a.activePageId.value){if(!(d||a.readonlyState.value||!e)){s.delete(e);for(let t of Array.from(s)){let n=a.templateValue.value.pages.findIndex(e=>e.id===t);a.templateValue.value.pages[n+1]?.id===e&&(s.delete(t),o.add(t))}o.add(e),_(),v()}}function b(){if(d||a.readonlyState.value)return;let e=f,t=new Set(a.templateValue.value.pages.map(e=>e.id));for(let n of Array.from(l.values()))if(t.has(n.sourceId)||g(n.sourceId),d||e!==f||a.readonlyState.value)return;o.clear(),s.clear();let n=new Set(a.templateValue.value.pages.map(e=>e.id));for(let e of Array.from(c.keys()))n.has(e)||c.delete(e);for(let e of Array.from(n))o.add(e);_(),v()}function x(){return new Promise(e=>{m=e,p=setTimeout(()=>{p=void 0,m=void 0,e()},0)})}async function S(){if(d||a.readonlyState.value||a.isAutoPaginating.value)return;let r=f;a.isAutoPaginating.value=!0;let u=performance.now();try{for(;o.size&&!d&&r===f&&!a.readonlyState.value&&(await(0,t.nextTick)(),!(d||r!==f||a.readonlyState.value));){let t=o.values().next().value;o.delete(t);let p=a.templateValue.value.pages,m=p.findIndex(e=>e.id===t),h=a.pageRefs.get(t),v=p[m+1],y=v&&a.pageRefs.get(v.id);if(m<0){c.delete(t),g(t);continue}if(!h||h.isReady?.()===!1||h.isComposing?.()||y?.isComposing?.()){s.add(t);continue}let b=c.get(t);if(b&&(c.delete(t),h.restorePaginationSelection?.(b.selection,b.contentHtml),d||r!==f||a.readonlyState.value))break;if(v&&l.get(v.id)?.sourceId===t&&p.length>a.normalizedMaxPages.value){let e=g(t);if(d||r!==f||a.readonlyState.value)break;if(e.has(v.id)){o.add(t),_();continue}}if((!y||y.isReady?.()===!1)&&(v||p.length<a.normalizedMaxPages.value)&&h.hasOverflowSelection?.()===!0){if(s.add(t),!v){let n=e.createBlankPage(p.length+1,a.getPageSize(p[m]));l.set(n.id,{sourceId:t,generation:r,page:n}),a.applyPagesChange([...a.templateValue.value.pages,n])}_();continue}if(Array.from(l.values()).some(e=>e.sourceId===t)&&!h.hasOverflowContent()){if(g(t),d||r!==f||a.readonlyState.value)break;_();continue}if(!v&&p.length>=a.normalizedMaxPages.value)h.hasOverflowContent()&&a.notifyPageLimit(`auto-pagination`);else{let t=a.captureViewport?.();try{let t=h.splitOverflowContent();if(t){if(d||r!==f||a.readonlyState.value)break;v&&l.delete(v.id);let u=v?y?.prependContent(t.overflowContent)??i(v,t.overflowContent,t.overflowHtml):e.createBlankPage(p.length+1,a.getPageSize(t.page),t.overflowHtml,n(t.overflowContent));if(d||r!==f||a.readonlyState.value)break;let h=a.templateValue.value.pages.slice(),g=h[m];if(g.contentHtml===p[m].contentHtml&&g.contentJson===p[m].contentJson&&(h[m]=t.page),v?h[m+1]=u:h.push(u),a.applyPagesChange(h),d||r!==f||a.readonlyState.value||(t.selection&&(y?.isReady?.()!==!1&&y?.restorePaginationSelection?y.restorePaginationSelection(t.selection,u.contentHtml):c.set(u.id,{selection:t.selection,contentHtml:u.contentHtml})),d||r!==f||a.readonlyState.value))break;let _=u.id;s.delete(_),o.add(_)}}finally{t?.()}}_(),o.size&&performance.now()-u>=(a.timeBudgetMs??8)&&(await x(),u=performance.now())}}finally{a.isAutoPaginating.value=!1,_(),o.size&&v()}}function C(){g(),f+=1,c.clear(),o.clear(),s.clear(),p!==void 0&&clearTimeout(p),p=void 0,m?.(),m=void 0,_()}function w(){h(),d=!0,C()}return{scheduleAutoPaginate:y,scheduleFullPagination:b,runAutoPagination:S,resetPagination:C,disposePagination:w,createDocContent:n,prependOverflowToPageData:i}}exports.useAutoPagination=a;
|