@guodun/antdv 1.4.4 → 1.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/dist/es/components/contract-signing-location/src/ContractSigningLocation.vue.mjs +85 -85
  2. package/dist/es/components/contract-signing-location/src/template-source.mjs +63 -4
  3. package/dist/es/components/dept-selector/src/dept.mjs +170 -142
  4. package/dist/es/components/index.mjs +1 -0
  5. package/dist/es/components/pro-contract-template-designer/index.mjs +1 -0
  6. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.mjs +372 -185
  7. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.vue.mjs +59 -42
  8. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateRendererField.vue.mjs +218 -85
  9. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateVariableDataModal.mjs +5 -0
  10. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateVariableDataModal.vue.mjs +97 -0
  11. package/dist/es/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.mjs +914 -853
  12. package/dist/es/components/pro-contract-template-designer/src/ProContractTemplateRenderer.vue.mjs +550 -245
  13. package/dist/es/components/pro-contract-template-designer/src/composables/use-template-designer.mjs +214 -139
  14. package/dist/es/components/pro-contract-template-designer/src/extensions/template-variable.mjs +53 -35
  15. package/dist/es/components/pro-contract-template-designer/src/types.mjs +15 -2
  16. package/dist/es/components/pro-contract-template-designer/src/utils/advanced-controls.mjs +91 -0
  17. package/dist/es/components/pro-contract-template-designer/src/utils/template-renderer.mjs +96 -65
  18. package/dist/es/components/pro-contract-template-designer/src/utils/template-tool-icons.mjs +23 -16
  19. package/dist/es/components/pro-contract-template-designer/style/index.css +1 -1
  20. package/dist/es/components/pro-selector/src/components/org-tree.mjs +130 -89
  21. package/dist/es/components/pro-selector/src/components/user.mjs +34 -26
  22. package/dist/es/components/pro-selector/src/pro-user.mjs +86 -72
  23. package/dist/es/components/pro-selector/src/types.mjs +4 -1
  24. package/dist/es/components/pro-selector/src/utils/orgTree.mjs +5 -2
  25. package/dist/es/components/pro-selector-group/src/compoents/dept-tree.vue.mjs +92 -65
  26. package/dist/es/components/pro-selector-group/src/compoents/dept.vue.mjs +3 -3
  27. package/dist/es/components/pro-selector-group/src/compoents/role.vue.mjs +98 -73
  28. package/dist/es/components/pro-selector-group/src/compoents/select-box.vue.mjs +12 -9
  29. package/dist/es/components/pro-selector-group/src/compoents/user.vue.mjs +101 -72
  30. package/dist/es/components/pro-selector-group/src/hooks/useApi.mjs +39 -22
  31. package/dist/es/components/pro-selector-group/src/index.vue.mjs +105 -83
  32. package/dist/es/components/pro-selector-group/src/utils/index.mjs +36 -0
  33. package/dist/es/components/role-selector/src/role.mjs +134 -120
  34. package/dist/es/index.mjs +50 -49
  35. package/dist/lib/components/contract-signing-location/src/ContractSigningLocation.vue.cjs +1 -1
  36. package/dist/lib/components/contract-signing-location/src/template-source.cjs +1 -1
  37. package/dist/lib/components/dept-selector/src/dept.cjs +1 -1
  38. package/dist/lib/components/index.cjs +1 -1
  39. package/dist/lib/components/pro-contract-template-designer/index.cjs +1 -1
  40. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.cjs +2 -1
  41. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.vue.cjs +1 -1
  42. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateRendererField.vue.cjs +1 -1
  43. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateVariableDataModal.cjs +1 -0
  44. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateVariableDataModal.vue.cjs +1 -0
  45. package/dist/lib/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.cjs +1 -1
  46. package/dist/lib/components/pro-contract-template-designer/src/ProContractTemplateRenderer.vue.cjs +1 -1
  47. package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-designer.cjs +4 -4
  48. package/dist/lib/components/pro-contract-template-designer/src/extensions/template-variable.cjs +1 -1
  49. package/dist/lib/components/pro-contract-template-designer/src/types.cjs +1 -1
  50. package/dist/lib/components/pro-contract-template-designer/src/utils/advanced-controls.cjs +1 -0
  51. package/dist/lib/components/pro-contract-template-designer/src/utils/template-renderer.cjs +3 -3
  52. package/dist/lib/components/pro-contract-template-designer/src/utils/template-tool-icons.cjs +1 -1
  53. package/dist/lib/components/pro-contract-template-designer/style/index.css +1 -1
  54. package/dist/lib/components/pro-selector/src/components/org-tree.cjs +1 -1
  55. package/dist/lib/components/pro-selector/src/components/user.cjs +1 -1
  56. package/dist/lib/components/pro-selector/src/pro-user.cjs +1 -1
  57. package/dist/lib/components/pro-selector/src/types.cjs +1 -1
  58. package/dist/lib/components/pro-selector/src/utils/orgTree.cjs +1 -1
  59. package/dist/lib/components/pro-selector-group/src/compoents/dept-tree.vue.cjs +1 -1
  60. package/dist/lib/components/pro-selector-group/src/compoents/dept.vue.cjs +1 -1
  61. package/dist/lib/components/pro-selector-group/src/compoents/role.vue.cjs +1 -1
  62. package/dist/lib/components/pro-selector-group/src/compoents/select-box.vue.cjs +1 -1
  63. package/dist/lib/components/pro-selector-group/src/compoents/user.vue.cjs +1 -1
  64. package/dist/lib/components/pro-selector-group/src/hooks/useApi.cjs +1 -1
  65. package/dist/lib/components/pro-selector-group/src/index.vue.cjs +1 -1
  66. package/dist/lib/components/pro-selector-group/src/utils/index.cjs +1 -0
  67. package/dist/lib/components/role-selector/src/role.cjs +1 -1
  68. package/dist/lib/index.cjs +1 -1
  69. package/dist/theme/dept-selector.css +1 -1
  70. package/dist/theme/icon.css +1 -1
  71. package/dist/theme/index.css +1 -1
  72. package/dist/theme/pro-selector-group.css +1 -1
  73. package/dist/theme/pro-selector.css +1 -1
  74. package/dist/theme/role-selector.css +1 -1
  75. package/dist/types/components/contract-signing-location/src/ContractSigningLocation.vue.d.ts +3 -3
  76. package/dist/types/components/pro-contract-template-designer/index.d.ts +1 -0
  77. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.d.ts +1 -0
  78. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.vue.d.ts +3 -0
  79. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateRendererField.vue.d.ts +7 -1
  80. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateVariableDataModal.vue.d.ts +14 -0
  81. package/dist/types/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.d.ts +13 -1
  82. package/dist/types/components/pro-contract-template-designer/src/ProContractTemplateRenderer.vue.d.ts +11 -1
  83. package/dist/types/components/pro-contract-template-designer/src/composables/use-template-designer.d.ts +4 -0
  84. package/dist/types/components/pro-contract-template-designer/src/extensions/template-variable.d.ts +11 -1
  85. package/dist/types/components/pro-contract-template-designer/src/types.d.ts +131 -2
  86. package/dist/types/components/pro-contract-template-designer/src/utils/advanced-controls.d.ts +15 -0
  87. package/dist/types/components/pro-contract-template-designer/src/utils/template-renderer.d.ts +10 -2
  88. package/dist/types/components/pro-selector/index.d.ts +9 -0
  89. package/dist/types/components/pro-selector/src/components/user.d.ts +9 -0
  90. package/dist/types/components/pro-selector/src/types.d.ts +2 -0
  91. package/dist/types/components/pro-selector/src/utils/orgTree.d.ts +4 -1
  92. package/dist/types/components/pro-selector-group/src/compoents/select-box.vue.d.ts +4 -4
  93. package/dist/types/components/pro-selector-group/src/hooks/useApi.d.ts +6 -1
  94. package/dist/types/components/pro-selector-group/src/utils/index.d.ts +8 -0
  95. package/package.json +5 -3
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`),require(`../constants.cjs`);const e=require(`../utils/template-variable-render.cjs`);let t=require(`@tiptap/core`);function n(e,t,n=``){return{default:n,parseHTML:e=>e.getAttribute(t)??n,renderHTML:n=>({[t]:n[e]})}}function r(e,t,n){return{default:n,parseHTML:e=>Number(e.getAttribute(t)||n),renderHTML:n=>({[t]:n[e]})}}function i(e,t){return{default:!1,parseHTML:e=>e.getAttribute(t)===`true`,renderHTML:n=>({[t]:String(!!n[e])})}}var a=t.Node.create({name:`templateVariable`,group:`inline`,inline:!0,atom:!0,selectable:!0,draggable:!0,addAttributes(){return{key:n(`key`,`data-key`),label:{default:``,parseHTML:e=>e.getAttribute(`data-label`)??e.textContent??``,renderHTML:e=>({"data-label":e.label})},type:n(`type`,`data-variable-type`,`text`),placeholder:n(`placeholder`,`data-placeholder`),width:r(`width`,`data-width`,160),height:r(`height`,`data-height`,32),required:i(`required`,`data-required`),defaultValue:n(`defaultValue`,`data-default-value`),format:n(`format`,`data-format`),precision:{default:void 0,parseHTML:e=>{let t=e.getAttribute(`data-precision`);return t?Number(t):void 0},renderHTML:e=>e.precision===void 0?{}:{"data-precision":e.precision}},useGrouping:{default:void 0,parseHTML:e=>{let t=e.getAttribute(`data-use-grouping`);return t?t===`true`:void 0},renderHTML:e=>e.useGrouping===void 0?{}:{"data-use-grouping":String(!!e.useGrouping)}},checkedText:n(`checkedText`,`data-checked-text`),uncheckedText:n(`uncheckedText`,`data-unchecked-text`),multiline:i(`multiline`,`data-multiline`),rows:r(`rows`,`data-rows`,3),lineHeight:r(`lineHeight`,`data-line-height`,28),border:i(`border`,`data-border`),underline:i(`underline`,`data-underline`),color:n(`color`,`data-color`,`#1f2937`),background:n(`background`,`data-background`,`transparent`),fontSize:r(`fontSize`,`data-font-size`,14),fontFamily:{default:``,parseHTML:e=>e.getAttribute(`data-font-family`)??``,renderHTML:e=>e.fontFamily?{"data-font-family":e.fontFamily}:{}},placeholderColor:n(`placeholderColor`,`data-placeholder-color`,`#7a818b`),lineColor:n(`lineColor`,`data-line-color`,`#565b66`),textAlign:n(`textAlign`,`data-text-align`,`left`),borderStyle:n(`borderStyle`,`data-border-style`,`solid`),objectFit:n(`objectFit`,`data-object-fit`,`contain`)}},parseHTML(){return[{tag:`span[data-template-variable]`}]},renderHTML({HTMLAttributes:n}){let r=n[`data-border`]??n.border,i=n[`data-precision`]??n.precision,a=i===void 0||i===``?void 0:Number(i),o=n[`data-use-grouping`]??n.useGrouping,s=o===void 0||o===``?void 0:o===!0||o===`true`,c=e.resolveTemplateVariablePresentation({type:String(n[`data-variable-type`]||n.type||`text`),width:n[`data-width`]||n.width||160,height:n[`data-height`]||n.height||32,border:r===!0||r===`true`,underline:n[`data-underline`]===`true`||n.underline===!0,color:String(n[`data-color`]||n.color||`#1f2937`),background:String(n[`data-background`]||n.background||`transparent`),fontSize:n[`data-font-size`]||n.fontSize||14,fontFamily:String(n[`data-font-family`]||n.fontFamily||``),placeholder:String(n[`data-placeholder`]||n.placeholder||``),defaultValue:String(n[`data-default-value`]||n.defaultValue||``),format:String(n[`data-format`]||n.format||``),precision:a,useGrouping:s,checkedText:String(n[`data-checked-text`]||n.checkedText||``),uncheckedText:String(n[`data-unchecked-text`]||n.uncheckedText||``),multiline:n[`data-multiline`]===`true`||n.multiline===!0,rows:n[`data-rows`]||n.rows||3,lineHeight:n[`data-line-height`]||n.lineHeight||28,placeholderColor:String(n[`data-placeholder-color`]||n.placeholderColor||`#7a818b`),lineColor:String(n[`data-line-color`]||n.lineColor||`#565b66`),textAlign:String(n[`data-text-align`]||n.textAlign||`left`),borderStyle:String(n[`data-border-style`]||n.borderStyle||`solid`),objectFit:String(n[`data-object-fit`]||n.objectFit||`contain`)});return[`span`,(0,t.mergeAttributes)(n,{"data-template-variable":`true`,"data-variable-type":c.type,"data-width":String(c.width),"data-height":String(c.height),"data-border":String(c.border),"data-underline":String(c.underline),"data-multiline":String(n[`data-multiline`]===`true`||n.multiline===!0),"data-rows":String(Math.max(1,Number(n[`data-rows`]||n.rows||3))),"data-line-height":String(Math.max(18,Number(n[`data-line-height`]||n.lineHeight||28))),"data-color":c.color,"data-background":c.background,"data-font-size":String(c.fontSize),"data-font-family":c.fontFamily,"data-placeholder-color":c.placeholderColor,"data-line-color":c.lineColor,"data-text-align":c.textAlign,"data-border-style":c.borderStyle,"data-object-fit":c.objectFit,class:c.classes.join(` `),style:c.styleText}),c.type===`image`&&c.hasDefaultValue?` `:c.displayText||` `]}});function o(e){return{key:e.key,label:e.label,type:e.type??`text`,placeholder:e.placeholder||``,width:e.width??160,height:e.height??32,required:!!e.required,defaultValue:e.defaultValue||``,format:e.format||``,precision:e.precision,useGrouping:e.useGrouping,checkedText:e.checkedText||``,uncheckedText:e.uncheckedText||``,multiline:!!e.multiline,rows:Math.max(1,Math.round(e.rows??3)),lineHeight:Math.max(18,Math.round(e.lineHeight??28)),border:e.style?.border??e.type===`image`,underline:e.style?.underline??(e.type!==`image`&&e.type!==`checkbox`),color:e.style?.color||`#1f2937`,background:e.style?.background||`transparent`,fontSize:e.style?.fontSize??14,fontFamily:e.style?.fontFamily||`Noto Serif SC, Source Han Serif SC, Songti SC, STSong, SimSun, serif`,placeholderColor:e.style?.placeholderColor||`#7a818b`,lineColor:e.style?.lineColor||`#565b66`,textAlign:e.style?.textAlign||`left`,borderStyle:e.style?.borderStyle||`solid`,objectFit:e.style?.objectFit||`contain`}}function s(e,t,n){if(!e)return!1;let r={type:`templateVariable`,attrs:o(t)},i=e.chain().focus();return typeof n==`number`?i.insertContentAt(n,r).run():i.insertContent(r).run()}exports.TemplateVariable=a,exports.buildTemplateVariableAttrs=o,exports.insertTemplateVariableNode=s;
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`),require(`../constants.cjs`);const e=require(`../utils/template-variable-render.cjs`),t=require(`../utils/advanced-controls.cjs`);let n=require(`@tiptap/core`);function r(e,t,n=``){return{default:n,parseHTML:e=>e.getAttribute(t)??n,renderHTML:n=>({[t]:n[e]})}}function i(e,t,n){return{default:n,parseHTML:e=>Number(e.getAttribute(t)||n),renderHTML:n=>({[t]:n[e]})}}function a(e,t){return{default:!1,parseHTML:e=>e.getAttribute(t)===`true`,renderHTML:n=>({[t]:String(!!n[e])})}}function o(e,n,r){return{default:r,parseHTML:e=>t.decodeContractTemplateJsonAttribute(e.getAttribute(n))??r,renderHTML:r=>r[e]===void 0||r[e]===null?{}:{[n]:t.encodeContractTemplateJsonAttribute(r[e])}}}var s=n.Node.create({name:`templateVariable`,group:`inline`,inline:!0,atom:!0,selectable:!0,draggable:!0,addAttributes(){return{key:r(`key`,`data-key`),label:{default:``,parseHTML:e=>e.getAttribute(`data-label`)??e.textContent??``,renderHTML:e=>({"data-label":e.label})},type:r(`type`,`data-variable-type`,`text`),placeholder:r(`placeholder`,`data-placeholder`),width:i(`width`,`data-width`,160),height:i(`height`,`data-height`,32),required:a(`required`,`data-required`),defaultValue:r(`defaultValue`,`data-default-value`),format:r(`format`,`data-format`),precision:{default:void 0,parseHTML:e=>{let t=e.getAttribute(`data-precision`);return t?Number(t):void 0},renderHTML:e=>e.precision===void 0?{}:{"data-precision":e.precision}},useGrouping:{default:void 0,parseHTML:e=>{let t=e.getAttribute(`data-use-grouping`);return t?t===`true`:void 0},renderHTML:e=>e.useGrouping===void 0?{}:{"data-use-grouping":String(!!e.useGrouping)}},checkedText:r(`checkedText`,`data-checked-text`),uncheckedText:r(`uncheckedText`,`data-unchecked-text`),options:o(`options`,`data-control-options`,[]),dataSource:o(`dataSource`,`data-control-source`,void 0),multiple:a(`multiple`,`data-multiple`),componentKey:r(`componentKey`,`data-component-key`),componentConfig:o(`componentConfig`,`data-component-config`,{}),multiline:a(`multiline`,`data-multiline`),rows:i(`rows`,`data-rows`,3),lineHeight:i(`lineHeight`,`data-line-height`,28),border:a(`border`,`data-border`),underline:a(`underline`,`data-underline`),color:r(`color`,`data-color`,`#1f2937`),background:r(`background`,`data-background`,`transparent`),fontSize:i(`fontSize`,`data-font-size`,14),fontFamily:{default:``,parseHTML:e=>e.getAttribute(`data-font-family`)??``,renderHTML:e=>e.fontFamily?{"data-font-family":e.fontFamily}:{}},placeholderColor:r(`placeholderColor`,`data-placeholder-color`,`#7a818b`),lineColor:r(`lineColor`,`data-line-color`,`#565b66`),textAlign:r(`textAlign`,`data-text-align`,`left`),borderStyle:r(`borderStyle`,`data-border-style`,`solid`),objectFit:r(`objectFit`,`data-object-fit`,`contain`)}},parseHTML(){return[{tag:`span[data-template-variable]`}]},renderHTML({HTMLAttributes:t}){let r=t[`data-border`]??t.border,i=t[`data-precision`]??t.precision,a=i===void 0||i===``?void 0:Number(i),o=t[`data-use-grouping`]??t.useGrouping,s=o===void 0||o===``?void 0:o===!0||o===`true`,c=e.resolveTemplateVariablePresentation({type:String(t[`data-variable-type`]||t.type||`text`),width:t[`data-width`]||t.width||160,height:t[`data-height`]||t.height||32,border:r===!0||r===`true`,underline:t[`data-underline`]===`true`||t.underline===!0,color:String(t[`data-color`]||t.color||`#1f2937`),background:String(t[`data-background`]||t.background||`transparent`),fontSize:t[`data-font-size`]||t.fontSize||14,fontFamily:String(t[`data-font-family`]||t.fontFamily||``),placeholder:String(t[`data-placeholder`]||t.placeholder||``),defaultValue:String(t[`data-default-value`]||t.defaultValue||``),format:String(t[`data-format`]||t.format||``),precision:a,useGrouping:s,checkedText:String(t[`data-checked-text`]||t.checkedText||``),uncheckedText:String(t[`data-unchecked-text`]||t.uncheckedText||``),multiline:t[`data-multiline`]===`true`||t.multiline===!0,rows:t[`data-rows`]||t.rows||3,lineHeight:t[`data-line-height`]||t.lineHeight||28,placeholderColor:String(t[`data-placeholder-color`]||t.placeholderColor||`#7a818b`),lineColor:String(t[`data-line-color`]||t.lineColor||`#565b66`),textAlign:String(t[`data-text-align`]||t.textAlign||`left`),borderStyle:String(t[`data-border-style`]||t.borderStyle||`solid`),objectFit:String(t[`data-object-fit`]||t.objectFit||`contain`)});return[`span`,(0,n.mergeAttributes)(t,{"data-template-variable":`true`,"data-variable-type":c.type,"data-width":String(c.width),"data-height":String(c.height),"data-border":String(c.border),"data-underline":String(c.underline),"data-multiline":String(t[`data-multiline`]===`true`||t.multiline===!0),"data-rows":String(Math.max(1,Number(t[`data-rows`]||t.rows||3))),"data-line-height":String(Math.max(18,Number(t[`data-line-height`]||t.lineHeight||28))),"data-color":c.color,"data-background":c.background,"data-font-size":String(c.fontSize),"data-font-family":c.fontFamily,"data-placeholder-color":c.placeholderColor,"data-line-color":c.lineColor,"data-text-align":c.textAlign,"data-border-style":c.borderStyle,"data-object-fit":c.objectFit,class:c.classes.join(` `),style:c.styleText}),c.type===`image`&&c.hasDefaultValue?` `:c.displayText||` `]}});function c(e){return{key:e.key,label:e.label,type:e.type??`text`,placeholder:e.placeholder||``,width:e.width??160,height:e.height??32,required:!!e.required,defaultValue:e.defaultValue||``,format:e.format||``,precision:e.precision,useGrouping:e.useGrouping,checkedText:e.checkedText||``,uncheckedText:e.uncheckedText||``,options:e.options?.map(e=>({...e}))??[],dataSource:e.dataSource?{...e.dataSource}:void 0,multiple:!!e.multiple,componentKey:e.componentKey||``,componentConfig:e.componentConfig?{...e.componentConfig}:{},multiline:!!e.multiline,rows:Math.max(1,Math.round(e.rows??3)),lineHeight:Math.max(18,Math.round(e.lineHeight??28)),border:e.style?.border??e.type===`image`,underline:e.style?.underline??(e.type!==`image`&&e.type!==`checkbox`),color:e.style?.color||`#1f2937`,background:e.style?.background||`transparent`,fontSize:e.style?.fontSize??14,fontFamily:e.style?.fontFamily||`Noto Serif SC, Source Han Serif SC, Songti SC, STSong, SimSun, serif`,placeholderColor:e.style?.placeholderColor||`#7a818b`,lineColor:e.style?.lineColor||`#565b66`,textAlign:e.style?.textAlign||`left`,borderStyle:e.style?.borderStyle||`solid`,objectFit:e.style?.objectFit||`contain`}}function l(e,t,n){if(!e)return!1;let r={type:`templateVariable`,attrs:c(t)},i=e.chain().focus();return typeof n==`number`?i.insertContentAt(n,r).run():i.insertContent(r).run()}exports.TemplateVariable=s,exports.buildTemplateVariableAttrs=c,exports.insertTemplateVariableNode=l;
@@ -1 +1 @@
1
- var e=[`text`,`date`,`number`,`image`,`checkbox`];function t(t){return typeof t==`string`&&e.includes(t)}exports.isContractTemplateFieldType=t;
1
+ var e=[`text`,`date`,`number`,`image`,`checkbox`,`select`,`radio`,`user-selector`,`dept-selector`,`role-selector`,`org-selector`,`custom`];function t(t){return typeof t==`string`&&e.includes(t)}function n(e){return e===`select`||e===`radio`}function r(e){return e===`user-selector`||e===`dept-selector`||e===`role-selector`||e===`org-selector`}exports.isContractTemplateAdvancedChoiceFieldType=n,exports.isContractTemplateBuiltinSelectorFieldType=r,exports.isContractTemplateFieldType=t;
@@ -0,0 +1 @@
1
+ function e(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return(typeof t.value==`string`||typeof t.value==`number`)&&typeof t.label==`string`&&typeof t.type==`string`}function t(t,r){if(e(t))return{...n(t),value:t.value,label:t.label,type:t.type||r};if(typeof t==`string`||typeof t==`number`)return{value:t,label:String(t),type:r}}function n(e){let t={};return Object.entries(e).forEach(([e,n])=>{if(!(e===`value`||e===`label`||e===`type`))try{JSON.stringify(n),t[e]=n}catch{}}),t}function r(e,n,r){let i=(Array.isArray(e)?e:e==null||e===``?[]:[e]).map(e=>t(e,n)).filter(Boolean);return r?i:i[0]}function i(t){return Array.isArray(t)?t.map(e=>e.displayText||e.label||String(e.value)).filter(Boolean).join(`、`):e(t)?t.displayText||t.label||String(t.value):t==null?``:String(t)}function a(e){try{return encodeURIComponent(JSON.stringify(e??null))}catch{return``}}function o(e){if(!(typeof e!=`string`||!e))try{return JSON.parse(decodeURIComponent(e))}catch{return}}function s(e,t,n){let r=u(e,t?.dataPath),i=Array.isArray(r)?r:[],a=t?.valueField||`value`,o=t?.labelField||`label`;return i.flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e,r=t[a];return typeof r!=`string`&&typeof r!=`number`?[]:[{value:r,label:String(t[o]??r),type:typeof t.type==`string`&&t.type?t.type:n,...typeof t.disabled==`boolean`?{disabled:t.disabled}:{}}]})}function c(e,t){let n=e.trim();if(/^\/(?!\/)/.test(n))return!0;try{let e=new URL(n);return e.protocol!==`https:`&&e.protocol!==`http:`?!1:t.some(t=>{try{return new URL(t).origin===e.origin}catch{return!1}})}catch{return!1}}function l(e,t=1e4){let n=Number.isFinite(t)?Math.max(500,Math.floor(t)):1e4,r=Number(e);return Number.isFinite(r)?Math.min(n,Math.max(500,Math.floor(r))):n}function u(e,t){return t?t.split(`.`).filter(Boolean).reduce((e,t)=>{if(!(!e||typeof e!=`object`||Array.isArray(e)))return e[t]},e):e}function d(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}exports.decodeContractTemplateJsonAttribute=o,exports.encodeContractTemplateJsonAttribute=a,exports.formatContractTemplateRenderValue=i,exports.isAllowedContractTemplateRemoteUrl=c,exports.isContractTemplateSelectionValue=e,exports.normalizeContractTemplateControlOptions=s,exports.normalizeContractTemplateJsonObject=d,exports.normalizeContractTemplateRequestTimeout=l,exports.normalizeContractTemplateSelectionValue=t,exports.normalizeContractTemplateSelectionValues=r;
@@ -1,3 +1,3 @@
1
- const e=require(`./html.cjs`),t=require(`./template-variable-render.cjs`),n=require(`./page-decorations.cjs`),r=require(`../types.cjs`),i=require(`../composables/use-template-designer.cjs`),a=require(`./image-url.cjs`);var o=new Set([`action`,`formaction`,`href`,`src`,`xlink:href`]),s=/<[^>]+data-template-variable=["']true["'][^>]*>/gi;function c(e){let t={};return(Array.isArray(e?.variables)?e.variables:[]).forEach(e=>{e?.key&&(t[e.key]=x(e))}),t}function l(e,t){return{...c(e),...t??{}}}function u(e,t){let n=f(e);if(!e)return n;let r=Array.isArray(e.variables)?e.variables:[],i=new Set(r.map(e=>e?.key).filter(Boolean));return Object.keys(t).forEach(e=>{i.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&&h(r)){n.push({type:`variable`,id:e.id,variableKey:e.key,message:`请填写${e.label||e.key}`,code:`VARIABLE_REQUIRED`});return}h(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`&&!j(r)&&n.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是合法日期`,code:`VARIABLE_TYPE_INVALID`}),e.type===`image`&&!a.isSafeContractImageUrl(String(r))&&n.push({type:`security`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是安全的图片地址`,code:`IMAGE_URL_UNSAFE`}))}),n}function d(e,t,n){return n?u(e,t):f(e)}function f(t){if(!t)return[{type:`page`,id:`template`,message:`缺少可渲染的合同模板`,code:`TEMPLATE_MISSING`}];let a=[],o=Array.isArray(t.pages)?t.pages:[],s=Array.isArray(t.variables)?t.variables:[];(!Array.isArray(t.pages)||o.length===0)&&a.push({type:`page`,id:`template-pages`,message:`模板至少需要一个合法页面`,code:`TEMPLATE_PAGES_INVALID`}),Array.isArray(t.variables)||a.push({type:`variable`,id:`template-variables`,message:`模板变量列表格式无效`,code:`TEMPLATE_VARIABLES_INVALID`}),e.hasPositivePageSize(t.pageSize)||a.push({type:`page`,id:`template-page-size`,message:`模板默认页面尺寸无效,已回退为安全默认尺寸`,code:`TEMPLATE_PAGE_SIZE_INVALID`});let c=new Map;s.forEach((e,t)=>{if(!e||typeof e.key!=`string`||!e.key.trim()){a.push({type:`variable`,id:e?.id||`variable-${t}`,message:`第 ${t+1} 个变量缺少有效 key`,code:`VARIABLE_KEY_MISSING`});return}let n=e.key.trim(),o=s.some(t=>t?.id!==e.id&&typeof t?.key==`string`&&t.key.trim()===n),l=i.validateContractTemplateVariableKey(e.key,s,e.id),u=!i.CONTRACT_TEMPLATE_VARIABLE_KEY_PATTERN.test(n)||i.CONTRACT_TEMPLATE_RESERVED_VARIABLE_KEYS.has(n);l&&(u||!o||e.key!==n)&&a.push({type:`variable`,id:e.id||`variable-${t}`,variableKey:e.key,message:`${e.label||e.key}:${l}`,code:`VARIABLE_KEY_INVALID`}),c.set(n,(c.get(n)??0)+1),r.isContractTemplateFieldType(e.type??`text`)||a.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是正文填写变量`,code:`VARIABLE_TYPE_UNSUPPORTED`})}),c.forEach((e,t)=>{e>1&&a.push({type:`variable`,id:t,variableKey:t,message:`变量 key ${t} 重复`,code:`VARIABLE_KEY_DUPLICATED`})});let l=new Set;o.forEach((t,n)=>{if(!t||typeof t.id!=`string`||!t.id.trim()||typeof t.contentHtml!=`string`){a.push({type:`page`,id:t?.id||`page-${n}`,pageId:t?.id,message:`第 ${n+1} 页结构无效,已跳过渲染`,code:`PAGE_INVALID`});return}t.pageSize!==void 0&&!e.hasPositivePageSize(t.pageSize)&&a.push({type:`page`,id:`${t.id}-page-size`,pageId:t.id,message:`${t.title||`第 ${n+1} 页`}:页面尺寸无效,已回退为安全尺寸`,code:`PAGE_SIZE_INVALID`}),E(t.contentHtml).forEach(e=>l.add(e)),D(t.contentHtml).forEach((e,r)=>{a.push({type:`security`,id:`${t.id}-security-${r}`,pageId:t.id,message:`${t.title||`第 ${n+1} 页`}:${e}`,code:`HTML_UNSAFE`})})}),l.forEach(e=>{c.has(e)||a.push({type:`variable`,id:e,variableKey:e,message:`正文引用的变量 ${e} 缺少配置`,code:`VARIABLE_CONFIG_MISSING`})});let u=n.collectPageDecorationVariableKeys(t.pageDecorations);return c.forEach((e,t)=>{!l.has(t)&&!u.has(t)&&a.push({type:`variable`,id:t,variableKey:t,message:`变量 ${t} 缺少正文节点`,code:`VARIABLE_NODE_MISSING`})}),a.push(...n.validatePageDecorations(t.pageDecorations,s)),a}function p(t,r,a={}){if(!t||!Array.isArray(t.pages))return[];let o=Array.isArray(t.variables)?t.variables:[],s=new Map(o.filter(e=>e?.key).map(e=>[e.key,e])),c=e.hasPositivePageSize(t.pageSize)?t.pageSize:i.DEFAULT_PAGE_SIZE;return t.pages.flatMap(e=>{if(!e||typeof e.id!=`string`||!e.id.trim()||typeof e.contentHtml!=`string`)return[];let l=i.resolvePageSize(e.pageSize,c);return[{id:e.id,title:e.title||`未命名页面`,format:l.format??`Custom`,width:l.width,height:l.height,contentHtml:g(e.contentHtml,s,r,a),...t.pageDecorations?{pageDecorations:n.normalizePageDecorations(t.pageDecorations)}:{},decorationVariables:o,decorationValues:r}]})}function m(t,r,i={}){return p(t,r,i).map((t,r,i)=>{let a=n.buildPageDecorationsHtml(t.pageDecorations,r+1,i.length,t.decorationVariables,t.decorationValues);return`<section class="${n.buildPageDecorationClassNames(t.pageDecorations,r+1)}" data-page-id="${e.escapeHtmlAttribute(t.id)}" data-page-format="${e.escapeHtmlAttribute(t.format)}" data-page-width="${t.width}" data-page-height="${t.height}" style="width:${t.width}px;min-height:${t.height}px">${a}<div class="gd-contract-template-page__content">${t.contentHtml}</div></section>`}).join(`
2
- `)}function h(e){return e==null||e===``}function g(t,n,r,i){if(!t)return t;let a=T(t);if(e.canUseDomHtml()){let e=new DOMParser().parseFromString(a,`text/html`);return e.querySelectorAll(`[data-template-variable]`).forEach(e=>{_(e,n,r,i)}),e.body.innerHTML}return e.replaceTemplateVariableSpans(a,(t,a)=>{let o=e.getHtmlAttribute(a,`data-key`);return o?v(n.get(o),o,r[o],i):t})}function _(e,t,n,r){let i=e.dataset.key||``,a=t.get(i);if(!i||!a)return;let o=new DOMParser().parseFromString(v(a,i,n[i],r),`text/html`).body.firstElementChild;o&&e.replaceWith(o)}function v(e,t,n,r){return r.mode===`display`?y(e,t,n,r):b(e,t,n,r)}function y(n,r,i,o){let s=n?.type??`text`,c=i??x(n),l=s===`image`&&!h(c)&&!a.isSafeContractImageUrl(String(c))?``:c,u=C(l),d=t.resolveTemplateVariablePresentation({type:s,width:n?.width,height:n?.height,placeholder:n?.placeholder??``,defaultValue:u,format:n?.format??``,precision:n?.precision,useGrouping:n?.useGrouping,checkedText:n?.checkedText??``,uncheckedText:n?.uncheckedText??``,multiline:n?.multiline,rows:n?.rows,lineHeight:n?.lineHeight,style:n?.style}),f=d.displayText||n?.placeholder||n?.label||r,p=[`class="${e.escapeHtmlAttribute([`gd-contract-template-renderer__control`,`gd-contract-template-renderer__preview-control`,...d.classes,o.activeKey===r?`is-active`:``,h(l)?`is-empty`:``].filter(Boolean).join(` `))}"`,`style="${e.escapeHtmlAttribute(d.styleText)}"`,`data-contract-render-wrapper="true"`,`data-contract-render-preview="true"`,`data-key="${e.escapeHtmlAttribute(r)}"`,`data-variable-type="${e.escapeHtmlAttribute(s)}"`,`aria-label="${e.escapeHtmlAttribute(n?.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">${w(l)?`✓`:``}</span>${e.escapeHtmlText(f)}</span>`:s===`image`&&!h(l)?`<span ${p}></span>`:`<span ${p}>${e.escapeHtmlText(f)}</span>`}function b(n,r,i,a){let o=n?.type??`text`,s=!!a.readonly,c=S(i??x(n)),l=t.resolveTemplateVariablePresentation({type:o,width:n?.width,height:n?.height,placeholder:n?.placeholder??``,defaultValue:s?c:``,format:n?.format??``,precision:n?.precision,useGrouping:n?.useGrouping,checkedText:n?.checkedText??``,uncheckedText:n?.uncheckedText??``,multiline:n?.multiline,rows:n?.rows,lineHeight:n?.lineHeight,style:n?.style}),u=a.disabled||s,d=[`data-contract-render-control="true"`,`data-key="${e.escapeHtmlAttribute(r)}"`,`data-variable-type="${e.escapeHtmlAttribute(o)}"`,`aria-label="${e.escapeHtmlAttribute(n?.label||r)}"`,u?`disabled`:``,s?`readonly`:``].filter(Boolean).join(` `),f=`style="${e.escapeHtmlAttribute(l.styleText)}"`,p=e.escapeHtmlAttribute([`gd-contract-template-renderer__control`,...l.classes].join(` `));return o===`checkbox`?`<label class="${p}" ${f} data-contract-render-wrapper="true" data-key="${e.escapeHtmlAttribute(r)}"><input type="checkbox" ${d} ${w(c)?`checked`:``}>${e.escapeHtmlText(n?.checkedText||n?.label||r)}</label>`:s?`<span class="${p}" ${f} data-contract-render-wrapper="true" data-key="${e.escapeHtmlAttribute(r)}">${e.escapeHtmlText(l.displayText||c)}</span>`:o===`number`?`<input class="${p}" ${f} type="number" ${d} value="${e.escapeHtmlAttribute(c)}" placeholder="${e.escapeHtmlAttribute(n?.placeholder||``)}">`:o===`date`?`<input class="${p}" ${f} type="date" ${d} value="${e.escapeHtmlAttribute(c)}" placeholder="${e.escapeHtmlAttribute(n?.placeholder||``)}">`:n?.multiline?`<textarea class="${p}" ${f} ${d} placeholder="${e.escapeHtmlAttribute(n.placeholder||``)}">${e.escapeHtmlText(c)}</textarea>`:`<input class="${p}" ${f} type="text" ${d} value="${e.escapeHtmlAttribute(c)}" placeholder="${e.escapeHtmlAttribute(n?.placeholder||``)}">`}function x(e){if(!e)return``;if(e.type===`checkbox`)return w(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 S(e){return typeof e==`boolean`?e?`true`:``:e==null?``:String(e)}function C(e){return typeof e==`boolean`?e?`true`:`false`:e==null?``:String(e)}function w(e){return e===!0||e===`true`||e===`1`||e===`yes`||e===`是`||e===`已选`}function T(t){if(e.canParseHtmlDocument()){let e=new DOMParser().parseFromString(t,`text/html`);return e.querySelectorAll(`script,style,meta,link,iframe,object,embed`).forEach(e=>e.remove()),e.querySelectorAll(`*`).forEach(e=>{Array.from(e.attributes).forEach(t=>{let n=t.name.toLowerCase();(n.startsWith(`on`)||n===`srcdoc`||o.has(n)&&O(t.value)||n===`style`&&A(t.value))&&e.removeAttribute(t.name)})}),e.body.innerHTML}return t.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 O(a)?``:n?` ${t}=${n}${a}${n}`:` ${t}=${a}`}).replace(/\s+style\s*=\s*(["'])(.*?)\1/gi,(e,t,n)=>A(n)?``:` style=${t}${n}${t}`)}function E(t){return e.collectFromHtmlTags(t,s,t=>e.getHtmlAttribute(t,`data-key`))}function D(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(`正文包含已移除的事件或嵌入属性`),(k(e)||/style\s*=\s*["'][^"']*(?:expression\s*\(|url\s*\(\s*["']?\s*(?:javascript|vbscript|data:text\/html))/i.test(e))&&t.push(`正文包含已移除的危险 URL 或样式`),t}function O(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
- `,tab:` `})[t.toLowerCase()]??``).trim().replace(/[\u0000-\u0020\u007F]+/g,``);return/^(?:javascript|vbscript|data:text\/html)/i.test(t)}function k(e){let t=/\s+(?:action|formaction|href|src|xlink:href)\s*=\s*(?:(["'])(.*?)\1|([^\s>]+))/gi,n=t.exec(e);for(;n;){if(O(n[2]??n[3]??``))return!0;n=t.exec(e)}return!1}function A(e){return/expression\s*\(|url\s*\(\s*["']?\s*(?:javascript|vbscript|data:text\/html)/i.test(e)}function j(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=c,exports.buildTemplateRenderHtml=m,exports.buildTemplateRenderPages=p,exports.isEmptyRenderValue=h,exports.normalizeRenderValues=l,exports.resolveTemplateRenderSubmitErrors=d,exports.sanitizeContractRendererHtml=T,exports.validateTemplateRenderStructure=f,exports.validateTemplateRenderValues=u;
1
+ const e=require(`./html.cjs`),t=require(`./template-variable-render.cjs`),n=require(`./page-decorations.cjs`),r=require(`../types.cjs`),i=require(`./advanced-controls.cjs`),a=require(`../composables/use-template-designer.cjs`),o=require(`./image-url.cjs`);function s(e){let t=Array.isArray(e?.variables)?e.variables:[],n=t.map(e=>c(e)),r={};return t.forEach(e=>{let t=typeof e?.key==`string`?e.key:``;if(t){if(e.type===`checkbox`){r[t]=!1;return}if(e.type===`number`){let n=typeof e.defaultValue==`string`?e.defaultValue.trim().length>0:e.defaultValue!==void 0,i=Number(e.defaultValue);r[t]=n&&Number.isFinite(i)?i:``;return}r[t]=e.defaultValue??``}}),{values:r,variables:n}}function c(e){return JSON.parse(JSON.stringify(e))}var l=new Set([`action`,`formaction`,`href`,`src`,`xlink:href`]),u=/<[^>]+data-template-variable=["']true["'][^>]*>/gi;function d(e){let t={};return(Array.isArray(e?.variables)?e.variables:[]).forEach(e=>{e?.key&&(t[e.key]=w(e))}),t}function f(e,t){return{...d(e),...t??{}}}function p(e,t){let n=h(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&&v(r)){n.push({type:`variable`,id:e.id,variableKey:e.key,message:`请填写${e.label||e.key}`,code:`VARIABLE_REQUIRED`});return}v(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`&&!P(r)&&n.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是合法日期`,code:`VARIABLE_TYPE_INVALID`}),e.type===`image`&&!o.isSafeContractImageUrl(String(r))&&n.push({type:`security`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是安全的图片地址`,code:`IMAGE_URL_UNSAFE`}),(e.type===`select`||e.type===`radio`||e.type===`user-selector`||e.type===`dept-selector`||e.type===`role-selector`||e.type===`org-selector`)&&r!==void 0&&((Array.isArray(r)?r.every(i.isContractTemplateSelectionValue):i.isContractTemplateSelectionValue(r))||n.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是合法选择值`,code:`VARIABLE_SELECTION_INVALID`})))}),n}function m(e,t,n){return n?p(e,t):h(e)}function h(t){if(!t)return[{type:`page`,id:`template`,message:`缺少可渲染的合同模板`,code:`TEMPLATE_MISSING`}];let i=[],o=Array.isArray(t.pages)?t.pages:[],s=Array.isArray(t.variables)?t.variables:[];(!Array.isArray(t.pages)||o.length===0)&&i.push({type:`page`,id:`template-pages`,message:`模板至少需要一个合法页面`,code:`TEMPLATE_PAGES_INVALID`}),Array.isArray(t.variables)||i.push({type:`variable`,id:`template-variables`,message:`模板变量列表格式无效`,code:`TEMPLATE_VARIABLES_INVALID`}),e.hasPositivePageSize(t.pageSize)||i.push({type:`page`,id:`template-page-size`,message:`模板默认页面尺寸无效,已回退为安全默认尺寸`,code:`TEMPLATE_PAGE_SIZE_INVALID`});let c=new Map;s.forEach((e,t)=>{if(!e||typeof e.key!=`string`||!e.key.trim()){i.push({type:`variable`,id:e?.id||`variable-${t}`,message:`第 ${t+1} 个变量缺少有效 key`,code:`VARIABLE_KEY_MISSING`});return}let n=e.key.trim(),o=s.some(t=>t?.id!==e.id&&typeof t?.key==`string`&&t.key.trim()===n),l=a.validateContractTemplateVariableKey(e.key,s,e.id),u=!a.CONTRACT_TEMPLATE_VARIABLE_KEY_PATTERN.test(n)||a.CONTRACT_TEMPLATE_RESERVED_VARIABLE_KEYS.has(n);l&&(u||!o||e.key!==n)&&i.push({type:`variable`,id:e.id||`variable-${t}`,variableKey:e.key,message:`${e.label||e.key}:${l}`,code:`VARIABLE_KEY_INVALID`}),c.set(n,(c.get(n)??0)+1),r.isContractTemplateFieldType(e.type??`text`)||i.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是正文填写变量`,code:`VARIABLE_TYPE_UNSUPPORTED`})}),c.forEach((e,t)=>{e>1&&i.push({type:`variable`,id:t,variableKey:t,message:`变量 key ${t} 重复`,code:`VARIABLE_KEY_DUPLICATED`})});let l=new Set;o.forEach((t,n)=>{if(!t||typeof t.id!=`string`||!t.id.trim()||typeof t.contentHtml!=`string`){i.push({type:`page`,id:t?.id||`page-${n}`,pageId:t?.id,message:`第 ${n+1} 页结构无效,已跳过渲染`,code:`PAGE_INVALID`});return}t.pageSize!==void 0&&!e.hasPositivePageSize(t.pageSize)&&i.push({type:`page`,id:`${t.id}-page-size`,pageId:t.id,message:`${t.title||`第 ${n+1} 页`}:页面尺寸无效,已回退为安全尺寸`,code:`PAGE_SIZE_INVALID`}),k(t.contentHtml).forEach(e=>l.add(e)),A(t.contentHtml).forEach((e,r)=>{i.push({type:`security`,id:`${t.id}-security-${r}`,pageId:t.id,message:`${t.title||`第 ${n+1} 页`}:${e}`,code:`HTML_UNSAFE`})})}),l.forEach(e=>{c.has(e)||i.push({type:`variable`,id:e,variableKey:e,message:`正文引用的变量 ${e} 缺少配置`,code:`VARIABLE_CONFIG_MISSING`})});let u=n.collectPageDecorationVariableKeys(t.pageDecorations);return c.forEach((e,t)=>{!l.has(t)&&!u.has(t)&&i.push({type:`variable`,id:t,variableKey:t,message:`变量 ${t} 缺少正文节点`,code:`VARIABLE_NODE_MISSING`})}),i.push(...n.validatePageDecorations(t.pageDecorations,s)),i}function g(t,r,i={}){if(!t||!Array.isArray(t.pages))return[];let o=Array.isArray(t.variables)?t.variables:[],s=new Map(o.filter(e=>e?.key).map(e=>[e.key,e])),c=e.hasPositivePageSize(t.pageSize)?t.pageSize:a.DEFAULT_PAGE_SIZE;return t.pages.flatMap(e=>{if(!e||typeof e.id!=`string`||!e.id.trim()||typeof e.contentHtml!=`string`)return[];let l=a.resolvePageSize(e.pageSize,c);return[{id:e.id,title:e.title||`未命名页面`,format:l.format??`Custom`,width:l.width,height:l.height,contentHtml:y(e.contentHtml,s,r,i),...t.pageDecorations?{pageDecorations:n.normalizePageDecorations(t.pageDecorations)}:{},decorationVariables:o,decorationValues:r}]})}function _(t,r,i={}){return g(t,r,i).map((t,r,i)=>{let a=n.buildPageDecorationsHtml(t.pageDecorations,r+1,i.length,t.decorationVariables,t.decorationValues);return`<section class="${n.buildPageDecorationClassNames(t.pageDecorations,r+1)}" data-page-id="${e.escapeHtmlAttribute(t.id)}" data-page-format="${e.escapeHtmlAttribute(t.format)}" data-page-width="${t.width}" data-page-height="${t.height}" style="width:${t.width}px;min-height:${t.height}px">${a}<div class="gd-contract-template-page__content">${t.contentHtml}</div></section>`}).join(`
2
+ `)}function v(e){return e==null||e===``||Array.isArray(e)&&e.length===0}function y(t,n,r,i){if(!t)return t;let a=O(t);if(e.canUseDomHtml()){let e=new DOMParser().parseFromString(a,`text/html`);return e.querySelectorAll(`[data-template-variable]`).forEach(e=>{b(e,n,r,i)}),e.body.innerHTML}return e.replaceTemplateVariableSpans(a,(t,a)=>{let o=e.getHtmlAttribute(a,`data-key`);return o?x(n.get(o),o,r[o],i):t})}function b(e,t,n,r){let i=e.dataset.key||``,a=t.get(i);if(!i||!a)return;let o=new DOMParser().parseFromString(x(a,i,n[i],r),`text/html`).body.firstElementChild;o&&e.replaceWith(o)}function x(e,t,n,r){return r.mode===`display`?S(e,t,n,r):C(e,t,n,r)}function S(n,r,i,a){let s=n?.type??`text`,c=i??w(n),l=s===`image`&&!v(c)&&!o.isSafeContractImageUrl(String(c))?``:c,u=E(l),d=t.resolveTemplateVariablePresentation({type:s,width:n?.width,height:n?.height,placeholder:n?.placeholder??``,defaultValue:u,format:n?.format??``,precision:n?.precision,useGrouping:n?.useGrouping,checkedText:n?.checkedText??``,uncheckedText:n?.uncheckedText??``,multiline:n?.multiline,rows:n?.rows,lineHeight:n?.lineHeight,style:n?.style}),f=d.displayText||n?.placeholder||n?.label||r,p=[`class="${e.escapeHtmlAttribute([`gd-contract-template-renderer__control`,`gd-contract-template-renderer__preview-control`,...d.classes,a.activeKey===r?`is-active`:``,v(l)?`is-empty`:``].filter(Boolean).join(` `))}"`,`style="${e.escapeHtmlAttribute(d.styleText)}"`,`data-contract-render-wrapper="true"`,`data-contract-render-preview="true"`,`data-key="${e.escapeHtmlAttribute(r)}"`,`data-variable-type="${e.escapeHtmlAttribute(s)}"`,`aria-label="${e.escapeHtmlAttribute(n?.label||r)}"`,a.disabled?``:`role="button"`,a.disabled?``:`tabindex="0"`].filter(Boolean).join(` `);return s===`checkbox`?`<span ${p}><span class="gd-contract-template-renderer__checkbox-mark" aria-hidden="true">${D(l)?`✓`:``}</span>${e.escapeHtmlText(f)}</span>`:s===`image`&&!v(l)?`<span ${p}></span>`:`<span ${p}>${e.escapeHtmlText(f)}</span>`}function C(n,r,a,o){let s=n?.type??`text`,c=!!o.readonly,l=T(a??w(n)),u=t.resolveTemplateVariablePresentation({type:s,width:n?.width,height:n?.height,placeholder:n?.placeholder??``,defaultValue:c?l:``,format:n?.format??``,precision:n?.precision,useGrouping:n?.useGrouping,checkedText:n?.checkedText??``,uncheckedText:n?.uncheckedText??``,multiline:n?.multiline,rows:n?.rows,lineHeight:n?.lineHeight,style:n?.style}),d=o.disabled||c,f=[`data-contract-render-control="true"`,`data-key="${e.escapeHtmlAttribute(r)}"`,`data-variable-type="${e.escapeHtmlAttribute(s)}"`,`aria-label="${e.escapeHtmlAttribute(n?.label||r)}"`,d?`disabled`:``,c?`readonly`:``].filter(Boolean).join(` `),p=`style="${e.escapeHtmlAttribute(u.styleText)}"`,m=e.escapeHtmlAttribute([`gd-contract-template-renderer__control`,...u.classes].join(` `));return s===`checkbox`?`<label class="${m}" ${p} data-contract-render-wrapper="true" data-key="${e.escapeHtmlAttribute(r)}"><input type="checkbox" ${f} ${D(l)?`checked`:``}>${e.escapeHtmlText(n?.checkedText||n?.label||r)}</label>`:c?`<span class="${m}" ${p} data-contract-render-wrapper="true" data-key="${e.escapeHtmlAttribute(r)}">${e.escapeHtmlText(u.displayText||l)}</span>`:s===`number`?`<input class="${m}" ${p} type="number" ${f} value="${e.escapeHtmlAttribute(l)}" placeholder="${e.escapeHtmlAttribute(n?.placeholder||``)}">`:s===`date`?`<input class="${m}" ${p} type="date" ${f} value="${e.escapeHtmlAttribute(l)}" placeholder="${e.escapeHtmlAttribute(n?.placeholder||``)}">`:s===`select`||s===`radio`||s.endsWith(`-selector`)||s===`custom`?`<span class="${m}" ${p} data-contract-render-wrapper="true" data-key="${e.escapeHtmlAttribute(r)}">${e.escapeHtmlText(i.formatContractTemplateRenderValue(a))}</span>`:n?.multiline?`<textarea class="${m}" ${p} ${f} placeholder="${e.escapeHtmlAttribute(n.placeholder||``)}">${e.escapeHtmlText(l)}</textarea>`:`<input class="${m}" ${p} type="text" ${f} value="${e.escapeHtmlAttribute(l)}" placeholder="${e.escapeHtmlAttribute(n?.placeholder||``)}">`}function w(e){if(!e)return``;if(e.type===`checkbox`)return D(e.defaultValue);if(e.type===`number`&&e.defaultValue!==void 0){let t=Number(e.defaultValue);return Number.isFinite(t)?t:e.defaultValue}if(!(e.type===`select`||e.type===`radio`||e.type?.endsWith(`-selector`)))return e.defaultValue??``}function T(e){return typeof e==`boolean`?e?`true`:``:e==null?``:i.formatContractTemplateRenderValue(e)}function E(e){return typeof e==`boolean`?e?`true`:`false`:e==null?``:i.formatContractTemplateRenderValue(e)}function D(e){return e===!0||e===`true`||e===`1`||e===`yes`||e===`是`||e===`已选`}function O(t){if(e.canParseHtmlDocument()){let e=new DOMParser().parseFromString(t,`text/html`);return e.querySelectorAll(`script,style,meta,link,iframe,object,embed`).forEach(e=>e.remove()),e.querySelectorAll(`*`).forEach(e=>{Array.from(e.attributes).forEach(t=>{let n=t.name.toLowerCase();(n.startsWith(`on`)||n===`srcdoc`||l.has(n)&&j(t.value)||n===`style`&&N(t.value))&&e.removeAttribute(t.name)})}),e.body.innerHTML}return t.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 j(a)?``:n?` ${t}=${n}${a}${n}`:` ${t}=${a}`}).replace(/\s+style\s*=\s*(["'])(.*?)\1/gi,(e,t,n)=>N(n)?``:` style=${t}${n}${t}`)}function k(t){return e.collectFromHtmlTags(t,u,t=>e.getHtmlAttribute(t,`data-key`))}function A(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(`正文包含已移除的事件或嵌入属性`),(M(e)||/style\s*=\s*["'][^"']*(?:expression\s*\(|url\s*\(\s*["']?\s*(?:javascript|vbscript|data:text\/html))/i.test(e))&&t.push(`正文包含已移除的危险 URL 或样式`),t}function j(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
+ `,tab:` `})[t.toLowerCase()]??``).trim().replace(/[\u0000-\u0020\u007F]+/g,``);return/^(?:javascript|vbscript|data:text\/html)/i.test(t)}function M(e){let t=/\s+(?:action|formaction|href|src|xlink:href)\s*=\s*(?:(["'])(.*?)\1|([^\s>]+))/gi,n=t.exec(e);for(;n;){if(j(n[2]??n[3]??``))return!0;n=t.exec(e)}return!1}function N(e){return/expression\s*\(|url\s*\(\s*["']?\s*(?:javascript|vbscript|data:text\/html)/i.test(e)}function P(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=d,exports.buildTemplateRenderHtml=_,exports.buildTemplateRenderPages=g,exports.buildTemplateVariableData=s,exports.isEmptyRenderValue=v,exports.normalizeRenderValues=f,exports.resolveTemplateRenderSubmitErrors=m,exports.sanitizeContractRendererHtml=O,exports.validateTemplateRenderStructure=h,exports.validateTemplateRenderValues=p;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../types.cjs`);let t=require(`@ant-design/icons-vue`);var n={text:t.FontSizeOutlined,date:t.CalendarOutlined,number:t.NumberOutlined,image:t.PictureOutlined,checkbox:t.CheckSquareOutlined},r={seal:t.SafetyCertificateOutlined,signature:t.EditOutlined,date:t.CalendarOutlined};function i(t){return n[e.isContractTemplateFieldType(t)?t:`text`]}function a(e){return r[e]}exports.resolveFieldTypeIcon=i,exports.resolveSigningPlacementTypeIcon=a;
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../types.cjs`);let t=require(`@ant-design/icons-vue`);var n={text:t.FontSizeOutlined,date:t.CalendarOutlined,number:t.NumberOutlined,image:t.PictureOutlined,checkbox:t.CheckSquareOutlined,select:t.DownOutlined,radio:t.ProfileOutlined,"user-selector":t.UserOutlined,"dept-selector":t.ApartmentOutlined,"role-selector":t.TeamOutlined,"org-selector":t.ApartmentOutlined,custom:t.CodeOutlined},r={seal:t.SafetyCertificateOutlined,signature:t.EditOutlined,date:t.CalendarOutlined};function i(t){return n[e.isContractTemplateFieldType(t)?t:`text`]}function a(e){return r[e]}exports.resolveFieldTypeIcon=i,exports.resolveSigningPlacementTypeIcon=a;