@guodun/antdv 1.2.5 → 1.3.1

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 (386) hide show
  1. package/dist/es/components/contract-signing-location/index.mjs +11 -0
  2. package/dist/es/components/contract-signing-location/src/ContractSigningLocation.mjs +5 -0
  3. package/dist/es/components/contract-signing-location/src/ContractSigningLocation.vue.mjs +551 -0
  4. package/dist/es/components/contract-signing-location/src/ContractSigningLocationCanvas.mjs +5 -0
  5. package/dist/es/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.mjs +612 -0
  6. package/dist/es/components/contract-signing-location/src/ContractSigningLocationInspector.mjs +5 -0
  7. package/dist/es/components/contract-signing-location/src/ContractSigningLocationInspector.vue.mjs +228 -0
  8. package/dist/es/components/contract-signing-location/src/ContractSigningLocationNavigator.mjs +5 -0
  9. package/dist/es/components/contract-signing-location/src/ContractSigningLocationNavigator.vue.mjs +71 -0
  10. package/dist/es/components/contract-signing-location/src/constants.mjs +42 -0
  11. package/dist/es/components/contract-signing-location/src/coordinates.mjs +182 -0
  12. package/dist/es/components/contract-signing-location/src/icons.mjs +114 -0
  13. package/dist/es/components/contract-signing-location/src/location-rules.mjs +296 -0
  14. package/dist/es/components/contract-signing-location/src/page-layout.mjs +115 -0
  15. package/dist/es/components/contract-signing-location/src/preview-requests.mjs +25 -0
  16. package/dist/es/components/contract-signing-location/src/style/index.mjs +1 -0
  17. package/dist/es/components/contract-signing-location/src/types.mjs +0 -0
  18. package/dist/es/components/contract-signing-location/style/index.css +1 -0
  19. package/dist/es/components/contract-signing-location/style/index.mjs +1 -0
  20. package/dist/es/components/index.mjs +12 -0
  21. package/dist/es/components/pro-contract-signing-flow/index.mjs +9 -0
  22. package/dist/es/components/pro-contract-signing-flow/src/ContractSigningFlowCanvas.mjs +5 -0
  23. package/dist/es/components/pro-contract-signing-flow/src/ContractSigningFlowCanvas.vue.mjs +74 -0
  24. package/dist/es/components/pro-contract-signing-flow/src/ContractSigningFlowInspector.mjs +5 -0
  25. package/dist/es/components/pro-contract-signing-flow/src/ContractSigningFlowInspector.vue.mjs +338 -0
  26. package/dist/es/components/pro-contract-signing-flow/src/ContractSigningFlowNodeCard.mjs +5 -0
  27. package/dist/es/components/pro-contract-signing-flow/src/ContractSigningFlowNodeCard.vue.mjs +115 -0
  28. package/dist/es/components/pro-contract-signing-flow/src/ProContractSigningFlow.mjs +5 -0
  29. package/dist/es/components/pro-contract-signing-flow/src/ProContractSigningFlow.vue.mjs +152 -0
  30. package/dist/es/components/pro-contract-signing-flow/src/composables/use-contract-signing-flow.mjs +365 -0
  31. package/dist/es/components/pro-contract-signing-flow/src/constants.mjs +48 -0
  32. package/dist/es/components/pro-contract-signing-flow/src/types.mjs +0 -0
  33. package/dist/es/components/pro-contract-signing-flow/style/index.css +1 -0
  34. package/dist/es/components/pro-contract-signing-flow/style/index.mjs +1 -0
  35. package/dist/es/components/pro-contract-template-designer/index.mjs +5 -0
  36. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePreviewPage.mjs +5 -0
  37. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePreviewPage.vue.mjs +43 -0
  38. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePreviewSigningLayer.mjs +5 -0
  39. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePreviewSigningLayer.vue.mjs +42 -0
  40. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateRendererField.vue.mjs +88 -78
  41. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateRendererHeader.mjs +5 -0
  42. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateRendererHeader.vue.mjs +169 -0
  43. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateRendererToolbar.vue.mjs +18 -7
  44. package/dist/es/components/pro-contract-template-designer/src/DesignerPage.vue.mjs +522 -318
  45. package/dist/es/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.mjs +2440 -1166
  46. package/dist/es/components/pro-contract-template-designer/src/ProContractTemplateRenderer.vue.mjs +320 -198
  47. package/dist/es/components/pro-contract-template-designer/src/SigningPlacementInspector.mjs +5 -0
  48. package/dist/es/components/pro-contract-template-designer/src/SigningPlacementInspector.vue.mjs +142 -0
  49. package/dist/es/components/pro-contract-template-designer/src/SigningPlacementLayer.mjs +5 -0
  50. package/dist/es/components/pro-contract-template-designer/src/SigningPlacementLayer.vue.mjs +134 -0
  51. package/dist/es/components/pro-contract-template-designer/src/TableContextMenu.mjs +5 -0
  52. package/dist/es/components/pro-contract-template-designer/src/TableContextMenu.vue.mjs +189 -0
  53. package/dist/es/components/pro-contract-template-designer/src/TableSizePicker.mjs +5 -0
  54. package/dist/es/components/pro-contract-template-designer/src/TableSizePicker.vue.mjs +117 -0
  55. package/dist/es/components/pro-contract-template-designer/src/composables/use-fit-width-zoom.mjs +33 -0
  56. package/dist/es/components/pro-contract-template-designer/src/composables/use-template-designer.mjs +334 -322
  57. package/dist/es/components/pro-contract-template-designer/src/composables/use-template-draft-cache.mjs +1 -1
  58. package/dist/es/components/pro-contract-template-designer/src/extensions/ContentImageNodeView.mjs +7 -0
  59. package/dist/es/components/pro-contract-template-designer/src/extensions/ContentImageNodeView.vue.mjs +213 -0
  60. package/dist/es/components/pro-contract-template-designer/src/extensions/ContentImageNodeView.vue_vue_type_style_index_0_scoped_8082f8b4_lang.css +1 -0
  61. package/dist/es/components/pro-contract-template-designer/src/extensions/editor-extensions.mjs +62 -27
  62. package/dist/es/components/pro-contract-template-designer/src/extensions/office-content.mjs +241 -0
  63. package/dist/es/components/pro-contract-template-designer/src/extensions/template-variable.mjs +56 -119
  64. package/dist/es/components/pro-contract-template-designer/src/extensions/word-paste.mjs +145 -0
  65. package/dist/es/components/pro-contract-template-designer/src/types.mjs +13 -0
  66. package/dist/es/components/pro-contract-template-designer/src/utils/content-image.mjs +171 -0
  67. package/dist/es/components/pro-contract-template-designer/src/utils/context-variable.mjs +17 -0
  68. package/dist/es/components/pro-contract-template-designer/src/utils/html.mjs +59 -0
  69. package/dist/es/components/pro-contract-template-designer/src/utils/image-url.mjs +44 -0
  70. package/dist/es/components/pro-contract-template-designer/src/utils/signing-placement.mjs +292 -0
  71. package/dist/es/components/pro-contract-template-designer/src/utils/template-renderer.mjs +124 -167
  72. package/dist/es/components/pro-contract-template-designer/src/utils/template-tool-icons.mjs +28 -0
  73. package/dist/es/components/pro-contract-template-designer/src/utils/template-variable-render.mjs +1 -1
  74. package/dist/es/components/pro-contract-template-designer/src/utils/word-paste.mjs +737 -0
  75. package/dist/es/components/pro-contract-template-designer/style/index.css +1 -1
  76. package/dist/es/index.mjs +75 -63
  77. package/dist/lib/components/contract-signing-location/index.cjs +1 -0
  78. package/dist/lib/components/contract-signing-location/src/ContractSigningLocation.cjs +1 -0
  79. package/dist/lib/components/contract-signing-location/src/ContractSigningLocation.vue.cjs +1 -0
  80. package/dist/lib/components/contract-signing-location/src/ContractSigningLocationCanvas.cjs +1 -0
  81. package/dist/lib/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.cjs +1 -0
  82. package/dist/lib/components/contract-signing-location/src/ContractSigningLocationInspector.cjs +1 -0
  83. package/dist/lib/components/contract-signing-location/src/ContractSigningLocationInspector.vue.cjs +1 -0
  84. package/dist/lib/components/contract-signing-location/src/ContractSigningLocationNavigator.cjs +1 -0
  85. package/dist/lib/components/contract-signing-location/src/ContractSigningLocationNavigator.vue.cjs +1 -0
  86. package/dist/lib/components/contract-signing-location/src/constants.cjs +1 -0
  87. package/dist/lib/components/contract-signing-location/src/coordinates.cjs +1 -0
  88. package/dist/lib/components/contract-signing-location/src/icons.cjs +1 -0
  89. package/dist/lib/components/contract-signing-location/src/location-rules.cjs +1 -0
  90. package/dist/lib/components/contract-signing-location/src/page-layout.cjs +1 -0
  91. package/dist/lib/components/contract-signing-location/src/preview-requests.cjs +1 -0
  92. package/dist/lib/components/contract-signing-location/src/style/index.cjs +1 -0
  93. package/dist/lib/components/contract-signing-location/src/types.cjs +0 -0
  94. package/dist/lib/components/contract-signing-location/style/index.cjs +1 -0
  95. package/dist/lib/components/contract-signing-location/style/index.css +1 -0
  96. package/dist/lib/components/index.cjs +1 -1
  97. package/dist/lib/components/pro-contract-signing-flow/index.cjs +1 -0
  98. package/dist/lib/components/pro-contract-signing-flow/src/ContractSigningFlowCanvas.cjs +1 -0
  99. package/dist/lib/components/pro-contract-signing-flow/src/ContractSigningFlowCanvas.vue.cjs +1 -0
  100. package/dist/lib/components/pro-contract-signing-flow/src/ContractSigningFlowInspector.cjs +1 -0
  101. package/dist/lib/components/pro-contract-signing-flow/src/ContractSigningFlowInspector.vue.cjs +1 -0
  102. package/dist/lib/components/pro-contract-signing-flow/src/ContractSigningFlowNodeCard.cjs +1 -0
  103. package/dist/lib/components/pro-contract-signing-flow/src/ContractSigningFlowNodeCard.vue.cjs +1 -0
  104. package/dist/lib/components/pro-contract-signing-flow/src/ProContractSigningFlow.cjs +1 -0
  105. package/dist/lib/components/pro-contract-signing-flow/src/ProContractSigningFlow.vue.cjs +1 -0
  106. package/dist/lib/components/pro-contract-signing-flow/src/composables/use-contract-signing-flow.cjs +1 -0
  107. package/dist/lib/components/pro-contract-signing-flow/src/constants.cjs +1 -0
  108. package/dist/lib/components/pro-contract-signing-flow/src/types.cjs +0 -0
  109. package/dist/lib/components/pro-contract-signing-flow/style/index.cjs +1 -0
  110. package/dist/lib/components/pro-contract-signing-flow/style/index.css +1 -0
  111. package/dist/lib/components/pro-contract-template-designer/index.cjs +1 -1
  112. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePreviewPage.cjs +1 -0
  113. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePreviewPage.vue.cjs +1 -0
  114. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePreviewSigningLayer.cjs +1 -0
  115. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePreviewSigningLayer.vue.cjs +1 -0
  116. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateRendererField.vue.cjs +1 -1
  117. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateRendererHeader.cjs +1 -0
  118. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateRendererHeader.vue.cjs +1 -0
  119. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateRendererToolbar.vue.cjs +1 -1
  120. package/dist/lib/components/pro-contract-template-designer/src/DesignerPage.vue.cjs +2 -2
  121. package/dist/lib/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.cjs +1 -1
  122. package/dist/lib/components/pro-contract-template-designer/src/ProContractTemplateRenderer.vue.cjs +1 -1
  123. package/dist/lib/components/pro-contract-template-designer/src/SigningPlacementInspector.cjs +1 -0
  124. package/dist/lib/components/pro-contract-template-designer/src/SigningPlacementInspector.vue.cjs +1 -0
  125. package/dist/lib/components/pro-contract-template-designer/src/SigningPlacementLayer.cjs +1 -0
  126. package/dist/lib/components/pro-contract-template-designer/src/SigningPlacementLayer.vue.cjs +1 -0
  127. package/dist/lib/components/pro-contract-template-designer/src/TableContextMenu.cjs +1 -0
  128. package/dist/lib/components/pro-contract-template-designer/src/TableContextMenu.vue.cjs +1 -0
  129. package/dist/lib/components/pro-contract-template-designer/src/TableSizePicker.cjs +1 -0
  130. package/dist/lib/components/pro-contract-template-designer/src/TableSizePicker.vue.cjs +1 -0
  131. package/dist/lib/components/pro-contract-template-designer/src/composables/use-fit-width-zoom.cjs +1 -0
  132. package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-designer.cjs +4 -4
  133. package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-draft-cache.cjs +1 -1
  134. package/dist/lib/components/pro-contract-template-designer/src/extensions/ContentImageNodeView.cjs +1 -0
  135. package/dist/lib/components/pro-contract-template-designer/src/extensions/ContentImageNodeView.vue.cjs +1 -0
  136. package/dist/lib/components/pro-contract-template-designer/src/extensions/ContentImageNodeView.vue_vue_type_style_index_0_scoped_8082f8b4_lang.css +1 -0
  137. package/dist/lib/components/pro-contract-template-designer/src/extensions/editor-extensions.cjs +1 -1
  138. package/dist/lib/components/pro-contract-template-designer/src/extensions/office-content.cjs +1 -0
  139. package/dist/lib/components/pro-contract-template-designer/src/extensions/template-variable.cjs +1 -1
  140. package/dist/lib/components/pro-contract-template-designer/src/extensions/word-paste.cjs +1 -0
  141. package/dist/lib/components/pro-contract-template-designer/src/types.cjs +1 -0
  142. package/dist/lib/components/pro-contract-template-designer/src/utils/content-image.cjs +1 -0
  143. package/dist/lib/components/pro-contract-template-designer/src/utils/context-variable.cjs +1 -0
  144. package/dist/lib/components/pro-contract-template-designer/src/utils/html.cjs +1 -0
  145. package/dist/lib/components/pro-contract-template-designer/src/utils/image-url.cjs +2 -0
  146. package/dist/lib/components/pro-contract-template-designer/src/utils/signing-placement.cjs +1 -0
  147. package/dist/lib/components/pro-contract-template-designer/src/utils/template-renderer.cjs +3 -3
  148. package/dist/lib/components/pro-contract-template-designer/src/utils/template-tool-icons.cjs +1 -0
  149. package/dist/lib/components/pro-contract-template-designer/src/utils/template-variable-render.cjs +1 -1
  150. package/dist/lib/components/pro-contract-template-designer/src/utils/word-paste.cjs +3 -0
  151. package/dist/lib/components/pro-contract-template-designer/style/index.css +1 -1
  152. package/dist/lib/index.cjs +1 -1
  153. package/dist/theme/contract-signing-location.css +1 -0
  154. package/dist/theme/icon.css +1 -1
  155. package/dist/theme/index.css +1 -1
  156. package/dist/theme/pro-contract-signing-flow.css +1 -0
  157. package/dist/types/components/contract-signing-location/index.d.ts +9 -0
  158. package/dist/types/components/contract-signing-location/src/ContractSigningLocation.vue.d.ts +134 -0
  159. package/dist/types/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.d.ts +49 -0
  160. package/dist/types/components/contract-signing-location/src/ContractSigningLocationInspector.vue.d.ts +32 -0
  161. package/dist/types/components/contract-signing-location/src/ContractSigningLocationNavigator.vue.d.ts +13 -0
  162. package/dist/types/components/contract-signing-location/src/constants.d.ts +40 -0
  163. package/dist/types/components/contract-signing-location/src/coordinates.d.ts +59 -0
  164. package/dist/types/components/contract-signing-location/src/icons.d.ts +12 -0
  165. package/dist/types/components/contract-signing-location/src/location-rules.d.ts +50 -0
  166. package/dist/types/components/contract-signing-location/src/page-layout.d.ts +49 -0
  167. package/dist/types/components/contract-signing-location/src/preview-requests.d.ts +8 -0
  168. package/dist/types/components/contract-signing-location/src/types.d.ts +223 -0
  169. package/dist/types/{antdv/src/components → components}/hooks/use-basic-app-config.d.ts +2 -2
  170. package/dist/types/{antdv/src/components → components}/index.d.ts +2 -0
  171. package/dist/types/components/pro-contract-signing-flow/index.d.ts +7 -0
  172. package/dist/types/components/pro-contract-signing-flow/src/ContractSigningFlowCanvas.vue.d.ts +42 -0
  173. package/dist/types/components/pro-contract-signing-flow/src/ContractSigningFlowInspector.vue.d.ts +15 -0
  174. package/dist/types/components/pro-contract-signing-flow/src/ContractSigningFlowNodeCard.vue.d.ts +19 -0
  175. package/dist/types/components/pro-contract-signing-flow/src/ProContractSigningFlow.vue.d.ts +59 -0
  176. package/dist/types/components/pro-contract-signing-flow/src/composables/use-contract-signing-flow.d.ts +217 -0
  177. package/dist/types/components/pro-contract-signing-flow/src/constants.d.ts +26 -0
  178. package/dist/types/components/pro-contract-signing-flow/src/types.d.ts +124 -0
  179. package/dist/types/{antdv/src/components → components}/pro-contract-template-agent/src/ContractTemplateAgentContext.vue.d.ts +1 -1
  180. package/dist/types/{antdv/src/components → components}/pro-contract-template-agent/src/ContractTemplateAgentPanel.vue.d.ts +5 -5
  181. package/dist/types/components/pro-contract-template-agent/src/ContractTemplateAgentPreview.vue.d.ts +11 -0
  182. package/dist/types/{antdv/src/components → components}/pro-contract-template-agent/src/ProContractTemplateAgentWorkbench.vue.d.ts +1 -1
  183. package/dist/types/{antdv/src/components → components}/pro-contract-template-agent/src/composables/use-contract-template-agent.d.ts +11 -11
  184. package/dist/types/{antdv/src/components → components}/pro-contract-template-agent/src/types.d.ts +39 -2
  185. package/dist/types/{antdv/src/components → components}/pro-contract-template-designer/index.d.ts +2 -0
  186. package/dist/types/components/pro-contract-template-designer/src/ContractTemplatePreviewPage.vue.d.ts +9 -0
  187. package/dist/types/components/pro-contract-template-designer/src/ContractTemplatePreviewSigningLayer.vue.d.ts +7 -0
  188. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateRendererHeader.vue.d.ts +71 -0
  189. package/dist/types/{antdv/src/components → components}/pro-contract-template-designer/src/ContractTemplateRendererToolbar.vue.d.ts +14 -3
  190. package/dist/types/components/pro-contract-template-designer/src/DesignerPage.vue.d.ts +197 -0
  191. package/dist/types/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.d.ts +120 -0
  192. package/dist/types/{antdv/src/components → components}/pro-contract-template-designer/src/ProContractTemplateRenderer.vue.d.ts +11 -3
  193. package/dist/types/components/pro-contract-template-designer/src/SigningPlacementInspector.vue.d.ts +17 -0
  194. package/dist/types/components/pro-contract-template-designer/src/SigningPlacementLayer.vue.d.ts +19 -0
  195. package/dist/types/components/pro-contract-template-designer/src/TableContextMenu.vue.d.ts +22 -0
  196. package/dist/types/components/pro-contract-template-designer/src/TableSizePicker.vue.d.ts +23 -0
  197. package/dist/types/components/pro-contract-template-designer/src/composables/use-fit-width-zoom.d.ts +28 -0
  198. package/dist/types/components/pro-contract-template-designer/src/composables/use-template-designer.d.ts +139 -0
  199. package/dist/types/components/pro-contract-template-designer/src/composables/use-template-draft-cache.d.ts +83 -0
  200. package/dist/types/{antdv/src/components → components}/pro-contract-template-designer/src/constants.d.ts +49 -0
  201. package/dist/types/components/pro-contract-template-designer/src/extensions/ContentImageNodeView.vue.d.ts +5 -0
  202. package/dist/types/components/pro-contract-template-designer/src/extensions/editor-extensions.d.ts +16 -0
  203. package/dist/types/{antdv/src/components → components}/pro-contract-template-designer/src/extensions/font-size.d.ts +6 -0
  204. package/dist/types/components/pro-contract-template-designer/src/extensions/office-content.d.ts +11 -0
  205. package/dist/types/{antdv/src/components → components}/pro-contract-template-designer/src/extensions/template-variable.d.ts +17 -2
  206. package/dist/types/components/pro-contract-template-designer/src/extensions/word-paste.d.ts +25 -0
  207. package/dist/types/{antdv/src/components → components}/pro-contract-template-designer/src/types.d.ts +253 -23
  208. package/dist/types/components/pro-contract-template-designer/src/utils/content-image.d.ts +80 -0
  209. package/dist/types/components/pro-contract-template-designer/src/utils/context-variable.d.ts +37 -0
  210. package/dist/types/components/pro-contract-template-designer/src/utils/html.d.ts +74 -0
  211. package/dist/types/components/pro-contract-template-designer/src/utils/image-url.d.ts +6 -0
  212. package/dist/types/components/pro-contract-template-designer/src/utils/signing-placement.d.ts +105 -0
  213. package/dist/types/{antdv/src/components → components}/pro-contract-template-designer/src/utils/template-renderer.d.ts +15 -1
  214. package/dist/types/components/pro-contract-template-designer/src/utils/template-tool-icons.d.ts +12 -0
  215. package/dist/types/{antdv/src/components → components}/pro-contract-template-designer/src/utils/template-variable-render.d.ts +39 -0
  216. package/dist/types/components/pro-contract-template-designer/src/utils/word-paste.d.ts +45 -0
  217. package/dist/types/{antdv/src/components → components}/pro-form-render/src/module/AioArrayInput.vue.d.ts +3 -3
  218. package/dist/types/{antdv/src/components → components}/pro-form-render/src/module/AioArraySubForm.vue.d.ts +3 -3
  219. package/dist/types/{antdv/src/components → components}/pro-form-render/src/module/AioKV.vue.d.ts +3 -3
  220. package/dist/types/{antdv/src/components → components}/pro-form-render/src/module/AioSubForm.vue.d.ts +9 -9
  221. package/dist/types/{antdv/src/components → components}/pro-selector/src/pro-user.d.ts +3 -3
  222. package/dist/types/{antdv/src/components → components}/pro-selector-group/src/hooks/useApi.d.ts +1 -1
  223. package/global.d.ts +2 -0
  224. package/package.json +13 -8
  225. package/dist/types/antdv/src/components/pro-contract-template-agent/src/ContractTemplateAgentPreview.vue.d.ts +0 -11
  226. package/dist/types/antdv/src/components/pro-contract-template-designer/src/DesignerPage.vue.d.ts +0 -79
  227. package/dist/types/antdv/src/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.d.ts +0 -57
  228. package/dist/types/antdv/src/components/pro-contract-template-designer/src/composables/use-template-designer.d.ts +0 -41
  229. package/dist/types/antdv/src/components/pro-contract-template-designer/src/composables/use-template-draft-cache.d.ts +0 -39
  230. package/dist/types/antdv/src/components/pro-contract-template-designer/src/extensions/editor-extensions.d.ts +0 -9
  231. package/dist/types/antdv/src/components/pro-contract-template-designer/src/extensions/template-field.d.ts +0 -5
  232. /package/dist/types/{antdv/src/components → components}/collapse-transtion/hooks/use-collapse-transtion.d.ts +0 -0
  233. /package/dist/types/{antdv/src/components → components}/collapse-transtion/index.d.ts +0 -0
  234. /package/dist/types/{antdv/src/components → components}/collapse-transtion/src/collapse-transtion.vue.d.ts +0 -0
  235. /package/dist/types/{antdv/src/components → components}/collapse-transtion/src/types.d.ts +0 -0
  236. /package/dist/types/{antdv/src/components → components}/cover-scroll-bar/hooks/use-has-scroll.d.ts +0 -0
  237. /package/dist/types/{antdv/src/components → components}/cover-scroll-bar/index.d.ts +0 -0
  238. /package/dist/types/{antdv/src/components → components}/cover-scroll-bar/src/cover-scroll-bar.d.ts +0 -0
  239. /package/dist/types/{antdv/src/components → components}/cover-scroll-bar/src/types.d.ts +0 -0
  240. /package/dist/types/{antdv/src/components → components}/dept-selector/index.d.ts +0 -0
  241. /package/dist/types/{antdv/src/components → components}/dept-selector/src/dept.d.ts +0 -0
  242. /package/dist/types/{antdv/src/components → components}/dept-selector/src/types.d.ts +0 -0
  243. /package/dist/types/{antdv/src/components → components}/hooks/index.d.ts +0 -0
  244. /package/dist/types/{antdv/src/components → components}/icon/index.d.ts +0 -0
  245. /package/dist/types/{antdv/src/components → components}/icon/src/icon.vue.d.ts +0 -0
  246. /package/dist/types/{antdv/src/components → components}/icon/src/types.d.ts +0 -0
  247. /package/dist/types/{antdv/src/components → components}/plus-upload/apis/plus-upload.api.d.ts +0 -0
  248. /package/dist/types/{antdv/src/components → components}/plus-upload/hook/useExtractPlusUpload.d.ts +0 -0
  249. /package/dist/types/{antdv/src/components → components}/plus-upload/hook/usePlusUpload.d.ts +0 -0
  250. /package/dist/types/{antdv/src/components → components}/plus-upload/index.d.ts +0 -0
  251. /package/dist/types/{antdv/src/components → components}/plus-upload/src/plus-upload.vue.d.ts +0 -0
  252. /package/dist/types/{antdv/src/components → components}/plus-upload/src/types.d.ts +0 -0
  253. /package/dist/types/{antdv/src/components → components}/pro-area/apis/pro-area.api.d.ts +0 -0
  254. /package/dist/types/{antdv/src/components → components}/pro-area/hooks/use-pro-area.d.ts +0 -0
  255. /package/dist/types/{antdv/src/components → components}/pro-area/index.d.ts +0 -0
  256. /package/dist/types/{antdv/src/components → components}/pro-area/src/ProArea.vue.d.ts +0 -0
  257. /package/dist/types/{antdv/src/components → components}/pro-area/src/types.d.ts +0 -0
  258. /package/dist/types/{antdv/src/components → components}/pro-cell/index.d.ts +0 -0
  259. /package/dist/types/{antdv/src/components → components}/pro-cell/src/index.vue.d.ts +0 -0
  260. /package/dist/types/{antdv/src/components → components}/pro-cell/src/types.d.ts +0 -0
  261. /package/dist/types/{antdv/src/components → components}/pro-cell-group/index.d.ts +0 -0
  262. /package/dist/types/{antdv/src/components → components}/pro-cell-group/src/index.vue.d.ts +0 -0
  263. /package/dist/types/{antdv/src/components → components}/pro-cell-group/src/types.d.ts +0 -0
  264. /package/dist/types/{antdv/src/components → components}/pro-contract-template-agent/index.d.ts +0 -0
  265. /package/dist/types/{antdv/src/components → components}/pro-contract-template-agent/src/composables/use-contract-template-agent-split.d.ts +0 -0
  266. /package/dist/types/{antdv/src/components → components}/pro-contract-template-agent/src/composables/use-contract-template-agent-workbench.d.ts +0 -0
  267. /package/dist/types/{antdv/src/components → components}/pro-contract-template-agent/src/utils/contract-template-agent-adapter.d.ts +0 -0
  268. /package/dist/types/{antdv/src/components → components}/pro-contract-template-designer/src/ContractTemplateRendererField.vue.d.ts +0 -0
  269. /package/dist/types/{antdv/src/components → components}/pro-contract-template-designer/src/ContractTemplateRendererPage.vue.d.ts +0 -0
  270. /package/dist/types/{antdv/src/components → components}/pro-drawer/index.d.ts +0 -0
  271. /package/dist/types/{antdv/src/components → components}/pro-drawer/src/index.vue.d.ts +0 -0
  272. /package/dist/types/{antdv/src/components → components}/pro-drawer/src/types.d.ts +0 -0
  273. /package/dist/types/{antdv/src/components → components}/pro-dynamic-tags/index.d.ts +0 -0
  274. /package/dist/types/{antdv/src/components → components}/pro-dynamic-tags/src/index.vue.d.ts +0 -0
  275. /package/dist/types/{antdv/src/components → components}/pro-dynamic-tags/src/types.d.ts +0 -0
  276. /package/dist/types/{antdv/src/components → components}/pro-form-render/index.d.ts +0 -0
  277. /package/dist/types/{antdv/src/components → components}/pro-form-render/src/index.vue.d.ts +0 -0
  278. /package/dist/types/{antdv/src/components → components}/pro-form-render/src/module/AioDatePicker.vue.d.ts +0 -0
  279. /package/dist/types/{antdv/src/components → components}/pro-form-render/src/module/AioInput.vue.d.ts +0 -0
  280. /package/dist/types/{antdv/src/components → components}/pro-form-render/src/module/AioInputNumber.vue.d.ts +0 -0
  281. /package/dist/types/{antdv/src/components → components}/pro-form-render/src/module/AioKeyValue.vue.d.ts +0 -0
  282. /package/dist/types/{antdv/src/components → components}/pro-form-render/src/module/AioSelect.vue.d.ts +0 -0
  283. /package/dist/types/{antdv/src/components → components}/pro-form-render/src/module/AioSwitch.vue.d.ts +0 -0
  284. /package/dist/types/{antdv/src/components → components}/pro-form-render/src/module/AioTextarea.vue.d.ts +0 -0
  285. /package/dist/types/{antdv/src/components → components}/pro-form-render/src/module/AioTimePicker.vue.d.ts +0 -0
  286. /package/dist/types/{antdv/src/components → components}/pro-form-render/src/module/index.d.ts +0 -0
  287. /package/dist/types/{antdv/src/components → components}/pro-form-render/src/types.d.ts +0 -0
  288. /package/dist/types/{antdv/src/components → components}/pro-form-render/src/utils.d.ts +0 -0
  289. /package/dist/types/{antdv/src/components → components}/pro-form-render/src/v-model-utils.d.ts +0 -0
  290. /package/dist/types/{antdv/src/components → components}/pro-loading/index.d.ts +0 -0
  291. /package/dist/types/{antdv/src/components → components}/pro-loading/src/pro-loading.d.ts +0 -0
  292. /package/dist/types/{antdv/src/components → components}/pro-loading/src/types.d.ts +0 -0
  293. /package/dist/types/{antdv/src/components → components}/pro-menu-tree/index.d.ts +0 -0
  294. /package/dist/types/{antdv/src/components → components}/pro-menu-tree/src/hooks.d.ts +0 -0
  295. /package/dist/types/{antdv/src/components → components}/pro-menu-tree/src/pro-menu-tree.d.ts +0 -0
  296. /package/dist/types/{antdv/src/components → components}/pro-menu-tree/src/types.d.ts +0 -0
  297. /package/dist/types/{antdv/src/components → components}/pro-modal/hooks/useProModal.d.ts +0 -0
  298. /package/dist/types/{antdv/src/components → components}/pro-modal/index.d.ts +0 -0
  299. /package/dist/types/{antdv/src/components → components}/pro-modal/src/Modal.d.ts +0 -0
  300. /package/dist/types/{antdv/src/components → components}/pro-modal/src/ProModal.vue.d.ts +0 -0
  301. /package/dist/types/{antdv/src/components → components}/pro-modal/src/types.d.ts +0 -0
  302. /package/dist/types/{antdv/src/components → components}/pro-overlay/index.d.ts +0 -0
  303. /package/dist/types/{antdv/src/components → components}/pro-overlay/src/pro-overlay.vue.d.ts +0 -0
  304. /package/dist/types/{antdv/src/components → components}/pro-picker/apis/pro-picker.api.d.ts +0 -0
  305. /package/dist/types/{antdv/src/components → components}/pro-picker/index.d.ts +0 -0
  306. /package/dist/types/{antdv/src/components → components}/pro-picker/src/ProPicker.vue.d.ts +0 -0
  307. /package/dist/types/{antdv/src/components → components}/pro-picker/src/types.d.ts +0 -0
  308. /package/dist/types/{antdv/src/components → components}/pro-selector/index.d.ts +0 -0
  309. /package/dist/types/{antdv/src/components → components}/pro-selector/src/components/org-tree.d.ts +0 -0
  310. /package/dist/types/{antdv/src/components → components}/pro-selector/src/components/user.d.ts +0 -0
  311. /package/dist/types/{antdv/src/components → components}/pro-selector/src/hooks/index.d.ts +0 -0
  312. /package/dist/types/{antdv/src/components → components}/pro-selector/src/hooks/useUserSelector.d.ts +0 -0
  313. /package/dist/types/{antdv/src/components → components}/pro-selector/src/types.d.ts +0 -0
  314. /package/dist/types/{antdv/src/components → components}/pro-selector/src/util.d.ts +0 -0
  315. /package/dist/types/{antdv/src/components → components}/pro-selector/src/utils/orgTree.d.ts +0 -0
  316. /package/dist/types/{antdv/src/components → components}/pro-selector-group/index.d.ts +0 -0
  317. /package/dist/types/{antdv/src/components → components}/pro-selector-group/src/compoents/dept-tree.vue.d.ts +0 -0
  318. /package/dist/types/{antdv/src/components → components}/pro-selector-group/src/compoents/dept.vue.d.ts +0 -0
  319. /package/dist/types/{antdv/src/components → components}/pro-selector-group/src/compoents/index.d.ts +0 -0
  320. /package/dist/types/{antdv/src/components → components}/pro-selector-group/src/compoents/role.vue.d.ts +0 -0
  321. /package/dist/types/{antdv/src/components → components}/pro-selector-group/src/compoents/select-box.vue.d.ts +0 -0
  322. /package/dist/types/{antdv/src/components → components}/pro-selector-group/src/compoents/user.vue.d.ts +0 -0
  323. /package/dist/types/{antdv/src/components → components}/pro-selector-group/src/index.vue.d.ts +0 -0
  324. /package/dist/types/{antdv/src/components → components}/pro-selector-group/src/types.d.ts +0 -0
  325. /package/dist/types/{antdv/src/components → components}/pro-selector-group/src/utils/index.d.ts +0 -0
  326. /package/dist/types/{antdv/src/components → components}/pro-signature/index.d.ts +0 -0
  327. /package/dist/types/{antdv/src/components → components}/pro-signature/src/ProSignature.vue.d.ts +0 -0
  328. /package/dist/types/{antdv/src/components → components}/pro-signature/src/types.d.ts +0 -0
  329. /package/dist/types/{antdv/src/components → components}/pro-table/hooks/use-pro-table.d.ts +0 -0
  330. /package/dist/types/{antdv/src/components → components}/pro-table/index.d.ts +0 -0
  331. /package/dist/types/{antdv/src/components → components}/pro-table/src/constants.d.ts +0 -0
  332. /package/dist/types/{antdv/src/components → components}/pro-table/src/field/field-date-range/field-date-range.vue.d.ts +0 -0
  333. /package/dist/types/{antdv/src/components → components}/pro-table/src/field/field-input/field-input.vue.d.ts +0 -0
  334. /package/dist/types/{antdv/src/components → components}/pro-table/src/field/field-radio/field-radio.vue.d.ts +0 -0
  335. /package/dist/types/{antdv/src/components → components}/pro-table/src/field/field-select/field-select.vue.d.ts +0 -0
  336. /package/dist/types/{antdv/src/components → components}/pro-table/src/field/field.vue.d.ts +0 -0
  337. /package/dist/types/{antdv/src/components → components}/pro-table/src/form-render.vue.d.ts +0 -0
  338. /package/dist/types/{antdv/src/components → components}/pro-table/src/hooks/use-form.d.ts +0 -0
  339. /package/dist/types/{antdv/src/components → components}/pro-table/src/hooks/use-table.d.ts +0 -0
  340. /package/dist/types/{antdv/src/components → components}/pro-table/src/pro-table.vue.d.ts +0 -0
  341. /package/dist/types/{antdv/src/components → components}/pro-table/src/types.d.ts +0 -0
  342. /package/dist/types/{antdv/src/components → components}/pro-table/utils.d.ts +0 -0
  343. /package/dist/types/{antdv/src/components → components}/pro-tag/index.d.ts +0 -0
  344. /package/dist/types/{antdv/src/components → components}/pro-tag/src/ProTag.vue.d.ts +0 -0
  345. /package/dist/types/{antdv/src/components → components}/pro-tag/src/types.d.ts +0 -0
  346. /package/dist/types/{antdv/src/components → components}/pro-tag-group/index.d.ts +0 -0
  347. /package/dist/types/{antdv/src/components → components}/pro-tag-group/src/ProTagGroup.vue.d.ts +0 -0
  348. /package/dist/types/{antdv/src/components → components}/pro-tag-group/src/types.d.ts +0 -0
  349. /package/dist/types/{antdv/src/components → components}/pro-title/index.d.ts +0 -0
  350. /package/dist/types/{antdv/src/components → components}/pro-title/src/ProTitle.vue.d.ts +0 -0
  351. /package/dist/types/{antdv/src/components → components}/pro-title/src/types.d.ts +0 -0
  352. /package/dist/types/{antdv/src/components → components}/pro-upload/index.d.ts +0 -0
  353. /package/dist/types/{antdv/src/components → components}/pro-upload/src/data.d.ts +0 -0
  354. /package/dist/types/{antdv/src/components → components}/pro-upload/src/file-list.d.ts +0 -0
  355. /package/dist/types/{antdv/src/components → components}/pro-upload/src/gd-upload.d.ts +0 -0
  356. /package/dist/types/{antdv/src/components → components}/pro-upload/src/hooks/index.d.ts +0 -0
  357. /package/dist/types/{antdv/src/components → components}/pro-upload/src/hooks/resType.d.ts +0 -0
  358. /package/dist/types/{antdv/src/components → components}/pro-upload/src/hooks/useHttp.d.ts +0 -0
  359. /package/dist/types/{antdv/src/components → components}/pro-upload/src/hooks/useUpload.d.ts +0 -0
  360. /package/dist/types/{antdv/src/components → components}/pro-upload/src/props.d.ts +0 -0
  361. /package/dist/types/{antdv/src/components → components}/pro-upload/src/types.d.ts +0 -0
  362. /package/dist/types/{antdv/src/components → components}/pro-upload/src/utils/emitter.d.ts +0 -0
  363. /package/dist/types/{antdv/src/components → components}/pro-upload/src/utils/index.d.ts +0 -0
  364. /package/dist/types/{antdv/src/components → components}/pro-user-avatar/index.d.ts +0 -0
  365. /package/dist/types/{antdv/src/components → components}/pro-user-avatar/src/index.vue.d.ts +0 -0
  366. /package/dist/types/{antdv/src/components → components}/pro-user-avatar/src/types.d.ts +0 -0
  367. /package/dist/types/{antdv/src/components → components}/pro-user-avatar/src/util.d.ts +0 -0
  368. /package/dist/types/{antdv/src/components → components}/role-selector/index.d.ts +0 -0
  369. /package/dist/types/{antdv/src/components → components}/role-selector/src/role.d.ts +0 -0
  370. /package/dist/types/{antdv/src/components → components}/role-selector/src/types.d.ts +0 -0
  371. /package/dist/types/{antdv/src/components → components}/scale-virtual-list/component/scale-virtual-list.vue.d.ts +0 -0
  372. /package/dist/types/{antdv/src/components → components}/scale-virtual-list/component/types.d.ts +0 -0
  373. /package/dist/types/{antdv/src/components → components}/scale-virtual-list/hooks/useVirtualList.d.ts +0 -0
  374. /package/dist/types/{antdv/src/components → components}/scale-virtual-list/index.d.ts +0 -0
  375. /package/dist/types/{antdv/src/components → components}/scroll-bar/index.d.ts +0 -0
  376. /package/dist/types/{antdv/src/components → components}/scroll-bar/src/scroll-bar.d.ts +0 -0
  377. /package/dist/types/{antdv/src/components → components}/scroll-bar/src/types.d.ts +0 -0
  378. /package/dist/types/{antdv/src/components → components}/utils/install.d.ts +0 -0
  379. /package/dist/types/{antdv/src/components → components}/utils/tool.d.ts +0 -0
  380. /package/dist/types/{antdv/src/extract.d.ts → extract.d.ts} +0 -0
  381. /package/dist/types/{antdv/src/hooks → hooks}/index.d.ts +0 -0
  382. /package/dist/types/{antdv/src/hooks → hooks}/setup-theme.d.ts +0 -0
  383. /package/dist/types/{antdv/src/hooks → hooks}/use-namespace/index.d.ts +0 -0
  384. /package/dist/types/{antdv/src/hooks → hooks}/useModelValue.d.ts +0 -0
  385. /package/dist/types/{antdv/src/hooks → hooks}/useProForm.d.ts +0 -0
  386. /package/dist/types/{antdv/src/index.d.ts → index.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- const e=require(`../constants.cjs`),t=require(`../utils/template-variable-render.cjs`);var n=[{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`}],r={...n[4]},i={color:`#1f2937`,background:`transparent`,fontSize:14,fontFamily:e.DEFAULT_CONTRACT_FONT_FAMILY,placeholderColor:`#7a818b`,lineColor:`#565b66`,textAlign:`left`,borderStyle:`solid`,objectFit:`contain`},a=3,o=28,s=`contract-template-renderer-1.0.0`,c=`contract-render-css-1.0.0`,l=[{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}],u=0;function d(e){return u+=1,`${e}-${Date.now().toString(36)}-${u.toString(36)}`}function f(e){return JSON.parse(JSON.stringify(e))}function p(e){return n.find(t=>t.format===e)}function m(e){if(e)return e.format&&e.format!==`Custom`?e.format:n.find(t=>t.width===e.width&&t.height===e.height)?.format}function h(e,t=r){let n=m(t)??t.format,i=e?.format??m(e)??n??`Custom`,a=i===`Custom`?void 0:p(i),o=g(a?.width??e?.width,t.width),s=g(a?.height??e?.height,t.height);return{format:a?.format??i,width:o,height:s,label:e?.label??a?.label??t.label??i}}function g(e,t){let n=Number(e);return!Number.isFinite(n)||n<=0?t:Math.round(n)}function _(e=1,t){return{id:d(`page`),title:`第 ${e} 页`,pageSize:t?h(t):void 0,contentHtml:`<p>请输入合同正文,也可以从 WPS / Word 复制内容粘贴到这里。</p>`}}function v(e=1,t,n=`<p></p>`,r){return{id:d(`page`),title:`第 ${e} 页`,pageSize:t?h(t):void 0,contentHtml:n,contentJson:r}}function y(e=r){let t=h(e);return{pages:[_(1,t)],variables:[],pageSize:t}}function b(e=r){let t=h(e);return{pages:[v(1,t,`<p></p>`)],variables:[],pageSize:t}}function x(e,t=l){return t.find(t=>t.type===e)??l[0]}function S(e,t=l,n={}){let r=e.type??`text`,a=x(r,t),o=ee(r);return{id:e.id??d(`variable`),key:e.key,label:e.label??a.label??e.key,type:r,placeholder:e.placeholder??o.placeholder??``,width:Math.max(24,Math.round(e.width??a.defaultWidth??140)),height:Math.max(24,Math.round(e.height??o.height??a.defaultHeight??32)),required:e.required??!1,defaultValue:e.defaultValue??``,format:e.format??o.format??``,precision:e.precision??o.precision,useGrouping:e.useGrouping??o.useGrouping,checkedText:e.checkedText??o.checkedText??``,uncheckedText:e.uncheckedText??o.uncheckedText??``,multiline:e.multiline??!1,rows:Math.max(1,Math.round(e.rows??3)),lineHeight:Math.max(18,Math.round(e.lineHeight??28)),style:{...i,...o.style,...n,...e.style}}}function ee(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 te(e,t=r){if(!e)return y(t);let n=h(e.pageSize,t),i=(e.pages?.length?e.pages:[_(1,n)]).map((e,t)=>({id:e.id||d(`page`),title:e.title||`第 ${t+1} 页`,pageSize:h(e.pageSize,n),contentHtml:e.contentHtml||`<p></p>`,contentJson:e.contentJson})),a=new Map;return(e.variables??[]).forEach(e=>{e.key&&a.set(e.key,S({...e,id:e.id||d(`variable`)}))}),i.forEach(e=>{P(e).forEach(e=>{!e.key||a.has(e.key)||a.set(e.key,S(e))})}),{pages:i,variables:Array.from(a.values()),pageSize:n}}function ne(e){return e.pages.map(t=>`<section ${j(t,e.pageSize)}>${t.contentHtml}</section>`).join(`
2
- `)}function C(e){return e.pages.map(t=>`<section ${j(t,e.pageSize)}>${Y(t.contentHtml)}</section>`).join(`
3
- `)}function w(e){let t=new Map(e.variables.map(e=>[e.key,e]));return e.pages.map(n=>{let r=h(n.pageSize,e.pageSize),i=L(n.contentHtml,t);return`<section ${j(n,e.pageSize)} style="width:${r.width}px;min-height:${r.height}px">${i}</section>`}).join(`
4
- `)}function T(e){let t=f(e);return{...t,rendererVersion:s,styleVersion:c,html:C(t)}}function E(e){let t=[],n=new Map;e.variables.forEach(e=>{if(e.key?.trim()||t.push({type:`variable`,id:e.id,message:`${e.label||`变量`} 缺少变量标识`}),e.key){let r=n.get(e.key);r&&r!==e.id&&t.push({type:`variable`,id:e.id,message:`变量标识 ${e.key} 重复`}),n.set(e.key,e.id)}});let r=new Set(e.variables.map(e=>e.key).filter(Boolean)),i=new Set;return e.pages.forEach(e=>{D(e).forEach(n=>{i.add(n),r.has(n)||t.push({type:`variable`,id:e.id,message:`正文模板变量 ${n} 没有对应变量配置`})})}),e.variables.forEach(e=>{e.key&&!i.has(e.key)&&t.push({type:`variable`,id:e.id,message:`${e.label||e.key} 缺少对应正文变量节点`})}),t}function D(e){let t=new Set;function n(e){if(!e||typeof e!=`object`)return;let r=e;(r.type===`templateVariable`||r.type===`templateField`)&&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 O(e){let t=new Set;return e.pages.forEach(e=>{D(e).forEach(e=>t.add(e))}),t}function k(e){let t=O(e);return{...e,variables:e.variables.filter(e=>e.key&&t.has(e.key))}}function A(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 j(e,t){let n=h(e.pageSize,t);return[`class="gd-contract-template-page"`,`data-page-id="${M(e.id)}"`,`data-page-format="${M(n.format??`Custom`)}"`,`data-page-label="${M(n.label??n.format??`自定义`)}"`,`data-page-width="${n.width}"`,`data-page-height="${n.height}"`].join(` `)}function M(e){return e.replaceAll(`&`,`&amp;`).replaceAll(`"`,`&quot;`).replaceAll(`<`,`&lt;`).replaceAll(`>`,`&gt;`)}function N(e){return e.replaceAll(`&`,`&amp;`).replaceAll(`<`,`&lt;`).replaceAll(`>`,`&gt;`)}function P(e){let t=new Map;function n(e){!e.key||t.has(e.key)||t.set(e.key,e)}function r(e){if(!e||typeof e!=`object`)return;let t=e;t.type===`templateVariable`&&typeof t.attrs?.key==`string`&&n({key:t.attrs.key,label:typeof t.attrs.label==`string`?t.attrs.label:t.attrs.key,type:$(t.attrs.type)?t.attrs.type:`text`,placeholder:typeof t.attrs.placeholder==`string`?t.attrs.placeholder:``,width:Number(t.attrs.width||160),height:Number(t.attrs.height||32),required:t.attrs.required===!0,defaultValue:typeof t.attrs.defaultValue==`string`?t.attrs.defaultValue:``,format:typeof t.attrs.format==`string`?t.attrs.format:``,precision:typeof t.attrs.precision==`number`?t.attrs.precision:void 0,useGrouping:typeof t.attrs.useGrouping==`boolean`?t.attrs.useGrouping:void 0,checkedText:typeof t.attrs.checkedText==`string`?t.attrs.checkedText:``,uncheckedText:typeof t.attrs.uncheckedText==`string`?t.attrs.uncheckedText:``,multiline:t.attrs.multiline===!0,rows:Number(t.attrs.rows||3),lineHeight:Number(t.attrs.lineHeight||28),style:{border:typeof t.attrs.border==`boolean`?t.attrs.border:void 0,underline:typeof t.attrs.underline==`boolean`?t.attrs.underline:void 0,color:typeof t.attrs.color==`string`?t.attrs.color:void 0,background:typeof t.attrs.background==`string`?t.attrs.background:void 0,fontSize:Number(t.attrs.fontSize||14),fontFamily:typeof t.attrs.fontFamily==`string`?t.attrs.fontFamily:void 0,placeholderColor:typeof t.attrs.placeholderColor==`string`?t.attrs.placeholderColor:void 0,lineColor:typeof t.attrs.lineColor==`string`?t.attrs.lineColor:void 0,textAlign:X(t.attrs.textAlign)?t.attrs.textAlign:void 0,borderStyle:Z(t.attrs.borderStyle)?t.attrs.borderStyle:void 0,objectFit:Q(t.attrs.objectFit)?t.attrs.objectFit:void 0}}),t.content?.forEach(r)}if(r(e.contentJson),typeof window<`u`&&typeof DOMParser<`u`)new DOMParser().parseFromString(e.contentHtml||``,`text/html`).querySelectorAll(`[data-template-variable]`).forEach(e=>{let t=e.dataset.key||``,r=e.dataset.variableType;n({key:t,label:e.dataset.label||t,type:$(r)?r:`text`,placeholder:e.dataset.placeholder||``,width:Number(e.dataset.width||160),height:Number(e.dataset.height||32),required:e.dataset.required===`true`,defaultValue:e.dataset.defaultValue||``,format:e.dataset.format||``,precision:e.dataset.precision?Number(e.dataset.precision):void 0,useGrouping:e.dataset.useGrouping?e.dataset.useGrouping===`true`:void 0,checkedText:e.dataset.checkedText||``,uncheckedText:e.dataset.uncheckedText||``,multiline:e.dataset.multiline===`true`,rows:Number(e.dataset.rows||3),lineHeight:Number(e.dataset.lineHeight||28),style:{border:e.dataset.border?e.dataset.border===`true`:void 0,underline:e.dataset.underline?e.dataset.underline===`true`:void 0,color:e.dataset.color,background:e.dataset.background,fontSize:Number(e.dataset.fontSize||14),fontFamily:e.dataset.fontFamily,placeholderColor:e.dataset.placeholderColor,lineColor:e.dataset.lineColor,textAlign:X(e.dataset.textAlign)?e.dataset.textAlign:void 0,borderStyle:Z(e.dataset.borderStyle)?e.dataset.borderStyle:void 0,objectFit:Q(e.dataset.objectFit)?e.dataset.objectFit:void 0}})});else{let t=/<span\b[^>]*data-template-variable=["']true["'][^>]*>|<span\b[^>]*data-key=["'][^"']+["'][^>]*data-template-variable=["']true["'][^>]*>/g,r=t.exec(e.contentHtml||``);for(;r;){let i=r[0],a=F(i,`data-key`);if(a){let e=F(i,`data-variable-type`)||`text`;n({key:a,label:F(i,`data-label`)||a,type:$(e)?e:`text`,placeholder:F(i,`data-placeholder`)||``,width:Number(F(i,`data-width`)||160),height:Number(F(i,`data-height`)||32),required:F(i,`data-required`)===`true`,defaultValue:F(i,`data-default-value`)||``,format:F(i,`data-format`)||``,precision:F(i,`data-precision`)?Number(F(i,`data-precision`)):void 0,useGrouping:F(i,`data-use-grouping`)?F(i,`data-use-grouping`)===`true`:void 0,checkedText:F(i,`data-checked-text`)||``,uncheckedText:F(i,`data-unchecked-text`)||``,multiline:F(i,`data-multiline`)===`true`,rows:Number(F(i,`data-rows`)||3),lineHeight:Number(F(i,`data-line-height`)||28),style:{border:I(i,`data-border`)?F(i,`data-border`)===`true`:void 0,underline:I(i,`data-underline`)?F(i,`data-underline`)===`true`:void 0,color:F(i,`data-color`)||void 0,background:F(i,`data-background`)||void 0,fontSize:Number(F(i,`data-font-size`)||14),fontFamily:F(i,`data-font-family`)||void 0,placeholderColor:F(i,`data-placeholder-color`)||void 0,lineColor:F(i,`data-line-color`)||void 0,textAlign:X(F(i,`data-text-align`))?F(i,`data-text-align`):void 0,borderStyle:Z(F(i,`data-border-style`))?F(i,`data-border-style`):void 0,objectFit:Q(F(i,`data-object-fit`))?F(i,`data-object-fit`):void 0}})}r=t.exec(e.contentHtml||``)}}return Array.from(t.values())}function F(e,t){return RegExp(`${t}=["']([^"']*)["']`).exec(e)?.[1]??``}function I(e,t){return RegExp(`${t}=["'][^"']*["']`).test(e)}function L(e,t){if(!e)return e;if(typeof window<`u`&&typeof DOMParser<`u`){let n=new DOMParser().parseFromString(e,`text/html`);return R(n),n.querySelectorAll(`[data-template-variable]`).forEach(e=>{z(e,t)}),n.body.innerHTML}return B(V(e),t)}function R(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`)&&q(r)){e.removeAttribute(t.name);return}n===`style`&&J(r)&&e.removeAttribute(t.name)})})}function z(e,n){let r=e.dataset.key||``,i=n.get(r),a=i?.type??e.dataset.variableType??`text`,o=W(a,i?.defaultValue??e.dataset.defaultValue??``),s=t.resolveTemplateVariablePresentation({type:a,width:i?.width??e.dataset.width,height:i?.height??e.dataset.height,defaultValue:o,placeholder:i?.placeholder??e.dataset.placeholder??``,format:i?.format??e.dataset.format??``,precision:i?.precision??G(e.dataset.precision),useGrouping:i?.useGrouping??K(e.dataset.useGrouping),checkedText:i?.checkedText??e.dataset.checkedText??``,uncheckedText:i?.uncheckedText??e.dataset.uncheckedText??``,multiline:i?.multiline??K(e.dataset.multiline)??!1,rows:i?.rows??e.dataset.rows,lineHeight:i?.lineHeight??e.dataset.lineHeight,style:H(i,e)});e.setAttribute(`data-template-variable`,`true`),e.setAttribute(`data-key`,r),e.setAttribute(`data-label`,i?.label??e.dataset.label??r),e.setAttribute(`data-variable-type`,s.type),e.setAttribute(`data-width`,String(s.width)),e.setAttribute(`data-height`,String(s.height)),e.setAttribute(`data-border`,String(s.border)),e.setAttribute(`data-underline`,String(s.underline)),e.setAttribute(`data-color`,s.color),e.setAttribute(`data-background`,s.background),e.setAttribute(`data-font-size`,String(s.fontSize)),e.setAttribute(`data-font-family`,s.fontFamily),e.setAttribute(`data-placeholder-color`,s.placeholderColor),e.setAttribute(`data-line-color`,s.lineColor),e.setAttribute(`data-text-align`,s.textAlign),e.setAttribute(`data-border-style`,s.borderStyle),e.setAttribute(`data-object-fit`,s.objectFit),e.className=s.classes.join(` `),e.setAttribute(`style`,s.styleText),e.textContent=s.type===`image`&&s.hasDefaultValue?` `:s.displayText||` `}function B(e,n){return e.replace(/<span\b(?=[^>]*data-template-variable=["']true["'])([^>]*)>[\s\S]*?<\/span>/g,(e,r)=>{let i=F(r,`data-key`);if(!i)return e;let a=n.get(i),o=a?.type??F(r,`data-variable-type`)??`text`,s=W(o,a?.defaultValue??F(r,`data-default-value`)),c=t.resolveTemplateVariablePresentation({type:o,width:a?.width??F(r,`data-width`),height:a?.height??F(r,`data-height`),defaultValue:s,placeholder:a?.placeholder??F(r,`data-placeholder`),format:a?.format??F(r,`data-format`),precision:a?.precision??G(F(r,`data-precision`)),useGrouping:a?.useGrouping??K(F(r,`data-use-grouping`)),checkedText:a?.checkedText??F(r,`data-checked-text`),uncheckedText:a?.uncheckedText??F(r,`data-unchecked-text`),multiline:a?.multiline??K(F(r,`data-multiline`))??!1,rows:a?.rows??F(r,`data-rows`),lineHeight:a?.lineHeight??F(r,`data-line-height`),style:U(a,r)}),l=c.type===`image`&&c.hasDefaultValue?` `:c.displayText||` `;return`<span data-template-variable="true" data-key="${M(i)}" data-label="${M(a?.label??(F(r,`data-label`)||i))}" data-variable-type="${M(c.type)}" data-width="${c.width}" data-height="${c.height}" data-border="${c.border}" data-underline="${c.underline}" data-font-family="${M(c.fontFamily)}" class="${M(c.classes.join(` `))}" style="${M(c.styleText)}">${N(l)}</span>`})}function V(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)=>q(r)?``:` ${t}=${n}${r}${n}`).replace(/\s+style\s*=\s*(["'])(.*?)\1/gi,(e,t,n)=>J(n)?``:` style=${t}${n}${t}`)}function H(e,t){return{border:e?.style?.border??K(t.dataset.border),underline:e?.style?.underline??K(t.dataset.underline),color:e?.style?.color??t.dataset.color,background:e?.style?.background??t.dataset.background,fontSize:e?.style?.fontSize??G(t.dataset.fontSize),fontFamily:e?.style?.fontFamily??t.dataset.fontFamily,placeholderColor:e?.style?.placeholderColor??t.dataset.placeholderColor,lineColor:e?.style?.lineColor??t.dataset.lineColor,textAlign:e?.style?.textAlign??(X(t.dataset.textAlign)?t.dataset.textAlign:void 0),borderStyle:e?.style?.borderStyle??(Z(t.dataset.borderStyle)?t.dataset.borderStyle:void 0),objectFit:e?.style?.objectFit??(Q(t.dataset.objectFit)?t.dataset.objectFit:void 0)}}function U(e,t){let n=F(t,`data-text-align`),r=F(t,`data-border-style`),i=F(t,`data-object-fit`);return{border:e?.style?.border??K(F(t,`data-border`)),underline:e?.style?.underline??K(F(t,`data-underline`)),color:e?.style?.color??(F(t,`data-color`)||void 0),background:e?.style?.background??(F(t,`data-background`)||void 0),fontSize:e?.style?.fontSize??G(F(t,`data-font-size`)),fontFamily:e?.style?.fontFamily??(F(t,`data-font-family`)||void 0),placeholderColor:e?.style?.placeholderColor??(F(t,`data-placeholder-color`)||void 0),lineColor:e?.style?.lineColor??(F(t,`data-line-color`)||void 0),textAlign:e?.style?.textAlign??(X(n)?n:void 0),borderStyle:e?.style?.borderStyle??(Z(r)?r:void 0),objectFit:e?.style?.objectFit??(Q(i)?i:void 0)}}function W(e,t){return e===`image`&&q(t)?``:t}function G(e){if(e==null||e===``)return;let t=Number(e);return Number.isFinite(t)?t:void 0}function K(e){if(!(e==null||e===``))return e===!0||e===`true`}function q(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 J(e){return/expression\s*\(|javascript:|vbscript:/i.test(e)}function Y(e){if(!e)return e;if(typeof window<`u`&&typeof DOMParser<`u`){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 e.replace(/<span\b(?=[^>]*data-template-variable=["']true["'])([^>]*)>[\s\S]*?<\/span>/g,(e,t)=>{let n=F(t,`data-key`);return n?`<span${t}>\${{${n}}}</span>`:e})}function X(e){return e===`left`||e===`center`||e===`right`}function Z(e){return e===`solid`||e===`dashed`}function Q(e){return e===`contain`||e===`cover`||e===`fill`}function $(e){return e===`text`||e===`date`||e===`number`||e===`image`||e===`signature`||e===`seal`||e===`checkbox`}exports.CONTRACT_TEMPLATE_RENDERER_VERSION=s,exports.CONTRACT_TEMPLATE_STYLE_VERSION=c,exports.DEFAULT_FIELD_STYLE=i,exports.DEFAULT_FIELD_TYPES=l,exports.DEFAULT_MULTILINE_LINE_HEIGHT=o,exports.DEFAULT_MULTILINE_ROWS=a,exports.DEFAULT_PAGE_SIZE=r,exports.PAGE_SIZE_OPTIONS=n,exports.buildTemplateExpressionHtml=C,exports.buildTemplateHtml=ne,exports.buildTemplatePreviewHtml=w,exports.cloneTemplateValue=f,exports.collectTemplateValueVariableKeys=O,exports.collectTemplateVariableKeys=D,exports.createBlankPage=v,exports.createBlankTemplate=b,exports.createDefaultPage=_,exports.createDefaultTemplate=y,exports.createDesignerId=d,exports.createTemplateVariable=S,exports.exportTemplateValue=T,exports.getFieldOption=x,exports.getPageSizeOption=p,exports.inferPageFormat=m,exports.normalizeTemplateValue=te,exports.resolvePageSize=h,exports.splitPageContentByMeasurements=A,exports.syncTemplateVariablesWithPages=k,exports.validateTemplateValue=E;
1
+ const e=require(`../constants.cjs`),t=require(`../utils/template-variable-render.cjs`),n=require(`../utils/html.cjs`),r=require(`../types.cjs`),i=require(`../utils/signing-placement.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:e.DEFAULT_CONTRACT_FONT_FAMILY,placeholderColor:`#7a818b`,lineColor:`#565b66`,textAlign:`left`,borderStyle:`solid`,objectFit:`contain`},c=3,ee=28,l=`contract-template-renderer-1.0.0`,u=`contract-render-css-1.0.0`;function d(e){let t=Number(e);return Number.isFinite(t)&&t>=1?Math.max(1,Math.floor(t)):50}var f=[{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}],p=0;function m(e){return p+=1,`${e}-${Date.now().toString(36)}-${p.toString(36)}`}function h(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 g(e){return a.find(t=>t.format===e)}function _(e){if(e)return e.format&&e.format!==`Custom`?e.format:a.find(t=>t.width===e.width&&t.height===e.height)?.format}function v(e,t=o){let n=_(t)??t.format,r=e?.format??_(e)??n??`Custom`,i=r===`Custom`?void 0:g(r),a=y(i?.width??e?.width,t.width),s=y(i?.height??e?.height,t.height);return{format:i?.format??r,width:a,height:s,label:e?.label??i?.label??t.label??r}}function y(e,t){let n=Number(e);return!Number.isFinite(n)||n<=0?t:Math.round(n)}function b(e=1,t){return{id:m(`page`),title:`第 ${e} 页`,pageSize:t?v(t):void 0,contentHtml:`<p>请输入合同正文,也可以从 WPS / Word 复制内容粘贴到这里。</p>`}}function x(e=1,t,n=`<p></p>`,r){return{id:m(`page`),title:`第 ${e} 页`,pageSize:t?v(t):void 0,contentHtml:n,contentJson:r}}function S(e=o){let t=v(e);return{pages:[b(1,t)],variables:[],pageSize:t,signingPlacements:[]}}function te(e=o){let t=v(e);return{pages:[x(1,t,`<p></p>`)],variables:[],pageSize:t,signingPlacements:[]}}function C(e,t=f){return t.find(t=>t.type===e)??f[0]}function w(e,t=f,n={}){let r=e.type===void 0?`text`:e.type,i=C(r,t),a=ne(r);return{id:e.id??m(`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 ne(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 T(e){return e!==void 0&&!r.isContractTemplateFieldType(e)}function re(e,t=o){if(!e)return S(t);let n=v(e.pageSize,t),r=(e.pages?.length?e.pages:[b(1,n)]).map((e,t)=>({id:e.id||m(`page`),title:e.title||`第 ${t+1} 页`,pageSize:v(e.pageSize,n),contentHtml:e.contentHtml||`<p></p>`,contentJson:e.contentJson})),a=new Map,s=Object.fromEntries(r.map(e=>[e.id,v(e.pageSize,n)]));return(e.variables??[]).forEach(e=>{e.key&&a.set(e.key,w({...e,id:e.id||m(`variable`)}))}),r.forEach(e=>{L(e).forEach(e=>{if(!e.key)return;let t=a.get(e.key);if(!t){a.set(e.key,w(e));return}T(e.type)&&a.set(e.key,w({...t,type:e.type}))})}),{pages:r,variables:Array.from(a.values()),pageSize:n,signingPlacements:i.normalizeSigningPlacements(e.signingPlacements,s,n)}}function E(e){return e.pages.map(t=>`<section ${F(t,e.pageSize)}>${t.contentHtml}</section>`).join(`
2
+ `)}function D(e){return e.pages.map(t=>`<section ${F(t,e.pageSize)}>${oe(t.contentHtml)}</section>`).join(`
3
+ `)}function O(e){return k(e).map(({page:t,contentHtml:n})=>{let r=v(t.pageSize,e.pageSize);return`<section ${F(t,e.pageSize)} style="width:${r.width}px;min-height:${r.height}px">${n}</section>`}).join(`
4
+ `)}function k(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:B(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=h(e);return{...t,rendererVersion:l,styleVersion:u,html:D(t)}}function A(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)}T(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=>{j(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 j(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 M(e){let t=new Set;return e.pages.forEach(e=>{j(e).forEach(e=>t.add(e))}),t}function N(e){let t=M(e);return{...e,variables:e.variables.filter(e=>e.key&&t.has(e.key))}}function P(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 F(e,t){let r=v(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 I=/<span\b[^>]*data-template-variable=["']true["'][^>]*>/g;function L(e){let t=new Map;function r(e){if(!e.key)return;let n=t.get(e.key);(!n||T(e.type)&&!T(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(z(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(R(n.createElementAttributeReader(e)))}):n.forEachHtmlTag(a,I,e=>{r(R(n.createTagAttributeReader(e)))}),Array.from(t.values())}function R(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:X(e(`data-text-align`)),borderStyle:Z(e(`data-border-style`)),objectFit:Q(e(`data-object-fit`))}}}function z(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:X(e.textAlign),borderStyle:Z(e.borderStyle),objectFit:Q(e.objectFit)}}}function B(e,t){if(!e)return e;if(n.canUseDomHtml()){let n=new DOMParser().parseFromString(e,`text/html`);return V(n),n.querySelectorAll(`[data-template-variable]`).forEach(e=>{U(e,t)}),n.body.innerHTML}return n.replaceTemplateVariableSpans(G(e),(e,r)=>{let i=n.createTagAttributeReader(r);return i(`data-key`)?W(i,t):e})}function V(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 H(e,r){let i=e(`data-key`)??``,a=r.get(i),o=a?.type??e(`data-variable-type`)??`text`,s=q(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:K(a,e)});return{key:i,label:a?.label??e(`data-label`)??i,presentation:c,text:c.type===`image`&&c.hasDefaultValue?` `:c.displayText||` `}}function U(e,t){let{key:r,label:i,presentation:a,text:o}=H(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 W(e,t){let{key:r,label:i,presentation:a,text:o}=H(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 G(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 K(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??X(t(`data-text-align`)),borderStyle:e?.style?.borderStyle??Z(t(`data-border-style`)),objectFit:e?.style?.objectFit??Q(t(`data-object-fit`))}}function q(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 oe(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 se(e){return e===`left`||e===`center`||e===`right`}function ce(e){return e===`solid`||e===`dashed`}function le(e){return e===`contain`||e===`cover`||e===`fill`}function X(e){return se(e)?e:void 0}function Z(e){return ce(e)?e:void 0}function Q(e){return le(e)?e:void 0}function $(e,t=[]){let n=[...t,...A(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=l,exports.CONTRACT_TEMPLATE_STYLE_VERSION=u,exports.DEFAULT_FIELD_STYLE=s,exports.DEFAULT_FIELD_TYPES=f,exports.DEFAULT_MULTILINE_LINE_HEIGHT=ee,exports.DEFAULT_MULTILINE_ROWS=c,exports.DEFAULT_PAGE_SIZE=o,exports.PAGE_SIZE_OPTIONS=a,exports.buildTemplateExpressionHtml=D,exports.buildTemplateHtml=E,exports.buildTemplatePreviewHtml=O,exports.buildTemplatePreviewPages=k,exports.cloneTemplateValue=h,exports.collectTemplateLocationRuleExportErrors=$,exports.collectTemplateValueVariableKeys=M,exports.collectTemplateVariableKeys=j,exports.createBlankPage=x,exports.createBlankTemplate=te,exports.createDefaultPage=b,exports.createDefaultTemplate=S,exports.createDesignerId=m,exports.createTemplateVariable=w,exports.exportTemplateValue=ie,exports.getFieldOption=C,exports.getPageSizeOption=g,exports.inferPageFormat=_,exports.normalizeContractTemplateMaxPages=d,exports.normalizeTemplateValue=re,exports.resolvePageSize=v,exports.splitPageContentByMeasurements=P,exports.syncTemplateVariablesWithPages=N,exports.validateTemplateValue=A;
@@ -1 +1 @@
1
- var e=1,t=`gd-antdv:pro-contract-template-designer:draft`,n=5e3,r=2*1024*1024;function i(){if(!(typeof window>`u`))try{let e=window.localStorage,n=`${t}:availability`;return e.setItem(n,`1`),e.removeItem(n),e}catch{return}}function a(e,t,n={}){return{type:e,message:t,...n}}function o(e){return typeof TextEncoder<`u`?new TextEncoder().encode(e).length:e.length*2}function s(e){if(!e)return``;let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`}function c(e){let{storage:t,key:n,value:r,maxBytes:i,previousValueSerialized:s}=e;if(!t)return{status:a(`unavailable`,`localStorage 不可用`)};let c=JSON.stringify(r);if(c===s)return{status:a(`unchanged`,`草稿内容未变化`),valueSerialized:c};let l=Date.now(),u=JSON.stringify({version:1,savedAt:l,value:r}),d=o(u);if(d>i)return{status:a(`too-large`,`草稿过大,未缓存`,{bytes:d,maxBytes:i}),valueSerialized:c};try{return t.setItem(n,u),{status:a(`saved`,`草稿已缓存`,{savedAt:l,bytes:d,maxBytes:i}),valueSerialized:c}}catch(e){return{status:a(`write-failed`,`草稿缓存失败`,{bytes:d,maxBytes:i,error:e instanceof Error?e.message:String(e)}),valueSerialized:c}}}function l(e,t){if(!e)return{status:a(`unavailable`,`localStorage 不可用`)};let n;try{n=e.getItem(t)}catch(e){return{status:a(`read-failed`,`草稿读取失败`,{error:e instanceof Error?e.message:String(e)})}}if(!n)return{status:a(`idle`,`暂无本地草稿`)};try{let e=JSON.parse(n);return e.version!==1||!e.value?{status:a(`invalid`,`草稿版本不兼容`)}:{status:a(`restored`,`已恢复本地草稿`,{savedAt:e.savedAt,bytes:o(n)}),value:e.value,valueSerialized:JSON.stringify(e.value)}}catch(e){return{status:a(`invalid`,`草稿格式无效`,{error:e instanceof Error?e.message:String(e)})}}}function u(e,t){if(!e)return a(`unavailable`,`localStorage 不可用`);try{return e.removeItem(t),a(`cleared`,`草稿缓存已清理`)}catch(e){return a(`write-failed`,`草稿缓存清理失败`,{error:e instanceof Error?e.message:String(e)})}}function d(e){if(!e)return!0;if(e.variables.length||e.pages.length>1)return!1;let t=e.pages[0];return t?f(t.contentHtml||``)&&p(t.contentJson):!0}function f(e){return e.replace(/<br\s*\/?>/gi,``).replace(/<\/?p[^>]*>/gi,``).replace(/&nbsp;/gi,``).replace(/\s+/g,``).trim().length===0}function p(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.DEFAULT_DRAFT_CACHE_INTERVAL=n,exports.DEFAULT_DRAFT_CACHE_KEY=t,exports.DEFAULT_DRAFT_CACHE_MAX_BYTES=r,exports.clearTemplateDraftCache=u,exports.createDraftCacheStatus=a,exports.estimateDraftCacheBytes=o,exports.formatDraftCacheSavedAt=s,exports.getBrowserDraftCacheStorage=i,exports.isBlankTemplateDraftValue=d,exports.loadTemplateDraftCache=l,exports.saveTemplateDraftCache=c;
1
+ var e=1,t=`gd-antdv:pro-contract-template-designer:draft`,n=5e3,r=2*1024*1024;function i(){if(!(typeof window>`u`))try{let e=window.localStorage,n=`${t}:availability`;return e.setItem(n,`1`),e.removeItem(n),e}catch{return}}function a(e,t,n={}){return{type:e,message:t,...n}}function o(e){return typeof TextEncoder<`u`?new TextEncoder().encode(e).length:e.length*2}function s(e){if(!e)return``;let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`}function c(e){let{storage:t,key:n,value:r,maxBytes:i,previousValueSerialized:s}=e;if(!t)return{status:a(`unavailable`,`localStorage 不可用`)};let c=JSON.stringify(r);if(c===s)return{status:a(`unchanged`,`草稿内容未变化`),valueSerialized:c};let l=Date.now(),u=JSON.stringify({version:1,savedAt:l,value:r}),d=o(u);if(d>i)return{status:a(`too-large`,`草稿过大,未缓存`,{bytes:d,maxBytes:i}),valueSerialized:c};try{return t.setItem(n,u),{status:a(`saved`,`草稿已缓存`,{savedAt:l,bytes:d,maxBytes:i}),valueSerialized:c}}catch(e){return{status:a(`write-failed`,`草稿缓存失败`,{bytes:d,maxBytes:i,error:e instanceof Error?e.message:String(e)}),valueSerialized:c}}}function l(e,t){if(!e)return{status:a(`unavailable`,`localStorage 不可用`)};let n;try{n=e.getItem(t)}catch(e){return{status:a(`read-failed`,`草稿读取失败`,{error:e instanceof Error?e.message:String(e)})}}if(!n)return{status:a(`idle`,`暂无本地草稿`)};try{let e=JSON.parse(n);return e.version!==1||!e.value?{status:a(`invalid`,`草稿版本不兼容`)}:{status:a(`restored`,`已恢复本地草稿`,{savedAt:e.savedAt,bytes:o(n)}),value:e.value,valueSerialized:JSON.stringify(e.value)}}catch(e){return{status:a(`invalid`,`草稿格式无效`,{error:e instanceof Error?e.message:String(e)})}}}function u(e,t){if(!e)return a(`unavailable`,`localStorage 不可用`);try{return e.removeItem(t),a(`cleared`,`草稿缓存已清理`)}catch(e){return a(`write-failed`,`草稿缓存清理失败`,{error:e instanceof Error?e.message:String(e)})}}function d(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?f(t.contentHtml||``)&&p(t.contentJson):!0}function f(e){return e.replace(/<br\s*\/?>/gi,``).replace(/<\/?p[^>]*>/gi,``).replace(/&nbsp;/gi,``).replace(/\s+/g,``).trim().length===0}function p(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.DEFAULT_DRAFT_CACHE_INTERVAL=n,exports.DEFAULT_DRAFT_CACHE_KEY=t,exports.DEFAULT_DRAFT_CACHE_MAX_BYTES=r,exports.clearTemplateDraftCache=u,exports.createDraftCacheStatus=a,exports.estimateDraftCacheBytes=o,exports.formatDraftCacheSavedAt=s,exports.getBrowserDraftCacheStorage=i,exports.isBlankTemplateDraftValue=d,exports.loadTemplateDraftCache=l,exports.saveTemplateDraftCache=c;
@@ -0,0 +1 @@
1
+ const e=require(`../../../../_virtual/_plugin-vue_export-helper.cjs`),t=require(`./ContentImageNodeView.vue.cjs`);;/* empty css */var n=e.default(t.default,[[`__scopeId`,`data-v-8082f8b4`]]);exports.default=n;
@@ -0,0 +1 @@
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../utils/content-image.cjs`);let t=require(`vue`),n=require(`@tiptap/vue-3`);var r=[`src`,`alt`,`title`],i=[`data-resize-handle`,`aria-label`,`onPointerdown`],a=(0,t.defineComponent)({name:`ContractContentImageNodeView`,__name:`ContentImageNodeView`,props:{decorations:{},selected:{type:Boolean},updateAttributes:{type:Function},deleteNode:{type:Function},node:{},view:{},getPos:{},innerDecorations:{},editor:{},extension:{},HTMLAttributes:{}},setup(a){let o=a,s=(0,t.shallowRef)(null),c=(0,t.shallowRef)(null),l=(0,t.shallowRef)(_()),u=[`top-left`,`top-right`,`bottom-left`,`bottom-right`],d=(0,t.computed)(()=>g(o.node.attrs.src)),f=(0,t.computed)(()=>g(o.node.attrs.alt)),p=(0,t.computed)(()=>g(o.node.attrs.title)),m=(0,t.computed)(()=>b(o.node.attrs.width)!==void 0||b(o.node.attrs.height)!==void 0),h=(0,t.computed)(()=>!!(o.selected&&l.value&&!o.editor.isDestroyed));function g(e){return typeof e==`string`?e:``}function _(){try{return!!o.editor.isEditable}catch{return!1}}function v(){l.value=_(),l.value||P()}function y(){let e=o.extension.options;try{let t=e?.getZoom?.()??1;return Number.isFinite(t)&&t>.01?t:1}catch{return 1}}function b(t){return e.normalizeContractImageDimension(t)}function x(t){return Number.isFinite(t)?Math.round(Math.min(e.MAX_CONTRACT_IMAGE_DIMENSION,Math.max(16,t))):16}function S(){let e=s.value,t=o.node.attrs,n=b(t.width),r=b(t.height),i=e?.naturalWidth||e?.width||0,a=e?.naturalHeight||e?.height||0,c=i>0&&a>0?i/a:1;if(!n||!r){let t=y(),o=e?.getBoundingClientRect(),s=o&&o.width>0?o.width/t:0,c=o&&o.height>0?o.height/t:0;n||=b(s)??b(i),r||=b(c)??b(a)}return!n&&r&&(n=x(r*c)),!r&&n&&(r=x(n/c)),n=x(n??16),r=x(r??16),{width:n,height:r}}function C(t,n){return e.resolveContractImageResizeDimensions({width:t.width,height:t.height,startClientX:t.startClientX,startClientY:t.startClientY,clientX:n.clientX,clientY:n.clientY,handle:t.handle,zoom:t.zoom})}function w(e){let t=s.value;t&&(t.style.width=`${e.width}px`,t.style.height=`${e.height}px`)}function T(e){let t=s.value;t&&(t.style.width=e.originalStyleWidth,t.style.height=e.originalStyleHeight)}function E(e,t,n){n?e.setAttribute(t,n):t===`alt`?e.setAttribute(t,``):e.removeAttribute(t)}function D(e,t,n){if(n===void 0){e.removeAttribute(t),e.style[t]=``;return}let r=x(n);e.setAttribute(t,String(r)),e.style[t]=`${r}px`}function O(){let e=s.value;e&&(E(e,`src`,d.value),E(e,`alt`,f.value),E(e,`title`,p.value),!c.value&&(D(e,`width`,b(o.node.attrs.width)),D(e,`height`,b(o.node.attrs.height))))}function k(e){window.removeEventListener(`pointermove`,j,!0),window.removeEventListener(`pointerup`,M,!0),window.removeEventListener(`pointercancel`,N,!0);let t=e.captureTarget;if(t?.hasPointerCapture?.(e.pointerId))try{t.releasePointerCapture(e.pointerId)}catch{}}function A(e,t){if(!h.value||c.value||e.button!==0&&e.button!==-1)return;let n=s.value;if(!n)return;e.preventDefault(),e.stopPropagation();let r=S(),i=e.currentTarget instanceof HTMLElement?e.currentTarget:void 0;c.value={...r,pointerId:e.pointerId,captureTarget:i,handle:t,startClientX:e.clientX,startClientY:e.clientY,zoom:y(),originalStyleWidth:n.style.width,originalStyleHeight:n.style.height},i?.setPointerCapture?.(e.pointerId),window.addEventListener(`pointermove`,j,!0),window.addEventListener(`pointerup`,M,!0),window.addEventListener(`pointercancel`,N,!0)}function j(e){let t=c.value;!t||e.pointerId!==t.pointerId||(e.preventDefault(),w(C(t,e)))}function M(e){let t=c.value;if(!t||e.pointerId!==t.pointerId)return;e.preventDefault();let n=C(t,e);k(t),c.value=null;try{o.updateAttributes({width:n.width,height:n.height})}catch{T(t),O()}}function N(e){let t=c.value;!t||e.pointerId!==t.pointerId||(e.preventDefault(),P())}function P(){let e=c.value;e&&(k(e),c.value=null,T(e),O())}function F(e){e.preventDefault(),e.stopPropagation()}function I(e){e.preventDefault(),e.stopPropagation()}return(0,t.watch)(()=>[o.node.attrs.src,o.node.attrs.alt,o.node.attrs.title,o.node.attrs.width,o.node.attrs.height],(e,t)=>{let n=c.value,r=e[3]!==t?.[3]||e[4]!==t?.[4];n&&r&&P(),O()},{immediate:!0}),(0,t.onMounted)(()=>{o.editor.on(`update`,v),o.editor.on(`selectionUpdate`,v),O()}),(0,t.onBeforeUnmount)(()=>{o.editor.off(`update`,v),o.editor.off(`selectionUpdate`,v),P()}),(e,a)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n.NodeViewWrapper),{as:`span`,class:(0,t.normalizeClass)([`gd-contract-template-designer__content-image-node-view`,{"has-explicit-dimensions":m.value}]),"data-content-image-node-view":`true`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`img`,{ref_key:`imageElement`,ref:s,class:`gd-contract-template-designer__content-image`,src:d.value,alt:f.value,title:p.value||void 0},null,8,r),h.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(u,e=>(0,t.createElementVNode)(`span`,{key:e,class:(0,t.normalizeClass)([`gd-contract-template-designer__content-image-resize-handle`,`gd-contract-template-designer__content-image-resize-handle--${e}`]),"data-resize-handle":e,"aria-label":`缩放图片${e}`,role:`button`,tabindex:`-1`,contenteditable:`false`,draggable:`false`,onPointerdown:t=>A(t,e),onMousedown:a[0]||=(0,t.withModifiers)(()=>{},[`stop`,`prevent`]),onClick:F,onContextmenu:a[1]||=(0,t.withModifiers)(()=>{},[`stop`,`prevent`]),onDragstart:I},null,42,i)),64)):(0,t.createCommentVNode)(``,!0)]),_:1},8,[`class`]))}});exports.default=a;
@@ -0,0 +1 @@
1
+ .gd-contract-template-designer__content-image-node-view[data-v-8082f8b4]{vertical-align:middle;line-height:0;display:inline-block;position:relative}.gd-contract-template-designer__content-image[data-v-8082f8b4]{object-fit:contain;vertical-align:middle;display:inline-block}.gd-contract-template-designer__content-image-node-view.has-explicit-dimensions .gd-contract-template-designer__content-image[data-v-8082f8b4]{max-width:none}.gd-contract-template-designer__content-image-resize-handle[data-v-8082f8b4]{z-index:1;border:1px solid var(--gdant-neutral-0);background:var(--gdant-primary-500);width:8px;height:8px;box-shadow:0 0 0 1px var(--gdant-primary-500);cursor:nwse-resize;-webkit-user-select:none;user-select:none;touch-action:none;border-radius:50%;position:absolute}.gd-contract-template-designer__content-image-resize-handle--top-left[data-v-8082f8b4]{cursor:nwse-resize;top:0;left:0;transform:translate(-50%,-50%)}.gd-contract-template-designer__content-image-resize-handle--top-right[data-v-8082f8b4]{cursor:nesw-resize;top:0;right:0;transform:translate(50%,-50%)}.gd-contract-template-designer__content-image-resize-handle--bottom-left[data-v-8082f8b4]{cursor:nesw-resize;bottom:0;left:0;transform:translate(-50%,-50%)}.gd-contract-template-designer__content-image-resize-handle--bottom-right[data-v-8082f8b4]{cursor:nwse-resize;bottom:0;right:0;transform:translate(-50%,-50%)}
@@ -1 +1 @@
1
- const e=require(`../../../../_virtual/_rolldown/runtime.cjs`),t=require(`../constants.cjs`),n=require(`./template-variable.cjs`),r=require(`./font-size.cjs`);let i=require(`@tiptap/starter-kit`);i=e.__toESM(i,1);let a=require(`@tiptap/extension-text-align`);a=e.__toESM(a,1);let o=require(`@tiptap/extension-text-style`),s=require(`@tiptap/extension-color`);s=e.__toESM(s,1);let c=require(`@tiptap/extension-placeholder`);c=e.__toESM(c,1);let l=require(`@tiptap/extension-table`),u=require(`@tiptap/extension-table-row`);u=e.__toESM(u,1);let d=require(`@tiptap/extension-table-header`);d=e.__toESM(d,1);let f=require(`@tiptap/extension-table-cell`);f=e.__toESM(f,1);var p=[`heading`,`paragraph`],m=[`textStyle`],h=[1,2,3,4,5,6];function g(e=`请输入合同正文`){return[i.default.configure({heading:{levels:h}}),a.default.configure({types:p}),o.TextStyle,o.FontFamily.configure({types:m}),s.default.configure({types:m}),r.FontSize,c.default.configure({placeholder:e}),l.Table.configure({resizable:!0}),u.default,d.default,f.default,n.TemplateVariable]}function _(e){return Number.isFinite(e)?`${Math.max(10,Math.round(e))}px`:`14px`}function v(e,n){switch(n.type){case`undo`:return e.undo();case`redo`:return e.redo();case`set-paragraph`:return e.setParagraph();case`set-heading`:return e.setHeading({level:n.level});case`toggle-heading`:return e.toggleHeading({level:n.level});case`set-bold`:return e.setBold();case`toggle-bold`:return e.toggleBold();case`unset-bold`:return e.unsetBold();case`set-italic`:return e.setItalic();case`toggle-italic`:return e.toggleItalic();case`unset-italic`:return e.unsetItalic();case`set-underline`:return e.setUnderline();case`toggle-underline`:return e.toggleUnderline();case`unset-underline`:return e.unsetUnderline();case`toggle-bullet-list`:return e.toggleBulletList();case`toggle-ordered-list`:return e.toggleOrderedList();case`set-text-align`:return e.setTextAlign(n.value);case`unset-text-align`:return e.unsetTextAlign();case`set-color`:return n.value.trim()?e.setColor(n.value):e.unsetColor();case`unset-color`:return e.unsetColor();case`set-font-size`:return e.setFontSize(_(n.value));case`unset-font-size`:return e.unsetFontSize();case`set-font-family`:return n.value.trim()?e.setFontFamily(n.value):e.unsetFontFamily();case`unset-font-family`:return e.unsetFontFamily();case`clear-text-format`:return e.unsetBold().unsetItalic().unsetUnderline().unsetColor().unsetFontSize().unsetFontFamily();case`clear-block-format`:return e.setParagraph().unsetTextAlign();case`apply-text-style-preset`:return t.resolveContractTextStylePresetCommands(n.preset).reduce(v,e);case`insert-table`:return e.insertTable({rows:Math.max(1,Math.round(n.options.rows)),cols:Math.max(1,Math.round(n.options.cols)),withHeaderRow:n.options.withHeaderRow});case`add-table-row-before`:return e.addRowBefore();case`add-table-row-after`:return e.addRowAfter();case`delete-table-row`:return e.deleteRow();case`add-table-column-before`:return e.addColumnBefore();case`add-table-column-after`:return e.addColumnAfter();case`delete-table-column`:return e.deleteColumn();case`toggle-table-header-row`:return e.toggleHeaderRow();case`toggle-table-header-column`:return e.toggleHeaderColumn();case`toggle-table-header-cell`:return e.toggleHeaderCell();case`delete-table`:return e.deleteTable()}}exports.createEditorExtensions=g;
1
+ const e=require(`../../../../_virtual/_rolldown/runtime.cjs`),t=require(`../constants.cjs`),n=require(`./template-variable.cjs`),r=require(`./font-size.cjs`),i=require(`./office-content.cjs`),a=require(`./word-paste.cjs`);let o=require(`@tiptap/starter-kit`);o=e.__toESM(o,1);let s=require(`@tiptap/extension-text-align`);s=e.__toESM(s,1);let c=require(`@tiptap/extension-text-style`),l=require(`@tiptap/extension-color`);l=e.__toESM(l,1);let u=require(`@tiptap/extension-placeholder`);u=e.__toESM(u,1);let d=require(`@tiptap/extension-table`),f=require(`@tiptap/extension-table-row`);f=e.__toESM(f,1);let p=require(`@tiptap/extension-table-header`);p=e.__toESM(p,1);let m=require(`@tiptap/extension-table-cell`);m=e.__toESM(m,1);var h=[`heading`,`paragraph`],g=[`textStyle`],_=[1,2,3,4,5,6];function v(e){return e.extend({addAttributes(){return{...this.parent?.(),textAlign:{default:`left`,parseHTML:e=>e.style.textAlign||`left`,renderHTML:e=>({style:`text-align: ${e.textAlign||`left`}`})}}}})}function y(e=`请输入合同正文`,t={}){return[o.default.configure({heading:{levels:_}}),s.default.configure({types:h}),c.TextStyle,c.FontFamily.configure({types:g}),l.default.configure({types:g}),c.BackgroundColor.configure({types:g}),r.FontSize,i.ContractSuperscript,i.ContractSubscript,i.OfficeContentFormatting,u.default.configure({placeholder:e}),d.Table.configure({resizable:!0}),f.default,v(p.default),v(m.default),i.ContractContentImage.configure({getZoom:t.getZoom}),n.TemplateVariable,a.WordPaste.configure({processImageFile:t.processImageFile})]}function b(e){return Number.isFinite(e)?`${Math.max(10,Math.round(e))}px`:`14px`}function x(e,n){switch(n.type){case`undo`:return e.undo();case`redo`:return e.redo();case`select-all`:return e.selectAll();case`set-paragraph`:return e.setParagraph();case`set-heading`:return e.setHeading({level:n.level});case`toggle-heading`:return e.toggleHeading({level:n.level});case`set-bold`:return e.setBold();case`toggle-bold`:return e.toggleBold();case`unset-bold`:return e.unsetBold();case`set-italic`:return e.setItalic();case`toggle-italic`:return e.toggleItalic();case`unset-italic`:return e.unsetItalic();case`set-underline`:return e.setUnderline();case`toggle-underline`:return e.toggleUnderline();case`unset-underline`:return e.unsetUnderline();case`toggle-bullet-list`:return e.toggleBulletList();case`toggle-ordered-list`:return e.toggleOrderedList();case`set-text-align`:return e.setTextAlign(n.value);case`unset-text-align`:return e.unsetTextAlign();case`set-color`:return n.value.trim()?e.setColor(n.value):e.unsetColor();case`unset-color`:return e.unsetColor();case`set-font-size`:return e.setFontSize(b(n.value));case`unset-font-size`:return e.unsetFontSize();case`set-font-family`:return n.value.trim()?e.setFontFamily(n.value):e.unsetFontFamily();case`unset-font-family`:return e.unsetFontFamily();case`clear-text-format`:return e.unsetBold().unsetItalic().unsetUnderline().unsetColor().unsetFontSize().unsetFontFamily();case`clear-block-format`:return e.setParagraph().unsetTextAlign();case`apply-text-style-preset`:return t.resolveContractTextStylePresetCommands(n.preset).reduce(x,e);case`insert-horizontal-rule`:return e.setHorizontalRule();case`insert-content-image`:return n.position===void 0?e.insertContent({type:`image`,attrs:n.image}):e.insertContentAt(n.position,{type:`image`,attrs:n.image});case`insert-table`:return e.insertTable({rows:Math.max(1,Math.round(n.options.rows)),cols:Math.max(1,Math.round(n.options.cols)),withHeaderRow:n.options.withHeaderRow});case`add-table-row-before`:return e.addRowBefore();case`add-table-row-after`:return e.addRowAfter();case`delete-table-row`:return e.deleteRow();case`add-table-column-before`:return e.addColumnBefore();case`add-table-column-after`:return e.addColumnAfter();case`delete-table-column`:return e.deleteColumn();case`merge-table-cells`:return e.mergeCells();case`split-table-cell`:return e.splitCell();case`set-table-cell-align`:return e.setCellAttribute(`textAlign`,n.value);case`toggle-table-header-row`:return e.toggleHeaderRow();case`toggle-table-header-column`:return e.toggleHeaderColumn();case`toggle-table-header-cell`:return e.toggleHeaderCell();case`delete-table`:return e.deleteTable()}}function S(e,t,n={}){return e?x(n.focus===!1?e.chain():e.chain().focus(),t).run():!1}exports.createEditorExtensions=y,exports.runContractTemplateEditorCommand=S;
@@ -0,0 +1 @@
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../utils/image-url.cjs`),t=require(`../utils/content-image.cjs`),n=require(`../utils/word-paste.cjs`),r=require(`./ContentImageNodeView.cjs`);let i=require(`@tiptap/vue-3`),a=require(`@tiptap/core`);var o=[`paragraph`,`heading`,`listItem`],s=[`bulletList`,`orderedList`],c=[`tableCell`,`tableHeader`];function l(e){let t=t=>n.normalizeOfficeStyle(t,e.tagName).match(RegExp(`(?:^|;)\\s*${e.cssName.replaceAll(`-`,`\\-`)}\\s*:\\s*([^;]+)`,`i`))?.[1]?.trim()||null;return{default:e.default??null,parseHTML:e=>t(e.getAttribute(`style`)??``),renderHTML:n=>{let r=u(e.cssName),i=t(`${e.cssName}:${String(n[r]??``)}`);return i?{style:`${e.cssName}: ${i}`}:{}}}}function u(e){return e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}var d=a.Extension.create({name:`officeContentFormatting`,addGlobalAttributes(){return[{types:o,attributes:{lineHeight:l({cssName:`line-height`,tagName:`p`}),marginTop:l({cssName:`margin-top`,tagName:`p`}),marginBottom:l({cssName:`margin-bottom`,tagName:`p`}),marginLeft:l({cssName:`margin-left`,tagName:`p`}),paddingLeft:l({cssName:`padding-left`,tagName:`p`}),textIndent:l({cssName:`text-indent`,tagName:`p`}),direction:l({cssName:`direction`,tagName:`p`})}},{types:s,attributes:{listStyleType:l({cssName:`list-style-type`,tagName:`ol`})}},{types:[`table`],attributes:{width:l({cssName:`width`,tagName:`table`}),minWidth:l({cssName:`min-width`,tagName:`table`}),maxWidth:l({cssName:`max-width`,tagName:`table`}),tableLayout:l({cssName:`table-layout`,tagName:`table`})}},{types:c,attributes:{width:l({cssName:`width`,tagName:`td`}),height:l({cssName:`height`,tagName:`td`}),minWidth:l({cssName:`min-width`,tagName:`td`}),verticalAlign:l({cssName:`vertical-align`,tagName:`td`}),backgroundColor:l({cssName:`background-color`,tagName:`td`}),padding:l({cssName:`padding`,tagName:`td`}),paddingTop:l({cssName:`padding-top`,tagName:`td`}),paddingRight:l({cssName:`padding-right`,tagName:`td`}),paddingBottom:l({cssName:`padding-bottom`,tagName:`td`}),paddingLeft:l({cssName:`padding-left`,tagName:`td`}),border:l({cssName:`border`,tagName:`td`}),borderTop:l({cssName:`border-top`,tagName:`td`}),borderRight:l({cssName:`border-right`,tagName:`td`}),borderBottom:l({cssName:`border-bottom`,tagName:`td`}),borderLeft:l({cssName:`border-left`,tagName:`td`})}}]}}),f=a.Node.create({name:`image`,inline:!0,group:`inline`,atom:!0,draggable:!0,addOptions(){return{getZoom:()=>1}},addNodeView(){return(0,i.VueNodeViewRenderer)(r.default,{stopEvent:({event:e})=>e.target instanceof HTMLElement&&!!e.target.closest(`[data-resize-handle]`)})},addAttributes(){return{src:{default:null},alt:{default:``},title:{default:null},width:{default:null},height:{default:null}}},parseHTML(){return[{tag:`img[src]`,getAttrs:e=>{if(!(e instanceof HTMLElement))return!1;let t=e.getAttribute(`src`)??``;return h(t)?{src:t,alt:(e.getAttribute(`alt`)??``).slice(0,500),title:e.getAttribute(`title`)?.slice(0,500)??null,width:g(e.getAttribute(`width`)),height:g(e.getAttribute(`height`))}:!1}}]},renderHTML({HTMLAttributes:e}){let t=String(e.src??``);return h(t)?[`img`,(0,a.mergeAttributes)({src:t,alt:String(e.alt??``).slice(0,500),loading:`lazy`,decoding:`async`},{title:e.title?String(e.title).slice(0,500):void 0,width:g(e.width),height:g(e.height)})]:[`span`,{"data-invalid-contract-image":`true`},``]}}),p=a.Mark.create({name:`superscript`,excludes:`subscript`,parseHTML:()=>[{tag:`sup`}],renderHTML:({HTMLAttributes:e})=>[`sup`,(0,a.mergeAttributes)(e),0]}),m=a.Mark.create({name:`subscript`,excludes:`superscript`,parseHTML:()=>[{tag:`sub`}],renderHTML:({HTMLAttributes:e})=>[`sub`,(0,a.mergeAttributes)(e),0]});function h(t){let n=t.trim();return!!n&&e.isSafeContractImageUrl(n)}function g(e){let n=/^(\d+(?:\.\d+)?)(?:px)?$/i.exec(String(e??``).trim());return n?t.normalizeContractImageDimension(n[1])??null:null}exports.ContractContentImage=f,exports.ContractSubscript=m,exports.ContractSuperscript=p,exports.OfficeContentFormatting=d;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`),require(`../constants.cjs`);const e=require(`../utils/template-variable-render.cjs`);let t=require(`@tiptap/core`);var n=t.Node.create({name:`templateVariable`,group:`inline`,inline:!0,atom:!0,selectable:!0,addAttributes(){return{key:{default:``,parseHTML:e=>e.getAttribute(`data-key`)??``,renderHTML:e=>({"data-key":e.key})},label:{default:``,parseHTML:e=>e.getAttribute(`data-label`)??e.textContent??``,renderHTML:e=>({"data-label":e.label})},type:{default:`text`,parseHTML:e=>e.getAttribute(`data-variable-type`)??`text`,renderHTML:e=>({"data-variable-type":e.type})},placeholder:{default:``,parseHTML:e=>e.getAttribute(`data-placeholder`)??``,renderHTML:e=>({"data-placeholder":e.placeholder})},width:{default:160,parseHTML:e=>Number(e.getAttribute(`data-width`)||160),renderHTML:e=>({"data-width":e.width})},height:{default:32,parseHTML:e=>Number(e.getAttribute(`data-height`)||32),renderHTML:e=>({"data-height":e.height})},required:{default:!1,parseHTML:e=>e.getAttribute(`data-required`)===`true`,renderHTML:e=>({"data-required":String(!!e.required)})},defaultValue:{default:``,parseHTML:e=>e.getAttribute(`data-default-value`)??``,renderHTML:e=>({"data-default-value":e.defaultValue})},format:{default:``,parseHTML:e=>e.getAttribute(`data-format`)??``,renderHTML:e=>({"data-format":e.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:{default:``,parseHTML:e=>e.getAttribute(`data-checked-text`)??``,renderHTML:e=>({"data-checked-text":e.checkedText})},uncheckedText:{default:``,parseHTML:e=>e.getAttribute(`data-unchecked-text`)??``,renderHTML:e=>({"data-unchecked-text":e.uncheckedText})},multiline:{default:!1,parseHTML:e=>e.getAttribute(`data-multiline`)===`true`,renderHTML:e=>({"data-multiline":String(!!e.multiline)})},rows:{default:3,parseHTML:e=>Number(e.getAttribute(`data-rows`)||3),renderHTML:e=>({"data-rows":e.rows})},lineHeight:{default:28,parseHTML:e=>Number(e.getAttribute(`data-line-height`)||28),renderHTML:e=>({"data-line-height":e.lineHeight})},border:{default:!1,parseHTML:e=>e.getAttribute(`data-border`)===`true`,renderHTML:e=>({"data-border":String(!!e.border)})},underline:{default:!1,parseHTML:e=>e.getAttribute(`data-underline`)===`true`,renderHTML:e=>({"data-underline":String(!!e.underline)})},color:{default:`#1f2937`,parseHTML:e=>e.getAttribute(`data-color`)??`#1f2937`,renderHTML:e=>({"data-color":e.color})},background:{default:`transparent`,parseHTML:e=>e.getAttribute(`data-background`)??`transparent`,renderHTML:e=>({"data-background":e.background})},fontSize:{default:14,parseHTML:e=>Number(e.getAttribute(`data-font-size`)||14),renderHTML:e=>({"data-font-size":e.fontSize})},fontFamily:{default:``,parseHTML:e=>e.getAttribute(`data-font-family`)??``,renderHTML:e=>e.fontFamily?{"data-font-family":e.fontFamily}:{}},placeholderColor:{default:`#7a818b`,parseHTML:e=>e.getAttribute(`data-placeholder-color`)??`#7a818b`,renderHTML:e=>({"data-placeholder-color":e.placeholderColor})},lineColor:{default:`#565b66`,parseHTML:e=>e.getAttribute(`data-line-color`)??`#565b66`,renderHTML:e=>({"data-line-color":e.lineColor})},textAlign:{default:`left`,parseHTML:e=>e.getAttribute(`data-text-align`)??`left`,renderHTML:e=>({"data-text-align":e.textAlign})},borderStyle:{default:`solid`,parseHTML:e=>e.getAttribute(`data-border-style`)??`solid`,renderHTML:e=>({"data-border-style":e.borderStyle})},objectFit:{default:`contain`,parseHTML:e=>e.getAttribute(`data-object-fit`)??`contain`,renderHTML:e=>({"data-object-fit":e.objectFit})}}},parseHTML(){return[{tag:`span[data-template-variable]`}]},renderHTML({HTMLAttributes:n}){String(n[`data-key`]||n.key||``);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 r(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`}}exports.TemplateVariable=n,exports.buildTemplateVariableAttrs=r;
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;
@@ -0,0 +1 @@
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../utils/word-paste.cjs`),t=require(`../utils/html.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(t){let n=this.storage.pending,r=e.normalizeWordClipboardHtml(t,{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:(t,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:e.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)),e.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?e.normalizeWordClipboardHtml(o.html,{plainText:o.plainText,rtf:o.rtf,clipboardImages:r,preferClipboardImages:!0,trustedInternal:o.trustedInternal}).html:a.length?`<p>${a.map(e=>`<img src="${t.escapeHtmlAttribute(e)}" alt="">`).join(``)}</p>`:e.plainTextToSafeHtml(o.plainText))||e.plainTextToSafeHtml(o.plainText))}).catch(()=>{if(n.isDestroyed)return;let t=s.getState(n.state)?.get(_);t?d(n,t,e.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(t){return e.extractRtfImageDataUrls(t).length}exports.WordPaste=c;
@@ -0,0 +1 @@
1
+ var e=[`text`,`date`,`number`,`image`,`checkbox`];function t(t){return typeof t==`string`&&e.includes(t)}exports.isContractTemplateFieldType=t;
@@ -0,0 +1 @@
1
+ const e=require(`./image-url.cjs`);var t=Object.freeze({enabled:!0,maxWidth:1920,maxHeight:1920,quality:.82,mimeType:`image/webp`}),n=20*1024*1024,r=16,i=2400,a=new Set([`image/png`,`image/jpeg`,`image/webp`,`image/gif`,`image/bmp`]),o=new Set([`image/jpeg`,`image/png`,`image/webp`]),s={"image/jpeg":`jpg`,"image/png":`png`,"image/webp":`webp`};function c(e){if(e===!1)return{...t,enabled:!1};let n=typeof e==`object`?e:void 0;return{enabled:n?.enabled??t.enabled,maxWidth:m(n?.maxWidth,t.maxWidth),maxHeight:m(n?.maxHeight,t.maxHeight),quality:h(n?.quality),mimeType:g(n?.mimeType)}}function l(e){let t=typeof e==`number`?e:typeof e==`string`&&e.trim()?Number(e):NaN;if(!(!Number.isFinite(t)||t<=0))return Math.round(Math.min(i,Math.max(16,t)))}function u(e){let t=l(e.width)??16,n=l(e.height)??16,r=typeof e.zoom==`number`&&Number.isFinite(e.zoom)&&e.zoom>.01?e.zoom:1,a=(e.clientX-e.startClientX)/r,o=(e.clientY-e.startClientY)/r,s=e.handle.endsWith(`right`)?1:-1,c=e.handle.startsWith(`bottom`)?1:-1,u=a*s,d=o*c,f=(t+u)/t,p=(n+d)/n,m=Math.abs(u/t)>=Math.abs(d/n)?f:p;Number.isFinite(m)||(m=1);let h=Math.max(16/t,16/n),g=Math.min(i/t,i/n);return m=Math.min(Math.max(h,g),Math.max(Math.min(h,g),m)),{width:l(t*m)??16,height:l(n*m)??16}}function d(e){return y(e),new Promise((t,n)=>{if(typeof FileReader>`u`){n(Error(`当前浏览器无法读取图片文件`));return}let r=new FileReader;r.onload=()=>{if(typeof r.result==`string`&&r.result.startsWith(`data:image/`)){t(r.result);return}n(Error(`图片文件读取失败`))},r.onerror=()=>n(Error(`图片文件读取失败`)),r.onabort=()=>n(Error(`图片文件读取已取消`)),r.readAsDataURL(e)})}async function f(e,t){y(e);let n=c(t);if(!n.enabled||_(e.type)===`image/gif`)return b(e);try{let t=await C(e);if(!t)return b(e);let{image:r,objectUrl:i}=t;try{let t=r.naturalWidth||r.width,i=r.naturalHeight||r.height;if(t<=0||i<=0)return b(e);let a=Math.min(1,n.maxWidth/t,n.maxHeight/i),o=Math.max(1,Math.round(t*a)),s=Math.max(1,Math.round(i*a)),c=x(o,s),l=c?.getContext(`2d`);if(!c||!l)return b(e);l.drawImage(r,0,0,o,s);let u=await S(c,n.mimeType,n.quality);if(!u)return b(e);let d=v(u.type);return!d||!(o!==t||s!==i)&&u.size>=e.size?b(e):{file:w(e,u,d),compressed:!0}}finally{URL.revokeObjectURL(i)}}catch{return b(e)}}async function p(t,n){y(t);let r=await f(t,n.compression),i=await d(r.file),a=n.upload?await n.upload({source:n.source,originalFile:t,processedFile:r.file,dataUrl:i,compressed:r.compressed}):i,o=typeof a==`string`?a.trim():``;if(!o||!e.isSafeContractImageUrl(o))throw Error(`图片上传结果不是安全的图片地址`);return{src:o,file:r.file,dataUrl:i,compressed:r.compressed}}function m(e,t){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:t}function h(e){return typeof e!=`number`||!Number.isFinite(e)?t.quality:Math.min(1,Math.max(0,e))}function g(e){return e&&o.has(e)?e:t.mimeType}function _(e){return e.trim().toLowerCase()}function v(e){let t=_(e);return o.has(t)?t:void 0}function y(e){if(e.size<=0)throw Error(`图片文件不能为空`);if(e.size>20971520)throw Error(`图片文件不能超过 20 MB`);if(!a.has(_(e.type)))throw Error(`不支持的图片格式,仅支持 PNG、JPEG、WebP、GIF 和 BMP`)}function b(e){return{file:e,compressed:!1}}function x(e,t){if(typeof document>`u`)return;let n=document.createElement(`canvas`);return n.width=e,n.height=t,n}function S(e,t,n){return new Promise(r=>{e.toBlob(r,t,n)})}async function C(e){if(typeof Image>`u`||typeof URL>`u`||typeof URL.createObjectURL!=`function`||typeof URL.revokeObjectURL!=`function`)return;let t=URL.createObjectURL(e),n=new Image;try{return await new Promise((e,r)=>{n.onload=()=>e(),n.onerror=()=>r(Error(`图片解码失败`)),n.src=t}),{image:n,objectUrl:t}}catch(e){throw URL.revokeObjectURL(t),e}}function w(e,t,n){let r=s[n],i=e.name.replace(/\.[^.]+$/,``)||`image`;return new File([t],`${i}.${r}`,{type:n,lastModified:e.lastModified})}exports.DEFAULT_CONTRACT_IMAGE_COMPRESSION=t,exports.MAX_CONTRACT_IMAGE_BYTES=n,exports.MAX_CONTRACT_IMAGE_DIMENSION=i,exports.MIN_CONTRACT_IMAGE_DIMENSION=r,exports.compressContractImage=f,exports.normalizeContractImageCompression=c,exports.normalizeContractImageDimension=l,exports.processContractImageFile=p,exports.readContractImageFileAsDataUrl=d,exports.resolveContractImageResizeDimensions=u;
@@ -0,0 +1 @@
1
+ var e=/[\s\u00a0::__]+$/,t=/[\s\u00a0]+/,n=2,r=12;function i(e,t,n){return typeof e!=`number`||!Number.isFinite(e)||e<=0?void 0:Math.round(Math.min(Math.max(t,n),Math.max(Math.min(t,n),e)))}function a(e){return e.isCellSelection||e.selectionEmpty&&e.inTable?`table`:`text`}function o(i){if(!i)return``;let a=i.replace(e,``);if(!a)return``;let o=a.split(t).filter(Boolean).at(-1)??a,s=Array.from(o);return s.length<n?``:s.slice(-r).join(``)}exports.inferContextVariableLabel=o,exports.resolveContextVariableWidth=i,exports.resolveEditorContextMenuKind=a;
@@ -0,0 +1 @@
1
+ function e(){return typeof DOMParser<`u`}function t(){return typeof window<`u`&&e()}function n(e){return e.replaceAll(`&`,`&amp;`).replaceAll(`"`,`&quot;`).replaceAll(`<`,`&lt;`).replaceAll(`>`,`&gt;`)}function r(e){return e.replaceAll(`&`,`&amp;`).replaceAll(`<`,`&lt;`).replaceAll(`>`,`&gt;`)}function i(e,t){return RegExp(`${t}=["']([^"']*)["']`).exec(e)?.[1]??``}function a(e){return t=>e.getAttribute(t)||void 0}function o(e){return t=>i(e,t)||void 0}function s(e){if(e==null||e===``)return;let t=Number(e);return Number.isFinite(t)?t:void 0}function c(e){if(!(e==null||e===``))return e===!0||e===`true`}function l(e,t){return Number(e||t)}var u=/<span\b(?=[^>]*data-template-variable=["']true["'])([^>]*)>[\s\S]*?<\/span>/g;function d(e,t){return e.replace(u,(e,n)=>t(e,n))}function f(e,t,n){let r=new RegExp(t.source,t.flags.includes(`g`)?t.flags:`${t.flags}g`),i=r.exec(e);for(;i;)n(i[0]),i=r.exec(e)}function p(e,t,n){let r=new Set;return f(e,t,e=>{let t=n(e);t&&r.add(t)}),r}function m(e){let t=Number(e);return Number.isFinite(t)&&t>0}function h(e){if(!e||typeof e!=`object`)return!1;let{width:t,height:n}=e;return m(t)&&m(n)}exports.canParseHtmlDocument=e,exports.canUseDomHtml=t,exports.collectFromHtmlTags=p,exports.createElementAttributeReader=a,exports.createTagAttributeReader=o,exports.escapeHtmlAttribute=n,exports.escapeHtmlText=r,exports.forEachHtmlTag=f,exports.getHtmlAttribute=i,exports.hasPositivePageSize=h,exports.readNumberAttribute=l,exports.readOptionalBoolean=c,exports.readOptionalNumber=s,exports.replaceTemplateVariableSpans=d;
@@ -0,0 +1,2 @@
1
+ var e=new Set([`http:`,`https:`,`blob:`]);function t(t){let i=t.trim();if(!i)return!0;if(r(i))return!1;if(/^data:image\/(?:png|jpe?g|gif|webp|bmp);base64,[a-z0-9+/=\s]+$/i.test(i)||n(i)||i.startsWith(`//`)||/^(?:\.{0,2}\/|\/|#)/.test(i)||!/^[a-z][a-z\d+.-]*:/i.test(i))return!0;try{return e.has(new URL(i).protocol)}catch{return!1}}function n(e){let t=/^data:image\/svg\+xml(?:;charset=utf-?8)?,(.+)$/i.exec(e)?.[1];if(!t||!t.toLowerCase().startsWith(`%3csvg`))return!1;try{let e=decodeURIComponent(t).trim();return/^<svg(?:\s|>|\/)/i.test(e)&&/<\/svg>$/i.test(e)&&!/<\s*\/?\s*(?:script|foreignobject|iframe|object|embed)\b/i.test(e)&&!/\son[a-z]+\s*=/i.test(e)&&!/(?:javascript|vbscript|data:text\/html)\s*:/i.test(e)}catch{return!1}}function r(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:`
2
+ `,tab:` `})[t.toLowerCase()]??``).trim().replace(/[\u0000-\u0020\u007F]+/g,``);return/^(?:javascript|vbscript|data:text\/html)/i.test(t)}exports.isSafeContractImageUrl=t;
@@ -0,0 +1 @@
1
+ require(`../../../contract-signing-location/src/constants.cjs`);const e=require(`./html.cjs`);var t=`application/x-gd-contract-signing-placement`,n={seal:{width:c(40),height:c(40)},signature:{width:c(50),height:c(20)},date:{width:c(50),height:c(20)}},r=8,i={seal:`印章`,signature:`签名`,date:`签署日期`},a=class extends Error{constructor(e){super(`签署位置无法转换为 locationRules`),this.code=`SIGNING_PLACEMENT_LOCATION_RULES_INVALID`,this.name=`ContractTemplateLocationRuleBuildError`,this.errors=e}},o=0;function s(){return o+=1,`signing-placement-${Date.now().toString(36)}-${o.toString(36)}`}function c(e,t=96){return Math.round(e/25.4*t)}function l(e,t){let n=Number(e);return Number.isFinite(n)?n:t}function u(e){return{width:Math.max(1,l(e.width,1)),height:Math.max(1,l(e.height,1))}}function d(e={}){return e.showSigningPlacementTools===!1?[]:Object.keys(i).map(e=>({key:e,type:e,label:i[e]}))}function f(e){let t=k(e);return t?JSON.stringify(t):``}function p(e){if(typeof e!=`string`)return;let t=e.trim();if(M(t))return{type:t};try{return k(JSON.parse(t))}catch{return}}function m(e,t){return!e&&!t}function h(e){return{...n[e]??n.signature}}function g(e){return i[e]??`签署位置`}function _(e,t,n=8){let r=u(t),i=Math.max(1,l(n,8)),a=Math.min(r.width,Math.max(i,l(e.width,i))),o=Math.min(r.height,Math.max(i,l(e.height,i))),s=j(l(e.x,0),0,Math.max(0,r.width-a)),c=j(l(e.y,0),0,Math.max(0,r.height-o)),d=e.type===`seal`&&Array.isArray(e.sealTypes)&&e.sealTypes.length?Array.from(new Set(e.sealTypes.map(String).filter(Boolean))):void 0;return{id:e.id,pageId:e.pageId,type:e.type,x:A(s),y:A(c),width:A(a),height:A(o),mustSign:e.mustSign===!0,...d?{sealTypes:d}:{}}}function v(e,t,n){let r=t.type??e.type;return _({...e,...t,type:r,...r===`seal`?{}:{sealTypes:void 0}},n)}function y(e,t,n,r={}){let i=M(e)?e:`signature`,a=h(i),o=u(n),c=l(r.width,a.width),d=l(r.height,a.height);return _({id:r.id||s(),pageId:t,type:i,x:l(r.x,Math.max(0,(o.width-c)/2)),y:l(r.y,Math.max(0,(o.height-d)/2)),width:c,height:d,mustSign:r.mustSign===!0,...i===`seal`&&r.sealTypes?.length?{sealTypes:[...r.sealTypes]}:{}},o)}function b(e,t,n){if(!Array.isArray(e))return[];let r=u(n),i=O(e);return e.map((e,n)=>{let a=e&&typeof e==`object`?e:{},o=M(a.type)?a.type:`signature`,s=String(a.pageId||``),c=t[s]??r;return _({id:i[n],pageId:s,type:o,x:l(a.x,0),y:l(a.y,0),width:l(a.width,h(o).width),height:l(a.height,h(o).height),mustSign:a.mustSign===!0,...o===`seal`&&Array.isArray(a.sealTypes)&&a.sealTypes.length?{sealTypes:Array.from(new Set(a.sealTypes.map(String).filter(Boolean)))}:{}},c)})}function x(e,t,n,r,i){let a=Number.isFinite(r)&&r>0?r:1;return _({...e,x:e.x+l(t,0)/a,y:e.y+l(n,0)/a},i)}function S(e,t,n,r=8){let i=u(t),a=u(n);return _({...e,x:e.x*a.width/i.width,y:e.y*a.height/i.height,width:e.width*a.width/i.width,height:e.height*a.height/i.height},a,r)}function C(e,t,n){return _({...e,...t},n)}function w(e){let t=[],n=Array.isArray(e?.pages)?e.pages:[],r=new Map(n.map(e=>[e.id,e])),i=Array.isArray(e.signingPlacements)?e.signingPlacements:[],a=O(i),o=new Set;return i.forEach((n,i)=>{let s=String(n?.id||``),c=a[i];s?o.has(s)&&t.push({type:`signing-placement`,id:c,pageId:n?.pageId,code:`SIGNING_PLACEMENT_ID_DUPLICATE`,message:`签署位置标识 ${s} 重复`}):t.push({type:`signing-placement`,id:c,pageId:n?.pageId,code:`SIGNING_PLACEMENT_ID_MISSING`,message:`签署位置缺少唯一标识`}),o.add(s);let l=r.get(n?.pageId);if(l||t.push({type:`signing-placement`,id:c,pageId:n?.pageId,code:`SIGNING_PLACEMENT_PAGE_MISSING`,message:`签署位置引用的页面 ${n?.pageId||`(空)`} 不存在`}),M(n?.type)||t.push({type:`signing-placement`,id:c,pageId:n?.pageId,code:`SIGNING_PLACEMENT_TYPE_INVALID`,message:`签署位置类型必须是 seal、signature 或 date`}),[n?.x,n?.y,n?.width,n?.height].some(e=>typeof e!=`number`||!Number.isFinite(e)))t.push({type:`signing-placement`,id:c,pageId:n?.pageId,code:`SIGNING_PLACEMENT_GEOMETRY_INVALID`,message:`签署位置坐标和尺寸必须是有限数字`});else if(n.width<8||n.height<8||n.width<=0||n.height<=0)t.push({type:`signing-placement`,id:c,pageId:n?.pageId,code:`SIGNING_PLACEMENT_SIZE_INVALID`,message:`签署位置尺寸不能小于 8px`});else if(l){let r=u(l.pageSize??e.pageSize);(n.x<0||n.y<0||n.x+n.width>r.width||n.y+n.height>r.height)&&t.push({type:`signing-placement`,id:c,pageId:n.pageId,code:`SIGNING_PLACEMENT_OUT_OF_BOUNDS`,message:`签署位置不能超出所属页面边界`})}n?.type!==`seal`&&n?.sealTypes!==void 0?t.push({type:`signing-placement`,id:c,pageId:n?.pageId,code:`SIGNING_PLACEMENT_SEAL_TYPES_INVALID`,message:`只有印章位置可以配置印章类型`}):n?.type===`seal`&&n.sealTypes!==void 0&&(!Array.isArray(n.sealTypes)||n.sealTypes.some(e=>typeof e!=`string`))&&t.push({type:`signing-placement`,id:c,pageId:n?.pageId,code:`SIGNING_PLACEMENT_SEAL_TYPES_INVALID`,message:`印章类型必须是字符串数组`})}),t}function T(e,t,n){let r=typeof t==`string`?{fileId:t,targetPageSizes:n}:t,i=w(e),o=String(r.fileId??``).trim();if(o||i.push({type:`signing-placement`,id:`location-rules`,code:`SIGNING_PLACEMENT_FILE_ID_MISSING`,message:`locationRules 缺少目标文件 ID`}),i.length)throw new a(i);let s=r.targetPageSizes,c=e.pages??[];return(e.signingPlacements??[]).map(t=>{let n=c.findIndex(e=>e.id===t.pageId),r=u((n>=0?c[n]:void 0)?.pageSize??e.pageSize),i=S(t,r,D(s,t.pageId,n,r),1),a={signType:t.type,signTop:Math.round(i.y),signLeft:Math.round(i.x),signWidth:Math.round(i.width),signHeight:Math.round(i.height),pageList:{[o]:[n]},...t.type===`seal`&&t.sealTypes?.length?{sealType:[...t.sealTypes]}:{}};return{mustSign:t.mustSign===!0,placementId:t.id,pageId:t.pageId,pageIndex:n,location:a}})}function E(e,t,n){return T(e,t,n).map(({mustSign:e,location:t})=>({mustSign:e,location:t}))}function D(t,n,r,i){if(!t)return i;let a=Array.isArray(t)?t[r]:t[n];return e.hasPositivePageSize(a)?u(a):i}function O(e){let t=new Set(e.map(e=>e&&typeof e==`object`?String(e.id||``):``).filter(Boolean)),n=new Set;return e.map((e,r)=>{let i=e&&typeof e==`object`?String(e.id||``):``;if(i&&!n.has(i))return n.add(i),i;let a=i||`signing-placement`,o=`${a}-normalized-${r+1}`,s=2;for(;n.has(o)||t.has(o);)o=`${a}-normalized-${r+1}-${s}`,s+=1;return n.add(o),o})}function k(e){if(!e||typeof e!=`object`)return;let t=e;if(M(t.type))return{type:t.type}}function A(e){return Math.round(e*100)/100}function j(e,t,n){return n<t?t:Math.min(n,Math.max(t,e))}function M(e){return e===`seal`||e===`signature`||e===`date`}exports.ContractTemplateLocationRuleBuildError=a,exports.SIGNING_PLACEMENT_DEFAULT_SIZES=n,exports.SIGNING_PLACEMENT_MIME=t,exports.SIGNING_PLACEMENT_MIN_SIZE=r,exports.SIGNING_PLACEMENT_TYPE_LABELS=i,exports.applySigningPlacementPatch=v,exports.buildContractLocationRules=E,exports.buildSigningPlacementLocationRules=T,exports.canMutateSigningPlacements=m,exports.clampSigningPlacement=_,exports.createSigningPlacement=y,exports.getSigningPlacementDefaultSize=h,exports.getSigningPlacementTypeLabel=g,exports.moveSigningPlacementByDisplayDelta=x,exports.normalizeSigningPlacements=b,exports.parseSigningPlacementDragPayload=p,exports.resizeSigningPlacement=C,exports.resolveSigningPlacementToolItems=d,exports.scaleSigningPlacementToPage=S,exports.serializeSigningPlacementDragPayload=f,exports.validateSigningPlacements=w;
@@ -1,3 +1,3 @@
1
- const e=require(`./template-variable-render.cjs`),t=require(`../composables/use-template-designer.cjs`);var n=new Set([`text`,`date`,`number`,`image`,`checkbox`]),r=new Set([`http:`,`https:`,`blob:`]),i=new Set([`action`,`formaction`,`href`,`src`,`xlink:href`]);function a(e){let t={};return(Array.isArray(e?.variables)?e.variables:[]).forEach(e=>{e?.key&&(t[e.key]=v(e))}),t}function o(e,t){return{...a(e),...t??{}}}function s(e,t){let n=l(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&&f(r)){n.push({type:`variable`,id:e.id,variableKey:e.key,message:`请填写${e.label||e.key}`,code:`VARIABLE_REQUIRED`});return}f(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`&&!M(r)&&n.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是合法日期`,code:`VARIABLE_TYPE_INVALID`}),e.type===`image`&&!w(String(r))&&n.push({type:`security`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是安全的图片地址`,code:`IMAGE_URL_UNSAFE`}))}),n}function c(e,t,n){return n?s(e,t):l(e)}function l(e){if(!e)return[{type:`page`,id:`template`,message:`缺少可渲染的合同模板`,code:`TEMPLATE_MISSING`}];let t=[],r=Array.isArray(e.pages)?e.pages:[],i=Array.isArray(e.variables)?e.variables:[];(!Array.isArray(e.pages)||r.length===0)&&t.push({type:`page`,id:`template-pages`,message:`模板至少需要一个合法页面`,code:`TEMPLATE_PAGES_INVALID`}),Array.isArray(e.variables)||t.push({type:`variable`,id:`template-variables`,message:`模板变量列表格式无效`,code:`TEMPLATE_VARIABLES_INVALID`}),k(e.pageSize)||t.push({type:`page`,id:`template-page-size`,message:`模板默认页面尺寸无效,已回退为安全默认尺寸`,code:`TEMPLATE_PAGE_SIZE_INVALID`});let a=new Map;i.forEach((e,r)=>{if(!e||typeof e.key!=`string`||!e.key.trim()){t.push({type:`variable`,id:e?.id||`variable-${r}`,message:`第 ${r+1} 个变量缺少有效 key`,code:`VARIABLE_KEY_MISSING`});return}a.set(e.key,(a.get(e.key)??0)+1),n.has(e.type??`text`)||t.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是正文填写变量`,code:`VARIABLE_TYPE_UNSUPPORTED`})}),a.forEach((e,n)=>{e>1&&t.push({type:`variable`,id:n,variableKey:n,message:`变量 key ${n} 重复`,code:`VARIABLE_KEY_DUPLICATED`})});let o=new Set;return r.forEach((e,n)=>{if(!e||typeof e.id!=`string`||!e.id.trim()||typeof e.contentHtml!=`string`){t.push({type:`page`,id:e?.id||`page-${n}`,pageId:e?.id,message:`第 ${n+1} 页结构无效,已跳过渲染`,code:`PAGE_INVALID`});return}e.pageSize!==void 0&&!k(e.pageSize)&&t.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=>o.add(e)),E(e.contentHtml).forEach((r,i)=>{t.push({type:`security`,id:`${e.id}-security-${i}`,pageId:e.id,message:`${e.title||`第 ${n+1} 页`}:${r}`,code:`HTML_UNSAFE`})})}),o.forEach(e=>{a.has(e)||t.push({type:`variable`,id:e,variableKey:e,message:`正文引用的变量 ${e} 缺少配置`,code:`VARIABLE_CONFIG_MISSING`})}),a.forEach((e,n)=>{o.has(n)||t.push({type:`variable`,id:n,variableKey:n,message:`变量 ${n} 缺少正文节点`,code:`VARIABLE_NODE_MISSING`})}),t}function u(e,n,r={}){if(!e||!Array.isArray(e.pages))return[];let i=Array.isArray(e.variables)?e.variables:[],a=new Map(i.filter(e=>e?.key).map(e=>[e.key,e])),o=k(e.pageSize)?e.pageSize:t.DEFAULT_PAGE_SIZE;return e.pages.flatMap(e=>{if(!e||typeof e.id!=`string`||!e.id.trim()||typeof e.contentHtml!=`string`)return[];let i=t.resolvePageSize(e.pageSize,o);return[{id:e.id,title:e.title||`未命名页面`,format:i.format??`Custom`,width:i.width,height:i.height,contentHtml:p(e.contentHtml,a,n,r)}]})}function d(e,t,n={}){return u(e,t,n).map(e=>`<section class="gd-contract-template-page" data-page-id="${P(e.id)}" data-page-format="${P(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 f(e){return e==null||e===``}function p(e,t,n,r){if(!e)return e;if(typeof window<`u`&&typeof DOMParser<`u`){let i=new DOMParser().parseFromString(C(e),`text/html`);return i.querySelectorAll(`[data-template-variable]`).forEach(e=>{m(e,t,n,r)}),i.body.innerHTML}return C(e).replace(/<span\b(?=[^>]*data-template-variable=["']true["'])([^>]*)>[\s\S]*?<\/span>/g,(e,i)=>{let a=N(i,`data-key`);return a?h(t.get(a),a,n[a],r):e})}function m(e,t,n,r){let i=e.dataset.key||``,a=t.get(i);if(!i||!a)return;let o=new DOMParser().parseFromString(h(a,i,n[i],r),`text/html`).body.firstElementChild;o&&e.replaceWith(o)}function h(e,t,n,r){return r.mode===`display`?g(e,t,n,r):_(e,t,n,r)}function g(t,n,r,i){let a=t?.type??`text`,o=r??v(t),s=a===`image`&&!f(o)&&!w(String(o))?``:o,c=b(s),l=e.resolveTemplateVariablePresentation({type:a,width:t?.width,height:t?.height,placeholder:t?.placeholder??``,defaultValue:c,format:t?.format??``,precision:t?.precision,useGrouping:t?.useGrouping,checkedText:t?.checkedText??``,uncheckedText:t?.uncheckedText??``,multiline:t?.multiline,rows:t?.rows,lineHeight:t?.lineHeight,style:t?.style}),u=l.displayText||t?.placeholder||t?.label||n,d=[`class="${P([`gd-contract-template-renderer__control`,`gd-contract-template-renderer__preview-control`,...l.classes,i.activeKey===n?`is-active`:``,f(s)?`is-empty`:``].filter(Boolean).join(` `))}"`,`style="${P(l.styleText)}"`,`data-contract-render-wrapper="true"`,`data-contract-render-preview="true"`,`data-key="${P(n)}"`,`data-variable-type="${P(a)}"`,`aria-label="${P(t?.label||n)}"`,i.disabled?``:`role="button"`,i.disabled?``:`tabindex="0"`].filter(Boolean).join(` `);return a===`checkbox`?`<span ${d}><span class="gd-contract-template-renderer__checkbox-mark" aria-hidden="true">${S(s)?`✓`:``}</span>${F(u)}</span>`:a===`image`&&!f(s)?`<span ${d}></span>`:`<span ${d}>${F(u)}</span>`}function _(t,n,r,i){let a=t?.type??`text`,o=y(r??v(t)),s=e.resolveTemplateVariablePresentation({type:a,width:t?.width,height:t?.height,placeholder:t?.placeholder??``,defaultValue:x(i)?o:``,format:t?.format??``,precision:t?.precision,useGrouping:t?.useGrouping,checkedText:t?.checkedText??``,uncheckedText:t?.uncheckedText??``,multiline:t?.multiline,rows:t?.rows,lineHeight:t?.lineHeight,style:t?.style}),c=x(i),l=i.disabled||c,u=[`data-contract-render-control="true"`,`data-key="${P(n)}"`,`data-variable-type="${P(a)}"`,`aria-label="${P(t?.label||n)}"`,l?`disabled`:``,c?`readonly`:``].filter(Boolean).join(` `),d=`style="${P(s.styleText)}"`,f=P([`gd-contract-template-renderer__control`,...s.classes].join(` `));return a===`checkbox`?`<label class="${f}" ${d} data-contract-render-wrapper="true" data-key="${P(n)}"><input type="checkbox" ${u} ${S(o)?`checked`:``}>${F(t?.checkedText||t?.label||n)}</label>`:c?`<span class="${f}" ${d} data-contract-render-wrapper="true" data-key="${P(n)}">${F(s.displayText||o)}</span>`:a===`number`?`<input class="${f}" ${d} type="number" ${u} value="${P(o)}" placeholder="${P(t?.placeholder||``)}">`:a===`date`?`<input class="${f}" ${d} type="date" ${u} value="${P(o)}" placeholder="${P(t?.placeholder||``)}">`:t?.multiline?`<textarea class="${f}" ${d} ${u} placeholder="${P(t.placeholder||``)}">${F(o)}</textarea>`:`<input class="${f}" ${d} type="text" ${u} value="${P(o)}" placeholder="${P(t?.placeholder||``)}">`}function v(e){if(!e)return``;if(e.type===`checkbox`)return S(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 y(e){return typeof e==`boolean`?e?`true`:``:e==null?``:String(e)}function b(e){return typeof e==`boolean`?e?`true`:`false`:e==null?``:String(e)}function x(e){return!!e.readonly}function S(e){return e===!0||e===`true`||e===`1`||e===`yes`||e===`是`||e===`已选`}function C(e){if(typeof DOMParser<`u`){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`||i.has(n)&&D(t.value)||n===`style`&&j(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)=>j(n)?``:` style=${t}${n}${t}`)}function w(e){let t=e.trim();if(!t)return!0;if(D(t))return!1;if(/^data:image\/(?:png|jpe?g|gif|webp|bmp);base64,[a-z0-9+/=\s]+$/i.test(t)||t.startsWith(`//`)||/^(?:\.{0,2}\/|\/|#)/.test(t)||!/^[a-z][a-z\d+.-]*:/i.test(t))return!0;try{return r.has(new URL(t).protocol)}catch{return!1}}function T(e){let t=new Set,n=/<[^>]+data-template-variable=["']true["'][^>]*>/gi,r=n.exec(e);for(;r;){let i=N(r[0],`data-key`);i&&t.add(i),r=n.exec(e)}return t}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
- `,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){if(!e||typeof e!=`object`)return!1;let{width:t,height:n}=e;return A(t)&&A(n)}function A(e){let t=Number(e);return Number.isFinite(t)&&t>0}function j(e){return/expression\s*\(|url\s*\(\s*["']?\s*(?:javascript|vbscript|data:text\/html)/i.test(e)}function M(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])}function N(e,t){return RegExp(`${t}=["']([^"']*)["']`).exec(e)?.[1]??``}function P(e){return e.replaceAll(`&`,`&amp;`).replaceAll(`"`,`&quot;`).replaceAll(`<`,`&lt;`).replaceAll(`>`,`&gt;`)}function F(e){return e.replaceAll(`&`,`&amp;`).replaceAll(`<`,`&lt;`).replaceAll(`>`,`&gt;`)}exports.buildInitialRenderValues=a,exports.buildTemplateRenderHtml=d,exports.buildTemplateRenderPages=u,exports.isEmptyRenderValue=f,exports.isSafeContractImageUrl=w,exports.normalizeRenderValues=o,exports.resolveTemplateRenderSubmitErrors=c,exports.sanitizeContractRendererHtml=C,exports.validateTemplateRenderStructure=l,exports.validateTemplateRenderValues=s;
1
+ const e=require(`./template-variable-render.cjs`),t=require(`./image-url.cjs`),n=require(`./html.cjs`),r=require(`../types.cjs`),i=require(`../composables/use-template-designer.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,n){let r=d(e);if(!e)return r;let i=Array.isArray(e.variables)?e.variables:[],a=new Set(i.map(e=>e?.key).filter(Boolean));return Object.keys(n).forEach(e=>{a.has(e)||r.push({type:`variable`,id:e,variableKey:e,message:`提交值 ${e} 不属于模板变量`,code:`VARIABLE_UNKNOWN`})}),i.forEach(e=>{if(!e?.key)return;let i=n[e.key];if(e.required&&m(i)){r.push({type:`variable`,id:e.id,variableKey:e.key,message:`请填写${e.label||e.key}`,code:`VARIABLE_REQUIRED`});return}m(i)||(e.type===`number`&&(typeof i!=`number`||!Number.isFinite(i))&&r.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是合法数字`,code:`VARIABLE_TYPE_INVALID`}),e.type===`checkbox`&&typeof i!=`boolean`&&r.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是合法复选值`,code:`VARIABLE_TYPE_INVALID`}),e.type===`date`&&!A(i)&&r.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是合法日期`,code:`VARIABLE_TYPE_INVALID`}),e.type===`image`&&!t.isSafeContractImageUrl(String(i))&&r.push({type:`security`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是安全的图片地址`,code:`IMAGE_URL_UNSAFE`}))}),r}function u(e,t,n){return n?l(e,t):d(e)}function d(e){if(!e)return[{type:`page`,id:`template`,message:`缺少可渲染的合同模板`,code:`TEMPLATE_MISSING`}];let t=[],i=Array.isArray(e.pages)?e.pages:[],a=Array.isArray(e.variables)?e.variables:[];(!Array.isArray(e.pages)||i.length===0)&&t.push({type:`page`,id:`template-pages`,message:`模板至少需要一个合法页面`,code:`TEMPLATE_PAGES_INVALID`}),Array.isArray(e.variables)||t.push({type:`variable`,id:`template-variables`,message:`模板变量列表格式无效`,code:`TEMPLATE_VARIABLES_INVALID`}),n.hasPositivePageSize(e.pageSize)||t.push({type:`page`,id:`template-page-size`,message:`模板默认页面尺寸无效,已回退为安全默认尺寸`,code:`TEMPLATE_PAGE_SIZE_INVALID`});let o=new Map;a.forEach((e,n)=>{if(!e||typeof e.key!=`string`||!e.key.trim()){t.push({type:`variable`,id:e?.id||`variable-${n}`,message:`第 ${n+1} 个变量缺少有效 key`,code:`VARIABLE_KEY_MISSING`});return}o.set(e.key,(o.get(e.key)??0)+1),r.isContractTemplateFieldType(e.type??`text`)||t.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是正文填写变量`,code:`VARIABLE_TYPE_UNSUPPORTED`})}),o.forEach((e,n)=>{e>1&&t.push({type:`variable`,id:n,variableKey:n,message:`变量 key ${n} 重复`,code:`VARIABLE_KEY_DUPLICATED`})});let s=new Set;return i.forEach((e,r)=>{if(!e||typeof e.id!=`string`||!e.id.trim()||typeof e.contentHtml!=`string`){t.push({type:`page`,id:e?.id||`page-${r}`,pageId:e?.id,message:`第 ${r+1} 页结构无效,已跳过渲染`,code:`PAGE_INVALID`});return}e.pageSize!==void 0&&!n.hasPositivePageSize(e.pageSize)&&t.push({type:`page`,id:`${e.id}-page-size`,pageId:e.id,message:`${e.title||`第 ${r+1} 页`}:页面尺寸无效,已回退为安全尺寸`,code:`PAGE_SIZE_INVALID`}),T(e.contentHtml).forEach(e=>s.add(e)),E(e.contentHtml).forEach((n,i)=>{t.push({type:`security`,id:`${e.id}-security-${i}`,pageId:e.id,message:`${e.title||`第 ${r+1} 页`}:${n}`,code:`HTML_UNSAFE`})})}),s.forEach(e=>{o.has(e)||t.push({type:`variable`,id:e,variableKey:e,message:`正文引用的变量 ${e} 缺少配置`,code:`VARIABLE_CONFIG_MISSING`})}),o.forEach((e,n)=>{s.has(n)||t.push({type:`variable`,id:n,variableKey:n,message:`变量 ${n} 缺少正文节点`,code:`VARIABLE_NODE_MISSING`})}),t}function f(e,t,r={}){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=n.hasPositivePageSize(e.pageSize)?e.pageSize:i.DEFAULT_PAGE_SIZE;return e.pages.flatMap(e=>{if(!e||typeof e.id!=`string`||!e.id.trim()||typeof e.contentHtml!=`string`)return[];let n=i.resolvePageSize(e.pageSize,s);return[{id:e.id,title:e.title||`未命名页面`,format:n.format??`Custom`,width:n.width,height:n.height,contentHtml:h(e.contentHtml,o,t,r)}]})}function p(e,t,r={}){return f(e,t,r).map(e=>`<section class="gd-contract-template-page" data-page-id="${n.escapeHtmlAttribute(e.id)}" data-page-format="${n.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,t,r,i){if(!e)return e;let a=w(e);if(n.canUseDomHtml()){let e=new DOMParser().parseFromString(a,`text/html`);return e.querySelectorAll(`[data-template-variable]`).forEach(e=>{g(e,t,r,i)}),e.body.innerHTML}return n.replaceTemplateVariableSpans(a,(e,a)=>{let o=n.getHtmlAttribute(a,`data-key`);return o?_(t.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(r,i,a,o){let s=r?.type??`text`,c=a??b(r),l=s===`image`&&!m(c)&&!t.isSafeContractImageUrl(String(c))?``:c,u=S(l),d=e.resolveTemplateVariablePresentation({type:s,width:r?.width,height:r?.height,placeholder:r?.placeholder??``,defaultValue:u,format:r?.format??``,precision:r?.precision,useGrouping:r?.useGrouping,checkedText:r?.checkedText??``,uncheckedText:r?.uncheckedText??``,multiline:r?.multiline,rows:r?.rows,lineHeight:r?.lineHeight,style:r?.style}),f=d.displayText||r?.placeholder||r?.label||i,p=[`class="${n.escapeHtmlAttribute([`gd-contract-template-renderer__control`,`gd-contract-template-renderer__preview-control`,...d.classes,o.activeKey===i?`is-active`:``,m(l)?`is-empty`:``].filter(Boolean).join(` `))}"`,`style="${n.escapeHtmlAttribute(d.styleText)}"`,`data-contract-render-wrapper="true"`,`data-contract-render-preview="true"`,`data-key="${n.escapeHtmlAttribute(i)}"`,`data-variable-type="${n.escapeHtmlAttribute(s)}"`,`aria-label="${n.escapeHtmlAttribute(r?.label||i)}"`,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>${n.escapeHtmlText(f)}</span>`:s===`image`&&!m(l)?`<span ${p}></span>`:`<span ${p}>${n.escapeHtmlText(f)}</span>`}function y(t,r,i,a){let o=t?.type??`text`,s=!!a.readonly,c=x(i??b(t)),l=e.resolveTemplateVariablePresentation({type:o,width:t?.width,height:t?.height,placeholder:t?.placeholder??``,defaultValue:s?c:``,format:t?.format??``,precision:t?.precision,useGrouping:t?.useGrouping,checkedText:t?.checkedText??``,uncheckedText:t?.uncheckedText??``,multiline:t?.multiline,rows:t?.rows,lineHeight:t?.lineHeight,style:t?.style}),u=a.disabled||s,d=[`data-contract-render-control="true"`,`data-key="${n.escapeHtmlAttribute(r)}"`,`data-variable-type="${n.escapeHtmlAttribute(o)}"`,`aria-label="${n.escapeHtmlAttribute(t?.label||r)}"`,u?`disabled`:``,s?`readonly`:``].filter(Boolean).join(` `),f=`style="${n.escapeHtmlAttribute(l.styleText)}"`,p=n.escapeHtmlAttribute([`gd-contract-template-renderer__control`,...l.classes].join(` `));return o===`checkbox`?`<label class="${p}" ${f} data-contract-render-wrapper="true" data-key="${n.escapeHtmlAttribute(r)}"><input type="checkbox" ${d} ${C(c)?`checked`:``}>${n.escapeHtmlText(t?.checkedText||t?.label||r)}</label>`:s?`<span class="${p}" ${f} data-contract-render-wrapper="true" data-key="${n.escapeHtmlAttribute(r)}">${n.escapeHtmlText(l.displayText||c)}</span>`:o===`number`?`<input class="${p}" ${f} type="number" ${d} value="${n.escapeHtmlAttribute(c)}" placeholder="${n.escapeHtmlAttribute(t?.placeholder||``)}">`:o===`date`?`<input class="${p}" ${f} type="date" ${d} value="${n.escapeHtmlAttribute(c)}" placeholder="${n.escapeHtmlAttribute(t?.placeholder||``)}">`:t?.multiline?`<textarea class="${p}" ${f} ${d} placeholder="${n.escapeHtmlAttribute(t.placeholder||``)}">${n.escapeHtmlText(c)}</textarea>`:`<input class="${p}" ${f} type="text" ${d} value="${n.escapeHtmlAttribute(c)}" placeholder="${n.escapeHtmlAttribute(t?.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(n.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 n.collectFromHtmlTags(e,o,e=>n.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
+ `,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
+ const e=require(`../../../../node_modules/@ant-design/icons-vue/es/icons/CalendarOutlined.cjs`),t=require(`../../../../node_modules/@ant-design/icons-vue/es/icons/CheckSquareOutlined.cjs`),n=require(`../../../../node_modules/@ant-design/icons-vue/es/icons/EditOutlined.cjs`),r=require(`../../../../node_modules/@ant-design/icons-vue/es/icons/FontSizeOutlined.cjs`),i=require(`../../../../node_modules/@ant-design/icons-vue/es/icons/NumberOutlined.cjs`),a=require(`../../../../node_modules/@ant-design/icons-vue/es/icons/PictureOutlined.cjs`),o=require(`../../../../node_modules/@ant-design/icons-vue/es/icons/SafetyCertificateOutlined.cjs`),s=require(`../types.cjs`);var c={text:r.default,date:e.default,number:i.default,image:a.default,checkbox:t.default},l={seal:o.default,signature:n.default,date:e.default};function u(e){return c[s.isContractTemplateFieldType(e)?e:`text`]}function d(e){return l[e]}exports.resolveFieldTypeIcon=u,exports.resolveSigningPlacementTypeIcon=d;
@@ -1 +1 @@
1
- require(`../constants.cjs`);function e(e){let n=String(e.type||`text`),r=Math.max(24,a(e.width,160)),o=Math.max(24,a(e.height,32)),s=e.style?.border??e.border??n===`image`,c=e.style?.underline??e.underline??(n!==`image`&&n!==`checkbox`),l=e.style?.color||e.color||`#1f2937`,u=e.style?.background||e.background||`transparent`,d=Math.max(10,a(e.style?.fontSize??e.fontSize,14)),f=e.style?.fontFamily||e.fontFamily||`Noto Serif SC, Source Han Serif SC, Songti SC, STSong, SimSun, serif`,p=e.style?.placeholderColor||e.placeholderColor||`#7a818b`,m=e.style?.lineColor||e.lineColor||`#565b66`,h=e.style?.textAlign||e.textAlign||`left`,g=e.style?.borderStyle||e.borderStyle||`solid`,_=e.style?.objectFit||e.objectFit||`contain`,v=!!e.multiline,y=Math.max(1,a(e.rows,3)),b=Math.max(18,a(e.lineHeight,28)),x=y*b,S=_===`fill`?`100% 100%`:_,C=h===`right`?`flex-end`:h===`center`?`center`:`flex-start`,w=String(e.defaultValue||``),T=t({type:n,defaultValue:w,placeholder:e.placeholder||``,format:e.format||``,precision:e.precision,useGrouping:e.useGrouping,checkedText:e.checkedText||``,uncheckedText:e.uncheckedText||``}),E=w.trim().length>0,D=!E&&T.trim().length>0,O=n===`checkbox`&&i(w),k=n===`image`&&E?`;--gd-contract-variable-image:url('${w.replaceAll(`'`,`%27`)}')`:``;return{type:n,width:r,height:o,border:s,underline:c,color:l,background:u,fontSize:d,fontFamily:f,placeholderColor:p,lineColor:m,textAlign:h,borderStyle:g,objectFit:_,displayText:T,hasDefaultValue:E,isPlaceholder:D,isChecked:O,classes:[`gd-contract-template-variable`,`is-${n}`,s?`has-border`:``,c?`has-underline`:``,v?`is-multiline`:``,D?`is-placeholder`:``,E?`has-value`:``,O?`is-checked`:``].filter(Boolean),styleText:`--gd-contract-variable-width:${r}px;--gd-contract-variable-height:${o}px;--gd-contract-variable-rows:${y};--gd-contract-variable-line-height:${b}px;--gd-contract-variable-multiline-height:${x}px;--gd-contract-variable-color:${l};--gd-contract-variable-background:${u};--gd-contract-variable-font-size:${d}px;--gd-contract-variable-font-family:${f};--gd-contract-variable-placeholder-color:${p};--gd-contract-variable-line-color:${m};--gd-contract-variable-text-align:${h};--gd-contract-variable-justify-content:${C};--gd-contract-variable-border-style:${g};--gd-contract-variable-object-fit:${S}${k}`}}function t(e){let t=e.type||`text`,a=e.defaultValue||``,o=e.placeholder||``;return t===`checkbox`?a?i(a)?e.checkedText||o:e.uncheckedText||o:o:a?t===`date`?n(a,e.format||``):t===`number`?r(a,{format:e.format||``,precision:e.precision,useGrouping:e.useGrouping}):t===`image`?o:a:o}function n(e,t){if(!t)return e;let n=/^(\d{4})[-/年](\d{1,2})[-/月](\d{1,2})/.exec(e);if(!n)return e;let[,r,i,a]=n;return t.replace(`YYYY`,r).replace(`MM`,i.padStart(2,`0`)).replace(`DD`,a.padStart(2,`0`))}function r(e,t){let n=Number(e);if(!Number.isFinite(n))return e;let r=n.toLocaleString(`zh-CN`,{useGrouping:t.useGrouping!==!1,minimumFractionDigits:t.precision,maximumFractionDigits:t.precision});return t.format===`currency`?`¥${r}`:r}function i(e){return[`1`,`true`,`yes`,`checked`,`是`,`已选`].includes(e.trim().toLowerCase())}function a(e,t){if(e==null||e===``)return t;let n=Number(e);return Number.isFinite(n)?n:t}exports.resolveTemplateVariablePresentation=e;
1
+ require(`../constants.cjs`);function e(e){let n=e.type===void 0?`text`:String(e.type),r=Math.max(24,a(e.width,160)),o=Math.max(24,a(e.height,32)),s=e.style?.border??e.border??n===`image`,c=e.style?.underline??e.underline??(n!==`image`&&n!==`checkbox`),l=e.style?.color||e.color||`#1f2937`,u=e.style?.background||e.background||`transparent`,d=Math.max(10,a(e.style?.fontSize??e.fontSize,14)),f=e.style?.fontFamily||e.fontFamily||`Noto Serif SC, Source Han Serif SC, Songti SC, STSong, SimSun, serif`,p=e.style?.placeholderColor||e.placeholderColor||`#7a818b`,m=e.style?.lineColor||e.lineColor||`#565b66`,h=e.style?.textAlign||e.textAlign||`left`,g=e.style?.borderStyle||e.borderStyle||`solid`,_=e.style?.objectFit||e.objectFit||`contain`,v=!!e.multiline,y=Math.max(1,a(e.rows,3)),b=Math.max(18,a(e.lineHeight,28)),x=y*b,S=_===`fill`?`100% 100%`:_,C=h===`right`?`flex-end`:h===`center`?`center`:`flex-start`,w=String(e.defaultValue||``),T=t({type:n,defaultValue:w,placeholder:e.placeholder||``,format:e.format||``,precision:e.precision,useGrouping:e.useGrouping,checkedText:e.checkedText||``,uncheckedText:e.uncheckedText||``}),E=w.trim().length>0,D=!E&&T.trim().length>0,O=n===`checkbox`&&i(w),k=n===`image`&&E?`;--gd-contract-variable-image:url('${w.replaceAll(`'`,`%27`)}')`:``;return{type:n,width:r,height:o,border:s,underline:c,color:l,background:u,fontSize:d,fontFamily:f,placeholderColor:p,lineColor:m,textAlign:h,borderStyle:g,objectFit:_,displayText:T,hasDefaultValue:E,isPlaceholder:D,isChecked:O,classes:[`gd-contract-template-variable`,`is-${n}`,s?`has-border`:``,c?`has-underline`:``,v?`is-multiline`:``,D?`is-placeholder`:``,E?`has-value`:``,O?`is-checked`:``].filter(Boolean),styleText:`--gd-contract-variable-width:${r}px;--gd-contract-variable-height:${o}px;--gd-contract-variable-rows:${y};--gd-contract-variable-line-height:${b}px;--gd-contract-variable-multiline-height:${x}px;--gd-contract-variable-color:${l};--gd-contract-variable-background:${u};--gd-contract-variable-font-size:${d}px;--gd-contract-variable-font-family:${f};--gd-contract-variable-placeholder-color:${p};--gd-contract-variable-line-color:${m};--gd-contract-variable-text-align:${h};--gd-contract-variable-justify-content:${C};--gd-contract-variable-border-style:${g};--gd-contract-variable-object-fit:${S}${k}`}}function t(e){let t=e.type||`text`,a=e.defaultValue||``,o=e.placeholder||``;return t===`checkbox`?a?i(a)?e.checkedText||o:e.uncheckedText||o:o:a?t===`date`?n(a,e.format||``):t===`number`?r(a,{format:e.format||``,precision:e.precision,useGrouping:e.useGrouping}):t===`image`?o:a:o}function n(e,t){if(!t)return e;let n=/^(\d{4})[-/年](\d{1,2})[-/月](\d{1,2})/.exec(e);if(!n)return e;let[,r,i,a]=n;return t.replace(`YYYY`,r).replace(`MM`,i.padStart(2,`0`)).replace(`DD`,a.padStart(2,`0`))}function r(e,t){let n=Number(e);if(!Number.isFinite(n))return e;let r=n.toLocaleString(`zh-CN`,{useGrouping:t.useGrouping!==!1,minimumFractionDigits:t.precision,maximumFractionDigits:t.precision});return t.format===`currency`?`¥${r}`:r}function i(e){return[`1`,`true`,`yes`,`checked`,`是`,`已选`].includes(e.trim().toLowerCase())}function a(e,t){if(e==null||e===``)return t;let n=Number(e);return Number.isFinite(n)?n:t}exports.resolveTemplateVariablePresentation=e;
@@ -0,0 +1,3 @@
1
+ const e=require(`../../../../_virtual/_rolldown/runtime.cjs`),t=require(`./image-url.cjs`);let n=require(`dompurify`);n=e.__toESM(n,1);var r=4*1024*1024,i=new Set([`image/png`,`image/jpeg`,`image/gif`,`image/webp`,`image/bmp`]),a=`(?:file:|cid:|mhtml:|wordml:|blob:)`,o=RegExp(`^${a}`,`i`);RegExp(`<(?:img|v:imagedata)\\b[^>]+\\bsrc\\s*=\\s*["']\\s*${a}`,`i`);var s=`p.div.span.br.hr.h1.h2.h3.h4.h5.h6.strong.b.em.i.u.s.strike.del.sup.sub.blockquote.pre.code.a.ul.ol.li.table.thead.tbody.tfoot.tr.th.td.img`.split(`.`),c=[`style`,`href`,`target`,`rel`,`start`,`type`,`rowspan`,`colspan`,`colwidth`,`src`,`alt`,`title`,`width`,`height`],l=new Set(c),u=new Set([`script`,`style`,`meta`,`link`,`base`,`object`,`embed`,`iframe`,`frame`,`frameset`,`form`,`input`,`button`,`textarea`,`select`,`option`,`audio`,`video`,`source`,`track`,`canvas`,`svg`,`math`,`xml`,`template`]),d=new Set([`font-weight`,`font-style`,`text-decoration`,`text-decoration-line`,`color`,`background-color`,`font-size`,`font-family`,`vertical-align`]),f=new Set([`font-weight`,`font-style`,`text-decoration`,`text-decoration-line`,`color`,`background-color`,`font-size`,`font-family`,`text-align`,`line-height`,`margin-top`,`margin-bottom`,`margin-left`,`padding-left`,`text-indent`,`direction`]),p=new Set([`font-weight`,`font-style`,`text-decoration`,`text-decoration-line`,`color`,`background-color`,`font-size`,`font-family`,`text-align`,`line-height`,`margin-top`,`margin-bottom`,`margin-left`,`padding-left`,`text-indent`,`direction`,`list-style-type`]),m=new Set([`width`,`max-width`,`min-width`,`table-layout`,`border-collapse`,`margin-left`,`margin-right`]),h=new Set(`font-weight.font-style.text-decoration.text-decoration-line.color.background-color.font-size.font-family.text-align.line-height.margin-top.margin-bottom.margin-left.text-indent.direction.width.height.min-width.vertical-align.padding.padding-top.padding-right.padding-bottom.padding-left.border.border-top.border-right.border-bottom.border-left`.split(`.`)),g=[/urn:schemas-microsoft-com:office/i,/xmlns:(?:o|w|m)\s*=/i,/class\s*=\s*["'][^"']*\bMso/i,/\bmso-[\w-]+\s*:/i,/\[if\s+(?:gte\s+)?mso/i,/Microsoft Word/i],ee=[/\bListContainerWrapper\b/i,/\bdata-listid\s*=/i,/\bdata-list-defn-props\s*=/i,/\bdata-ccp-props\s*=/i,/\bdata-contrast\s*=/i],te=[/\b(?:WPS Office|Kingsoft)\b/i,/\bwpsoffice\b/i,/\bwps-(?:office|list|paragraph)\b/i];function _(e){return/\bdata-pm-slice\s*=/i.test(e)?`internal`:te.some(t=>t.test(e))?`wps`:ee.some(t=>t.test(e))?`word-online`:g.some(t=>t.test(e))?/Microsoft Word|Mso|xmlns:w/i.test(e)?`word`:`office`:`generic`}function v(e){return e.replaceAll(`&`,`&amp;`).replaceAll(`<`,`&lt;`).replaceAll(`>`,`&gt;`).replaceAll(`"`,`&quot;`).replaceAll(`'`,`&#39;`).split(/\r?\n\r?\n/).map(e=>`<p>${e.replace(/\r?\n/g,`<br>`)||`<br>`}</p>`).join(``)}function ne(e){let t=/(?:^|;)\s*mso-list\s*:\s*(?:l(\d+)\s+)?level(\d+)(?:\s+lfo(\d+))?/i.exec(e);if(t)return{id:t[1]??`0`,level:Math.max(1,Math.min(9,Number.parseInt(t[2]??`1`,10)||1)),lfo:t[3]??`0`}}function y(e,t=`span`){let n=t.toLowerCase(),r=n===`td`||n===`th`?h:n===`table`?m:n===`ul`||n===`ol`?p:/^(?:p|div|h[1-6]|blockquote|li)$/.test(n)?f:d,i=w(e),a=i.find(([e])=>e.trim().toLowerCase()===`direction`)?.[1]?.trim().toLowerCase()===`rtl`?`rtl`:`ltr`,o=new Map;for(let[e,t]of i){let n=e.toLowerCase().trim(),i=t.trim().replace(/\s*!important\s*$/i,``);if(n===`mso-highlight`||n===`background`)n=`background-color`;else if(n===`mso-padding-alt`)n=`padding`;else if(n===`mso-border-alt`)n=`border`;else if(/^mso-border-(top|right|bottom|left)-alt$/.test(n))n=n.replace(/^mso-border-(top|right|bottom|left)-alt$/,`border-$1`);else if(n.startsWith(`mso-`))continue;r.has(n)&&(n===`text-align`&&/^(?:start|end)$/i.test(i)&&(i=T(i,a)),i=ae(n,i),i&&o.set(n===`text-decoration-line`?`text-decoration`:n,i))}return Array.from(o.entries()).map(([e,t])=>`${e}: ${t}`).join(`; `)}function b(e){if(!e||e.length>12582912*3)return[];let t=[],n=0,r=0;for(;r<e.length;){let i=e.indexOf(`{\\pict`,r);if(i<0)break;let a=$(e,i);if(a<0)break;let o=e.slice(i,a+1);r=i+6;let s=me(o),c=/\\pngblip\b/i.test(s)?`image/png`:/\\jpe?gblip\b/i.test(s)?`image/jpeg`:``;if(!c)continue;let l=s.replace(/^\{\\pict\b/i,``).replace(/\\[a-z]+-?\d*\s?/gi,``).replace(/\\[^a-z]/gi,``).replace(/[{}\s]/g,``);if(!l||l.length%2||/[^\da-f]/i.test(l))continue;let u=l.length/2;u>5242880||n+u>12582912||ge(l,c)&&(n+=u,t.push(`data:${c};base64,${he(l)}`))}return t}async function re(e,t){let n=[],r=0;for(let a of e){let e=a.type.toLowerCase();if(!i.has(e)||a.size<=0||a.size>5242880){n.push(Promise.resolve(null));continue}if(r+a.size>12582912){n.push(Promise.resolve(null));continue}r+=a.size,n.push((t?t(a):_e(a)).then(e=>e&&Y(e)?e:null).catch(()=>null))}return Promise.all(n)}function ie(e,t={}){let i=_(e);if(i===`internal`&&t.trustedInternal)return{html:e,source:i,converted:!1,fallback:!1,recoveredImageCount:0};let a=v(t.plainText??C(e));if(!e||e.length>r||typeof window>`u`||typeof DOMParser>`u`)return{html:a,source:i,converted:!0,fallback:!0,recoveredImageCount:0};try{let r=i!==`generic`&&i!==`internal`,o=x(e),l=new DOMParser().parseFromString(r?S(o):o,`text/html`),u=A(l),d=u.size>0||M(l);(r||d)&&j(l,u),r&&(N(l),P(l));let f=r?b(t.rtf??``):[],p=!!t.preferClipboardImages&&f.length===0,m=W(l,{office:r,replacementImages:f.length?f:t.clipboardImages??[],appendClipboardImages:f.length===0?t.clipboardImages??[]:[],preferClipboardImages:p}),h=(0,n.default)(window),g=String(h.sanitize(l.body.innerHTML,{ALLOWED_TAGS:s,ALLOWED_ATTR:c,ALLOW_DATA_ATTR:!1,ALLOW_ARIA_ATTR:!1,KEEP_CONTENT:!0,RETURN_TRUSTED_TYPE:!1}));return{html:g||a,source:i,converted:!0,fallback:!g,recoveredImageCount:m}}catch{return{html:a,source:i,converted:!0,fallback:!0,recoveredImageCount:0}}}function x(e){return/<!--StartFragment-->([\s\S]*?)<!--EndFragment-->/i.exec(e)?.[1]??e}function S(e){return e.replace(/<!--\s*\[if\s+!supportLists\]\s*>([\s\S]*?)<!\s*\[endif\]\s*-->/gi,`$1`).replace(/<!\s*\[if\s+!supportLists\]\s*>([\s\S]*?)<!\s*\[endif\]\s*>/gi,`$1`)}function C(e){return e.replace(/<br\s*\/?>/gi,`
2
+ `).replace(/<\/(?:p|div|li|h[1-6]|tr)>/gi,`
3
+ `).replace(/<[^>]*>/g,``).replace(/&nbsp;/gi,` `).replace(/&amp;/gi,`&`).replace(/&lt;/gi,`<`).replace(/&gt;/gi,`>`).trim()}function w(e){let t=[],n=0,r=``,i=0;for(let a=0;a<=e.length;a++){let o=e[a]??`;`;if(r){o===r&&e[a-1]!==`\\`&&(r=``);continue}if(o===`"`||o===`'`){r=o;continue}if(o===`(`)i++;else if(o===`)`)i=Math.max(0,i-1);else if(o===`;`&&i===0){let r=e.slice(n,a),i=r.indexOf(`:`);i>0&&t.push([r.slice(0,i),r.slice(i+1)]),n=a+1}}return t}function ae(e,t){let n=t.trim();if(!n||n.length>220||/(?:url\s*\(|expression\s*\(|javascript:|vbscript:|data:|@import|var\s*\()/i.test(n))return``;if(e===`font-size`)return E(n,{min:8,max:120,convertPt:!0,allowPercent:!0});if(e===`padding`)return k(n);if(/^(?:margin-(?:top|bottom|left|right)|text-indent)$/.test(e))return E(n,{min:-2e3,max:2e3,allowPercent:!0});if(/^(?:padding-(?:top|right|bottom|left)|width|height|min-width|max-width)$/.test(e))return E(n,{min:0,max:2400,allowPercent:!0});if(e===`line-height`){let e=Number(n);return Number.isFinite(e)&&e>=.5&&e<=4?String(e):E(n,{min:8,max:160,convertPt:!0,allowPercent:!0})}return e===`color`||e===`background-color`?O(n):e===`font-family`?/^[\w\s,'"\-\u00A0-\uFFFF]+$/.test(n)?n:``:e===`font-weight`?/^(?:normal|bold|bolder|lighter|[1-9]00)$/i.test(n)?n.toLowerCase():``:e===`font-style`?/^(?:normal|italic|oblique)$/i.test(n)?n.toLowerCase():``:e===`text-decoration`?/^(?:(?:none|underline|line-through|overline)\s*)+$/i.test(n)?n.toLowerCase():``:e===`text-align`?/^(?:left|right|center|justify|start|end)$/i.test(n)?T(n,`ltr`):``:e===`vertical-align`?/^(?:top|middle|bottom|baseline|sub|super)$/i.test(n)?n.toLowerCase():``:e===`direction`?/^(?:ltr|rtl)$/i.test(n)?n.toLowerCase():``:e===`list-style-type`?/^(?:disc|circle|square|decimal|lower-alpha|upper-alpha|lower-roman|upper-roman|cjk-ideographic)$/i.test(n)?n.toLowerCase():``:e===`table-layout`?/^(?:auto|fixed)$/i.test(n)?n.toLowerCase():``:e===`border-collapse`?/^(?:collapse|separate)$/i.test(n)?n.toLowerCase():``:/^border(?:-(?:top|right|bottom|left))?$/.test(e)?oe(n):``}function T(e,t){let n=e.toLowerCase();return n===`start`?t===`rtl`?`right`:`left`:n===`end`?t===`rtl`?`left`:`right`:n}function E(e,t){if(e===`0`)return`0`;let n=/^(-?(?:\d+(?:\.\d+)?|\.\d+))(px|pt|cm|mm|in|pc|em|rem|%)$/i.exec(e);if(!n||!t.allowPercent&&n[2]===`%`)return``;let r=Number(n[1]),i=n[2].toLowerCase();if(i===`%`&&(r<Math.max(t.min,-500)||r>Math.min(t.max,500)))return``;let a=i===`%`?r:r*D(i);return!Number.isFinite(r)||a<t.min||a>t.max?``:r===0?`0`:(t.convertPt&&i===`pt`&&(r=Math.round(r*4/3*100)/100,i=`px`),`${r}${i}`)}function D(e){return e===`pt`?4/3:e===`cm`?96/2.54:e===`mm`?96/25.4:e===`in`?96:e===`pc`||e===`em`||e===`rem`?16:1}function O(e){return/^(?:windowtext|buttontext|canvastext)$/i.test(e)?`black`:/^(?:window|buttonface|canvas)$/i.test(e)?`white`:/^(?:transparent|currentcolor|black|white|red|green|blue|gray|grey|yellow|orange|purple|navy|teal|maroon|silver|fuchsia|aqua|lime)$/i.test(e)||/^#[\da-f]{3,8}$/i.test(e)?e.toLowerCase():/^(?:rgb|rgba|hsl|hsla)\(\s*[-\d.%]+(?:\s*[,/]\s*[-\d.%]+){2,3}\s*\)$/i.test(e)?e:``}function oe(e){if(/^none$/i.test(e))return`none`;let t=/^((?:\d+(?:\.\d+)?|\.\d+)(?:px|pt))\s+(solid|dashed|dotted|double)\s+(.+)$/i.exec(e),n=/^(solid|dashed|dotted|double)\s+(.+?)\s+((?:\d+(?:\.\d+)?|\.\d+)(?:px|pt))$/i.exec(e),r=t?.[1]??n?.[3],i=t?.[2]??n?.[1],a=t?.[3]??n?.[2];if(!r||!i||!a)return``;let o=E(r,{min:0,max:24,convertPt:!0}),s=O(a.trim());return o&&s?`${o} ${i.toLowerCase()} ${s}`:``}function k(e){let t=e.trim().split(/\s+/);if(t.length<1||t.length>4)return``;let n=t.map(e=>E(e,{min:0,max:2400,allowPercent:!0}));return n.every(Boolean)?n.join(` `):``}function A(e){let t=new Map;for(let n of Array.from(e.querySelectorAll(`style`))){let e=n.textContent??``,r=/([^{}]+)\{([^{}]*)\}/g,i=r.exec(e);for(;i;){for(let e of i[1].split(`,`)){let n=/\.([_a-z][\w-]*)/i.exec(e)?.[1];n&&t.set(n,`${t.get(n)??``};${i[2]}`)}i=r.exec(e)}}return t}function j(e,t){for(let n of Array.from(e.body.querySelectorAll(`[class]`))){let e=Array.from(n.classList).map(e=>t.get(e)??``).filter(Boolean).join(`;`);e&&n.setAttribute(`style`,`${e};${n.getAttribute(`style`)??``}`)}}function M(e){return!!e.body.querySelector(`p[align],div[align],h1[align],h2[align],h3[align],h4[align],h5[align],h6[align],center,font`)}function N(e){for(let t of Array.from(e.body.querySelectorAll(`p,div`))){let n=t.className,r=t.getAttribute(`style`)??``,i=/(?:Mso)?Heading\s*([1-6])|MsoHeading([1-6])/i.exec(`${n};${r}`),a=i?Number(i[1]??i[2]):/MsoTitle/i.test(n)?1:/MsoSubtitle/i.test(n)?2:0;a&&U(e,t,`h${a}`)}}function P(e){let t=[e.body,...Array.from(e.body.querySelectorAll(`td,th,div,blockquote`))];for(let n of t.reverse())F(e,n)}function F(e,t){let n=Array.from(t.childNodes),r=[];for(let i of n){if(i.nodeType===3&&!(i.textContent??``).trim())continue;if(i.nodeType!==1){r=[];continue}let n=i,a=I(n);if(!a){r=[];continue}let o=Math.min(a.level,r.length+1);o<=r.length&&(r=r.slice(0,o));let s=r[o-1];if(!s||s.kind!==a.kind||a.type!=null&&s.type!==a.type||s.session!==a.session||a.kind===`ol`&&a.start!=null&&s.expectedStart!=null&&a.start!==s.expectedStart){let i=e.createElement(a.kind);if(a.kind===`ol`&&a.start&&a.start!==1&&i.setAttribute(`start`,String(a.start)),a.kind===`ol`&&a.type&&i.setAttribute(`type`,a.type),a.listStyleType&&i.setAttribute(`style`,`list-style-type: ${a.listStyleType}`),o===1)t.insertBefore(i,n);else{let e=r[o-2];e?.lastItem?e.lastItem.appendChild(i):(t.insertBefore(i,n),r=[])}s={...a,level:o,list:i},r[o-1]=s}let c=e.createElement(`li`);for(B(n);n.firstChild;)c.appendChild(n.firstChild);s.list.appendChild(c),s.lastItem=c,s.expectedStart=a.kind===`ol`?(a.start??s.expectedStart??1)+1:void 0,n.remove()}}function I(e){if(!/^(?:p|div)$/i.test(e.tagName))return;let t=ne(e.getAttribute(`style`)??``);if(!t)return;let n=V(e),r=n.text,i=n.font;if(/[•·●○■□◆◇▪▫]/.test(r)||/(?:Symbol|Wingdings|Webdings)/i.test(i)){let e=/[○◇▫]/.test(r)?`circle`:/[■□▪]/.test(r)?`square`:`disc`;return{...t,session:`${t.id}:${t.lfo}`,kind:`ul`,listStyleType:e}}let a=L(r);return{...t,session:`${t.id}:${t.lfo}`,kind:`ol`,type:a?.type,listStyleType:a?.listStyleType??`decimal`,start:a?.start}}function L(e){let t=e.trim().replace(/^[((]/,``).replace(/[))\..、]\s*$/,``).trim();if(/^\d+$/.test(t))return{start:Math.max(1,Number(t)),type:`1`,listStyleType:`decimal`};if(/^[ivxlcdm]+$/i.test(t)){let e=t===t.toUpperCase();return{start:z(t),type:e?`I`:`i`,listStyleType:e?`upper-roman`:`lower-roman`}}if(/^[a-z]$/i.test(t)){let e=t===t.toUpperCase();return{start:t.toLowerCase().charCodeAt(0)-96,type:e?`A`:`a`,listStyleType:e?`upper-alpha`:`lower-alpha`}}if(/^[零〇一二三四五六七八九十百千万]+$/.test(t))return{start:R(t),type:void 0,listStyleType:`cjk-ideographic`}}function R(e){let t={零:0,〇:0,一:1,二:2,三:3,四:4,五:5,六:6,七:7,八:8,九:9},n={十:10,百:100,千:1e3,万:1e4},r=0,i=0,a=0;for(let o of e){if(o in t){a=t[o];continue}let e=n[o];e&&(e===1e4?(i=(i+a||1)*e,r+=i,i=0,a=0):(i+=(a||1)*e,a=0))}return Math.max(1,r+i+a)}function z(e){let t={i:1,v:5,x:10,l:50,c:100,d:500,m:1e3},n=0,r=0;for(let i of e.toLowerCase().split(``).reverse()){let e=t[i]??0;n+=e<r?-e:e,r=Math.max(r,e)}return Math.max(1,n)}function B(e){V(e).element?.remove(),e.firstChild?.nodeType===3&&(e.firstChild.textContent=e.firstChild.textContent?.replace(/^[\s\u00A0]+/,``)??``)}function V(e){let t=Array.from(e.querySelectorAll(`span`)).find(e=>/mso-list\s*:\s*ignore/i.test(e.getAttribute(`style`)??``));if(t)return{element:t,text:H(t.textContent??``),font:t.style.fontFamily};let n=e.querySelector(`span`),r=H(n?.textContent??``),i=n?.style.fontFamily??``;return/[•·●○■□◆◇▪▫]/.test(r)||/(?:Symbol|Wingdings|Webdings)/i.test(i)||/^(?:\d+|[a-z]|[ivxlcdm]+)[.)、]$/i.test(r)||/^[((]?[零〇一二三四五六七八九十百千万]+[))\..、]$/.test(r)?{element:n??void 0,text:r,font:i}:{text:``,font:``}}function H(e){return e.replace(/[\u00A0\s]+/g,` `).trim()}function U(e,t,n){let r=e.createElement(n);for(let e of Array.from(t.attributes))r.setAttribute(e.name,e.value);for(;t.firstChild;)r.appendChild(t.firstChild);return t.replaceWith(r),r}function W(e,t){Q(e.body),ce(e),le(e),se(e);let n=0,r=0,i=0;for(let a of Array.from(e.body.querySelectorAll(`*`))){let o=a.tagName.toLowerCase();if(u.has(o)){a.remove();continue}if(q(a),o===`img`){let e=n<t.replacementImages.length,o=ue(a,t.replacementImages[n],e,t.preferClipboardImages===!0);if(o.consumedReplacement&&n++,o.usedReplacement&&r++,!o.kept)continue;i++}else o===`a`&&de(a);let s=y(a.getAttribute(`style`)??``,o);s?a.setAttribute(`style`,s):a.removeAttribute(`style`),K(e,a),G(e,a),pe(a);for(let e of Array.from(a.attributes)){let t=e.name.toLowerCase();(!l.has(t)||t.startsWith(`on`)||t.startsWith(`data-`)||t===`class`||t===`id`||t===`lang`||t.includes(`:`))&&a.removeAttribute(e.name)}let c=a.style.verticalAlign;(c===`super`||c===`sub`)&&o===`span`&&U(e,a,c===`super`?`sup`:`sub`)}if(!i&&t.appendClipboardImages.length)for(let n of t.appendClipboardImages){if(!n||!Y(n))continue;let t=e.createElement(`p`),i=e.createElement(`img`);i.setAttribute(`src`,n),i.setAttribute(`alt`,``),t.appendChild(i),e.body.appendChild(t),r++}return r}function se(e){for(let t of Array.from(e.body.querySelectorAll(`font`)))q(t),U(e,t,`span`);for(let t of Array.from(e.body.querySelectorAll(`center`)))t.setAttribute(`style`,`${t.getAttribute(`style`)??``};text-align:center`),U(e,t,`div`)}function G(e,t){let n=t.tagName.toLowerCase();if(!/^(?:b|strong|em|i|u|s|strike|del|sup|sub|a)$/.test(n))return;let r=w(t.getAttribute(`style`)??``),i=[],a=[];for(let[e,t]of r){let n=e.trim().toLowerCase(),r=t.trim();(n===`font-family`||n===`font-size`||n===`color`||n===`background-color`?i:a).push(`${n}: ${r}`)}if(!i.length)return;a.length?t.setAttribute(`style`,a.join(`; `)):t.removeAttribute(`style`);let o=e.createElement(`span`);for(o.setAttribute(`style`,i.join(`; `));t.firstChild;)o.appendChild(t.firstChild);t.appendChild(o)}function K(e,t){let n=t.tagName.toLowerCase();if(!/^(?:p|div|h[1-6]|blockquote|li|td|th)$/.test(n))return;let r=w(t.getAttribute(`style`)??``),i=[],a=[];for(let[e,t]of r){let r=e.trim().toLowerCase(),o=t.trim();(d.has(r)&&r!==`vertical-align`&&!((n===`td`||n===`th`)&&r===`background-color`)?i:a).push(`${r}: ${o}`)}if(!i.length)return;a.length?t.setAttribute(`style`,a.join(`; `)):t.removeAttribute(`style`);let o=e.createElement(`span`);for(o.setAttribute(`style`,i.join(`; `));t.firstChild;)o.appendChild(t.firstChild);t.appendChild(o)}function ce(e){for(let t of Array.from(e.body.querySelectorAll(`*`))){if(t.tagName.toLowerCase()!==`v:imagedata`)continue;let n=e.createElement(`img`);n.setAttribute(`src`,t.getAttribute(`src`)??t.getAttribute(`o:href`)??``),n.setAttribute(`alt`,t.getAttribute(`o:title`)??t.getAttribute(`title`)??``);let r=t.parentElement?.tagName.toLowerCase()===`v:shape`?t.parentElement:void 0;if(r){let e=X(r.style.width),t=X(r.style.height);e&&n.setAttribute(`width`,e),t&&n.setAttribute(`height`,t),r.replaceWith(n)}else t.replaceWith(n)}}function le(e){for(let t of Array.from(e.body.querySelectorAll(`*`)).reverse()){let e=t.tagName.toLowerCase();if(e.includes(`:`)){if(/^(?:v|m):/.test(e)){t.remove();continue}t.replaceWith(...Array.from(t.childNodes))}}}function q(e){let t=e.tagName.toLowerCase(),n=[e.getAttribute(`style`)??``],r=(e,t)=>{t&&n.push(`${e}:${t}`)};t===`font`&&(r(`font-family`,e.getAttribute(`face`)),r(`color`,e.getAttribute(`color`))),(t===`table`||t===`td`||t===`th`)&&(r(`width`,J(e.getAttribute(`width`))),r(`height`,J(e.getAttribute(`height`))),r(`background-color`,e.getAttribute(`bgcolor`)),r(`text-align`,e.getAttribute(`align`)),r(`vertical-align`,e.getAttribute(`valign`))),/^(?:p|div|h[1-6])$/.test(t)&&r(`text-align`,e.getAttribute(`align`)),e.setAttribute(`style`,n.join(`;`))}function J(e){return e?/^\d+(?:\.\d+)?$/.test(e.trim())?`${e.trim()}px`:e.trim():``}function ue(e,t,n=!1,r=!1){let i=e.getAttribute(`src`)??``,a=o.test(i.trim()),s=(r||a)&&n,c=!!(t&&Y(t)),l=s&&c,u=l&&t?t:i;if(o.test(u.trim())||!Y(u))return e.remove(),{kept:!1,usedReplacement:!1,consumedReplacement:s};e.setAttribute(`src`,u.trim());let d=X(e.getAttribute(`width`)??e.style.width),f=X(e.getAttribute(`height`)??e.style.height);return d?e.setAttribute(`width`,d):e.removeAttribute(`width`),f?e.setAttribute(`height`,f):e.removeAttribute(`height`),e.setAttribute(`alt`,(e.getAttribute(`alt`)??``).slice(0,500)),e.hasAttribute(`title`)&&e.setAttribute(`title`,(e.getAttribute(`title`)??``).slice(0,500)),{kept:!0,usedReplacement:l,consumedReplacement:s}}function Y(e){let n=e.trim();return!!n&&t.isSafeContractImageUrl(n)}function X(e){let t=/^(\d+(?:\.\d+)?)(px|pt|cm|mm|in|pc)?$/i.exec((e??``).trim());if(!t)return``;let n=Number(t[1]),r=D((t[2]??`px`).toLowerCase()),i=Math.round(n*r);return i>=1&&i<=2400?String(i):``}function de(e){let t=(e.getAttribute(`href`)??``).trim();if(!fe(t)){e.removeAttribute(`href`),e.removeAttribute(`target`),e.removeAttribute(`rel`);return}e.setAttribute(`href`,t),e.getAttribute(`target`)===`_blank`?e.setAttribute(`rel`,`noopener noreferrer`):(e.removeAttribute(`target`),e.removeAttribute(`rel`))}function fe(e){if(!e)return!1;let t=e.replace(/[\u0000-\u0020\u007F]+/g,``);return/^(?:javascript|vbscript|data|file):/i.test(t)?!1:/^(?:https?:|mailto:|tel:|#|\/|\.\/|\.\.\/)/i.test(t)||!/^[a-z][a-z\d+.-]*:/i.test(t)}function pe(e){let t=e.tagName.toLowerCase();if((t===`td`||t===`th`)&&(Z(e,`rowspan`,1,100),Z(e,`colspan`,1,100)),t===`td`||t===`th`){let t=(e.getAttribute(`colwidth`)??``).split(`,`).map(e=>Number.parseInt(e.trim(),10)).filter(e=>Number.isFinite(e)&&e>=1&&e<=2400).slice(0,100);t.length?e.setAttribute(`colwidth`,t.join(`,`)):e.removeAttribute(`colwidth`)}if(t===`ol`){Z(e,`start`,1,1e5);let t=e.getAttribute(`type`);(!t||!/^(?:1|a|A|i|I)$/.test(t))&&e.removeAttribute(`type`)}}function Z(e,t,n,r){let i=Number.parseInt(e.getAttribute(t)??``,10);if(!Number.isFinite(i)){e.removeAttribute(t);return}e.setAttribute(t,String(Math.max(n,Math.min(r,i))))}function Q(e){for(let t of Array.from(e.childNodes))t.nodeType===8?t.remove():Q(t)}function $(e,t){let n=0;for(let r=t;r<e.length;r++){if(e[r]===`\\`){r++;continue}if(e[r]===`{`)n++;else if(e[r]===`}`&&--n===0)return r}return-1}function me(e){let t=0,n=``;for(let r=0;r<e.length;r++){let i=e[r];if(i===`\\`){t<=1&&(n+=i);let a=e[r+1];a&&t<=1&&(n+=a),r++;continue}if(i===`{`){t++,t===1&&(n+=i);continue}if(i===`}`){t===1&&(n+=i),t=Math.max(0,t-1);continue}t<=1&&(n+=i)}return n}function he(e){let t=[],n=new Uint8Array(e.length/2);for(let t=0;t<n.length;t++)n[t]=Number.parseInt(e.slice(t*2,t*2+2),16);for(let e=0;e<n.length;e+=32768)t.push(String.fromCharCode(...Array.from(n.subarray(e,e+32768))));return btoa(t.join(``))}function ge(e,t){return t===`image/png`?e.toLowerCase().startsWith(`89504e470d0a1a0a`):t===`image/jpeg`?e.toLowerCase().startsWith(`ffd8ff`):!1}function _e(e){return new Promise((t,n)=>{let r=new FileReader;r.onerror=()=>n(r.error??Error(`clipboard image read failed`)),r.onload=()=>t(typeof r.result==`string`?r.result:``),r.readAsDataURL(e)})}exports.detectClipboardHtmlSource=_,exports.extractRtfImageDataUrls=b,exports.normalizeOfficeStyle=y,exports.normalizeWordClipboardHtml=ie,exports.plainTextToSafeHtml=v,exports.readClipboardImageFiles=re;