@guodun/antdv 1.3.2 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/components/contract-signing-location/index.mjs +1 -0
- package/dist/es/components/contract-signing-location/src/ContractSigningLocation.vue.mjs +304 -289
- package/dist/es/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.mjs +337 -326
- package/dist/es/components/contract-signing-location/src/ContractSigningLocationNavigator.vue.mjs +41 -33
- package/dist/es/components/contract-signing-location/src/ContractSigningTemplatePage.mjs +5 -0
- package/dist/es/components/contract-signing-location/src/ContractSigningTemplatePage.vue.mjs +23 -0
- package/dist/es/components/contract-signing-location/src/location-rules.mjs +115 -77
- package/dist/es/components/contract-signing-location/src/template-source.mjs +85 -0
- package/dist/es/components/contract-signing-location/style/index.css +1 -1
- package/dist/es/components/index.mjs +8 -6
- package/dist/es/components/pro-contract-signing-flow/src/ContractSigningFlowCanvas.vue.mjs +164 -57
- package/dist/es/components/pro-contract-signing-flow/src/ContractSigningFlowInspector.vue.mjs +128 -125
- package/dist/es/components/pro-contract-signing-flow/src/ContractSigningFlowNodeCard.vue.mjs +75 -49
- package/dist/es/components/pro-contract-signing-flow/src/ProContractSigningFlow.vue.mjs +135 -91
- package/dist/es/components/pro-contract-signing-flow/src/constants.mjs +25 -5
- package/dist/es/components/pro-contract-signing-flow/style/index.css +1 -1
- package/dist/es/components/pro-contract-template-designer/index.mjs +5 -4
- package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.mjs +5 -0
- package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.mjs +347 -0
- package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerSidebar.mjs +5 -0
- package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerSidebar.vue.mjs +171 -0
- package/dist/es/components/pro-contract-template-designer/src/ContractTemplateFileBar.mjs +5 -0
- package/dist/es/components/pro-contract-template-designer/src/ContractTemplateFileBar.vue.mjs +166 -0
- package/dist/es/components/pro-contract-template-designer/src/ContractTemplateRendererField.vue.mjs +4 -4
- package/dist/es/components/pro-contract-template-designer/src/ContractTemplateRendererValidation.mjs +5 -0
- package/dist/es/components/pro-contract-template-designer/src/ContractTemplateRendererValidation.vue.mjs +36 -0
- package/dist/es/components/pro-contract-template-designer/src/DesignerPage.vue.mjs +202 -202
- package/dist/es/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.mjs +1591 -1612
- package/dist/es/components/pro-contract-template-designer/src/ProContractTemplateRenderer.vue.mjs +235 -239
- package/dist/es/components/pro-contract-template-designer/src/SigningPlacementLayer.vue.mjs +16 -16
- package/dist/es/components/pro-contract-template-designer/src/composables/use-template-designer.mjs +166 -166
- package/dist/es/components/pro-contract-template-designer/src/composables/use-template-draft-cache.mjs +100 -33
- package/dist/es/components/pro-contract-template-designer/src/composables/use-template-files.mjs +77 -0
- package/dist/es/components/pro-contract-template-designer/src/extensions/word-paste.mjs +23 -23
- package/dist/es/components/pro-contract-template-designer/src/utils/file-tabs.mjs +14 -0
- package/dist/es/components/pro-contract-template-designer/src/utils/template-renderer.mjs +121 -121
- package/dist/es/components/pro-contract-template-designer/src/utils/toolbar-overflow.mjs +19 -0
- package/dist/es/components/pro-contract-template-designer/style/index.css +1 -1
- package/dist/es/index.mjs +23 -21
- package/dist/lib/components/contract-signing-location/index.cjs +1 -1
- package/dist/lib/components/contract-signing-location/src/ContractSigningLocation.vue.cjs +1 -1
- package/dist/lib/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.cjs +1 -1
- package/dist/lib/components/contract-signing-location/src/ContractSigningLocationNavigator.vue.cjs +1 -1
- package/dist/lib/components/contract-signing-location/src/ContractSigningTemplatePage.cjs +1 -0
- package/dist/lib/components/contract-signing-location/src/ContractSigningTemplatePage.vue.cjs +1 -0
- package/dist/lib/components/contract-signing-location/src/location-rules.cjs +1 -1
- package/dist/lib/components/contract-signing-location/src/template-source.cjs +1 -0
- package/dist/lib/components/contract-signing-location/style/index.css +1 -1
- package/dist/lib/components/index.cjs +1 -1
- package/dist/lib/components/pro-contract-signing-flow/src/ContractSigningFlowCanvas.vue.cjs +1 -1
- package/dist/lib/components/pro-contract-signing-flow/src/ContractSigningFlowInspector.vue.cjs +1 -1
- package/dist/lib/components/pro-contract-signing-flow/src/ContractSigningFlowNodeCard.vue.cjs +1 -1
- package/dist/lib/components/pro-contract-signing-flow/src/ProContractSigningFlow.vue.cjs +1 -1
- package/dist/lib/components/pro-contract-signing-flow/src/constants.cjs +1 -1
- package/dist/lib/components/pro-contract-signing-flow/style/index.css +1 -1
- package/dist/lib/components/pro-contract-template-designer/index.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.cjs +1 -0
- package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.cjs +1 -0
- package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerSidebar.cjs +1 -0
- package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerSidebar.vue.cjs +1 -0
- package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateFileBar.cjs +1 -0
- package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateFileBar.vue.cjs +1 -0
- package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateRendererField.vue.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateRendererValidation.cjs +1 -0
- package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateRendererValidation.vue.cjs +1 -0
- 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/ProContractTemplateRenderer.vue.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/SigningPlacementLayer.vue.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-designer.cjs +2 -2
- package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-draft-cache.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-files.cjs +2 -0
- package/dist/lib/components/pro-contract-template-designer/src/extensions/word-paste.cjs +1 -1
- package/dist/lib/components/pro-contract-template-designer/src/utils/file-tabs.cjs +1 -0
- package/dist/lib/components/pro-contract-template-designer/src/utils/template-renderer.cjs +2 -2
- package/dist/lib/components/pro-contract-template-designer/src/utils/toolbar-overflow.cjs +1 -0
- package/dist/lib/components/pro-contract-template-designer/style/index.css +1 -1
- package/dist/lib/index.cjs +1 -1
- package/dist/theme/contract-signing-location.css +1 -1
- package/dist/theme/icon.css +1 -1
- package/dist/theme/index.css +1 -1
- package/dist/theme/pro-contract-signing-flow.css +1 -1
- package/dist/types/components/contract-signing-location/index.d.ts +1 -0
- package/dist/types/components/contract-signing-location/src/ContractSigningLocation.vue.d.ts +3 -1
- package/dist/types/components/contract-signing-location/src/ContractSigningLocationInspector.vue.d.ts +2 -2
- package/dist/types/components/contract-signing-location/src/ContractSigningTemplatePage.vue.d.ts +6 -0
- package/dist/types/components/contract-signing-location/src/location-rules.d.ts +3 -3
- package/dist/types/components/contract-signing-location/src/template-source.d.ts +20 -0
- package/dist/types/components/contract-signing-location/src/types.d.ts +47 -2
- package/dist/types/components/pro-contract-signing-flow/src/ContractSigningFlowCanvas.vue.d.ts +19 -3
- package/dist/types/components/pro-contract-signing-flow/src/ProContractSigningFlow.vue.d.ts +223 -2
- package/dist/types/components/pro-contract-signing-flow/src/constants.d.ts +15 -0
- package/dist/types/components/pro-contract-signing-flow/src/types.d.ts +12 -0
- package/dist/types/components/pro-contract-template-designer/index.d.ts +1 -0
- package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.d.ts +103 -0
- package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerSidebar.vue.d.ts +48 -0
- package/dist/types/components/pro-contract-template-designer/src/ContractTemplateFileBar.vue.d.ts +231 -0
- package/dist/types/components/pro-contract-template-designer/src/ContractTemplateRendererValidation.vue.d.ts +15 -0
- package/dist/types/components/pro-contract-template-designer/src/DesignerPage.vue.d.ts +1 -1
- package/dist/types/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.d.ts +25 -2
- package/dist/types/components/pro-contract-template-designer/src/SigningPlacementInspector.vue.d.ts +2 -2
- package/dist/types/components/pro-contract-template-designer/src/composables/use-template-designer.d.ts +1 -1
- package/dist/types/components/pro-contract-template-designer/src/composables/use-template-draft-cache.d.ts +29 -1
- package/dist/types/components/pro-contract-template-designer/src/composables/use-template-files.d.ts +24 -0
- package/dist/types/components/pro-contract-template-designer/src/constants.d.ts +2 -2
- package/dist/types/components/pro-contract-template-designer/src/types.d.ts +59 -1
- package/dist/types/components/pro-contract-template-designer/src/utils/file-tabs.d.ts +3 -0
- package/dist/types/components/pro-contract-template-designer/src/utils/toolbar-overflow.d.ts +11 -0
- package/package.json +2 -1
package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-designer.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e=require(`../
|
|
1
|
+
const e=require(`../types.cjs`),t=require(`../utils/html.cjs`),n=require(`../utils/signing-placement.cjs`),r=require(`../constants.cjs`),i=require(`../utils/template-variable-render.cjs`);var a=[{format:`A0`,width:3178,height:4493,label:`A0`},{format:`A1`,width:2245,height:3178,label:`A1`},{format:`A2`,width:1587,height:2245,label:`A2`},{format:`A3`,width:1123,height:1587,label:`A3`},{format:`A4`,width:794,height:1123,label:`A4`},{format:`A5`,width:559,height:794,label:`A5`},{format:`Letter`,width:816,height:1056,label:`Letter`},{format:`Legal`,width:816,height:1344,label:`Legal`}],o={...a[4]},s={color:`#1f2937`,background:`transparent`,fontSize:14,fontFamily:r.DEFAULT_CONTRACT_FONT_FAMILY,placeholderColor:`#7a818b`,lineColor:`#565b66`,textAlign:`left`,borderStyle:`solid`,objectFit:`contain`},c=3,l=28,u=`contract-template-renderer-1.0.0`,d=`contract-render-css-1.0.0`;function f(e){let t=Number(e);return Number.isFinite(t)&&t>=1?Math.max(1,Math.floor(t)):20}var p=[{type:`text`,label:`输入框`,defaultWidth:160,defaultHeight:32},{type:`date`,label:`日期`,defaultWidth:140,defaultHeight:32},{type:`number`,label:`数字`,defaultWidth:120,defaultHeight:32},{type:`image`,label:`图片`,defaultWidth:160,defaultHeight:96},{type:`checkbox`,label:`复选框`,defaultWidth:96,defaultHeight:28}],m=0;function h(e){return m+=1,`${e}-${Date.now().toString(36)}-${m.toString(36)}`}function g(e){let t=JSON.parse(JSON.stringify(e));return Array.isArray(t.signingPlacements)&&(t.signingPlacements=t.signingPlacements.map(e=>({id:e.id,pageId:e.pageId,type:e.type,x:e.x,y:e.y,width:e.width,height:e.height,mustSign:e.mustSign,...e.sealTypes?.length?{sealTypes:[...e.sealTypes]}:{}}))),t}function _(e){return a.find(t=>t.format===e)}function v(e){if(e)return e.format&&e.format!==`Custom`?e.format:a.find(t=>t.width===e.width&&t.height===e.height)?.format}function y(e,t=o){let n=v(t)??t.format,r=e?.format??v(e)??n??`Custom`,i=r===`Custom`?void 0:_(r),a=w(i?.width??e?.width,t.width),s=w(i?.height??e?.height,t.height);return{format:i?.format??r,width:a,height:s,label:e?.label??i?.label??t.label??r}}function b(e){return`${e.format??`Custom`}:${e.width}:${e.height}`}function x(e){let t=(Array.isArray(e)?e:a).map(e=>{let t=Number(e?.width),n=Number(e?.height);if(!Number.isFinite(t)||t<=0||!Number.isFinite(n)||n<=0)return;let r=e?.format;if(r&&r!==`Custom`){let t=_(r);return t?{...t,label:e.label??t.label}:void 0}let i=r?void 0:v(e),a=i?_(i):void 0;if(a)return{...a,label:e.label??a.label};if(r!==`Custom`)return;let o=Math.round(t),s=Math.round(n);if(!(o<=0||s<=0))return{format:`Custom`,width:o,height:s,label:e.label??`Custom`}}).filter(Boolean),n=new Set,r=t.filter(e=>{let t=b(e);return n.has(t)?!1:(n.add(t),!0)});return(r.length?r:a).map(e=>({...e}))}function S(e,t){let n=b(e);return t.find(e=>b(e)===n)}function C(e,t){let r=x(t),i=r[0],a=y(e.pageSize,i),o=S(a,r)??i,s=new Map,c=e.pages.map(e=>{let t=y(e.pageSize,a),n=S(t,r)??i;return b(t)!==b(n)&&s.set(e.id,{source:t,target:n}),{...e,pageSize:{...n}}}),l=[],u=(e.signingPlacements??[]).map(e=>{let t=s.get(e.pageId);return t?(l.push(e.id),n.scaleSigningPlacementToPage(e,t.source,t.target)):e});return{value:{...e,pageSize:{...o},pages:c,signingPlacements:u},resizedSigningPlacementIds:l}}function w(e,t){let n=Number(e);return!Number.isFinite(n)||n<=0?t:Math.round(n)}function T(e=1,t){return{id:h(`page`),title:`第 ${e} 页`,pageSize:t?y(t):void 0,contentHtml:`<p>请输入合同正文,也可以从 WPS / Word 复制内容粘贴到这里。</p>`}}function E(e=1,t,n=`<p></p>`,r){return{id:h(`page`),title:`第 ${e} 页`,pageSize:t?y(t):void 0,contentHtml:n,contentJson:r}}function D(e=o){let t=y(e);return{pages:[T(1,t)],variables:[],pageSize:t,signingPlacements:[]}}function ee(e=o){let t=y(e);return{pages:[E(1,t,`<p></p>`)],variables:[],pageSize:t,signingPlacements:[]}}function O(e,t=p){return t.find(t=>t.type===e)??p[0]}function k(e,t=p,n={}){let r=e.type===void 0?`text`:e.type,i=O(r,t),a=te(r);return{id:e.id??h(`variable`),key:e.key,label:e.label??i.label??e.key,type:r,placeholder:e.placeholder??a.placeholder??``,width:Math.max(24,Math.round(e.width??i.defaultWidth??140)),height:Math.max(24,Math.round(e.height??a.height??i.defaultHeight??32)),required:e.required??!1,defaultValue:e.defaultValue??``,format:e.format??a.format??``,precision:e.precision??a.precision,useGrouping:e.useGrouping??a.useGrouping,checkedText:e.checkedText??a.checkedText??``,uncheckedText:e.uncheckedText??a.uncheckedText??``,multiline:e.multiline??!1,rows:Math.max(1,Math.round(e.rows??3)),lineHeight:Math.max(18,Math.round(e.lineHeight??28)),style:{...s,...a.style,...n,...e.style}}}function te(e){return e===`date`?{placeholder:`年 月 日`,format:`YYYY年MM月DD日`,style:{border:!1,underline:!0}}:e===`number`?{placeholder:`0`,format:`decimal`,useGrouping:!0,style:{border:!1,underline:!0,textAlign:`right`}}:e===`image`?{placeholder:`图片`,height:96,style:{border:!0,underline:!1,borderStyle:`dashed`,background:`transparent`,lineColor:`#d9dce0`,textAlign:`center`,objectFit:`contain`}}:e===`checkbox`?{height:28,checkedText:`已选`,uncheckedText:``,style:{border:!1,underline:!1}}:{style:{border:!1,underline:!0}}}function A(t){return t!==void 0&&!e.isContractTemplateFieldType(t)}function ne(e,t=o){if(!e)return D(t);let r=y(e.pageSize,t),i=(e.pages?.length?e.pages:[T(1,r)]).map((e,t)=>({id:e.id||h(`page`),title:e.title||`第 ${t+1} 页`,pageSize:y(e.pageSize,r),contentHtml:e.contentHtml||`<p></p>`,contentJson:e.contentJson})),a=new Map,s=Object.fromEntries(i.map(e=>[e.id,y(e.pageSize,r)]));return(e.variables??[]).forEach(e=>{e.key&&a.set(e.key,k({...e,id:e.id||h(`variable`)}))}),i.forEach(e=>{V(e).forEach(e=>{if(!e.key)return;let t=a.get(e.key);if(!t){a.set(e.key,k(e));return}A(e.type)&&a.set(e.key,k({...t,type:e.type}))})}),{pages:i,variables:Array.from(a.values()),pageSize:r,signingPlacements:n.normalizeSigningPlacements(e.signingPlacements,s,r)}}function re(e){return e.pages.map(t=>`<section ${z(t,e.pageSize)}>${t.contentHtml}</section>`).join(`
|
|
2
2
|
`)}function j(e){return e.pages.map(t=>`<section ${z(t,e.pageSize)}>${ue(t.contentHtml)}</section>`).join(`
|
|
3
3
|
`)}function M(e){return N(e).map(({page:t,contentHtml:n})=>{let r=y(t.pageSize,e.pageSize);return`<section ${z(t,e.pageSize)} style="width:${r.width}px;min-height:${r.height}px">${n}</section>`}).join(`
|
|
4
|
-
`)}function N(e){let t=new Map(e.variables.map(e=>[e.key,e])),n=Array.isArray(e.signingPlacements)?e.signingPlacements:[];return e.pages.map(e=>({page:{...e,...e.pageSize?{pageSize:{...e.pageSize}}:{}},contentHtml:W(e.contentHtml,t),signingPlacements:n.filter(t=>t.pageId===e.id).map(e=>({id:e.id,pageId:e.pageId,type:e.type,x:e.x,y:e.y,width:e.width,height:e.height,mustSign:e.mustSign,...e.sealTypes?.length?{sealTypes:[...e.sealTypes]}:{}}))}))}function ie(e){let t=g(e);return{...t,rendererVersion:u,styleVersion:d,html:j(t)}}function P(e,t={}){let n=[],r=new Map;typeof t.maxPages==`number`&&e.pages.length>t.maxPages&&n.push({type:`page`,id:e.pages[t.maxPages]?.id??e.pages.at(-1)?.id??``,pageId:e.pages[t.maxPages]?.id,code:`PAGE_LIMIT_EXCEEDED`,message:`合同共 ${e.pages.length} 页,超过最多 ${t.maxPages} 页限制`}),e.variables.forEach(e=>{if(e.key?.trim()||n.push({type:`variable`,id:e.id,message:`${e.label||`变量`} 缺少变量标识`}),e.key){let t=r.get(e.key);t&&t!==e.id&&n.push({type:`variable`,id:e.id,message:`变量标识 ${e.key} 重复`}),r.set(e.key,e.id)}A(e.type)&&n.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key||`变量`} 不是正文填写变量`,code:`VARIABLE_TYPE_UNSUPPORTED`})});let a=new Set(e.variables.map(e=>e.key).filter(Boolean)),o=new Set;return e.pages.forEach(e=>{F(e).forEach(t=>{o.add(t),a.has(t)||n.push({type:`variable`,id:e.id,message:`正文模板变量 ${t} 没有对应变量配置`})})}),e.variables.forEach(e=>{e.key&&!o.has(e.key)&&n.push({type:`variable`,id:e.id,message:`${e.label||e.key} 缺少对应正文变量节点`})}),n.push(...i.validateSigningPlacements(e)),n}function F(e){let t=new Set;function n(e){if(!e||typeof e!=`object`)return;let r=e;ae(r.type)&&r.attrs?.key&&t.add(r.attrs.key),r.content?.forEach(n)}n(e.contentJson);let r=e.contentHtml||``,i=/data-template-variable=["']true["'][^>]*data-key=["']([^"']+)["']|data-key=["']([^"']+)["'][^>]*data-template-variable=["']true["']/g,a=i.exec(r);for(;a;){let e=a[1]||a[2];e&&t.add(e),a=i.exec(r)}return t}function ae(e){return e===`templateVariable`||e===`templateField`}function I(e){let t=new Set;return e.pages.forEach(e=>{F(e).forEach(e=>t.add(e))}),t}function L(e){let t=I(e);return{...e,variables:e.variables.filter(e=>e.key&&t.has(e.key))}}function R(e,t,n){let r=e??[];if(r.length<=1||n<=0)return;let i=Math.min(r.length,t.length),a=-1;for(let e=0;e<i;e+=1){let r=t[e];if(r.top+r.height>n+1){a=e;break}}if(!(a<=0))return{splitIndex:a,currentContent:r.slice(0,a),overflowContent:r.slice(a)}}function z(e,t){let r=y(e.pageSize,t);return[`class="gd-contract-template-page"`,`data-page-id="${n.escapeHtmlAttribute(e.id)}"`,`data-page-format="${n.escapeHtmlAttribute(r.format??`Custom`)}"`,`data-page-label="${n.escapeHtmlAttribute(r.label??r.format??`自定义`)}"`,`data-page-width="${r.width}"`,`data-page-height="${r.height}"`].join(` `)}var B=/<span\b[^>]*data-template-variable=["']true["'][^>]*>/g;function V(e){let t=new Map;function r(e){if(!e.key)return;let n=t.get(e.key);(!n||A(e.type)&&!A(n.type))&&t.set(e.key,e)}function i(e){if(!e||typeof e!=`object`)return;let t=e;t.type===`templateVariable`&&typeof t.attrs?.key==`string`&&r(U(t.attrs,t.attrs.key)),t.content?.forEach(i)}i(e.contentJson);let a=e.contentHtml||``;return n.canUseDomHtml()?new DOMParser().parseFromString(a,`text/html`).querySelectorAll(`[data-template-variable]`).forEach(e=>{r(H(n.createElementAttributeReader(e)))}):n.forEachHtmlTag(a,B,e=>{r(H(n.createTagAttributeReader(e)))}),Array.from(t.values())}function H(e){let t=e(`data-key`)??``,r=e(`data-variable-type`),i=e(`data-precision`),a=e(`data-use-grouping`);return{key:t,label:e(`data-label`)??t,type:r??`text`,placeholder:e(`data-placeholder`)??``,width:n.readNumberAttribute(e(`data-width`),160),height:n.readNumberAttribute(e(`data-height`),32),required:e(`data-required`)===`true`,defaultValue:e(`data-default-value`)??``,format:e(`data-format`)??``,precision:i?Number(i):void 0,useGrouping:a?a===`true`:void 0,checkedText:e(`data-checked-text`)??``,uncheckedText:e(`data-unchecked-text`)??``,multiline:e(`data-multiline`)===`true`,rows:n.readNumberAttribute(e(`data-rows`),3),lineHeight:n.readNumberAttribute(e(`data-line-height`),28),style:{border:n.readOptionalBoolean(e(`data-border`)),underline:n.readOptionalBoolean(e(`data-underline`)),color:e(`data-color`),background:e(`data-background`),fontSize:n.readNumberAttribute(e(`data-font-size`),14),fontFamily:e(`data-font-family`),placeholderColor:e(`data-placeholder-color`),lineColor:e(`data-line-color`),textAlign:Z(e(`data-text-align`)),borderStyle:Q(e(`data-border-style`)),objectFit:$(e(`data-object-fit`))}}}function U(e,t){let r=t=>typeof e[t]==`string`?e[t]:void 0;return{key:t,label:r(`label`)??t,type:e.type===void 0?`text`:e.type,placeholder:r(`placeholder`)??``,width:n.readNumberAttribute(e.width,160),height:n.readNumberAttribute(e.height,32),required:e.required===!0,defaultValue:r(`defaultValue`)??``,format:r(`format`)??``,precision:typeof e.precision==`number`?e.precision:void 0,useGrouping:typeof e.useGrouping==`boolean`?e.useGrouping:void 0,checkedText:r(`checkedText`)??``,uncheckedText:r(`uncheckedText`)??``,multiline:e.multiline===!0,rows:n.readNumberAttribute(e.rows,3),lineHeight:n.readNumberAttribute(e.lineHeight,28),style:{border:typeof e.border==`boolean`?e.border:void 0,underline:typeof e.underline==`boolean`?e.underline:void 0,color:r(`color`),background:r(`background`),fontSize:n.readNumberAttribute(e.fontSize,14),fontFamily:r(`fontFamily`),placeholderColor:r(`placeholderColor`),lineColor:r(`lineColor`),textAlign:Z(e.textAlign),borderStyle:Q(e.borderStyle),objectFit:$(e.objectFit)}}}function W(e,t){if(!e)return e;if(n.canUseDomHtml()){let n=new DOMParser().parseFromString(e,`text/html`);return G(n),n.querySelectorAll(`[data-template-variable]`).forEach(e=>{q(e,t)}),n.body.innerHTML}return n.replaceTemplateVariableSpans(se(e),(e,r)=>{let i=n.createTagAttributeReader(r);return i(`data-key`)?oe(i,t):e})}function G(e){e.querySelectorAll(`script,style,meta,link`).forEach(e=>e.remove()),e.querySelectorAll(`*`).forEach(e=>{Array.from(e.attributes).forEach(t=>{let n=t.name.toLowerCase(),r=t.value;if(n.startsWith(`on`)||n===`srcdoc`){e.removeAttribute(t.name);return}if((n===`href`||n===`src`)&&J(r)){e.removeAttribute(t.name);return}n===`style`&&Y(r)&&e.removeAttribute(t.name)})})}function K(e,r){let i=e(`data-key`)??``,a=r.get(i),o=a?.type??e(`data-variable-type`)??`text`,s=le(o,a?.defaultValue??e(`data-default-value`)??``),c=t.resolveTemplateVariablePresentation({type:o,width:a?.width??e(`data-width`),height:a?.height??e(`data-height`),defaultValue:s,placeholder:a?.placeholder??e(`data-placeholder`)??``,format:a?.format??e(`data-format`)??``,precision:a?.precision??n.readOptionalNumber(e(`data-precision`)),useGrouping:a?.useGrouping??n.readOptionalBoolean(e(`data-use-grouping`)),checkedText:a?.checkedText??e(`data-checked-text`)??``,uncheckedText:a?.uncheckedText??e(`data-unchecked-text`)??``,multiline:a?.multiline??n.readOptionalBoolean(e(`data-multiline`))??!1,rows:a?.rows??e(`data-rows`),lineHeight:a?.lineHeight??e(`data-line-height`),style:ce(a,e)});return{key:i,label:a?.label??e(`data-label`)??i,presentation:c,text:c.type===`image`&&c.hasDefaultValue?` `:c.displayText||` `}}function q(e,t){let{key:r,label:i,presentation:a,text:o}=K(n.createElementAttributeReader(e),t);e.setAttribute(`data-template-variable`,`true`),e.setAttribute(`data-key`,r),e.setAttribute(`data-label`,i),e.setAttribute(`data-variable-type`,a.type),e.setAttribute(`data-width`,String(a.width)),e.setAttribute(`data-height`,String(a.height)),e.setAttribute(`data-border`,String(a.border)),e.setAttribute(`data-underline`,String(a.underline)),e.setAttribute(`data-color`,a.color),e.setAttribute(`data-background`,a.background),e.setAttribute(`data-font-size`,String(a.fontSize)),e.setAttribute(`data-font-family`,a.fontFamily),e.setAttribute(`data-placeholder-color`,a.placeholderColor),e.setAttribute(`data-line-color`,a.lineColor),e.setAttribute(`data-text-align`,a.textAlign),e.setAttribute(`data-border-style`,a.borderStyle),e.setAttribute(`data-object-fit`,a.objectFit),e.className=a.classes.join(` `),e.setAttribute(`style`,a.styleText),e.textContent=o}function oe(e,t){let{key:r,label:i,presentation:a,text:o}=K(e,t);return`<span data-template-variable="true" data-key="${n.escapeHtmlAttribute(r)}" data-label="${n.escapeHtmlAttribute(i)}" data-variable-type="${n.escapeHtmlAttribute(a.type)}" data-width="${a.width}" data-height="${a.height}" data-border="${a.border}" data-underline="${a.underline}" data-font-family="${n.escapeHtmlAttribute(a.fontFamily)}" class="${n.escapeHtmlAttribute(a.classes.join(` `))}" style="${n.escapeHtmlAttribute(a.styleText)}">${n.escapeHtmlText(o)}</span>`}function se(e){return e.replace(/<\s*(script|style|meta|link)\b[\s\S]*?<\s*\/\s*\1\s*>/gi,``).replace(/<\s*(meta|link)\b[^>]*>/gi,``).replace(/\s+on[a-z]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,``).replace(/\s+srcdoc\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,``).replace(/\s+(href|src)\s*=\s*(["'])(.*?)\2/gi,(e,t,n,r)=>J(r)?``:` ${t}=${n}${r}${n}`).replace(/\s+style\s*=\s*(["'])(.*?)\1/gi,(e,t,n)=>Y(n)?``:` style=${t}${n}${t}`)}function ce(e,t){return{border:e?.style?.border??n.readOptionalBoolean(t(`data-border`)),underline:e?.style?.underline??n.readOptionalBoolean(t(`data-underline`)),color:e?.style?.color??t(`data-color`),background:e?.style?.background??t(`data-background`),fontSize:e?.style?.fontSize??n.readOptionalNumber(t(`data-font-size`)),fontFamily:e?.style?.fontFamily??t(`data-font-family`),placeholderColor:e?.style?.placeholderColor??t(`data-placeholder-color`),lineColor:e?.style?.lineColor??t(`data-line-color`),textAlign:e?.style?.textAlign??Z(t(`data-text-align`)),borderStyle:e?.style?.borderStyle??Q(t(`data-border-style`)),objectFit:e?.style?.objectFit??$(t(`data-object-fit`))}}function le(e,t){return e===`image`&&J(t)?``:t}function J(e){let t=e.trim().replace(/[\u0000-\u001F\s]+/g,``).toLowerCase();return t.startsWith(`javascript:`)||t.startsWith(`vbscript:`)||t.startsWith(`data:`)&&!t.startsWith(`data:image/`)}function Y(e){return/expression\s*\(|javascript:|vbscript:/i.test(e)}function ue(e){if(!e)return e;if(n.canUseDomHtml()){let t=new DOMParser().parseFromString(e,`text/html`);return t.querySelectorAll(`[data-template-variable]`).forEach(e=>{let t=e.dataset.key||``;t&&(e.textContent=`\${{${t}}}`)}),t.body.innerHTML}return n.replaceTemplateVariableSpans(e,(e,t)=>{let r=n.createTagAttributeReader(t)(`data-key`);return r?`<span${t}>\${{${r}}}</span>`:e})}function de(e){return e===`left`||e===`center`||e===`right`}function fe(e){return e===`solid`||e===`dashed`}function X(e){return e===`contain`||e===`cover`||e===`fill`}function Z(e){return de(e)?e:void 0}function Q(e){return fe(e)?e:void 0}function $(e){return X(e)?e:void 0}function pe(e,t=[]){let n=[...t,...P(e)],r=new Set;return n.filter(e=>{let t=`${e.code??``}|${e.id}|${e.pageId??``}|${e.message}`;return r.has(t)?!1:(r.add(t),!0)})}exports.CONTRACT_TEMPLATE_RENDERER_VERSION=u,exports.CONTRACT_TEMPLATE_STYLE_VERSION=d,exports.DEFAULT_FIELD_STYLE=s,exports.DEFAULT_FIELD_TYPES=p,exports.DEFAULT_MULTILINE_LINE_HEIGHT=l,exports.DEFAULT_MULTILINE_ROWS=c,exports.DEFAULT_PAGE_SIZE=o,exports.PAGE_SIZE_OPTIONS=a,exports.buildTemplateExpressionHtml=j,exports.buildTemplateHtml=re,exports.buildTemplatePreviewHtml=M,exports.buildTemplatePreviewPages=N,exports.cloneTemplateValue=g,exports.collectTemplateLocationRuleExportErrors=pe,exports.collectTemplateValueVariableKeys=I,exports.collectTemplateVariableKeys=F,exports.constrainTemplatePageSizes=C,exports.createBlankPage=E,exports.createBlankTemplate=ee,exports.createDefaultPage=T,exports.createDefaultTemplate=D,exports.createDesignerId=h,exports.createTemplateVariable=k,exports.exportTemplateValue=ie,exports.findPageSizeOption=S,exports.getFieldOption=O,exports.getPageSizeKey=b,exports.getPageSizeOption=_,exports.inferPageFormat=v,exports.normalizeContractTemplateMaxPages=f,exports.normalizePageSizeOptions=x,exports.normalizeTemplateValue=ne,exports.resolvePageSize=y,exports.splitPageContentByMeasurements=R,exports.syncTemplateVariablesWithPages=L,exports.validateTemplateValue=P;
|
|
4
|
+
`)}function N(e){let t=new Map(e.variables.map(e=>[e.key,e])),n=Array.isArray(e.signingPlacements)?e.signingPlacements:[];return e.pages.map(e=>({page:{...e,...e.pageSize?{pageSize:{...e.pageSize}}:{}},contentHtml:W(e.contentHtml,t),signingPlacements:n.filter(t=>t.pageId===e.id).map(e=>({id:e.id,pageId:e.pageId,type:e.type,x:e.x,y:e.y,width:e.width,height:e.height,mustSign:e.mustSign,...e.sealTypes?.length?{sealTypes:[...e.sealTypes]}:{}}))}))}function ie(e){let t=g(e);return{...t,rendererVersion:u,styleVersion:d,html:j(t)}}function P(e,t={}){let r=[],i=new Map;typeof t.maxPages==`number`&&e.pages.length>t.maxPages&&r.push({type:`page`,id:e.pages[t.maxPages]?.id??e.pages.at(-1)?.id??``,pageId:e.pages[t.maxPages]?.id,code:`PAGE_LIMIT_EXCEEDED`,message:`合同共 ${e.pages.length} 页,超过最多 ${t.maxPages} 页限制`}),e.variables.forEach(e=>{if(e.key?.trim()||r.push({type:`variable`,id:e.id,message:`${e.label||`变量`} 缺少变量标识`}),e.key){let t=i.get(e.key);t&&t!==e.id&&r.push({type:`variable`,id:e.id,message:`变量标识 ${e.key} 重复`}),i.set(e.key,e.id)}A(e.type)&&r.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key||`变量`} 不是正文填写变量`,code:`VARIABLE_TYPE_UNSUPPORTED`})});let a=new Set(e.variables.map(e=>e.key).filter(Boolean)),o=new Set;return e.pages.forEach(e=>{F(e).forEach(t=>{o.add(t),a.has(t)||r.push({type:`variable`,id:e.id,message:`正文模板变量 ${t} 没有对应变量配置`})})}),e.variables.forEach(e=>{e.key&&!o.has(e.key)&&r.push({type:`variable`,id:e.id,message:`${e.label||e.key} 缺少对应正文变量节点`})}),r.push(...n.validateSigningPlacements(e)),r}function F(e){let t=new Set;function n(e){if(!e||typeof e!=`object`)return;let r=e;ae(r.type)&&r.attrs?.key&&t.add(r.attrs.key),r.content?.forEach(n)}n(e.contentJson);let r=e.contentHtml||``,i=/data-template-variable=["']true["'][^>]*data-key=["']([^"']+)["']|data-key=["']([^"']+)["'][^>]*data-template-variable=["']true["']/g,a=i.exec(r);for(;a;){let e=a[1]||a[2];e&&t.add(e),a=i.exec(r)}return t}function ae(e){return e===`templateVariable`||e===`templateField`}function I(e){let t=new Set;return e.pages.forEach(e=>{F(e).forEach(e=>t.add(e))}),t}function L(e){let t=I(e);return{...e,variables:e.variables.filter(e=>e.key&&t.has(e.key))}}function R(e,t,n){let r=e??[];if(r.length<=1||n<=0)return;let i=Math.min(r.length,t.length),a=-1;for(let e=0;e<i;e+=1){let r=t[e];if(r.top+r.height>n+1){a=e;break}}if(!(a<=0))return{splitIndex:a,currentContent:r.slice(0,a),overflowContent:r.slice(a)}}function z(e,n){let r=y(e.pageSize,n);return[`class="gd-contract-template-page"`,`data-page-id="${t.escapeHtmlAttribute(e.id)}"`,`data-page-format="${t.escapeHtmlAttribute(r.format??`Custom`)}"`,`data-page-label="${t.escapeHtmlAttribute(r.label??r.format??`自定义`)}"`,`data-page-width="${r.width}"`,`data-page-height="${r.height}"`].join(` `)}var B=/<span\b[^>]*data-template-variable=["']true["'][^>]*>/g;function V(e){let n=new Map;function r(e){if(!e.key)return;let t=n.get(e.key);(!t||A(e.type)&&!A(t.type))&&n.set(e.key,e)}function i(e){if(!e||typeof e!=`object`)return;let t=e;t.type===`templateVariable`&&typeof t.attrs?.key==`string`&&r(U(t.attrs,t.attrs.key)),t.content?.forEach(i)}i(e.contentJson);let a=e.contentHtml||``;return t.canUseDomHtml()?new DOMParser().parseFromString(a,`text/html`).querySelectorAll(`[data-template-variable]`).forEach(e=>{r(H(t.createElementAttributeReader(e)))}):t.forEachHtmlTag(a,B,e=>{r(H(t.createTagAttributeReader(e)))}),Array.from(n.values())}function H(e){let n=e(`data-key`)??``,r=e(`data-variable-type`),i=e(`data-precision`),a=e(`data-use-grouping`);return{key:n,label:e(`data-label`)??n,type:r??`text`,placeholder:e(`data-placeholder`)??``,width:t.readNumberAttribute(e(`data-width`),160),height:t.readNumberAttribute(e(`data-height`),32),required:e(`data-required`)===`true`,defaultValue:e(`data-default-value`)??``,format:e(`data-format`)??``,precision:i?Number(i):void 0,useGrouping:a?a===`true`:void 0,checkedText:e(`data-checked-text`)??``,uncheckedText:e(`data-unchecked-text`)??``,multiline:e(`data-multiline`)===`true`,rows:t.readNumberAttribute(e(`data-rows`),3),lineHeight:t.readNumberAttribute(e(`data-line-height`),28),style:{border:t.readOptionalBoolean(e(`data-border`)),underline:t.readOptionalBoolean(e(`data-underline`)),color:e(`data-color`),background:e(`data-background`),fontSize:t.readNumberAttribute(e(`data-font-size`),14),fontFamily:e(`data-font-family`),placeholderColor:e(`data-placeholder-color`),lineColor:e(`data-line-color`),textAlign:Z(e(`data-text-align`)),borderStyle:Q(e(`data-border-style`)),objectFit:$(e(`data-object-fit`))}}}function U(e,n){let r=t=>typeof e[t]==`string`?e[t]:void 0;return{key:n,label:r(`label`)??n,type:e.type===void 0?`text`:e.type,placeholder:r(`placeholder`)??``,width:t.readNumberAttribute(e.width,160),height:t.readNumberAttribute(e.height,32),required:e.required===!0,defaultValue:r(`defaultValue`)??``,format:r(`format`)??``,precision:typeof e.precision==`number`?e.precision:void 0,useGrouping:typeof e.useGrouping==`boolean`?e.useGrouping:void 0,checkedText:r(`checkedText`)??``,uncheckedText:r(`uncheckedText`)??``,multiline:e.multiline===!0,rows:t.readNumberAttribute(e.rows,3),lineHeight:t.readNumberAttribute(e.lineHeight,28),style:{border:typeof e.border==`boolean`?e.border:void 0,underline:typeof e.underline==`boolean`?e.underline:void 0,color:r(`color`),background:r(`background`),fontSize:t.readNumberAttribute(e.fontSize,14),fontFamily:r(`fontFamily`),placeholderColor:r(`placeholderColor`),lineColor:r(`lineColor`),textAlign:Z(e.textAlign),borderStyle:Q(e.borderStyle),objectFit:$(e.objectFit)}}}function W(e,n){if(!e)return e;if(t.canUseDomHtml()){let t=new DOMParser().parseFromString(e,`text/html`);return G(t),t.querySelectorAll(`[data-template-variable]`).forEach(e=>{q(e,n)}),t.body.innerHTML}return t.replaceTemplateVariableSpans(se(e),(e,r)=>{let i=t.createTagAttributeReader(r);return i(`data-key`)?oe(i,n):e})}function G(e){e.querySelectorAll(`script,style,meta,link`).forEach(e=>e.remove()),e.querySelectorAll(`*`).forEach(e=>{Array.from(e.attributes).forEach(t=>{let n=t.name.toLowerCase(),r=t.value;if(n.startsWith(`on`)||n===`srcdoc`){e.removeAttribute(t.name);return}if((n===`href`||n===`src`)&&J(r)){e.removeAttribute(t.name);return}n===`style`&&Y(r)&&e.removeAttribute(t.name)})})}function K(e,n){let r=e(`data-key`)??``,a=n.get(r),o=a?.type??e(`data-variable-type`)??`text`,s=le(o,a?.defaultValue??e(`data-default-value`)??``),c=i.resolveTemplateVariablePresentation({type:o,width:a?.width??e(`data-width`),height:a?.height??e(`data-height`),defaultValue:s,placeholder:a?.placeholder??e(`data-placeholder`)??``,format:a?.format??e(`data-format`)??``,precision:a?.precision??t.readOptionalNumber(e(`data-precision`)),useGrouping:a?.useGrouping??t.readOptionalBoolean(e(`data-use-grouping`)),checkedText:a?.checkedText??e(`data-checked-text`)??``,uncheckedText:a?.uncheckedText??e(`data-unchecked-text`)??``,multiline:a?.multiline??t.readOptionalBoolean(e(`data-multiline`))??!1,rows:a?.rows??e(`data-rows`),lineHeight:a?.lineHeight??e(`data-line-height`),style:ce(a,e)});return{key:r,label:a?.label??e(`data-label`)??r,presentation:c,text:c.type===`image`&&c.hasDefaultValue?` `:c.displayText||` `}}function q(e,n){let{key:r,label:i,presentation:a,text:o}=K(t.createElementAttributeReader(e),n);e.setAttribute(`data-template-variable`,`true`),e.setAttribute(`data-key`,r),e.setAttribute(`data-label`,i),e.setAttribute(`data-variable-type`,a.type),e.setAttribute(`data-width`,String(a.width)),e.setAttribute(`data-height`,String(a.height)),e.setAttribute(`data-border`,String(a.border)),e.setAttribute(`data-underline`,String(a.underline)),e.setAttribute(`data-color`,a.color),e.setAttribute(`data-background`,a.background),e.setAttribute(`data-font-size`,String(a.fontSize)),e.setAttribute(`data-font-family`,a.fontFamily),e.setAttribute(`data-placeholder-color`,a.placeholderColor),e.setAttribute(`data-line-color`,a.lineColor),e.setAttribute(`data-text-align`,a.textAlign),e.setAttribute(`data-border-style`,a.borderStyle),e.setAttribute(`data-object-fit`,a.objectFit),e.className=a.classes.join(` `),e.setAttribute(`style`,a.styleText),e.textContent=o}function oe(e,n){let{key:r,label:i,presentation:a,text:o}=K(e,n);return`<span data-template-variable="true" data-key="${t.escapeHtmlAttribute(r)}" data-label="${t.escapeHtmlAttribute(i)}" data-variable-type="${t.escapeHtmlAttribute(a.type)}" data-width="${a.width}" data-height="${a.height}" data-border="${a.border}" data-underline="${a.underline}" data-font-family="${t.escapeHtmlAttribute(a.fontFamily)}" class="${t.escapeHtmlAttribute(a.classes.join(` `))}" style="${t.escapeHtmlAttribute(a.styleText)}">${t.escapeHtmlText(o)}</span>`}function se(e){return e.replace(/<\s*(script|style|meta|link)\b[\s\S]*?<\s*\/\s*\1\s*>/gi,``).replace(/<\s*(meta|link)\b[^>]*>/gi,``).replace(/\s+on[a-z]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,``).replace(/\s+srcdoc\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,``).replace(/\s+(href|src)\s*=\s*(["'])(.*?)\2/gi,(e,t,n,r)=>J(r)?``:` ${t}=${n}${r}${n}`).replace(/\s+style\s*=\s*(["'])(.*?)\1/gi,(e,t,n)=>Y(n)?``:` style=${t}${n}${t}`)}function ce(e,n){return{border:e?.style?.border??t.readOptionalBoolean(n(`data-border`)),underline:e?.style?.underline??t.readOptionalBoolean(n(`data-underline`)),color:e?.style?.color??n(`data-color`),background:e?.style?.background??n(`data-background`),fontSize:e?.style?.fontSize??t.readOptionalNumber(n(`data-font-size`)),fontFamily:e?.style?.fontFamily??n(`data-font-family`),placeholderColor:e?.style?.placeholderColor??n(`data-placeholder-color`),lineColor:e?.style?.lineColor??n(`data-line-color`),textAlign:e?.style?.textAlign??Z(n(`data-text-align`)),borderStyle:e?.style?.borderStyle??Q(n(`data-border-style`)),objectFit:e?.style?.objectFit??$(n(`data-object-fit`))}}function le(e,t){return e===`image`&&J(t)?``:t}function J(e){let t=e.trim().replace(/[\u0000-\u001F\s]+/g,``).toLowerCase();return t.startsWith(`javascript:`)||t.startsWith(`vbscript:`)||t.startsWith(`data:`)&&!t.startsWith(`data:image/`)}function Y(e){return/expression\s*\(|javascript:|vbscript:/i.test(e)}function ue(e){if(!e)return e;if(t.canUseDomHtml()){let t=new DOMParser().parseFromString(e,`text/html`);return t.querySelectorAll(`[data-template-variable]`).forEach(e=>{let t=e.dataset.key||``;t&&(e.textContent=`\${{${t}}}`)}),t.body.innerHTML}return t.replaceTemplateVariableSpans(e,(e,n)=>{let r=t.createTagAttributeReader(n)(`data-key`);return r?`<span${n}>\${{${r}}}</span>`:e})}function de(e){return e===`left`||e===`center`||e===`right`}function fe(e){return e===`solid`||e===`dashed`}function X(e){return e===`contain`||e===`cover`||e===`fill`}function Z(e){return de(e)?e:void 0}function Q(e){return fe(e)?e:void 0}function $(e){return X(e)?e:void 0}function pe(e,t=[]){let n=[...t,...P(e)],r=new Set;return n.filter(e=>{let t=`${e.code??``}|${e.id}|${e.pageId??``}|${e.message}`;return r.has(t)?!1:(r.add(t),!0)})}exports.CONTRACT_TEMPLATE_RENDERER_VERSION=u,exports.CONTRACT_TEMPLATE_STYLE_VERSION=d,exports.DEFAULT_FIELD_STYLE=s,exports.DEFAULT_FIELD_TYPES=p,exports.DEFAULT_MULTILINE_LINE_HEIGHT=l,exports.DEFAULT_MULTILINE_ROWS=c,exports.DEFAULT_PAGE_SIZE=o,exports.PAGE_SIZE_OPTIONS=a,exports.buildTemplateExpressionHtml=j,exports.buildTemplateHtml=re,exports.buildTemplatePreviewHtml=M,exports.buildTemplatePreviewPages=N,exports.cloneTemplateValue=g,exports.collectTemplateLocationRuleExportErrors=pe,exports.collectTemplateValueVariableKeys=I,exports.collectTemplateVariableKeys=F,exports.constrainTemplatePageSizes=C,exports.createBlankPage=E,exports.createBlankTemplate=ee,exports.createDefaultPage=T,exports.createDefaultTemplate=D,exports.createDesignerId=h,exports.createTemplateVariable=k,exports.exportTemplateValue=ie,exports.findPageSizeOption=S,exports.getFieldOption=O,exports.getPageSizeKey=b,exports.getPageSizeOption=_,exports.inferPageFormat=v,exports.normalizeContractTemplateMaxPages=f,exports.normalizePageSizeOptions=x,exports.normalizeTemplateValue=ne,exports.resolvePageSize=y,exports.splitPageContentByMeasurements=R,exports.syncTemplateVariablesWithPages=L,exports.validateTemplateValue=P;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=1,t=`gd-antdv:pro-contract-template-designer:draft`,
|
|
1
|
+
var e=1,t=1,n=`gd-antdv:pro-contract-template-designer:draft`,r=5e3,i=2*1024*1024;function a(){if(!(typeof window>`u`))try{let e=window.localStorage,t=`${n}:availability`;return e.setItem(t,`1`),e.removeItem(t),e}catch{return}}function o(e,t,n={}){return{type:e,message:t,...n}}function s(e){return typeof TextEncoder<`u`?new TextEncoder().encode(e).length:e.length*2}function c(e){if(!e)return``;let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`}function l(e){let{storage:t,key:n,value:r,maxBytes:i,previousValueSerialized:a}=e;if(!t)return{status:o(`unavailable`,`localStorage 不可用`)};let c=JSON.stringify(r);if(c===a)return{status:o(`unchanged`,`草稿内容未变化`),valueSerialized:c};let l=Date.now(),u=JSON.stringify({version:1,savedAt:l,value:r}),d=s(u);if(d>i)return{status:o(`too-large`,`草稿过大,未缓存`,{bytes:d,maxBytes:i}),valueSerialized:c};try{return t.setItem(n,u),{status:o(`saved`,`草稿已缓存`,{savedAt:l,bytes:d,maxBytes:i}),valueSerialized:c}}catch(e){return{status:o(`write-failed`,`草稿缓存失败`,{bytes:d,maxBytes:i,error:e instanceof Error?e.message:String(e)}),valueSerialized:c}}}function u(e){let{storage:t,key:n,value:r,maxBytes:i,previousValueSerialized:a}=e;if(!t)return{status:o(`unavailable`,`localStorage 不可用`)};let c=JSON.stringify(r);if(c===a)return{status:o(`unchanged`,`草稿内容未变化`),valueSerialized:c};let l=Date.now(),u=JSON.stringify({kind:`files`,version:1,savedAt:l,value:r}),d=s(u);if(d>i)return{status:o(`too-large`,`草稿过大,未缓存`,{bytes:d,maxBytes:i}),valueSerialized:c};try{return t.setItem(n,u),{status:o(`saved`,`草稿已缓存`,{savedAt:l,bytes:d,maxBytes:i}),valueSerialized:c}}catch(e){return{status:o(`write-failed`,`草稿缓存失败`,{bytes:d,maxBytes:i,error:e instanceof Error?e.message:String(e)}),valueSerialized:c}}}function d(e,t){if(!e)return{status:o(`unavailable`,`localStorage 不可用`)};let n;try{n=e.getItem(t)}catch(e){return{status:o(`read-failed`,`草稿读取失败`,{error:e instanceof Error?e.message:String(e)})}}if(!n)return{status:o(`idle`,`暂无本地草稿`)};try{let e=JSON.parse(n);return e.version!==1||!e.value?{status:o(`invalid`,`草稿版本不兼容`)}:{status:o(`restored`,`已恢复本地草稿`,{savedAt:e.savedAt,bytes:s(n)}),value:e.value,valueSerialized:JSON.stringify(e.value)}}catch(e){return{status:o(`invalid`,`草稿格式无效`,{error:e instanceof Error?e.message:String(e)})}}}function f(e,t){if(!e)return{status:o(`unavailable`,`localStorage 不可用`)};let n;try{n=e.getItem(t)}catch(e){return{status:o(`read-failed`,`草稿读取失败`,{error:e instanceof Error?e.message:String(e)})}}if(!n)return{status:o(`idle`,`暂无本地草稿`)};try{let e=JSON.parse(n);return e.kind!==`files`||e.version!==1||!e.value||!Array.isArray(e.value.files)||typeof e.value.activeFileId!=`string`?{status:o(`invalid`,`草稿版本不兼容`)}:{status:o(`restored`,`已恢复本地草稿`,{savedAt:e.savedAt,bytes:s(n)}),value:e.value,valueSerialized:JSON.stringify(e.value)}}catch(e){return{status:o(`invalid`,`草稿格式无效`,{error:e instanceof Error?e.message:String(e)})}}}function p(e,t){if(!e)return o(`unavailable`,`localStorage 不可用`);try{return e.removeItem(t),o(`cleared`,`草稿缓存已清理`)}catch(e){return o(`write-failed`,`草稿缓存清理失败`,{error:e instanceof Error?e.message:String(e)})}}function m(e){if(!e)return!0;if(e.variables.length||e.pages.length>1||e.signingPlacements?.length)return!1;let t=e.pages[0];return t?g(t.contentHtml||``)&&_(t.contentJson):!0}function h(e){return!e||e.files.length===0||e.files.every(e=>m(e.template))}function g(e){return e.replace(/<br\s*\/?>/gi,``).replace(/<\/?p[^>]*>/gi,``).replace(/ /gi,``).replace(/\s+/g,``).trim().length===0}function _(e){return e?.content?.length?e.content.every(e=>{if(e.type!==`paragraph`)return!1;let t=e.content;return t?.length?t.every(e=>e.type===`text`&&!String(e.text||``).trim()):!0}):!0}exports.CONTRACT_TEMPLATE_DRAFT_CACHE_VERSION=e,exports.CONTRACT_TEMPLATE_FILES_DRAFT_CACHE_VERSION=t,exports.DEFAULT_DRAFT_CACHE_INTERVAL=r,exports.DEFAULT_DRAFT_CACHE_KEY=n,exports.DEFAULT_DRAFT_CACHE_MAX_BYTES=i,exports.clearTemplateDraftCache=p,exports.createDraftCacheStatus=o,exports.estimateDraftCacheBytes=s,exports.formatDraftCacheSavedAt=c,exports.getBrowserDraftCacheStorage=a,exports.isBlankTemplateDraftValue=m,exports.isBlankTemplateFilesDraftValue=h,exports.loadTemplateDraftCache=d,exports.loadTemplateFilesDraftCache=f,exports.saveTemplateDraftCache=l,exports.saveTemplateFilesDraftCache=u;
|
package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-files.cjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./use-template-designer.cjs`);function t(t){return t.map(t=>({id:t.id,name:t.name,template:e.cloneTemplateValue(t.template)}))}function n(t=`合同文件 1`,n){return{id:e.createDesignerId(`contract-file`),name:t.trim()||`合同文件`,template:e.createBlankTemplate(n)}}function r(t,n,r){let i=Array.isArray(t)&&t.length?t:[{id:e.createDesignerId(`contract-file`),name:`合同文件 1`,template:n??e.createBlankTemplate(r)}],a=new Set;return i.map((t,n)=>{let i=typeof t?.id==`string`?t.id.trim():``;return(!i||a.has(i))&&(i=e.createDesignerId(`contract-file`)),a.add(i),{id:i,name:String(t?.name||``).trim()||`合同文件 ${n+1}`,template:e.normalizeTemplateValue(t?.template,r)}})}function i(e,t){let n=typeof t==`string`?t.trim():``;return e.some(e=>e.id===n)?n:e[0]?.id??``}function a(t,n,r){return t.map(t=>t.id===n?{...t,template:e.cloneTemplateValue(r)}:t)}function o(e,t,n){let r=n.trim();return e.map(e=>e.id===t?{...e,name:r||e.name}:e)}function s(e,t){return e.length<=1||!e.some(e=>e.id===t)?[...e]:e.filter(e=>e.id!==t)}function c(e,t,n){let r=e.findIndex(e=>e.id===t),i=r+n;if(r<0||i<0||i>=e.length)return[...e];let a=[...e],[o]=a.splice(r,1);return o&&a.splice(i,0,o),a}function l(t){let n=t.map(t=>{let n=e.exportTemplateValue(t.template);return{id:t.id,name:t.name,template:n,html:n.html}});return{files:n,combinedHtml:n.map(e=>`<section data-contract-file-id="${u(e.id)}" data-contract-file-name="${u(e.name)}">${e.template.html}</section>`).join(`
|
|
2
|
+
`)}}function u(e){return e.replaceAll(`&`,`&`).replaceAll(`"`,`"`).replaceAll(`<`,`<`).replaceAll(`>`,`>`)}exports.cloneContractTemplateFiles=t,exports.createContractTemplateFile=n,exports.exportContractTemplateFiles=l,exports.moveContractTemplateFile=c,exports.normalizeContractTemplateFiles=r,exports.removeContractTemplateFile=s,exports.renameContractTemplateFile=o,exports.replaceContractTemplateFile=a,exports.resolveContractTemplateActiveFileId=i;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../utils/
|
|
1
|
+
require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../utils/html.cjs`),t=require(`../utils/word-paste.cjs`);let n=require(`@tiptap/core`),r=require(`@tiptap/pm/state`);var i=0,a=`application/x-gd-contract-template`,o=`contract-template-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,s=new r.PluginKey(`contractWordPasteAsyncRange`),c=n.Extension.create({name:`wordPaste`,priority:200,addOptions(){return{}},addStorage(){return{}},transformPastedHTML(e){let n=this.storage.pending,r=t.normalizeWordClipboardHtml(e,{plainText:n?.plainText,rtf:n?.rtf,trustedInternal:n?.trustedInternal});return n&&(n.source=r.source,n.recoveredRtfImages=r.recoveredImageCount),r.html},addProseMirrorPlugins(){let n=this.editor,c=this.storage,m=this.options.processImageFile;return[new r.Plugin({key:s,state:{init:()=>new Map,apply:(e,t)=>{let n=e.getMeta(s);if(!n&&(!e.docChanged||!t.size))return t;let r=new Map(t);if(n?.type===`set`?r.set(n.token,{token:n.token,from:n.from,to:n.to}):n?.type===`clear`&&r.delete(n.token),!e.docChanged||!r.size)return r;for(let[t,n]of Array.from(r.entries())){let i=n.from===n.to,a=e.mapping.mapResult(n.from,1),o=e.mapping.mapResult(n.to,i?1:-1);a.deletedAcross||o.deletedAcross||a.pos>o.pos?r.delete(t):r.set(t,{token:t,from:a.pos,to:o.pos})}return r}},props:{handleDOMEvents:{copy:(e,t)=>l(e,t,!1),cut:(e,t)=>l(e,t,!0),paste:(e,n)=>{let r=n.clipboardData;if(!r)return!1;let i=r.getData(`text/html`),s={html:i,plainText:r.getData(`text/plain`),rtf:r.getData(`text/rtf`)||r.getData(`application/rtf`),files:f(r),source:t.detectClipboardHtmlSource(i),recoveredRtfImages:0,trustedInternal:r.getData(a)===o||i.includes(`data-gd-contract-copy="${o}"`)||i.includes(`data-gd-contract-copy='${o}'`)};return c.pending=s,queueMicrotask(()=>{c.pending===s&&(c.pending=void 0)}),!1}},handlePaste:(r,a)=>{let o=c.pending;if(!o)return!1;let l=o.files.length?o.files:f(a.clipboardData),h=o.recoveredRtfImages||p(o.rtf),g=l.length>0&&h===0&&!o.trustedInternal;if(c.pending=void 0,!g)return!1;a.preventDefault();let _=`word-paste-${++i}`,v={token:_,from:r.state.selection.from,to:r.state.selection.to};return r.dispatch(r.state.tr.setMeta(s,{type:`set`,...v}).setMeta(`addToHistory`,!1)),t.readClipboardImageFiles(l,m).then(r=>{if(n.isDestroyed)return;let i=s.getState(n.state)?.get(_);if(!i)return;let a=r.filter(e=>!!e);d(n,i,(o.html?t.normalizeWordClipboardHtml(o.html,{plainText:o.plainText,rtf:o.rtf,clipboardImages:r,preferClipboardImages:!0,trustedInternal:o.trustedInternal}).html:a.length?`<p>${a.map(t=>`<img src="${e.escapeHtmlAttribute(t)}" alt="">`).join(``)}</p>`:t.plainTextToSafeHtml(o.plainText))||t.plainTextToSafeHtml(o.plainText))}).catch(()=>{if(n.isDestroyed)return;let e=s.getState(n.state)?.get(_);e?d(n,e,t.plainTextToSafeHtml(o.plainText)):u(n,_)}),!0}}})]}});function l(e,t,n){if(e.state.selection.empty||!t.clipboardData)return!1;let{dom:r,text:i}=e.serializeForClipboard(e.state.selection.content());r.firstElementChild?.setAttribute(`data-gd-contract-copy`,o),t.preventDefault(),t.clipboardData.clearData(),t.clipboardData.setData(`text/html`,r.innerHTML),t.clipboardData.setData(`text/plain`,i);try{t.clipboardData.setData(a,o)}catch{}return n&&e.dispatch(e.state.tr.deleteSelection().scrollIntoView().setMeta(`uiEvent`,`cut`)),!0}function u(e,t){e.isDestroyed||e.view.dispatch(e.state.tr.setMeta(s,{type:`clear`,token:t}).setMeta(`addToHistory`,!1))}function d(e,t,n){e.chain().insertContentAt({from:t.from,to:t.to},n,{updateSelection:!1}).command(({tr:e})=>(e.setMeta(s,{type:`clear`,token:t.token}),e.setMeta(`paste`,!0),e.setMeta(`uiEvent`,`paste`),!0)).run()||u(e,t.token)}function f(e){if(!e)return[];let t=[];for(let n of Array.from(e.items)){if(n.kind!==`file`||!n.type.toLowerCase().startsWith(`image/`))continue;let e=n.getAsFile();e&&t.push(e)}if(!t.length)for(let n of Array.from(e.files))n.type.toLowerCase().startsWith(`image/`)&&t.push(n);return t}function p(e){return t.extractRtfImageDataUrls(e).length}exports.WordPaste=c;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e,t,n){if(!(n<=0||e<0||e>=n))switch(t){case`ArrowDown`:case`ArrowRight`:return(e+1)%n;case`ArrowLeft`:case`ArrowUp`:return(e-1+n)%n;case`Home`:return 0;case`End`:return n-1;default:return}}exports.resolveContractTemplateFileTabTargetIndex=e;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const e=require(
|
|
2
|
-
`)}function m(e){return e==null||e===``}function h(e,
|
|
1
|
+
const e=require(`../types.cjs`),t=require(`./html.cjs`),n=require(`./template-variable-render.cjs`),r=require(`../composables/use-template-designer.cjs`),i=require(`./image-url.cjs`);var a=new Set([`action`,`formaction`,`href`,`src`,`xlink:href`]),o=/<[^>]+data-template-variable=["']true["'][^>]*>/gi;function s(e){let t={};return(Array.isArray(e?.variables)?e.variables:[]).forEach(e=>{e?.key&&(t[e.key]=b(e))}),t}function c(e,t){return{...s(e),...t??{}}}function l(e,t){let n=d(e);if(!e)return n;let r=Array.isArray(e.variables)?e.variables:[],a=new Set(r.map(e=>e?.key).filter(Boolean));return Object.keys(t).forEach(e=>{a.has(e)||n.push({type:`variable`,id:e,variableKey:e,message:`提交值 ${e} 不属于模板变量`,code:`VARIABLE_UNKNOWN`})}),r.forEach(e=>{if(!e?.key)return;let r=t[e.key];if(e.required&&m(r)){n.push({type:`variable`,id:e.id,variableKey:e.key,message:`请填写${e.label||e.key}`,code:`VARIABLE_REQUIRED`});return}m(r)||(e.type===`number`&&(typeof r!=`number`||!Number.isFinite(r))&&n.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是合法数字`,code:`VARIABLE_TYPE_INVALID`}),e.type===`checkbox`&&typeof r!=`boolean`&&n.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是合法复选值`,code:`VARIABLE_TYPE_INVALID`}),e.type===`date`&&!A(r)&&n.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是合法日期`,code:`VARIABLE_TYPE_INVALID`}),e.type===`image`&&!i.isSafeContractImageUrl(String(r))&&n.push({type:`security`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是安全的图片地址`,code:`IMAGE_URL_UNSAFE`}))}),n}function u(e,t,n){return n?l(e,t):d(e)}function d(n){if(!n)return[{type:`page`,id:`template`,message:`缺少可渲染的合同模板`,code:`TEMPLATE_MISSING`}];let r=[],i=Array.isArray(n.pages)?n.pages:[],a=Array.isArray(n.variables)?n.variables:[];(!Array.isArray(n.pages)||i.length===0)&&r.push({type:`page`,id:`template-pages`,message:`模板至少需要一个合法页面`,code:`TEMPLATE_PAGES_INVALID`}),Array.isArray(n.variables)||r.push({type:`variable`,id:`template-variables`,message:`模板变量列表格式无效`,code:`TEMPLATE_VARIABLES_INVALID`}),t.hasPositivePageSize(n.pageSize)||r.push({type:`page`,id:`template-page-size`,message:`模板默认页面尺寸无效,已回退为安全默认尺寸`,code:`TEMPLATE_PAGE_SIZE_INVALID`});let o=new Map;a.forEach((t,n)=>{if(!t||typeof t.key!=`string`||!t.key.trim()){r.push({type:`variable`,id:t?.id||`variable-${n}`,message:`第 ${n+1} 个变量缺少有效 key`,code:`VARIABLE_KEY_MISSING`});return}o.set(t.key,(o.get(t.key)??0)+1),e.isContractTemplateFieldType(t.type??`text`)||r.push({type:`variable`,id:t.id,variableKey:t.key,message:`${t.label||t.key} 不是正文填写变量`,code:`VARIABLE_TYPE_UNSUPPORTED`})}),o.forEach((e,t)=>{e>1&&r.push({type:`variable`,id:t,variableKey:t,message:`变量 key ${t} 重复`,code:`VARIABLE_KEY_DUPLICATED`})});let s=new Set;return i.forEach((e,n)=>{if(!e||typeof e.id!=`string`||!e.id.trim()||typeof e.contentHtml!=`string`){r.push({type:`page`,id:e?.id||`page-${n}`,pageId:e?.id,message:`第 ${n+1} 页结构无效,已跳过渲染`,code:`PAGE_INVALID`});return}e.pageSize!==void 0&&!t.hasPositivePageSize(e.pageSize)&&r.push({type:`page`,id:`${e.id}-page-size`,pageId:e.id,message:`${e.title||`第 ${n+1} 页`}:页面尺寸无效,已回退为安全尺寸`,code:`PAGE_SIZE_INVALID`}),T(e.contentHtml).forEach(e=>s.add(e)),E(e.contentHtml).forEach((t,i)=>{r.push({type:`security`,id:`${e.id}-security-${i}`,pageId:e.id,message:`${e.title||`第 ${n+1} 页`}:${t}`,code:`HTML_UNSAFE`})})}),s.forEach(e=>{o.has(e)||r.push({type:`variable`,id:e,variableKey:e,message:`正文引用的变量 ${e} 缺少配置`,code:`VARIABLE_CONFIG_MISSING`})}),o.forEach((e,t)=>{s.has(t)||r.push({type:`variable`,id:t,variableKey:t,message:`变量 ${t} 缺少正文节点`,code:`VARIABLE_NODE_MISSING`})}),r}function f(e,n,i={}){if(!e||!Array.isArray(e.pages))return[];let a=Array.isArray(e.variables)?e.variables:[],o=new Map(a.filter(e=>e?.key).map(e=>[e.key,e])),s=t.hasPositivePageSize(e.pageSize)?e.pageSize:r.DEFAULT_PAGE_SIZE;return e.pages.flatMap(e=>{if(!e||typeof e.id!=`string`||!e.id.trim()||typeof e.contentHtml!=`string`)return[];let t=r.resolvePageSize(e.pageSize,s);return[{id:e.id,title:e.title||`未命名页面`,format:t.format??`Custom`,width:t.width,height:t.height,contentHtml:h(e.contentHtml,o,n,i)}]})}function p(e,n,r={}){return f(e,n,r).map(e=>`<section class="gd-contract-template-page" data-page-id="${t.escapeHtmlAttribute(e.id)}" data-page-format="${t.escapeHtmlAttribute(e.format)}" data-page-width="${e.width}" data-page-height="${e.height}" style="width:${e.width}px;min-height:${e.height}px">${e.contentHtml}</section>`).join(`
|
|
2
|
+
`)}function m(e){return e==null||e===``}function h(e,n,r,i){if(!e)return e;let a=w(e);if(t.canUseDomHtml()){let e=new DOMParser().parseFromString(a,`text/html`);return e.querySelectorAll(`[data-template-variable]`).forEach(e=>{g(e,n,r,i)}),e.body.innerHTML}return t.replaceTemplateVariableSpans(a,(e,a)=>{let o=t.getHtmlAttribute(a,`data-key`);return o?_(n.get(o),o,r[o],i):e})}function g(e,t,n,r){let i=e.dataset.key||``,a=t.get(i);if(!i||!a)return;let o=new DOMParser().parseFromString(_(a,i,n[i],r),`text/html`).body.firstElementChild;o&&e.replaceWith(o)}function _(e,t,n,r){return r.mode===`display`?v(e,t,n,r):y(e,t,n,r)}function v(e,r,a,o){let s=e?.type??`text`,c=a??b(e),l=s===`image`&&!m(c)&&!i.isSafeContractImageUrl(String(c))?``:c,u=S(l),d=n.resolveTemplateVariablePresentation({type:s,width:e?.width,height:e?.height,placeholder:e?.placeholder??``,defaultValue:u,format:e?.format??``,precision:e?.precision,useGrouping:e?.useGrouping,checkedText:e?.checkedText??``,uncheckedText:e?.uncheckedText??``,multiline:e?.multiline,rows:e?.rows,lineHeight:e?.lineHeight,style:e?.style}),f=d.displayText||e?.placeholder||e?.label||r,p=[`class="${t.escapeHtmlAttribute([`gd-contract-template-renderer__control`,`gd-contract-template-renderer__preview-control`,...d.classes,o.activeKey===r?`is-active`:``,m(l)?`is-empty`:``].filter(Boolean).join(` `))}"`,`style="${t.escapeHtmlAttribute(d.styleText)}"`,`data-contract-render-wrapper="true"`,`data-contract-render-preview="true"`,`data-key="${t.escapeHtmlAttribute(r)}"`,`data-variable-type="${t.escapeHtmlAttribute(s)}"`,`aria-label="${t.escapeHtmlAttribute(e?.label||r)}"`,o.disabled?``:`role="button"`,o.disabled?``:`tabindex="0"`].filter(Boolean).join(` `);return s===`checkbox`?`<span ${p}><span class="gd-contract-template-renderer__checkbox-mark" aria-hidden="true">${C(l)?`✓`:``}</span>${t.escapeHtmlText(f)}</span>`:s===`image`&&!m(l)?`<span ${p}></span>`:`<span ${p}>${t.escapeHtmlText(f)}</span>`}function y(e,r,i,a){let o=e?.type??`text`,s=!!a.readonly,c=x(i??b(e)),l=n.resolveTemplateVariablePresentation({type:o,width:e?.width,height:e?.height,placeholder:e?.placeholder??``,defaultValue:s?c:``,format:e?.format??``,precision:e?.precision,useGrouping:e?.useGrouping,checkedText:e?.checkedText??``,uncheckedText:e?.uncheckedText??``,multiline:e?.multiline,rows:e?.rows,lineHeight:e?.lineHeight,style:e?.style}),u=a.disabled||s,d=[`data-contract-render-control="true"`,`data-key="${t.escapeHtmlAttribute(r)}"`,`data-variable-type="${t.escapeHtmlAttribute(o)}"`,`aria-label="${t.escapeHtmlAttribute(e?.label||r)}"`,u?`disabled`:``,s?`readonly`:``].filter(Boolean).join(` `),f=`style="${t.escapeHtmlAttribute(l.styleText)}"`,p=t.escapeHtmlAttribute([`gd-contract-template-renderer__control`,...l.classes].join(` `));return o===`checkbox`?`<label class="${p}" ${f} data-contract-render-wrapper="true" data-key="${t.escapeHtmlAttribute(r)}"><input type="checkbox" ${d} ${C(c)?`checked`:``}>${t.escapeHtmlText(e?.checkedText||e?.label||r)}</label>`:s?`<span class="${p}" ${f} data-contract-render-wrapper="true" data-key="${t.escapeHtmlAttribute(r)}">${t.escapeHtmlText(l.displayText||c)}</span>`:o===`number`?`<input class="${p}" ${f} type="number" ${d} value="${t.escapeHtmlAttribute(c)}" placeholder="${t.escapeHtmlAttribute(e?.placeholder||``)}">`:o===`date`?`<input class="${p}" ${f} type="date" ${d} value="${t.escapeHtmlAttribute(c)}" placeholder="${t.escapeHtmlAttribute(e?.placeholder||``)}">`:e?.multiline?`<textarea class="${p}" ${f} ${d} placeholder="${t.escapeHtmlAttribute(e.placeholder||``)}">${t.escapeHtmlText(c)}</textarea>`:`<input class="${p}" ${f} type="text" ${d} value="${t.escapeHtmlAttribute(c)}" placeholder="${t.escapeHtmlAttribute(e?.placeholder||``)}">`}function b(e){if(!e)return``;if(e.type===`checkbox`)return C(e.defaultValue);if(e.type===`number`&&e.defaultValue!==void 0){let t=Number(e.defaultValue);return Number.isFinite(t)?t:e.defaultValue}return e.defaultValue??``}function x(e){return typeof e==`boolean`?e?`true`:``:e==null?``:String(e)}function S(e){return typeof e==`boolean`?e?`true`:`false`:e==null?``:String(e)}function C(e){return e===!0||e===`true`||e===`1`||e===`yes`||e===`是`||e===`已选`}function w(e){if(t.canParseHtmlDocument()){let t=new DOMParser().parseFromString(e,`text/html`);return t.querySelectorAll(`script,style,meta,link,iframe,object,embed`).forEach(e=>e.remove()),t.querySelectorAll(`*`).forEach(e=>{Array.from(e.attributes).forEach(t=>{let n=t.name.toLowerCase();(n.startsWith(`on`)||n===`srcdoc`||a.has(n)&&D(t.value)||n===`style`&&k(t.value))&&e.removeAttribute(t.name)})}),t.body.innerHTML}return e.replace(/<\s*(script|style|iframe|object|embed)\b[^>]*>[\s\S]*?<\s*\/\s*\1\s*>/gi,``).replace(/<\s*\/?\s*(?:script|style|meta|link|iframe|object|embed)\b[^>]*>/gi,``).replace(/\s+on[a-z]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,``).replace(/\s+srcdoc\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,``).replace(/\s+(action|formaction|href|src|xlink:href)\s*=\s*(?:(["'])(.*?)\2|([^\s>]+))/gi,(e,t,n,r,i)=>{let a=r??i??``;return D(a)?``:n?` ${t}=${n}${a}${n}`:` ${t}=${a}`}).replace(/\s+style\s*=\s*(["'])(.*?)\1/gi,(e,t,n)=>k(n)?``:` style=${t}${n}${t}`)}function T(e){return t.collectFromHtmlTags(e,o,e=>t.getHtmlAttribute(e,`data-key`))}function E(e){let t=[];return/<\s*(script|style|meta|link|iframe|object|embed)\b/i.test(e)&&t.push(`正文包含已移除的危险标签`),/\s(?:on[a-z]+|srcdoc)\s*=/i.test(e)&&t.push(`正文包含已移除的事件或嵌入属性`),(O(e)||/style\s*=\s*["'][^"']*(?:expression\s*\(|url\s*\(\s*["']?\s*(?:javascript|vbscript|data:text\/html))/i.test(e))&&t.push(`正文包含已移除的危险 URL 或样式`),t}function D(e){let t=e.replace(/&#(?:x([\da-f]+)|(\d+));?/gi,(e,t,n)=>{let r=Number.parseInt(t??n??``,t?16:10);try{return Number.isFinite(r)?String.fromCodePoint(r):e}catch{return e}}).replace(/&(colon|tab|newline);/gi,(e,t)=>({colon:`:`,newline:`
|
|
3
3
|
`,tab:` `})[t.toLowerCase()]??``).trim().replace(/[\u0000-\u0020\u007F]+/g,``);return/^(?:javascript|vbscript|data:text\/html)/i.test(t)}function O(e){let t=/\s+(?:action|formaction|href|src|xlink:href)\s*=\s*(?:(["'])(.*?)\1|([^\s>]+))/gi,n=t.exec(e);for(;n;){if(D(n[2]??n[3]??``))return!0;n=t.exec(e)}return!1}function k(e){return/expression\s*\(|url\s*\(\s*["']?\s*(?:javascript|vbscript|data:text\/html)/i.test(e)}function A(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(String(e));if(!t)return!1;let n=new Date(`${t[1]}-${t[2]}-${t[3]}T00:00:00Z`);return!Number.isNaN(n.getTime())&&n.getUTCFullYear()===Number(t[1])&&n.getUTCMonth()+1===Number(t[2])&&n.getUTCDate()===Number(t[3])}exports.buildInitialRenderValues=s,exports.buildTemplateRenderHtml=p,exports.buildTemplateRenderPages=f,exports.isEmptyRenderValue=m,exports.normalizeRenderValues=c,exports.resolveTemplateRenderSubmitErrors=u,exports.sanitizeContractRendererHtml=w,exports.validateTemplateRenderStructure=d,exports.validateTemplateRenderValues=l;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=[`table`,`cleanup`,`typography`,`insert`];function t(t){let n=t.buffer??0,r=e.reduce((e,n)=>e+(t.groupWidths[n]??0),0);if(t.fixedWidth+r+n<=t.availableWidth)return[];let i=[],a=t.fixedWidth+r+t.moreWidth;for(let n of e){if(a<=t.availableWidth)break;i.push(n),a-=t.groupWidths[n]??0}return i}exports.CONTRACT_TEMPLATE_TOOLBAR_OVERFLOW_PRIORITY=e,exports.resolveContractTemplateToolbarOverflowKeys=t;
|