@verdocs/web-sdk 6.13.2 → 6.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/{utils-BtmSHO0F.js → utils-D97WoGBX.js} +12 -2
  3. package/dist/cjs/utils-D97WoGBX.js.map +1 -0
  4. package/dist/cjs/verdocs-adopt-signature-dialog_7.cjs.entry.js +3 -3
  5. package/dist/cjs/verdocs-adopt-signature-dialog_7.cjs.entry.js.map +1 -1
  6. package/dist/cjs/verdocs-checkbox_5.cjs.entry.js +56 -11
  7. package/dist/cjs/verdocs-checkbox_5.cjs.entry.js.map +1 -1
  8. package/dist/cjs/verdocs-contact-picker.cjs.entry.js +4 -4
  9. package/dist/cjs/verdocs-contact-picker.cjs.entry.js.map +1 -1
  10. package/dist/cjs/verdocs-download-dialog_4.cjs.entry.js +1 -1
  11. package/dist/cjs/verdocs-envelope-sidebar.cjs.entry.js +1 -1
  12. package/dist/cjs/verdocs-envelope-sidebar.cjs.entry.js.map +1 -1
  13. package/dist/cjs/verdocs-envelopes-list.cjs.entry.js +1 -1
  14. package/dist/cjs/verdocs-field-attachment_11.cjs.entry.js +89 -9
  15. package/dist/cjs/verdocs-field-attachment_11.cjs.entry.js.map +1 -1
  16. package/dist/cjs/verdocs-pagination_2.cjs.entry.js +1 -1
  17. package/dist/cjs/verdocs-preview_6.cjs.entry.js +291 -50
  18. package/dist/cjs/verdocs-preview_6.cjs.entry.js.map +1 -1
  19. package/dist/cjs/verdocs-sign.cjs.entry.js +37 -6
  20. package/dist/cjs/verdocs-sign.cjs.entry.js.map +1 -1
  21. package/dist/cjs/verdocs-signing-progress.cjs.entry.js +1 -1
  22. package/dist/cjs/verdocs-template-document-page_2.cjs.entry.js +1 -1
  23. package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
  24. package/dist/collection/components/controls/verdocs-checkbox/verdocs-checkbox.css +18 -1
  25. package/dist/collection/components/dialogs/verdocs-adopt-signature-dialog/verdocs-adopt-signature-dialog.js +3 -3
  26. package/dist/collection/components/dialogs/verdocs-adopt-signature-dialog/verdocs-adopt-signature-dialog.js.map +1 -1
  27. package/dist/collection/components/embeds/verdocs-send/verdocs-send.css +29 -0
  28. package/dist/collection/components/embeds/verdocs-send/verdocs-send.js +7 -11
  29. package/dist/collection/components/embeds/verdocs-send/verdocs-send.js.map +1 -1
  30. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js +38 -5
  31. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js.map +1 -1
  32. package/dist/collection/components/envelopes/verdocs-contact-picker/verdocs-contact-picker.js +3 -3
  33. package/dist/collection/components/envelopes/verdocs-contact-picker/verdocs-contact-picker.js.map +1 -1
  34. package/dist/collection/components/envelopes/verdocs-envelope-sidebar/verdocs-envelope-sidebar.js +1 -1
  35. package/dist/collection/components/envelopes/verdocs-envelope-sidebar/verdocs-envelope-sidebar.js.map +1 -1
  36. package/dist/collection/components/envelopes/verdocs-envelopes-list/verdocs-envelopes-list.js +2 -2
  37. package/dist/collection/components/envelopes/verdocs-status-indicator/verdocs-status-indicator.js +1 -1
  38. package/dist/collection/components/fields/verdocs-field-checkbox/verdocs-field-checkbox.css +22 -0
  39. package/dist/collection/components/fields/verdocs-field-checkbox/verdocs-field-checkbox.js +14 -1
  40. package/dist/collection/components/fields/verdocs-field-checkbox/verdocs-field-checkbox.js.map +1 -1
  41. package/dist/collection/components/fields/verdocs-field-date/verdocs-field-date.js +1 -2
  42. package/dist/collection/components/fields/verdocs-field-date/verdocs-field-date.js.map +1 -1
  43. package/dist/collection/components/fields/verdocs-field-initial/verdocs-field-initial.js +1 -1
  44. package/dist/collection/components/fields/verdocs-field-initial/verdocs-field-initial.js.map +1 -1
  45. package/dist/collection/components/fields/verdocs-field-radio/verdocs-field-radio.css +29 -2
  46. package/dist/collection/components/fields/verdocs-field-radio/verdocs-field-radio.js +14 -1
  47. package/dist/collection/components/fields/verdocs-field-radio/verdocs-field-radio.js.map +1 -1
  48. package/dist/collection/components/fields/verdocs-field-signature/verdocs-field-signature.js +1 -1
  49. package/dist/collection/components/fields/verdocs-field-signature/verdocs-field-signature.js.map +1 -1
  50. package/dist/collection/components/fields/verdocs-field-textbox/verdocs-field-textbox.js +1 -1
  51. package/dist/collection/components/fields/verdocs-field-textbox/verdocs-field-textbox.js.map +1 -1
  52. package/dist/collection/components/templates/verdocs-template-field-properties/verdocs-template-field-properties.css +5 -0
  53. package/dist/collection/components/templates/verdocs-template-field-properties/verdocs-template-field-properties.js +55 -9
  54. package/dist/collection/components/templates/verdocs-template-field-properties/verdocs-template-field-properties.js.map +1 -1
  55. package/dist/collection/components/templates/verdocs-template-fields/verdocs-template-fields.css +4 -0
  56. package/dist/collection/components/templates/verdocs-template-fields/verdocs-template-fields.js +281 -36
  57. package/dist/collection/components/templates/verdocs-template-fields/verdocs-template-fields.js.map +1 -1
  58. package/dist/collection/utils/ToggleFields.js +61 -0
  59. package/dist/collection/utils/ToggleFields.js.map +1 -0
  60. package/dist/collection/utils/utils.js +9 -0
  61. package/dist/collection/utils/utils.js.map +1 -1
  62. package/dist/components/{p-CEkRxfcu.js → p-58qb6gkU.js} +2 -2
  63. package/dist/components/{p-BKLlc2r0.js → p-5M_R8La0.js} +2 -2
  64. package/dist/components/{p-D-X-Zcsr.js → p-BIi4c9Gz.js} +2 -2
  65. package/dist/components/p-BLsFdjFq.js +2 -0
  66. package/dist/components/p-BLsFdjFq.js.map +1 -0
  67. package/dist/components/{p-CQzPkAVQ.js → p-BPcxbmXF.js} +2 -2
  68. package/dist/components/{p-CQzPkAVQ.js.map → p-BPcxbmXF.js.map} +1 -1
  69. package/dist/components/{p-DTG2X1A2.js → p-BeDDvLcN.js} +2 -2
  70. package/dist/components/p-ByEpps_M.js +2 -0
  71. package/dist/components/p-ByEpps_M.js.map +1 -0
  72. package/dist/components/{p-D0MFs2Dv.js → p-C8ZliaLz.js} +2 -2
  73. package/dist/components/{p-D0MFs2Dv.js.map → p-C8ZliaLz.js.map} +1 -1
  74. package/dist/components/{p-B4tpmyon.js → p-CAJJndLX.js} +2 -2
  75. package/dist/components/{p-ByrpRZ3E.js → p-CaFhF-9s.js} +2 -2
  76. package/dist/components/p-CaFhF-9s.js.map +1 -0
  77. package/dist/components/{p-DscL0SIM.js → p-D56nBgHQ.js} +2 -2
  78. package/dist/components/{p-CFacV7mg.js → p-DMaRtkQF.js} +2 -2
  79. package/dist/components/{p-CFacV7mg.js.map → p-DMaRtkQF.js.map} +1 -1
  80. package/dist/components/p-DPF2i0o5.js +2 -0
  81. package/dist/components/p-DPF2i0o5.js.map +1 -0
  82. package/dist/components/{p-CEcG_ay-.js → p-DReW8CSB.js} +2 -2
  83. package/dist/components/{p-BhG0HGg6.js → p-DX713VO2.js} +2 -2
  84. package/dist/components/p-DbWcp3S8.js +2 -0
  85. package/dist/components/p-DbWcp3S8.js.map +1 -0
  86. package/dist/components/p-DvxzLwaB.js +2 -0
  87. package/dist/components/p-DvxzLwaB.js.map +1 -0
  88. package/dist/components/p-NtvxlYzY.js +2 -0
  89. package/dist/components/p-NtvxlYzY.js.map +1 -0
  90. package/dist/components/{p-Cij_2Ym2.js → p-Vs72fn43.js} +2 -2
  91. package/dist/components/p-Vs72fn43.js.map +1 -0
  92. package/dist/components/{p-9kEZy9MP.js → p-YCI5JKXK.js} +2 -2
  93. package/dist/components/{p-B1AE2j97.js → p-h3swu3rA.js} +2 -2
  94. package/dist/components/{p-B1AE2j97.js.map → p-h3swu3rA.js.map} +1 -1
  95. package/dist/components/{p-kHTZa3Ev.js → p-hwu-GrDS.js} +2 -2
  96. package/dist/components/p-qLNetL5t.js +2 -0
  97. package/dist/components/p-qLNetL5t.js.map +1 -0
  98. package/dist/components/{p-06em1_P-.js → p-vuCjHk-M.js} +2 -2
  99. package/dist/components/p-zYtapVJ0.js +2 -0
  100. package/dist/components/p-zYtapVJ0.js.map +1 -0
  101. package/dist/components/verdocs-adopt-signature-dialog.js +1 -1
  102. package/dist/components/verdocs-build.js +1 -1
  103. package/dist/components/verdocs-checkbox.js +1 -1
  104. package/dist/components/verdocs-contact-picker.js +1 -1
  105. package/dist/components/verdocs-disclosure-dialog.js +1 -1
  106. package/dist/components/verdocs-envelope-document-page.js +1 -1
  107. package/dist/components/verdocs-envelope-sidebar.js +1 -1
  108. package/dist/components/verdocs-envelope-sidebar.js.map +1 -1
  109. package/dist/components/verdocs-envelopes-list.js +1 -1
  110. package/dist/components/verdocs-field-attachment.js +1 -1
  111. package/dist/components/verdocs-field-checkbox.js +1 -1
  112. package/dist/components/verdocs-field-date.js +1 -1
  113. package/dist/components/verdocs-field-dropdown.js +1 -1
  114. package/dist/components/verdocs-field-initial.js +1 -1
  115. package/dist/components/verdocs-field-payment.js +1 -1
  116. package/dist/components/verdocs-field-radio.js +1 -1
  117. package/dist/components/verdocs-field-signature.js +1 -1
  118. package/dist/components/verdocs-field-textarea.js +1 -1
  119. package/dist/components/verdocs-field-textbox.js +1 -1
  120. package/dist/components/verdocs-field-timestamp.js +1 -1
  121. package/dist/components/verdocs-kba-dialog.js +1 -1
  122. package/dist/components/verdocs-multiselect.js +1 -1
  123. package/dist/components/verdocs-preview.js +1 -1
  124. package/dist/components/verdocs-quick-filter.js +1 -1
  125. package/dist/components/verdocs-send.js +1 -1
  126. package/dist/components/verdocs-sign.js +1 -1
  127. package/dist/components/verdocs-sign.js.map +1 -1
  128. package/dist/components/verdocs-signing-progress.js +1 -1
  129. package/dist/components/verdocs-template-document-page.js +1 -1
  130. package/dist/components/verdocs-template-field-properties.js +1 -1
  131. package/dist/components/verdocs-template-fields.js +1 -1
  132. package/dist/components/verdocs-templates-list.js +1 -1
  133. package/dist/components/verdocs-view.js +1 -1
  134. package/dist/esm/loader.js +1 -1
  135. package/dist/esm/{utils-Bh3zb1Xs.js → utils-T8dqWH7y.js} +12 -3
  136. package/dist/esm/utils-T8dqWH7y.js.map +1 -0
  137. package/dist/esm/verdocs-adopt-signature-dialog_7.entry.js +3 -3
  138. package/dist/esm/verdocs-adopt-signature-dialog_7.entry.js.map +1 -1
  139. package/dist/esm/verdocs-checkbox_5.entry.js +56 -11
  140. package/dist/esm/verdocs-checkbox_5.entry.js.map +1 -1
  141. package/dist/esm/verdocs-contact-picker.entry.js +4 -4
  142. package/dist/esm/verdocs-contact-picker.entry.js.map +1 -1
  143. package/dist/esm/verdocs-download-dialog_4.entry.js +1 -1
  144. package/dist/esm/verdocs-envelope-sidebar.entry.js +1 -1
  145. package/dist/esm/verdocs-envelope-sidebar.entry.js.map +1 -1
  146. package/dist/esm/verdocs-envelopes-list.entry.js +1 -1
  147. package/dist/esm/verdocs-field-attachment_11.entry.js +89 -9
  148. package/dist/esm/verdocs-field-attachment_11.entry.js.map +1 -1
  149. package/dist/esm/verdocs-pagination_2.entry.js +1 -1
  150. package/dist/esm/verdocs-preview_6.entry.js +291 -50
  151. package/dist/esm/verdocs-preview_6.entry.js.map +1 -1
  152. package/dist/esm/verdocs-sign.entry.js +37 -6
  153. package/dist/esm/verdocs-sign.entry.js.map +1 -1
  154. package/dist/esm/verdocs-signing-progress.entry.js +1 -1
  155. package/dist/esm/verdocs-template-document-page_2.entry.js +1 -1
  156. package/dist/esm/verdocs-web-sdk.js +1 -1
  157. package/dist/esm-es5/loader.js +1 -1
  158. package/dist/esm-es5/utils-T8dqWH7y.js +2 -0
  159. package/dist/esm-es5/utils-T8dqWH7y.js.map +1 -0
  160. package/dist/esm-es5/verdocs-adopt-signature-dialog_7.entry.js +1 -1
  161. package/dist/esm-es5/verdocs-adopt-signature-dialog_7.entry.js.map +1 -1
  162. package/dist/esm-es5/verdocs-checkbox_5.entry.js +1 -1
  163. package/dist/esm-es5/verdocs-checkbox_5.entry.js.map +1 -1
  164. package/dist/esm-es5/verdocs-contact-picker.entry.js +1 -1
  165. package/dist/esm-es5/verdocs-contact-picker.entry.js.map +1 -1
  166. package/dist/esm-es5/verdocs-download-dialog_4.entry.js +1 -1
  167. package/dist/esm-es5/verdocs-envelope-sidebar.entry.js +1 -1
  168. package/dist/esm-es5/verdocs-envelope-sidebar.entry.js.map +1 -1
  169. package/dist/esm-es5/verdocs-envelopes-list.entry.js +1 -1
  170. package/dist/esm-es5/verdocs-field-attachment_11.entry.js +1 -1
  171. package/dist/esm-es5/verdocs-field-attachment_11.entry.js.map +1 -1
  172. package/dist/esm-es5/verdocs-pagination_2.entry.js +1 -1
  173. package/dist/esm-es5/verdocs-preview_6.entry.js +2 -2
  174. package/dist/esm-es5/verdocs-preview_6.entry.js.map +1 -1
  175. package/dist/esm-es5/verdocs-sign.entry.js +1 -1
  176. package/dist/esm-es5/verdocs-sign.entry.js.map +1 -1
  177. package/dist/esm-es5/verdocs-signing-progress.entry.js +1 -1
  178. package/dist/esm-es5/verdocs-template-document-page_2.entry.js +1 -1
  179. package/dist/esm-es5/verdocs-web-sdk.js +1 -1
  180. package/dist/types/components/embeds/verdocs-send/verdocs-send.d.ts +0 -1
  181. package/dist/types/components/embeds/verdocs-sign/verdocs-sign.d.ts +3 -0
  182. package/dist/types/components/fields/verdocs-field-checkbox/verdocs-field-checkbox.d.ts +1 -0
  183. package/dist/types/components/fields/verdocs-field-date/verdocs-field-date.d.ts +1 -1
  184. package/dist/types/components/fields/verdocs-field-radio/verdocs-field-radio.d.ts +1 -0
  185. package/dist/types/components/templates/verdocs-template-field-properties/verdocs-template-field-properties.d.ts +1 -0
  186. package/dist/types/components/templates/verdocs-template-fields/verdocs-template-fields.d.ts +50 -3
  187. package/dist/types/utils/ToggleFields.d.ts +12 -0
  188. package/dist/types/utils/utils.d.ts +8 -2
  189. package/dist/verdocs-web-sdk/{p-46d6279e.entry.js → p-002fee52.entry.js} +2 -2
  190. package/dist/verdocs-web-sdk/p-1b4cde18.entry.js +2 -0
  191. package/dist/verdocs-web-sdk/p-1b4cde18.entry.js.map +1 -0
  192. package/dist/verdocs-web-sdk/p-1f708b6a.entry.js +2 -0
  193. package/dist/verdocs-web-sdk/p-1f708b6a.entry.js.map +1 -0
  194. package/dist/verdocs-web-sdk/{p-7dd394be.system.entry.js → p-259e53e2.system.entry.js} +2 -2
  195. package/dist/verdocs-web-sdk/{p-0d19368a.system.entry.js → p-298ee271.system.entry.js} +2 -2
  196. package/dist/verdocs-web-sdk/p-2cddbced.system.entry.js +2 -0
  197. package/dist/verdocs-web-sdk/p-2cddbced.system.entry.js.map +1 -0
  198. package/dist/verdocs-web-sdk/{p-99a6b317.system.entry.js → p-36f2fe29.system.entry.js} +2 -2
  199. package/dist/verdocs-web-sdk/{p-143428bc.system.entry.js → p-4a934b98.system.entry.js} +2 -2
  200. package/dist/verdocs-web-sdk/{p-478de2c9.entry.js → p-6ac28b30.entry.js} +2 -2
  201. package/dist/verdocs-web-sdk/p-6fdd258b.entry.js +2 -0
  202. package/dist/verdocs-web-sdk/p-6fdd258b.entry.js.map +1 -0
  203. package/dist/verdocs-web-sdk/{p-301f0247.entry.js → p-72702300.entry.js} +2 -2
  204. package/dist/verdocs-web-sdk/p-72702300.entry.js.map +1 -0
  205. package/dist/verdocs-web-sdk/{p-228c0fa3.system.entry.js → p-83b4e117.system.entry.js} +2 -2
  206. package/dist/verdocs-web-sdk/{p-228c0fa3.system.entry.js.map → p-83b4e117.system.entry.js.map} +1 -1
  207. package/dist/verdocs-web-sdk/{p-58b84a5a.entry.js → p-923aabca.entry.js} +2 -2
  208. package/dist/verdocs-web-sdk/{p-58b84a5a.entry.js.map → p-923aabca.entry.js.map} +1 -1
  209. package/dist/verdocs-web-sdk/p-BdZ5Ghsa.system.js +1 -1
  210. package/dist/verdocs-web-sdk/p-CHdb5wzt.js +2 -0
  211. package/dist/verdocs-web-sdk/p-CHdb5wzt.js.map +1 -0
  212. package/dist/verdocs-web-sdk/p-DeoYp6nD.system.js +2 -0
  213. package/dist/verdocs-web-sdk/p-DeoYp6nD.system.js.map +1 -0
  214. package/dist/verdocs-web-sdk/{p-38800961.system.entry.js → p-b3cad1ae.system.entry.js} +2 -2
  215. package/dist/verdocs-web-sdk/p-b3cad1ae.system.entry.js.map +1 -0
  216. package/dist/verdocs-web-sdk/p-b5fbfc6e.system.entry.js +2 -0
  217. package/dist/verdocs-web-sdk/p-b5fbfc6e.system.entry.js.map +1 -0
  218. package/dist/verdocs-web-sdk/p-bd1bcb9d.system.entry.js +8 -0
  219. package/dist/verdocs-web-sdk/p-bd1bcb9d.system.entry.js.map +1 -0
  220. package/dist/verdocs-web-sdk/{p-ea6c0b55.entry.js → p-bdfda300.entry.js} +2 -2
  221. package/dist/verdocs-web-sdk/{p-1a91a922.entry.js → p-c273b465.entry.js} +2 -2
  222. package/dist/verdocs-web-sdk/{p-eccac670.system.entry.js → p-c43a5bce.system.entry.js} +2 -2
  223. package/dist/verdocs-web-sdk/p-d7bb1eaa.system.entry.js +2 -0
  224. package/dist/verdocs-web-sdk/p-d7bb1eaa.system.entry.js.map +1 -0
  225. package/dist/verdocs-web-sdk/p-d8dbcb2c.entry.js +2 -0
  226. package/dist/verdocs-web-sdk/p-d8dbcb2c.entry.js.map +1 -0
  227. package/dist/verdocs-web-sdk/p-e3f13498.entry.js +8 -0
  228. package/dist/verdocs-web-sdk/p-e3f13498.entry.js.map +1 -0
  229. package/dist/verdocs-web-sdk/{p-8f50f83f.entry.js → p-efc80cbf.entry.js} +2 -2
  230. package/dist/verdocs-web-sdk/p-fd614aa0.system.entry.js +2 -0
  231. package/dist/verdocs-web-sdk/p-fd614aa0.system.entry.js.map +1 -0
  232. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  233. package/package.json +2 -2
  234. package/dist/cjs/utils-BtmSHO0F.js.map +0 -1
  235. package/dist/components/p-1FjgijEi.js +0 -2
  236. package/dist/components/p-1FjgijEi.js.map +0 -1
  237. package/dist/components/p-BCwFpXpV.js +0 -2
  238. package/dist/components/p-BCwFpXpV.js.map +0 -1
  239. package/dist/components/p-Blr31TcJ.js +0 -2
  240. package/dist/components/p-Blr31TcJ.js.map +0 -1
  241. package/dist/components/p-Bxvw_LqR.js +0 -2
  242. package/dist/components/p-Bxvw_LqR.js.map +0 -1
  243. package/dist/components/p-ByrpRZ3E.js.map +0 -1
  244. package/dist/components/p-Cij_2Ym2.js.map +0 -1
  245. package/dist/components/p-DGNIsXfr.js +0 -2
  246. package/dist/components/p-DGNIsXfr.js.map +0 -1
  247. package/dist/components/p-DRP4Xxiu.js +0 -2
  248. package/dist/components/p-DRP4Xxiu.js.map +0 -1
  249. package/dist/components/p-ek0LNMtb.js +0 -2
  250. package/dist/components/p-ek0LNMtb.js.map +0 -1
  251. package/dist/custom-elements.json +0 -2517
  252. package/dist/esm/utils-Bh3zb1Xs.js.map +0 -1
  253. package/dist/esm-es5/utils-Bh3zb1Xs.js +0 -2
  254. package/dist/esm-es5/utils-Bh3zb1Xs.js.map +0 -1
  255. package/dist/verdocs-web-sdk/p-1b818cdf.entry.js +0 -8
  256. package/dist/verdocs-web-sdk/p-1b818cdf.entry.js.map +0 -1
  257. package/dist/verdocs-web-sdk/p-24dcc54e.system.entry.js +0 -8
  258. package/dist/verdocs-web-sdk/p-24dcc54e.system.entry.js.map +0 -1
  259. package/dist/verdocs-web-sdk/p-301f0247.entry.js.map +0 -1
  260. package/dist/verdocs-web-sdk/p-38800961.system.entry.js.map +0 -1
  261. package/dist/verdocs-web-sdk/p-6fb7fd6d.system.entry.js +0 -2
  262. package/dist/verdocs-web-sdk/p-6fb7fd6d.system.entry.js.map +0 -1
  263. package/dist/verdocs-web-sdk/p-8ec770c3.entry.js +0 -2
  264. package/dist/verdocs-web-sdk/p-8ec770c3.entry.js.map +0 -1
  265. package/dist/verdocs-web-sdk/p-935267a6.entry.js +0 -2
  266. package/dist/verdocs-web-sdk/p-935267a6.entry.js.map +0 -1
  267. package/dist/verdocs-web-sdk/p-CGsVCy75.js +0 -2
  268. package/dist/verdocs-web-sdk/p-CGsVCy75.js.map +0 -1
  269. package/dist/verdocs-web-sdk/p-a9899fce.system.entry.js +0 -2
  270. package/dist/verdocs-web-sdk/p-a9899fce.system.entry.js.map +0 -1
  271. package/dist/verdocs-web-sdk/p-bf38aa98.entry.js +0 -2
  272. package/dist/verdocs-web-sdk/p-bf38aa98.entry.js.map +0 -1
  273. package/dist/verdocs-web-sdk/p-c5f8125b.system.entry.js +0 -2
  274. package/dist/verdocs-web-sdk/p-c5f8125b.system.entry.js.map +0 -1
  275. package/dist/verdocs-web-sdk/p-df921f12.system.entry.js +0 -2
  276. package/dist/verdocs-web-sdk/p-df921f12.system.entry.js.map +0 -1
  277. package/dist/verdocs-web-sdk/p-f6ad24c5.entry.js +0 -2
  278. package/dist/verdocs-web-sdk/p-f6ad24c5.entry.js.map +0 -1
  279. package/dist/verdocs-web-sdk/p-nfw6V5pF.system.js +0 -2
  280. package/dist/verdocs-web-sdk/p-nfw6V5pF.system.js.map +0 -1
  281. /package/dist/components/{p-CEkRxfcu.js.map → p-58qb6gkU.js.map} +0 -0
  282. /package/dist/components/{p-BKLlc2r0.js.map → p-5M_R8La0.js.map} +0 -0
  283. /package/dist/components/{p-D-X-Zcsr.js.map → p-BIi4c9Gz.js.map} +0 -0
  284. /package/dist/components/{p-DTG2X1A2.js.map → p-BeDDvLcN.js.map} +0 -0
  285. /package/dist/components/{p-B4tpmyon.js.map → p-CAJJndLX.js.map} +0 -0
  286. /package/dist/components/{p-DscL0SIM.js.map → p-D56nBgHQ.js.map} +0 -0
  287. /package/dist/components/{p-CEcG_ay-.js.map → p-DReW8CSB.js.map} +0 -0
  288. /package/dist/components/{p-BhG0HGg6.js.map → p-DX713VO2.js.map} +0 -0
  289. /package/dist/components/{p-9kEZy9MP.js.map → p-YCI5JKXK.js.map} +0 -0
  290. /package/dist/components/{p-kHTZa3Ev.js.map → p-hwu-GrDS.js.map} +0 -0
  291. /package/dist/components/{p-06em1_P-.js.map → p-vuCjHk-M.js.map} +0 -0
  292. /package/dist/verdocs-web-sdk/{p-46d6279e.entry.js.map → p-002fee52.entry.js.map} +0 -0
  293. /package/dist/verdocs-web-sdk/{p-7dd394be.system.entry.js.map → p-259e53e2.system.entry.js.map} +0 -0
  294. /package/dist/verdocs-web-sdk/{p-0d19368a.system.entry.js.map → p-298ee271.system.entry.js.map} +0 -0
  295. /package/dist/verdocs-web-sdk/{p-99a6b317.system.entry.js.map → p-36f2fe29.system.entry.js.map} +0 -0
  296. /package/dist/verdocs-web-sdk/{p-143428bc.system.entry.js.map → p-4a934b98.system.entry.js.map} +0 -0
  297. /package/dist/verdocs-web-sdk/{p-478de2c9.entry.js.map → p-6ac28b30.entry.js.map} +0 -0
  298. /package/dist/verdocs-web-sdk/{p-ea6c0b55.entry.js.map → p-bdfda300.entry.js.map} +0 -0
  299. /package/dist/verdocs-web-sdk/{p-1a91a922.entry.js.map → p-c273b465.entry.js.map} +0 -0
  300. /package/dist/verdocs-web-sdk/{p-eccac670.system.entry.js.map → p-c43a5bce.system.entry.js.map} +0 -0
  301. /package/dist/verdocs-web-sdk/{p-8f50f83f.entry.js.map → p-efc80cbf.entry.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- import{p as e,H as t,c as i,h as s,d as o,F as r,t as n}from"./p-yZBlG3YQ.js";import{i as a}from"./p-COaijEV0.js";import{VerdocsEndpoint as d,updateField as l}from"@verdocs/js-sdk";import{S as c}from"./p-C7k2AOsW.js";import{S as h}from"./p-C7hFgM52.js";import{d as u}from"./p-Bb5V9TQx.js";import{d as f}from"./p-DGNIsXfr.js";import{d as p}from"./p-C-v22G3g.js";import{d as g}from"./p-DHzSlpJw.js";import{d as m}from"./p-DqzFuSNN.js";import{d as v}from"./p-DhOuB4nS.js";import{d as b}from"./p-Bodw4NVB.js";import{d as x}from"./p-Bxvw_LqR.js";import{d as w}from"./p-PfdIkMoz.js";const k=()=>`verdocs-field-signature{font-family:var(--verdocs-primary-font, "Inter", "Barlow", sans-serif);width:83px;height:36px;display:block;font-size:11px;position:relative;scroll-margin:20px 0;letter-spacing:0.3px;background-color:var(--verdocs-field-background, transparent);-webkit-transform-origin:bottom left;transform-origin:bottom left;border:var(--verdocs-field-border, 1px solid rgba(0, 0, 0, 0.2));border-radius:var(--verdocs-field-radius);cursor:pointer;caret-color:transparent}verdocs-field-signature label{top:-14px;left:-1px;height:14px;color:var(--verdocs-field-text-color, white);padding:0 4px;font-size:9px;line-height:13px;position:absolute;background:#4a4a99;border-top-left-radius:2px;border-top-right-radius:2px}verdocs-field-signature.done{border:none;opacity:1}verdocs-field-signature.menu-open{z-index:50}verdocs-field-signature .signature-container{width:100%;height:100%;position:relative}verdocs-field-signature .signature-container img{display:block;height:100%;width:auto;max-width:none;max-height:none}verdocs-field-signature .signature-container .action-menu{position:absolute;top:calc(100% + 4px);left:0;min-width:90px;background:#ffffff;border:1px solid rgba(0, 0, 0, 0.15);border-radius:6px;-webkit-box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);z-index:1000;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden;font-size:12px;font-family:var(--verdocs-primary-font, "Inter", "Barlow", sans-serif)}verdocs-field-signature .signature-container .action-menu .menu-item{background:#ffffff;border:none;padding:8px 12px;color:#333333;cursor:pointer;text-align:left;width:100%;font-size:12px;line-height:1.2;height:auto;font-family:inherit}verdocs-field-signature .signature-container .action-menu .menu-item:hover{background-color:#f0f0f0;color:#000000}verdocs-field-signature .signature-container .action-menu .menu-item:not(:last-child){border-bottom:1px solid rgba(0, 0, 0, 0.08)}verdocs-field-signature.disabled .signature-container{opacity:0.5;pointer-events:none}verdocs-field-signature button{cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box;border:none;color:var(--verdocs-field-text-color, rgba(0, 0, 0, 0.87));font-weight:500;-webkit-transform-origin:0 0;transform-origin:0 0;height:100%;width:100%;background:none;font-size:11px}verdocs-field-signature button.hide{display:none}verdocs-field-signature.required{border:1px solid var(--verdocs-required-field-border)}verdocs-field-signature.filled{border:none !important;background-color:transparent !important}verdocs-field-signature verdocs-button-panel{top:-3px;left:-2px;opacity:0.5;z-index:1000;cursor:pointer;position:absolute;-webkit-transform:scale(0.6);transform:scale(0.6)}verdocs-field-signature verdocs-button-panel[data-active],verdocs-field-signature verdocs-button-panel:hover{opacity:1}verdocs-field-signature verdocs-button-panel .icon svg{fill:#333333}verdocs-field-signature verdocs-button-panel .icon:hover svg{fill:#000000}verdocs-field-signature .settings-icon{position:absolute;top:-3px;left:-20px;display:inline-block;cursor:pointer;opacity:0.3}verdocs-field-signature .settings-icon svg{fill:#707ae5}verdocs-field-signature .settings-icon:hover{opacity:1}verdocs-field-signature .edge-top,verdocs-field-signature .edge-right,verdocs-field-signature .edge-left,verdocs-field-signature .edge-bottom{position:absolute;z-index:10}verdocs-field-signature .edge-top{top:-2px;left:0;right:0;height:5px}verdocs-field-signature .edge-right{top:0;bottom:0;right:-2px;width:5px}verdocs-field-signature .edge-left{top:0;left:-2px;bottom:0;width:5px}verdocs-field-signature .edge-bottom{bottom:-2px;left:0;right:0;height:5px}`;const y=e(class e extends t{constructor(e){super();if(e!==false){this.__registerHost()}this.fieldChange=i(this,"fieldChange");this.settingsPress=i(this,"settingsPress");this.settingsChanged=i(this,"settingsChanged");this.deleted=i(this,"deleted");this.adopt=i(this,"adopt");this.source="template";this.sourceid="";this.fieldname="";this.field=null;this.name="";this.disabled=false;this.editable=false;this.moveable=false;this.done=false;this.xscale=1;this.yscale=1;this.pagenumber=1;this.showingProperties=false;this.focused=false;this.menuOpen=false;this.closeMenuTimer=null;this.outsideMenuHandler=null;this.tempSignature="";this.openMenu=()=>{if(this.closeMenuTimer){clearTimeout(this.closeMenuTimer);this.closeMenuTimer=null}this.menuOpen=true};this.scheduleCloseMenu=()=>{if(this.closeMenuTimer){clearTimeout(this.closeMenuTimer)}this.closeMenuTimer=setTimeout((()=>{this.menuOpen=false;this.closeMenuTimer=null}),150)};this.closeMenu=()=>{if(this.closeMenuTimer){clearTimeout(this.closeMenuTimer);this.closeMenuTimer=null}this.menuOpen=false}}handleBlur(){this.focused=false}async focusField(){this.el.focus();this.focused=true}componentDidLoad(){this.outsideMenuHandler=e=>{if(this.menuOpen&&!this.el.contains(e.target)){this.closeMenu()}};document.addEventListener("pointerdown",this.outsideMenuHandler)}disconnectedCallback(){if(this.closeMenuTimer){clearTimeout(this.closeMenuTimer);this.closeMenuTimer=null}if(this.outsideMenuHandler){document.removeEventListener("pointerdown",this.outsideMenuHandler);this.outsideMenuHandler=null}a(this.el).unset()}onEditableChanged(e,t){if(t&&!e){a(this.el).unset()}}componentDidRender(){a.dynamicDrop(true);if(this.editable){a(this.el).resizable({edges:{top:".edge-top",left:".edge-left",bottom:".edge-bottom",right:".edge-right"},modifiers:[a.modifiers.restrictSize({min:{width:71,height:36}})],listeners:{start:this.handleResizeStart.bind(this),move:this.handleResize.bind(this),end:this.handleResizeEnd.bind(this)}})}}onBlur(){this.focused=false}handleResizeStart(e){e.preventDefault();e.stopPropagation();e.target.dataset.originalBottom=e.target.style.bottom}handleResize(e){let{width:t,height:i}=e.rect;const s=e.deltaRect.left;const o=e.deltaRect.bottom;const r=parseFloat(e.target.style.left);const n=parseFloat(e.target.style.bottom);t/=this.xscale;i/=this.yscale;Object.assign(e.target.style,{width:`${t}px`,height:`${i}px`,left:`${r+s}px`,bottom:`${n-o}px`})}async handleResizeEnd(e){const{sourceid:t,fieldname:i}=this;const s=Math.round(parseFloat(e.target.style.width));let o=Math.round(parseFloat(e.target.style.height));if(o<20){o=15}const r=parseFloat(e.target.style.bottom);const n=parseFloat(e.target.dataset.originalBottom);const a=await h.getTemplate(d.getDefault(),this.sourceid);const c=a.fields.find((e=>e.name===i));const u=r!==n?r/this.yscale:c===null||c===void 0?void 0:c.y;l(d.getDefault(),t,i,{width:s,height:o,y:u}).then((async t=>{var s;const o=await h.getTemplate(d.getDefault(),this.sourceid);const r=JSON.parse(JSON.stringify(o));const n=r.fields.findIndex((e=>e.name===i));if(n>-1){r.fields[n]=t}h.updateTemplate(this.sourceid,r);(s=this.settingsChanged)===null||s===void 0?void 0:s.emit({fieldName:i,field:t});Object.assign(e.target.dataset,{x:0,y:0,h:0})})).catch((e=>console.log("Field update failed",e)))}async showSettingsPanel(){const e=document.getElementById(`verdocs-settings-panel-${this.fieldname}`);if(e&&e.showPanel){e.showPanel()}}async hideSettingsPanel(){const e=document.getElementById(`verdocs-settings-panel-${this.fieldname}`);if(e&&e.hidePanel){e.hidePanel()}this.showingProperties=false}render(){const{source:e,sourceid:t,fieldname:i,editable:n=false,done:a=false,disabled:d=false,focused:l,xscale:u=1,yscale:f=1}=this;const{index:p,field:g}=h.getField(e,t,i,this.field);const{required:m=false,value:v="",label:b="",settings:x={}}=g||{};const{base64:w}=x;const k=`signer-${p%10+1}`;if(a){return s(o,{class:{"verdocs-field":true,done:a}},v&&s("img",{src:w,alt:""}))}return s(o,{class:{"verdocs-field":true,required:m,disabled:d,done:a,focused:l,filled:!!w,"menu-open":this.menuOpen,[k]:true}},n&&s("div",{class:"edge-right"}),n&&s("div",{class:"edge-left"}),n&&s("div",{class:"edge-top"}),n&&s("div",{class:"edge-bottom"}),b&&s("label",null,b),w?s("div",{class:{"signature-container":true,"menu-open":this.menuOpen},onMouseEnter:()=>!d&&this.openMenu(),onMouseLeave:()=>this.scheduleCloseMenu(),onClick:e=>{e.stopPropagation();if(d)return;this.menuOpen?this.closeMenu():this.openMenu()}},s("img",{src:w,alt:"Signature"}),this.menuOpen&&s("div",{class:"action-menu",onMouseEnter:()=>this.openMenu(),onMouseLeave:()=>this.scheduleCloseMenu()},s("button",{type:"button",class:"menu-item",onClick:e=>{e.stopPropagation();if(d)return;console.log("[SIGNATURE] Editing signature");this.closeMenu();this.adopt.emit()}},"Edit"),s("button",{type:"button",class:"menu-item",onClick:e=>{var t;e.stopPropagation();if(d)return;console.log("[SIGNATURE] Clearing signature");this.closeMenu();(t=this.fieldChange)===null||t===void 0?void 0:t.emit(null)}},"Clear"))):s("button",{onClick:()=>{var e;if(d)return;if(this.signatureid){console.log("[SIGNATURE] Reusing existing signature",this.signatureid);(e=this.fieldChange)===null||e===void 0?void 0:e.emit(this.signatureid)}else{this.adopt.emit()}}},"Signature"),n&&s(r,null,s("div",{id:`verdocs-settings-panel-trigger-${i}`,style:{transform:`scale(${Math.floor(1/u*1e3)/1e3}, ${Math.floor(1/f*1e3)/1e3})`},class:"settings-icon",innerHTML:c,onClick:e=>{e.stopPropagation();this.showingProperties=!this.showingProperties}}),this.showingProperties&&s("verdocs-portal",{anchor:`verdocs-settings-panel-trigger-${i}`,onClickAway:()=>this.showingProperties=false},s("verdocs-template-field-properties",{templateId:t,fieldName:i,onClose:()=>this.hideSettingsPanel(),onDelete:()=>{var e;(e=this.deleted)===null||e===void 0?void 0:e.emit({fieldName:i});return this.hideSettingsPanel()},onSettingsChanged:e=>{var t;(t=this.settingsChanged)===null||t===void 0?void 0:t.emit(e.detail);return this.hideSettingsPanel()},helpText:"Signature fields capture a recipient's signature on a document."}))))}get el(){return this}static get watchers(){return{editable:[{onEditableChanged:0}]}}static get style(){return k()}},[0,"verdocs-field-signature",{source:[513],sourceid:[513],fieldname:[513],field:[16],name:[513],disabled:[516],editable:[516],moveable:[516],done:[516],xscale:[514],yscale:[514],pagenumber:[514],signatureid:[513],isPreview:[516,"is-preview"],showingProperties:[32],focused:[32],menuOpen:[32],tempSignature:[32],focusField:[64],showSettingsPanel:[64],hideSettingsPanel:[64]},[[0,"blur","handleBlur"],[0,"blur","onBlur"]],{editable:[{onEditableChanged:0}]}]);function E(){if(typeof customElements==="undefined"){return}const e=["verdocs-field-signature","verdocs-button","verdocs-checkbox","verdocs-component-error","verdocs-help-icon","verdocs-loader","verdocs-portal","verdocs-select-input","verdocs-template-field-properties","verdocs-text-input"];e.forEach((e=>{switch(e){case"verdocs-field-signature":if(!customElements.get(n(e))){customElements.define(n(e),y)}break;case"verdocs-button":if(!customElements.get(n(e))){u()}break;case"verdocs-checkbox":if(!customElements.get(n(e))){f()}break;case"verdocs-component-error":if(!customElements.get(n(e))){p()}break;case"verdocs-help-icon":if(!customElements.get(n(e))){g()}break;case"verdocs-loader":if(!customElements.get(n(e))){m()}break;case"verdocs-portal":if(!customElements.get(n(e))){v()}break;case"verdocs-select-input":if(!customElements.get(n(e))){b()}break;case"verdocs-template-field-properties":if(!customElements.get(n(e))){x()}break;case"verdocs-text-input":if(!customElements.get(n(e))){w()}break}}))}export{y as V,E as d};
2
- //# sourceMappingURL=p-CQzPkAVQ.js.map
1
+ import{p as e,H as t,c as i,h as s,d as o,F as r,t as n}from"./p-yZBlG3YQ.js";import{i as a}from"./p-COaijEV0.js";import{VerdocsEndpoint as d,updateField as l}from"@verdocs/js-sdk";import{S as c}from"./p-C7k2AOsW.js";import{S as h}from"./p-C7hFgM52.js";import{d as u}from"./p-Bb5V9TQx.js";import{d as f}from"./p-NtvxlYzY.js";import{d as p}from"./p-C-v22G3g.js";import{d as g}from"./p-DHzSlpJw.js";import{d as m}from"./p-DqzFuSNN.js";import{d as v}from"./p-DhOuB4nS.js";import{d as b}from"./p-Bodw4NVB.js";import{d as x}from"./p-qLNetL5t.js";import{d as w}from"./p-PfdIkMoz.js";const k=()=>`verdocs-field-signature{font-family:var(--verdocs-primary-font, "Inter", "Barlow", sans-serif);width:83px;height:36px;display:block;font-size:11px;position:relative;scroll-margin:20px 0;letter-spacing:0.3px;background-color:var(--verdocs-field-background, transparent);-webkit-transform-origin:bottom left;transform-origin:bottom left;border:var(--verdocs-field-border, 1px solid rgba(0, 0, 0, 0.2));border-radius:var(--verdocs-field-radius);cursor:pointer;caret-color:transparent}verdocs-field-signature label{top:-14px;left:-1px;height:14px;color:var(--verdocs-field-text-color, white);padding:0 4px;font-size:9px;line-height:13px;position:absolute;background:#4a4a99;border-top-left-radius:2px;border-top-right-radius:2px}verdocs-field-signature.done{border:none;opacity:1}verdocs-field-signature.menu-open{z-index:50}verdocs-field-signature .signature-container{width:100%;height:100%;position:relative}verdocs-field-signature .signature-container img{display:block;height:100%;width:auto;max-width:none;max-height:none}verdocs-field-signature .signature-container .action-menu{position:absolute;top:calc(100% + 4px);left:0;min-width:90px;background:#ffffff;border:1px solid rgba(0, 0, 0, 0.15);border-radius:6px;-webkit-box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);z-index:1000;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden;font-size:12px;font-family:var(--verdocs-primary-font, "Inter", "Barlow", sans-serif)}verdocs-field-signature .signature-container .action-menu .menu-item{background:#ffffff;border:none;padding:8px 12px;color:#333333;cursor:pointer;text-align:left;width:100%;font-size:12px;line-height:1.2;height:auto;font-family:inherit}verdocs-field-signature .signature-container .action-menu .menu-item:hover{background-color:#f0f0f0;color:#000000}verdocs-field-signature .signature-container .action-menu .menu-item:not(:last-child){border-bottom:1px solid rgba(0, 0, 0, 0.08)}verdocs-field-signature.disabled .signature-container{opacity:0.5;pointer-events:none}verdocs-field-signature button{cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box;border:none;color:var(--verdocs-field-text-color, rgba(0, 0, 0, 0.87));font-weight:500;-webkit-transform-origin:0 0;transform-origin:0 0;height:100%;width:100%;background:none;font-size:11px}verdocs-field-signature button.hide{display:none}verdocs-field-signature.required{border:1px solid var(--verdocs-required-field-border)}verdocs-field-signature.filled{border:none !important;background-color:transparent !important}verdocs-field-signature verdocs-button-panel{top:-3px;left:-2px;opacity:0.5;z-index:1000;cursor:pointer;position:absolute;-webkit-transform:scale(0.6);transform:scale(0.6)}verdocs-field-signature verdocs-button-panel[data-active],verdocs-field-signature verdocs-button-panel:hover{opacity:1}verdocs-field-signature verdocs-button-panel .icon svg{fill:#333333}verdocs-field-signature verdocs-button-panel .icon:hover svg{fill:#000000}verdocs-field-signature .settings-icon{position:absolute;top:-3px;left:-20px;display:inline-block;cursor:pointer;opacity:0.3}verdocs-field-signature .settings-icon svg{fill:#707ae5}verdocs-field-signature .settings-icon:hover{opacity:1}verdocs-field-signature .edge-top,verdocs-field-signature .edge-right,verdocs-field-signature .edge-left,verdocs-field-signature .edge-bottom{position:absolute;z-index:10}verdocs-field-signature .edge-top{top:-2px;left:0;right:0;height:5px}verdocs-field-signature .edge-right{top:0;bottom:0;right:-2px;width:5px}verdocs-field-signature .edge-left{top:0;left:-2px;bottom:0;width:5px}verdocs-field-signature .edge-bottom{bottom:-2px;left:0;right:0;height:5px}`;const y=e(class e extends t{constructor(e){super();if(e!==false){this.__registerHost()}this.fieldChange=i(this,"fieldChange");this.settingsPress=i(this,"settingsPress");this.settingsChanged=i(this,"settingsChanged");this.deleted=i(this,"deleted");this.adopt=i(this,"adopt");this.source="template";this.sourceid="";this.fieldname="";this.field=null;this.name="";this.disabled=false;this.editable=false;this.moveable=false;this.done=false;this.xscale=1;this.yscale=1;this.pagenumber=1;this.showingProperties=false;this.focused=false;this.menuOpen=false;this.closeMenuTimer=null;this.outsideMenuHandler=null;this.tempSignature="";this.openMenu=()=>{if(this.closeMenuTimer){clearTimeout(this.closeMenuTimer);this.closeMenuTimer=null}this.menuOpen=true};this.scheduleCloseMenu=()=>{if(this.closeMenuTimer){clearTimeout(this.closeMenuTimer)}this.closeMenuTimer=setTimeout((()=>{this.menuOpen=false;this.closeMenuTimer=null}),150)};this.closeMenu=()=>{if(this.closeMenuTimer){clearTimeout(this.closeMenuTimer);this.closeMenuTimer=null}this.menuOpen=false}}handleBlur(){this.focused=false}async focusField(){this.el.focus();this.focused=true}componentDidLoad(){this.outsideMenuHandler=e=>{if(this.menuOpen&&!this.el.contains(e.target)){this.closeMenu()}};document.addEventListener("pointerdown",this.outsideMenuHandler)}disconnectedCallback(){if(this.closeMenuTimer){clearTimeout(this.closeMenuTimer);this.closeMenuTimer=null}if(this.outsideMenuHandler){document.removeEventListener("pointerdown",this.outsideMenuHandler);this.outsideMenuHandler=null}a(this.el).unset()}onEditableChanged(e,t){if(t&&!e){a(this.el).unset()}}componentDidRender(){a.dynamicDrop(true);if(this.editable){a(this.el).resizable({edges:{top:".edge-top",left:".edge-left",bottom:".edge-bottom",right:".edge-right"},modifiers:[a.modifiers.restrictSize({min:{width:71,height:36}})],listeners:{start:this.handleResizeStart.bind(this),move:this.handleResize.bind(this),end:this.handleResizeEnd.bind(this)}})}}onBlur(){this.focused=false}handleResizeStart(e){e.preventDefault();e.stopPropagation();e.target.dataset.originalBottom=e.target.style.bottom}handleResize(e){let{width:t,height:i}=e.rect;const s=e.deltaRect.left;const o=e.deltaRect.bottom;const r=parseFloat(e.target.style.left);const n=parseFloat(e.target.style.bottom);t/=this.xscale;i/=this.yscale;Object.assign(e.target.style,{width:`${t}px`,height:`${i}px`,left:`${r+s}px`,bottom:`${n-o}px`})}async handleResizeEnd(e){const{sourceid:t,fieldname:i}=this;const s=Math.round(parseFloat(e.target.style.width));let o=Math.round(parseFloat(e.target.style.height));if(o<20){o=15}const r=parseFloat(e.target.style.bottom);const n=parseFloat(e.target.dataset.originalBottom);const a=await h.getTemplate(d.getDefault(),this.sourceid);const c=a.fields.find((e=>e.name===i));const u=r!==n?Math.round(r/this.yscale):c===null||c===void 0?void 0:c.y;l(d.getDefault(),t,i,{width:s,height:o,y:u}).then((async t=>{var s;const o=await h.getTemplate(d.getDefault(),this.sourceid);const r=JSON.parse(JSON.stringify(o));const n=r.fields.findIndex((e=>e.name===i));if(n>-1){r.fields[n]=t}h.updateTemplate(this.sourceid,r);(s=this.settingsChanged)===null||s===void 0?void 0:s.emit({fieldName:i,field:t});Object.assign(e.target.dataset,{x:0,y:0,h:0})})).catch((e=>console.log("Field update failed",e)))}async showSettingsPanel(){const e=document.getElementById(`verdocs-settings-panel-${this.fieldname}`);if(e&&e.showPanel){e.showPanel()}}async hideSettingsPanel(){const e=document.getElementById(`verdocs-settings-panel-${this.fieldname}`);if(e&&e.hidePanel){e.hidePanel()}this.showingProperties=false}render(){const{source:e,sourceid:t,fieldname:i,editable:n=false,done:a=false,disabled:d=false,focused:l,xscale:u=1,yscale:f=1}=this;const{index:p,field:g}=h.getField(e,t,i,this.field);const{required:m=false,value:v="",label:b="",settings:x={}}=g||{};const{base64:w}=x;const k=`signer-${p%10+1}`;if(a){return s(o,{class:{"verdocs-field":true,done:a}},v&&s("img",{src:w,alt:""}))}return s(o,{class:{"verdocs-field":true,required:m,disabled:d,done:a,focused:l,filled:!!w,"menu-open":this.menuOpen,[k]:true}},n&&s("div",{class:"edge-right"}),n&&s("div",{class:"edge-left"}),n&&s("div",{class:"edge-top"}),n&&s("div",{class:"edge-bottom"}),b&&s("label",null,b),w?s("div",{class:{"signature-container":true,"menu-open":this.menuOpen},onMouseEnter:()=>!d&&this.openMenu(),onMouseLeave:()=>this.scheduleCloseMenu(),onClick:e=>{e.stopPropagation();if(d)return;this.menuOpen?this.closeMenu():this.openMenu()}},s("img",{src:w,alt:"Signature"}),this.menuOpen&&s("div",{class:"action-menu",onMouseEnter:()=>this.openMenu(),onMouseLeave:()=>this.scheduleCloseMenu()},s("button",{type:"button",class:"menu-item",onClick:e=>{e.stopPropagation();if(d)return;console.log("[SIGNATURE] Editing signature");this.closeMenu();this.adopt.emit()}},"Edit"),s("button",{type:"button",class:"menu-item",onClick:e=>{var t;e.stopPropagation();if(d)return;console.log("[SIGNATURE] Clearing signature");this.closeMenu();(t=this.fieldChange)===null||t===void 0?void 0:t.emit(null)}},"Clear"))):s("button",{onClick:()=>{var e;if(d)return;if(this.signatureid){console.log("[SIGNATURE] Reusing existing signature",this.signatureid);(e=this.fieldChange)===null||e===void 0?void 0:e.emit(this.signatureid)}else{this.adopt.emit()}}},"Signature"),n&&s(r,null,s("div",{id:`verdocs-settings-panel-trigger-${i}`,style:{transform:`scale(${Math.floor(1/u*1e3)/1e3}, ${Math.floor(1/f*1e3)/1e3})`},class:"settings-icon",innerHTML:c,onClick:e=>{e.stopPropagation();this.showingProperties=!this.showingProperties}}),this.showingProperties&&s("verdocs-portal",{anchor:`verdocs-settings-panel-trigger-${i}`,onClickAway:()=>this.showingProperties=false},s("verdocs-template-field-properties",{templateId:t,fieldName:i,onClose:()=>this.hideSettingsPanel(),onDelete:()=>{var e;(e=this.deleted)===null||e===void 0?void 0:e.emit({fieldName:i});return this.hideSettingsPanel()},onSettingsChanged:e=>{var t;(t=this.settingsChanged)===null||t===void 0?void 0:t.emit(e.detail);return this.hideSettingsPanel()},helpText:"Signature fields capture a recipient's signature on a document."}))))}get el(){return this}static get watchers(){return{editable:[{onEditableChanged:0}]}}static get style(){return k()}},[0,"verdocs-field-signature",{source:[513],sourceid:[513],fieldname:[513],field:[16],name:[513],disabled:[516],editable:[516],moveable:[516],done:[516],xscale:[514],yscale:[514],pagenumber:[514],signatureid:[513],isPreview:[516,"is-preview"],showingProperties:[32],focused:[32],menuOpen:[32],tempSignature:[32],focusField:[64],showSettingsPanel:[64],hideSettingsPanel:[64]},[[0,"blur","handleBlur"],[0,"blur","onBlur"]],{editable:[{onEditableChanged:0}]}]);function E(){if(typeof customElements==="undefined"){return}const e=["verdocs-field-signature","verdocs-button","verdocs-checkbox","verdocs-component-error","verdocs-help-icon","verdocs-loader","verdocs-portal","verdocs-select-input","verdocs-template-field-properties","verdocs-text-input"];e.forEach((e=>{switch(e){case"verdocs-field-signature":if(!customElements.get(n(e))){customElements.define(n(e),y)}break;case"verdocs-button":if(!customElements.get(n(e))){u()}break;case"verdocs-checkbox":if(!customElements.get(n(e))){f()}break;case"verdocs-component-error":if(!customElements.get(n(e))){p()}break;case"verdocs-help-icon":if(!customElements.get(n(e))){g()}break;case"verdocs-loader":if(!customElements.get(n(e))){m()}break;case"verdocs-portal":if(!customElements.get(n(e))){v()}break;case"verdocs-select-input":if(!customElements.get(n(e))){b()}break;case"verdocs-template-field-properties":if(!customElements.get(n(e))){x()}break;case"verdocs-text-input":if(!customElements.get(n(e))){w()}break}}))}export{y as V,E as d};
2
+ //# sourceMappingURL=p-BPcxbmXF.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["verdocsFieldSignatureCss","VerdocsFieldSignature","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","source","sourceid","fieldname","field","name","disabled","editable","moveable","done","xscale","yscale","pagenumber","showingProperties","focused","menuOpen","closeMenuTimer","outsideMenuHandler","tempSignature","openMenu","clearTimeout","scheduleCloseMenu","setTimeout","closeMenu","handleBlur","focusField","el","focus","componentDidLoad","e","contains","target","document","addEventListener","disconnectedCallback","removeEventListener","interact","unset","onEditableChanged","newVal","oldVal","componentDidRender","dynamicDrop","resizable","edges","top","left","bottom","right","modifiers","restrictSize","min","width","height","listeners","start","handleResizeStart","bind","move","handleResize","end","handleResizeEnd","onBlur","preventDefault","stopPropagation","dataset","originalBottom","style","rect","dX","deltaRect","dY","currentLeft","parseFloat","currentBottom","Object","assign","Math","round","newBottom","template","Store","getTemplate","VerdocsEndpoint","getDefault","oldField","fields","find","f","y","updateField","then","async","updatedField","newTemplate","JSON","parse","stringify","fieldIndex","findIndex","updateTemplate","_a","settingsChanged","emit","fieldName","x","h","catch","console","log","showSettingsPanel","settingsPanel","getElementById","showPanel","hideSettingsPanel","hidePanel","render","index","getField","required","value","label","settings","base64","signerClass","Host","class","src","alt","filled","onMouseEnter","onMouseLeave","onClick","type","adopt","fieldChange","signatureid","Fragment","id","transform","floor","innerHTML","SettingsIcon","anchor","onClickAway","templateId","onClose","onDelete","deleted","onSettingsChanged","detail","helpText"],"sources":["src/components/fields/verdocs-field-signature/verdocs-field-signature.scss?tag=verdocs-field-signature","src/components/fields/verdocs-field-signature/verdocs-field-signature.tsx"],"sourcesContent":["@import '../../../theme.scss';\n\nverdocs-field-signature {\n font-family: $verdocs-primary-font;\n width: 83px;\n height: 36px;\n display: block;\n font-size: 11px;\n position: relative;\n scroll-margin: 20px 0;\n letter-spacing: 0.3px;\n background-color: var(--verdocs-field-background, transparent);\n transform-origin: bottom left;\n border: var(--verdocs-field-border, 1px solid rgba(0, 0, 0, 0.2));\n border-radius: var(--verdocs-field-radius);\n // Host is focusable via tabindex; hide any browser-rendered text caret and use a pointer cursor\n // so it doesn't look like an editable text area.\n cursor: pointer;\n caret-color: transparent;\n\n label {\n top: -14px;\n left: -1px;\n height: 14px;\n color: var(--verdocs-field-text-color, white);\n padding: 0 4px;\n font-size: 9px;\n line-height: 13px;\n position: absolute;\n background: #4a4a99;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n }\n\n &.done {\n border: none;\n opacity: 1;\n }\n\n // When the Edit/Clear dropdown is open, raise this field above its siblings so\n // the menu isn't clipped by neighboring fields.\n &.menu-open {\n z-index: 50;\n }\n\n .signature-container {\n width: 100%;\n height: 100%;\n position: relative;\n\n img {\n display: block;\n height: 100%;\n width: auto;\n max-width: none;\n max-height: none;\n }\n\n .action-menu {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n min-width: 90px;\n background: #ffffff;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 6px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n font-size: 12px;\n font-family: $verdocs-primary-font;\n\n .menu-item {\n background: #ffffff;\n border: none;\n padding: 8px 12px;\n color: #333333;\n cursor: pointer;\n text-align: left;\n width: 100%;\n font-size: 12px;\n line-height: 1.2;\n height: auto;\n font-family: inherit;\n\n &:hover {\n background-color: #f0f0f0;\n color: #000000;\n }\n\n &:not(:last-child) {\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n }\n }\n }\n }\n\n &.disabled .signature-container {\n opacity: 0.5;\n pointer-events: none;\n }\n\n button {\n // This is needed to bring down the cursor from the parent element, which is where interactjs applies it\n cursor: inherit;\n\n box-sizing: border-box;\n border: none;\n color: var(--verdocs-field-text-color, rgba(0, 0, 0, 0.87));\n font-weight: 500;\n transform-origin: 0 0;\n height: 100%;\n width: 100%;\n background: none;\n font-size: 11px;\n\n &.hide {\n display: none;\n }\n }\n\n &.required {\n border: 1px solid var(--verdocs-required-field-border);\n }\n\n &.filled {\n border: none !important;\n background-color: transparent !important;\n }\n\n verdocs-button-panel {\n top: -3px;\n left: -2px;\n opacity: 0.5;\n z-index: 1000;\n cursor: pointer;\n position: absolute;\n transform: scale(0.6);\n\n &[data-active],\n &:hover {\n opacity: 1;\n }\n\n .icon {\n svg {\n fill: #333333;\n }\n\n &:hover {\n svg {\n fill: #000000;\n }\n }\n }\n }\n\n .settings-icon {\n position: absolute;\n top: -3px;\n left: -20px;\n display: inline-block;\n cursor: pointer;\n opacity: 0.3;\n\n svg {\n fill: $border-color;\n }\n\n &:hover {\n opacity: 1;\n }\n }\n\n .edge-top,\n .edge-right,\n .edge-left,\n .edge-bottom {\n position: absolute;\n z-index: 10;\n }\n\n .edge-top {\n top: -2px;\n left: 0;\n right: 0;\n height: 5px;\n }\n\n .edge-right {\n top: 0;\n bottom: 0;\n right: -2px;\n width: 5px;\n }\n\n .edge-left {\n top: 0;\n left: -2px;\n bottom: 0;\n width: 5px;\n }\n\n .edge-bottom {\n bottom: -2px;\n left: 0;\n right: 0;\n height: 5px;\n }\n}\n","import interact from 'interactjs';\nimport {ResizeEvent} from '@interactjs/actions/resize/plugin';\nimport {ITemplateField, IEnvelopeField, VerdocsEndpoint, updateField, ITemplate} from '@verdocs/js-sdk';\nimport {Component, h, Host, Prop, Event, EventEmitter, Method, Fragment, State, Element, Listen, Watch} from '@stencil/core';\nimport {SettingsIcon} from '../../../utils/Icons';\nimport {Store} from '../../../utils/Datastore';\n\n/**\n * Displays a signature field. If a signature already exists, it will be displayed and the field\n * will be disabled. Otherwise, a placeholder button will be shown. Clicking the button will\n * show a dialog to adopt a signature.\n *\n * NOTE: When signature fields are completed they will be filled with a signature \"stamp\".\n * This requires operation against a live, valid envelope. If you are testing this component\n * in Storybook, it will not be visible here.\n */\n@Component({\n tag: 'verdocs-field-signature',\n styleUrl: 'verdocs-field-signature.scss',\n shadow: false,\n})\nexport class VerdocsFieldSignature {\n @Element() el: HTMLElement;\n\n /**\n * Fields may be attached to templates or envelopes, but only template fields may be edited.\n */\n @Prop({reflect: true}) source: 'template' | 'envelope' = 'template';\n\n /**\n * The source template or envelope ID the field is found in.\n */\n @Prop({reflect: true}) sourceid: string = '';\n\n /**\n * The name of the field to display.\n */\n @Prop({reflect: true}) fieldname: string = '';\n\n /**\n * Override the field's settings. This is intended to be used during signing when fields are being\n * mutated.\n */\n @Prop() field: IEnvelopeField | null | undefined = null;\n\n /**\n * If set, the signature creation dialog will be initialized with this text.\n */\n @Prop({reflect: true}) name?: string = '';\n\n /**\n * If set, overrides the field's settings object. Primarily used to support \"preview\" modes where all fields are disabled.\n */\n @Prop({reflect: true}) disabled?: boolean = false;\n\n /**\n * If set, a settings icon will be displayed on hover. The settings shown allow the field's recipient and other settings to be\n * changed, so it should typically only be enabled in the Builder.\n */\n @Prop({reflect: true}) editable?: boolean = false;\n\n /**\n * If set, the field may be dragged to a new location. This should only be enabled in the Builder, or for self-placed fields.\n */\n @Prop({reflect: true}) moveable?: boolean = false;\n\n /**\n * If set, the field is considered \"done\" and is drawn in a display-final-value state.\n */\n @Prop({reflect: true}) done?: boolean = false;\n\n /**\n * If set, the field will be be scaled horizontally by this factor.\n */\n @Prop({reflect: true}) xscale?: number = 1;\n\n /**\n * If set, the field will be be scaled vertically by this factor.\n */\n @Prop({reflect: true}) yscale?: number = 1;\n\n /**\n * The page the field is on\n */\n @Prop({reflect: true}) pagenumber?: number = 1;\n\n /**\n * If set, provides the ID of an already-adopted signature. If present, clicking the field (when empty)\n * will immediately use this signature instead of showing the adoption dialog.\n */\n @Prop({reflect: true}) signatureid?: string;\n\n /**\n * If set to true, it will force interact to unset the el, resulting in no dragging the field.\n */\n @Prop({reflect: true}) isPreview?: boolean;\n\n /**\n * Event emitted when the field has changed.\n */\n @Event({composed: true}) fieldChange: EventEmitter<string>;\n\n /**\n * Event fired on every character entered into / deleted from the field.\n */\n @Event({composed: true}) settingsPress: EventEmitter;\n\n /**\n * Event fired when the field's settings are changed.\n */\n @Event({composed: true}) settingsChanged: EventEmitter<{fieldName: string; field: ITemplateField}>;\n\n /**\n * Event fired when the field is deleted.\n */\n @Event({composed: true}) deleted: EventEmitter<{fieldName: string}>;\n\n @State() showingProperties?: boolean = false;\n @State() focused = false;\n @State() menuOpen = false;\n\n private closeMenuTimer: any = null;\n private outsideMenuHandler: ((e: Event) => void) | null = null;\n\n @Listen('blur')\n handleBlur() {\n this.focused = false;\n }\n\n @Event({composed: true}) adopt: EventEmitter;\n\n @Method()\n async focusField() {\n this.el.focus();\n this.focused = true;\n }\n\n @State()\n tempSignature: string = '';\n\n componentDidLoad() {\n this.outsideMenuHandler = (e: Event) => {\n if (this.menuOpen && !this.el.contains(e.target as Node)) {\n this.closeMenu();\n }\n };\n document.addEventListener('pointerdown', this.outsideMenuHandler);\n }\n\n disconnectedCallback() {\n if (this.closeMenuTimer) {\n clearTimeout(this.closeMenuTimer);\n this.closeMenuTimer = null;\n }\n if (this.outsideMenuHandler) {\n document.removeEventListener('pointerdown', this.outsideMenuHandler);\n this.outsideMenuHandler = null;\n }\n // Clear any interact.js drag/resize bindings so they don't leak if the DOM element is reused elsewhere\n interact(this.el).unset();\n }\n\n private openMenu = () => {\n if (this.closeMenuTimer) {\n clearTimeout(this.closeMenuTimer);\n this.closeMenuTimer = null;\n }\n this.menuOpen = true;\n };\n\n private scheduleCloseMenu = () => {\n if (this.closeMenuTimer) {\n clearTimeout(this.closeMenuTimer);\n }\n this.closeMenuTimer = setTimeout(() => {\n this.menuOpen = false;\n this.closeMenuTimer = null;\n }, 150);\n };\n\n private closeMenu = () => {\n if (this.closeMenuTimer) {\n clearTimeout(this.closeMenuTimer);\n this.closeMenuTimer = null;\n }\n this.menuOpen = false;\n };\n\n @Watch('editable')\n onEditableChanged(newVal: boolean, oldVal: boolean) {\n // When transitioning out of editable mode (e.g., builder -> preview tab), clear interact bindings\n if (oldVal && !newVal) {\n interact(this.el).unset();\n }\n }\n\n componentDidRender() {\n interact.dynamicDrop(true);\n if (this.editable) {\n interact(this.el).resizable({\n edges: {\n top: '.edge-top',\n left: '.edge-left',\n bottom: '.edge-bottom',\n right: '.edge-right',\n },\n modifiers: [\n interact.modifiers.restrictSize({\n min: {width: 71, height: 36},\n }),\n ],\n listeners: {\n start: this.handleResizeStart.bind(this),\n move: this.handleResize.bind(this),\n end: this.handleResizeEnd.bind(this),\n },\n });\n }\n }\n\n @Listen('blur')\n onBlur() {\n this.focused = false;\n }\n\n handleResizeStart(e: ResizeEvent) {\n e.preventDefault();\n e.stopPropagation();\n e.target.dataset.originalBottom = e.target.style.bottom;\n }\n\n handleResize(e: any) {\n let {width, height} = e.rect;\n\n const dX = e.deltaRect.left;\n const dY = e.deltaRect.bottom;\n const currentLeft = parseFloat(e.target.style.left);\n const currentBottom = parseFloat(e.target.style.bottom);\n\n width /= this.xscale;\n height /= this.yscale;\n\n Object.assign(e.target.style, {\n width: `${width}px`,\n height: `${height}px`,\n left: `${currentLeft + dX}px`,\n bottom: `${currentBottom - dY}px`,\n });\n }\n\n async handleResizeEnd(e: any) {\n const {sourceid, fieldname} = this;\n\n const width = Math.round(parseFloat(e.target.style.width));\n let height = Math.round(parseFloat(e.target.style.height));\n if (height < 20) {\n height = 15;\n }\n\n const newBottom = parseFloat(e.target.style.bottom);\n const originalBottom = parseFloat(e.target.dataset.originalBottom);\n const template = await Store.getTemplate(VerdocsEndpoint.getDefault(), this.sourceid);\n const oldField = template.fields.find(f => f.name === fieldname);\n const y = newBottom !== originalBottom ? newBottom / this.yscale : oldField?.y;\n\n updateField(VerdocsEndpoint.getDefault(), sourceid, fieldname, {width, height, y})\n .then(async updatedField => {\n const template = await Store.getTemplate(VerdocsEndpoint.getDefault(), this.sourceid);\n const newTemplate = JSON.parse(JSON.stringify(template)) as ITemplate;\n const fieldIndex = newTemplate.fields.findIndex(field => field.name === fieldname);\n if (fieldIndex > -1) {\n newTemplate.fields[fieldIndex] = updatedField;\n }\n Store.updateTemplate(this.sourceid, newTemplate);\n\n this.settingsChanged?.emit({fieldName: fieldname, field: updatedField});\n Object.assign(e.target.dataset, {x: 0, y: 0, h: 0});\n })\n .catch(e => console.log('Field update failed', e));\n }\n\n @Method()\n async showSettingsPanel() {\n const settingsPanel = document.getElementById(`verdocs-settings-panel-${this.fieldname}`) as any;\n if (settingsPanel && settingsPanel.showPanel) {\n settingsPanel.showPanel();\n }\n }\n\n @Method()\n async hideSettingsPanel() {\n const settingsPanel = document.getElementById(`verdocs-settings-panel-${this.fieldname}`) as any;\n if (settingsPanel && settingsPanel.hidePanel) {\n settingsPanel.hidePanel();\n }\n this.showingProperties = false;\n }\n\n render() {\n const {source, sourceid, fieldname, editable = false, done = false, disabled = false, focused, xscale = 1, yscale = 1} = this;\n\n const {index, field} = Store.getField(source, sourceid, fieldname, this.field);\n const {required = false, value = '', label = '', settings = {}} = field || {};\n const {base64} = settings;\n const signerClass = `signer-${(index % 10) + 1}`;\n\n if (done) {\n return <Host class={{'verdocs-field': true,done}}>{value && <img src={base64} alt=\"\" />}</Host>;\n }\n\n return (\n <Host class={{'verdocs-field': true,required, disabled, done, focused, filled: !!base64, 'menu-open': this.menuOpen, [signerClass]: true}}>\n {editable && <div class=\"edge-right\" />}\n {editable && <div class=\"edge-left\" />}\n {editable && <div class=\"edge-top\" />}\n {editable && <div class=\"edge-bottom\" />}\n\n {label && <label>{label}</label>}\n\n {base64 ? (\n <div\n class={{'signature-container': true, 'menu-open': this.menuOpen}}\n onMouseEnter={() => !disabled && this.openMenu()}\n onMouseLeave={() => this.scheduleCloseMenu()}\n onClick={e => {\n e.stopPropagation();\n if (disabled) return;\n this.menuOpen ? this.closeMenu() : this.openMenu();\n }}\n >\n <img src={base64} alt=\"Signature\" />\n {this.menuOpen && (\n <div class=\"action-menu\" onMouseEnter={() => this.openMenu()} onMouseLeave={() => this.scheduleCloseMenu()}>\n <button\n type=\"button\"\n class=\"menu-item\"\n onClick={e => {\n e.stopPropagation();\n if (disabled) return;\n console.log('[SIGNATURE] Editing signature');\n this.closeMenu();\n this.adopt.emit();\n }}\n >\n Edit\n </button>\n <button\n type=\"button\"\n class=\"menu-item\"\n onClick={e => {\n e.stopPropagation();\n if (disabled) return;\n console.log('[SIGNATURE] Clearing signature');\n this.closeMenu();\n this.fieldChange?.emit(null);\n }}\n >\n Clear\n </button>\n </div>\n )}\n </div>\n ) : (\n <button\n onClick={() => {\n if (disabled) return;\n // If we already have a signature ID, use it immediately\n if (this.signatureid) {\n console.log('[SIGNATURE] Reusing existing signature', this.signatureid);\n this.fieldChange?.emit(this.signatureid);\n } else {\n this.adopt.emit();\n }\n }}\n >\n Signature\n </button>\n )}\n\n {editable && (\n <Fragment>\n <div\n id={`verdocs-settings-panel-trigger-${fieldname}`}\n style={{transform: `scale(${Math.floor((1 / xscale) * 1000) / 1000}, ${Math.floor((1 / yscale) * 1000) / 1000})`}}\n class=\"settings-icon\"\n innerHTML={SettingsIcon}\n onClick={(e: any) => {\n e.stopPropagation();\n this.showingProperties = !this.showingProperties;\n }}\n />\n\n {this.showingProperties && (\n <verdocs-portal anchor={`verdocs-settings-panel-trigger-${fieldname}`} onClickAway={() => (this.showingProperties = false)}>\n <verdocs-template-field-properties\n templateId={sourceid}\n fieldName={fieldname}\n onClose={() => this.hideSettingsPanel()}\n onDelete={() => {\n this.deleted?.emit({fieldName: fieldname});\n return this.hideSettingsPanel();\n }}\n onSettingsChanged={e => {\n this.settingsChanged?.emit(e.detail);\n return this.hideSettingsPanel();\n }}\n helpText={\"Signature fields capture a recipient's signature on a document.\"}\n />\n </verdocs-portal>\n )}\n </Fragment>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["verdocsFieldSignatureCss","VerdocsFieldSignature","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","source","sourceid","fieldname","field","name","disabled","editable","moveable","done","xscale","yscale","pagenumber","showingProperties","focused","menuOpen","closeMenuTimer","outsideMenuHandler","tempSignature","openMenu","clearTimeout","scheduleCloseMenu","setTimeout","closeMenu","handleBlur","focusField","el","focus","componentDidLoad","e","contains","target","document","addEventListener","disconnectedCallback","removeEventListener","interact","unset","onEditableChanged","newVal","oldVal","componentDidRender","dynamicDrop","resizable","edges","top","left","bottom","right","modifiers","restrictSize","min","width","height","listeners","start","handleResizeStart","bind","move","handleResize","end","handleResizeEnd","onBlur","preventDefault","stopPropagation","dataset","originalBottom","style","rect","dX","deltaRect","dY","currentLeft","parseFloat","currentBottom","Object","assign","Math","round","newBottom","template","Store","getTemplate","VerdocsEndpoint","getDefault","oldField","fields","find","f","y","updateField","then","async","updatedField","newTemplate","JSON","parse","stringify","fieldIndex","findIndex","updateTemplate","_a","settingsChanged","emit","fieldName","x","h","catch","console","log","showSettingsPanel","settingsPanel","getElementById","showPanel","hideSettingsPanel","hidePanel","render","index","getField","required","value","label","settings","base64","signerClass","Host","class","src","alt","filled","onMouseEnter","onMouseLeave","onClick","type","adopt","fieldChange","signatureid","Fragment","id","transform","floor","innerHTML","SettingsIcon","anchor","onClickAway","templateId","onClose","onDelete","deleted","onSettingsChanged","detail","helpText"],"sources":["src/components/fields/verdocs-field-signature/verdocs-field-signature.scss?tag=verdocs-field-signature","src/components/fields/verdocs-field-signature/verdocs-field-signature.tsx"],"sourcesContent":["@import '../../../theme.scss';\n\nverdocs-field-signature {\n font-family: $verdocs-primary-font;\n width: 83px;\n height: 36px;\n display: block;\n font-size: 11px;\n position: relative;\n scroll-margin: 20px 0;\n letter-spacing: 0.3px;\n background-color: var(--verdocs-field-background, transparent);\n transform-origin: bottom left;\n border: var(--verdocs-field-border, 1px solid rgba(0, 0, 0, 0.2));\n border-radius: var(--verdocs-field-radius);\n // Host is focusable via tabindex; hide any browser-rendered text caret and use a pointer cursor\n // so it doesn't look like an editable text area.\n cursor: pointer;\n caret-color: transparent;\n\n label {\n top: -14px;\n left: -1px;\n height: 14px;\n color: var(--verdocs-field-text-color, white);\n padding: 0 4px;\n font-size: 9px;\n line-height: 13px;\n position: absolute;\n background: #4a4a99;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n }\n\n &.done {\n border: none;\n opacity: 1;\n }\n\n // When the Edit/Clear dropdown is open, raise this field above its siblings so\n // the menu isn't clipped by neighboring fields.\n &.menu-open {\n z-index: 50;\n }\n\n .signature-container {\n width: 100%;\n height: 100%;\n position: relative;\n\n img {\n display: block;\n height: 100%;\n width: auto;\n max-width: none;\n max-height: none;\n }\n\n .action-menu {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n min-width: 90px;\n background: #ffffff;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 6px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n font-size: 12px;\n font-family: $verdocs-primary-font;\n\n .menu-item {\n background: #ffffff;\n border: none;\n padding: 8px 12px;\n color: #333333;\n cursor: pointer;\n text-align: left;\n width: 100%;\n font-size: 12px;\n line-height: 1.2;\n height: auto;\n font-family: inherit;\n\n &:hover {\n background-color: #f0f0f0;\n color: #000000;\n }\n\n &:not(:last-child) {\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n }\n }\n }\n }\n\n &.disabled .signature-container {\n opacity: 0.5;\n pointer-events: none;\n }\n\n button {\n // This is needed to bring down the cursor from the parent element, which is where interactjs applies it\n cursor: inherit;\n\n box-sizing: border-box;\n border: none;\n color: var(--verdocs-field-text-color, rgba(0, 0, 0, 0.87));\n font-weight: 500;\n transform-origin: 0 0;\n height: 100%;\n width: 100%;\n background: none;\n font-size: 11px;\n\n &.hide {\n display: none;\n }\n }\n\n &.required {\n border: 1px solid var(--verdocs-required-field-border);\n }\n\n &.filled {\n border: none !important;\n background-color: transparent !important;\n }\n\n verdocs-button-panel {\n top: -3px;\n left: -2px;\n opacity: 0.5;\n z-index: 1000;\n cursor: pointer;\n position: absolute;\n transform: scale(0.6);\n\n &[data-active],\n &:hover {\n opacity: 1;\n }\n\n .icon {\n svg {\n fill: #333333;\n }\n\n &:hover {\n svg {\n fill: #000000;\n }\n }\n }\n }\n\n .settings-icon {\n position: absolute;\n top: -3px;\n left: -20px;\n display: inline-block;\n cursor: pointer;\n opacity: 0.3;\n\n svg {\n fill: $border-color;\n }\n\n &:hover {\n opacity: 1;\n }\n }\n\n .edge-top,\n .edge-right,\n .edge-left,\n .edge-bottom {\n position: absolute;\n z-index: 10;\n }\n\n .edge-top {\n top: -2px;\n left: 0;\n right: 0;\n height: 5px;\n }\n\n .edge-right {\n top: 0;\n bottom: 0;\n right: -2px;\n width: 5px;\n }\n\n .edge-left {\n top: 0;\n left: -2px;\n bottom: 0;\n width: 5px;\n }\n\n .edge-bottom {\n bottom: -2px;\n left: 0;\n right: 0;\n height: 5px;\n }\n}\n","import interact from 'interactjs';\nimport {ResizeEvent} from '@interactjs/actions/resize/plugin';\nimport {ITemplateField, IEnvelopeField, VerdocsEndpoint, updateField, ITemplate} from '@verdocs/js-sdk';\nimport {Component, h, Host, Prop, Event, EventEmitter, Method, Fragment, State, Element, Listen, Watch} from '@stencil/core';\nimport {SettingsIcon} from '../../../utils/Icons';\nimport {Store} from '../../../utils/Datastore';\n\n/**\n * Displays a signature field. If a signature already exists, it will be displayed and the field\n * will be disabled. Otherwise, a placeholder button will be shown. Clicking the button will\n * show a dialog to adopt a signature.\n *\n * NOTE: When signature fields are completed they will be filled with a signature \"stamp\".\n * This requires operation against a live, valid envelope. If you are testing this component\n * in Storybook, it will not be visible here.\n */\n@Component({\n tag: 'verdocs-field-signature',\n styleUrl: 'verdocs-field-signature.scss',\n shadow: false,\n})\nexport class VerdocsFieldSignature {\n @Element() el: HTMLElement;\n\n /**\n * Fields may be attached to templates or envelopes, but only template fields may be edited.\n */\n @Prop({reflect: true}) source: 'template' | 'envelope' = 'template';\n\n /**\n * The source template or envelope ID the field is found in.\n */\n @Prop({reflect: true}) sourceid: string = '';\n\n /**\n * The name of the field to display.\n */\n @Prop({reflect: true}) fieldname: string = '';\n\n /**\n * Override the field's settings. This is intended to be used during signing when fields are being\n * mutated.\n */\n @Prop() field: IEnvelopeField | null | undefined = null;\n\n /**\n * If set, the signature creation dialog will be initialized with this text.\n */\n @Prop({reflect: true}) name?: string = '';\n\n /**\n * If set, overrides the field's settings object. Primarily used to support \"preview\" modes where all fields are disabled.\n */\n @Prop({reflect: true}) disabled?: boolean = false;\n\n /**\n * If set, a settings icon will be displayed on hover. The settings shown allow the field's recipient and other settings to be\n * changed, so it should typically only be enabled in the Builder.\n */\n @Prop({reflect: true}) editable?: boolean = false;\n\n /**\n * If set, the field may be dragged to a new location. This should only be enabled in the Builder, or for self-placed fields.\n */\n @Prop({reflect: true}) moveable?: boolean = false;\n\n /**\n * If set, the field is considered \"done\" and is drawn in a display-final-value state.\n */\n @Prop({reflect: true}) done?: boolean = false;\n\n /**\n * If set, the field will be be scaled horizontally by this factor.\n */\n @Prop({reflect: true}) xscale?: number = 1;\n\n /**\n * If set, the field will be be scaled vertically by this factor.\n */\n @Prop({reflect: true}) yscale?: number = 1;\n\n /**\n * The page the field is on\n */\n @Prop({reflect: true}) pagenumber?: number = 1;\n\n /**\n * If set, provides the ID of an already-adopted signature. If present, clicking the field (when empty)\n * will immediately use this signature instead of showing the adoption dialog.\n */\n @Prop({reflect: true}) signatureid?: string;\n\n /**\n * If set to true, it will force interact to unset the el, resulting in no dragging the field.\n */\n @Prop({reflect: true}) isPreview?: boolean;\n\n /**\n * Event emitted when the field has changed.\n */\n @Event({composed: true}) fieldChange: EventEmitter<string>;\n\n /**\n * Event fired on every character entered into / deleted from the field.\n */\n @Event({composed: true}) settingsPress: EventEmitter;\n\n /**\n * Event fired when the field's settings are changed.\n */\n @Event({composed: true}) settingsChanged: EventEmitter<{fieldName: string; field: ITemplateField}>;\n\n /**\n * Event fired when the field is deleted.\n */\n @Event({composed: true}) deleted: EventEmitter<{fieldName: string}>;\n\n @State() showingProperties?: boolean = false;\n @State() focused = false;\n @State() menuOpen = false;\n\n private closeMenuTimer: any = null;\n private outsideMenuHandler: ((e: Event) => void) | null = null;\n\n @Listen('blur')\n handleBlur() {\n this.focused = false;\n }\n\n @Event({composed: true}) adopt: EventEmitter;\n\n @Method()\n async focusField() {\n this.el.focus();\n this.focused = true;\n }\n\n @State()\n tempSignature: string = '';\n\n componentDidLoad() {\n this.outsideMenuHandler = (e: Event) => {\n if (this.menuOpen && !this.el.contains(e.target as Node)) {\n this.closeMenu();\n }\n };\n document.addEventListener('pointerdown', this.outsideMenuHandler);\n }\n\n disconnectedCallback() {\n if (this.closeMenuTimer) {\n clearTimeout(this.closeMenuTimer);\n this.closeMenuTimer = null;\n }\n if (this.outsideMenuHandler) {\n document.removeEventListener('pointerdown', this.outsideMenuHandler);\n this.outsideMenuHandler = null;\n }\n // Clear any interact.js drag/resize bindings so they don't leak if the DOM element is reused elsewhere\n interact(this.el).unset();\n }\n\n private openMenu = () => {\n if (this.closeMenuTimer) {\n clearTimeout(this.closeMenuTimer);\n this.closeMenuTimer = null;\n }\n this.menuOpen = true;\n };\n\n private scheduleCloseMenu = () => {\n if (this.closeMenuTimer) {\n clearTimeout(this.closeMenuTimer);\n }\n this.closeMenuTimer = setTimeout(() => {\n this.menuOpen = false;\n this.closeMenuTimer = null;\n }, 150);\n };\n\n private closeMenu = () => {\n if (this.closeMenuTimer) {\n clearTimeout(this.closeMenuTimer);\n this.closeMenuTimer = null;\n }\n this.menuOpen = false;\n };\n\n @Watch('editable')\n onEditableChanged(newVal: boolean, oldVal: boolean) {\n // When transitioning out of editable mode (e.g., builder -> preview tab), clear interact bindings\n if (oldVal && !newVal) {\n interact(this.el).unset();\n }\n }\n\n componentDidRender() {\n interact.dynamicDrop(true);\n if (this.editable) {\n interact(this.el).resizable({\n edges: {\n top: '.edge-top',\n left: '.edge-left',\n bottom: '.edge-bottom',\n right: '.edge-right',\n },\n modifiers: [\n interact.modifiers.restrictSize({\n min: {width: 71, height: 36},\n }),\n ],\n listeners: {\n start: this.handleResizeStart.bind(this),\n move: this.handleResize.bind(this),\n end: this.handleResizeEnd.bind(this),\n },\n });\n }\n }\n\n @Listen('blur')\n onBlur() {\n this.focused = false;\n }\n\n handleResizeStart(e: ResizeEvent) {\n e.preventDefault();\n e.stopPropagation();\n e.target.dataset.originalBottom = e.target.style.bottom;\n }\n\n handleResize(e: any) {\n let {width, height} = e.rect;\n\n const dX = e.deltaRect.left;\n const dY = e.deltaRect.bottom;\n const currentLeft = parseFloat(e.target.style.left);\n const currentBottom = parseFloat(e.target.style.bottom);\n\n width /= this.xscale;\n height /= this.yscale;\n\n Object.assign(e.target.style, {\n width: `${width}px`,\n height: `${height}px`,\n left: `${currentLeft + dX}px`,\n bottom: `${currentBottom - dY}px`,\n });\n }\n\n async handleResizeEnd(e: any) {\n const {sourceid, fieldname} = this;\n\n const width = Math.round(parseFloat(e.target.style.width));\n let height = Math.round(parseFloat(e.target.style.height));\n if (height < 20) {\n height = 15;\n }\n\n const newBottom = parseFloat(e.target.style.bottom);\n const originalBottom = parseFloat(e.target.dataset.originalBottom);\n const template = await Store.getTemplate(VerdocsEndpoint.getDefault(), this.sourceid);\n const oldField = template.fields.find(f => f.name === fieldname);\n const y = newBottom !== originalBottom ? Math.round(newBottom / this.yscale) : oldField?.y;\n\n updateField(VerdocsEndpoint.getDefault(), sourceid, fieldname, {width, height, y})\n .then(async updatedField => {\n const template = await Store.getTemplate(VerdocsEndpoint.getDefault(), this.sourceid);\n const newTemplate = JSON.parse(JSON.stringify(template)) as ITemplate;\n const fieldIndex = newTemplate.fields.findIndex(field => field.name === fieldname);\n if (fieldIndex > -1) {\n newTemplate.fields[fieldIndex] = updatedField;\n }\n Store.updateTemplate(this.sourceid, newTemplate);\n\n this.settingsChanged?.emit({fieldName: fieldname, field: updatedField});\n Object.assign(e.target.dataset, {x: 0, y: 0, h: 0});\n })\n .catch(e => console.log('Field update failed', e));\n }\n\n @Method()\n async showSettingsPanel() {\n const settingsPanel = document.getElementById(`verdocs-settings-panel-${this.fieldname}`) as any;\n if (settingsPanel && settingsPanel.showPanel) {\n settingsPanel.showPanel();\n }\n }\n\n @Method()\n async hideSettingsPanel() {\n const settingsPanel = document.getElementById(`verdocs-settings-panel-${this.fieldname}`) as any;\n if (settingsPanel && settingsPanel.hidePanel) {\n settingsPanel.hidePanel();\n }\n this.showingProperties = false;\n }\n\n render() {\n const {source, sourceid, fieldname, editable = false, done = false, disabled = false, focused, xscale = 1, yscale = 1} = this;\n\n const {index, field} = Store.getField(source, sourceid, fieldname, this.field);\n const {required = false, value = '', label = '', settings = {}} = field || {};\n const {base64} = settings;\n const signerClass = `signer-${(index % 10) + 1}`;\n\n if (done) {\n return <Host class={{'verdocs-field': true,done}}>{value && <img src={base64} alt=\"\" />}</Host>;\n }\n\n return (\n <Host class={{'verdocs-field': true,required, disabled, done, focused, filled: !!base64, 'menu-open': this.menuOpen, [signerClass]: true}}>\n {editable && <div class=\"edge-right\" />}\n {editable && <div class=\"edge-left\" />}\n {editable && <div class=\"edge-top\" />}\n {editable && <div class=\"edge-bottom\" />}\n\n {label && <label>{label}</label>}\n\n {base64 ? (\n <div\n class={{'signature-container': true, 'menu-open': this.menuOpen}}\n onMouseEnter={() => !disabled && this.openMenu()}\n onMouseLeave={() => this.scheduleCloseMenu()}\n onClick={e => {\n e.stopPropagation();\n if (disabled) return;\n this.menuOpen ? this.closeMenu() : this.openMenu();\n }}\n >\n <img src={base64} alt=\"Signature\" />\n {this.menuOpen && (\n <div class=\"action-menu\" onMouseEnter={() => this.openMenu()} onMouseLeave={() => this.scheduleCloseMenu()}>\n <button\n type=\"button\"\n class=\"menu-item\"\n onClick={e => {\n e.stopPropagation();\n if (disabled) return;\n console.log('[SIGNATURE] Editing signature');\n this.closeMenu();\n this.adopt.emit();\n }}\n >\n Edit\n </button>\n <button\n type=\"button\"\n class=\"menu-item\"\n onClick={e => {\n e.stopPropagation();\n if (disabled) return;\n console.log('[SIGNATURE] Clearing signature');\n this.closeMenu();\n this.fieldChange?.emit(null);\n }}\n >\n Clear\n </button>\n </div>\n )}\n </div>\n ) : (\n <button\n onClick={() => {\n if (disabled) return;\n // If we already have a signature ID, use it immediately\n if (this.signatureid) {\n console.log('[SIGNATURE] Reusing existing signature', this.signatureid);\n this.fieldChange?.emit(this.signatureid);\n } else {\n this.adopt.emit();\n }\n }}\n >\n Signature\n </button>\n )}\n\n {editable && (\n <Fragment>\n <div\n id={`verdocs-settings-panel-trigger-${fieldname}`}\n style={{transform: `scale(${Math.floor((1 / xscale) * 1000) / 1000}, ${Math.floor((1 / yscale) * 1000) / 1000})`}}\n class=\"settings-icon\"\n innerHTML={SettingsIcon}\n onClick={(e: any) => {\n e.stopPropagation();\n this.showingProperties = !this.showingProperties;\n }}\n />\n\n {this.showingProperties && (\n <verdocs-portal anchor={`verdocs-settings-panel-trigger-${fieldname}`} onClickAway={() => (this.showingProperties = false)}>\n <verdocs-template-field-properties\n templateId={sourceid}\n fieldName={fieldname}\n onClose={() => this.hideSettingsPanel()}\n onDelete={() => {\n this.deleted?.emit({fieldName: fieldname});\n return this.hideSettingsPanel();\n }}\n onSettingsChanged={e => {\n this.settingsChanged?.emit(e.detail);\n return this.hideSettingsPanel();\n }}\n helpText={\"Signature fields capture a recipient's signature on a document.\"}\n />\n </verdocs-portal>\n )}\n </Fragment>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{p as e,H as i,c as s,h as t,d as o,t as r}from"./p-yZBlG3YQ.js";import{e as a}from"./p-BCwFpXpV.js";import{d as n}from"./p-C8yiLtCJ.js";import{c}from"./p-BfP9ezJQ.js";const l=()=>`verdocs-quick-filter{position:relative;font-family:"Inter", "Barlow", sans-serif}verdocs-quick-filter .control{outline:0;height:34px;display:-ms-flexbox;display:flex;cursor:pointer;border-radius:4px;-ms-flex-align:center;align-items:center;-ms-flex-direction:row;flex-direction:row;-webkit-box-sizing:border-box;box-sizing:border-box;background:#ffffff;-webkit-transition:all 100ms ease 0s;transition:all 100ms ease 0s;border:1px solid #cccccc}verdocs-quick-filter .title{padding:0 8px;font-size:14px;max-width:100%;overflow:hidden;color:#33364b;white-space:nowrap;-webkit-box-sizing:border-box;box-sizing:border-box;text-overflow:ellipsis}verdocs-quick-filter .title .prefix{display:inline;font-weight:700;margin:0 7px 0 0;color:#4c56cb}verdocs-quick-filter .arrow{width:32px;height:32px;border:none;outline:none;cursor:pointer;-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;background:#ffffff;-webkit-transition:color 150ms ease 0s;transition:color 150ms ease 0s}verdocs-quick-filter .arrow svg{-webkit-transition:0.3s;transition:0.3s;fill:#cccccc}verdocs-quick-filter .separator{width:1px;display:block;margin-top:8px;margin-bottom:8px;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#cccccc}verdocs-quick-filter .items{display:none;z-index:10000;position:absolute;border-radius:4px;background:#ffffff;-webkit-box-shadow:rgba(0, 0, 0, 0.1) 0 0 0 1px, rgba(0, 0, 0, 0.1) 0 4px 11px;box-shadow:rgba(0, 0, 0, 0.1) 0 0 0 1px, rgba(0, 0, 0, 0.1) 0 4px 11px}verdocs-quick-filter .items[data-show]{display:block}verdocs-quick-filter .option{width:100%;border:none;display:block;font-size:14px;text-align:left;background:none;padding:10px 20px;color:#1e2031}verdocs-quick-filter .option:hover{cursor:pointer;background:rgba(76, 86, 203, 0.2470588235)}verdocs-quick-filter .option[disabled]{color:#aaaaaa}verdocs-quick-filter .option[disabled]:hover{cursor:inherit;background:transparent;color:#aaaaaa}verdocs-quick-filter.open .items{display:block}verdocs-quick-filter.open .arrow svg{-webkit-transform:scaleY(-1);transform:scaleY(-1)}`;const d=`<svg height="20" width="20" viewBox="0 0 20 20" aria-hidden="true" focusable="false" class="css-8mmkcg"><path d="M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"></path></svg>`;const f=e(class e extends i{constructor(e){super();if(e!==false){this.__registerHost()}this.optionSelected=s(this,"optionSelected");this.options=[];this.label="Filter";this.value="";this.placeholder="Select...";this.clickListenerSymbol=new AbortController}componentDidLoad(){this.popper=c(this.dropdownButton,this.dropdownMenu,{placement:"bottom-start",modifiers:[{name:"offset",options:{offset:[-1,14]}}]});window.addEventListener("click",this.clickListener.bind(this),{signal:this.clickListenerSymbol.signal})}disconnectedCallback(){this.clickListenerSymbol.abort()}clickListener(e){const i=!(e.target==this.el||this.el.contains(e.target));if(i){this.hide()}}handleSelectOption(e,i){e.stopPropagation();this.optionSelected.emit(i);this.value=i.value;this.hide()}showDropdown(){var e,i;this.open=true;this.dropdownMenu.setAttribute("data-show","");this.dropdownMenu.removeAttribute("aria-hidden");(e=this.popper)===null||e===void 0?void 0:e.setOptions((e=>({...e,modifiers:[...e.modifiers,{name:"eventListeners",enabled:true}]}))).catch((()=>{}));(i=this.popper)===null||i===void 0?void 0:i.update().catch((()=>{}))}handleHideDropdown(e){var i,s;if(((i=e===null||e===void 0?void 0:e.target)===null||i===void 0?void 0:i.localName)==="button"&&((s=e===null||e===void 0?void 0:e.target)===null||s===void 0?void 0:s.className)==="arrow"){return}this.hide()}toggleDropdown(e){e.stopPropagation();if(this.open){this.hide()}else{this.showDropdown()}}hide(){var e;this.open=false;this.dropdownMenu.removeAttribute("data-show");this.dropdownMenu.setAttribute("aria-hidden","true");(e=this.popper)===null||e===void 0?void 0:e.setOptions((e=>({...e,modifiers:[...e.modifiers,{name:"eventListeners",enabled:false}]}))).catch((()=>{}))}render(){var e,i,s;const r=(e=this.options)===null||e===void 0?void 0:e.find((e=>e.value===this.value));const n=(i=this.options)===null||i===void 0?void 0:i.reduce(((e,i)=>e.label.length>i.label.length?e:i));const c=a((n===null||n===void 0?void 0:n.label)||"FILLER","14px Inter, Barlow, sans-serif");const l=a(this.label,"14px Inter, Barlow, sans-serif");const f=`${c+l+40}px`;return t(o,{key:"cfe727c8f805c943d18a81e1a748a07ab535349a",class:{open:!!this.open},style:{minWidth:f,display:"inline-block"}},t("div",{key:"ffb4b41d81426cd6fa82410e891cfe7a42d9ac31",class:"control",onClick:e=>this.toggleDropdown(e),onBlur:e=>this.handleHideDropdown(e)},t("div",{key:"dc1513481f6e0e8f0094924a4acc64d9ffde0f72",class:"title",ref:e=>this.dropdownButton=e},t("span",{key:"86e1fb3beda26885f1d72b176f5fcf41f13ce30b",class:"prefix"},this.label,":"),r?r.label:this.placeholder),t("div",{key:"83f7540a96890f032a1510bd653439c595944fd8",style:{flex:"1"}}),t("div",{key:"ea3222f3d719c71fa045bebc9f8ede4839d9213f",class:"separator"}),t("div",{key:"43b3f76921e94417ec2ca71e09afbb62e557b260",class:"arrow",innerHTML:d,"aria-label":"Open Menu"})),t("div",{key:"0172863407e7454d489ec5fb090c56658c39c61b",class:"items","aria-hidden":!this.open,ref:e=>this.dropdownMenu=e,style:{minWidth:f}},(s=this.options)===null||s===void 0?void 0:s.map((e=>e.label?t("button",{onClick:i=>this.handleSelectOption(i,e),class:`option ${e.value===this.value?"selected":""}`,disabled:e.disabled},e.label):t("div",{class:"separator"})))))}get el(){return this}static get style(){return l()}},[0,"verdocs-quick-filter",{options:[16],label:[1],value:[1537],placeholder:[1],open:[32]}]);function p(){if(typeof customElements==="undefined"){return}const e=["verdocs-quick-filter","verdocs-flag"];e.forEach((e=>{switch(e){case"verdocs-quick-filter":if(!customElements.get(r(e))){customElements.define(r(e),f)}break;case"verdocs-flag":if(!customElements.get(r(e))){n()}break}}))}export{f as V,p as d};
2
- //# sourceMappingURL=p-DTG2X1A2.js.map
1
+ import{p as e,H as i,c as s,h as t,d as o,t as r}from"./p-yZBlG3YQ.js";import{f as a}from"./p-zYtapVJ0.js";import{d as n}from"./p-C8yiLtCJ.js";import{c}from"./p-BfP9ezJQ.js";const l=()=>`verdocs-quick-filter{position:relative;font-family:"Inter", "Barlow", sans-serif}verdocs-quick-filter .control{outline:0;height:34px;display:-ms-flexbox;display:flex;cursor:pointer;border-radius:4px;-ms-flex-align:center;align-items:center;-ms-flex-direction:row;flex-direction:row;-webkit-box-sizing:border-box;box-sizing:border-box;background:#ffffff;-webkit-transition:all 100ms ease 0s;transition:all 100ms ease 0s;border:1px solid #cccccc}verdocs-quick-filter .title{padding:0 8px;font-size:14px;max-width:100%;overflow:hidden;color:#33364b;white-space:nowrap;-webkit-box-sizing:border-box;box-sizing:border-box;text-overflow:ellipsis}verdocs-quick-filter .title .prefix{display:inline;font-weight:700;margin:0 7px 0 0;color:#4c56cb}verdocs-quick-filter .arrow{width:32px;height:32px;border:none;outline:none;cursor:pointer;-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;background:#ffffff;-webkit-transition:color 150ms ease 0s;transition:color 150ms ease 0s}verdocs-quick-filter .arrow svg{-webkit-transition:0.3s;transition:0.3s;fill:#cccccc}verdocs-quick-filter .separator{width:1px;display:block;margin-top:8px;margin-bottom:8px;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#cccccc}verdocs-quick-filter .items{display:none;z-index:10000;position:absolute;border-radius:4px;background:#ffffff;-webkit-box-shadow:rgba(0, 0, 0, 0.1) 0 0 0 1px, rgba(0, 0, 0, 0.1) 0 4px 11px;box-shadow:rgba(0, 0, 0, 0.1) 0 0 0 1px, rgba(0, 0, 0, 0.1) 0 4px 11px}verdocs-quick-filter .items[data-show]{display:block}verdocs-quick-filter .option{width:100%;border:none;display:block;font-size:14px;text-align:left;background:none;padding:10px 20px;color:#1e2031}verdocs-quick-filter .option:hover{cursor:pointer;background:rgba(76, 86, 203, 0.2470588235)}verdocs-quick-filter .option[disabled]{color:#aaaaaa}verdocs-quick-filter .option[disabled]:hover{cursor:inherit;background:transparent;color:#aaaaaa}verdocs-quick-filter.open .items{display:block}verdocs-quick-filter.open .arrow svg{-webkit-transform:scaleY(-1);transform:scaleY(-1)}`;const d=`<svg height="20" width="20" viewBox="0 0 20 20" aria-hidden="true" focusable="false" class="css-8mmkcg"><path d="M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"></path></svg>`;const f=e(class e extends i{constructor(e){super();if(e!==false){this.__registerHost()}this.optionSelected=s(this,"optionSelected");this.options=[];this.label="Filter";this.value="";this.placeholder="Select...";this.clickListenerSymbol=new AbortController}componentDidLoad(){this.popper=c(this.dropdownButton,this.dropdownMenu,{placement:"bottom-start",modifiers:[{name:"offset",options:{offset:[-1,14]}}]});window.addEventListener("click",this.clickListener.bind(this),{signal:this.clickListenerSymbol.signal})}disconnectedCallback(){this.clickListenerSymbol.abort()}clickListener(e){const i=!(e.target==this.el||this.el.contains(e.target));if(i){this.hide()}}handleSelectOption(e,i){e.stopPropagation();this.optionSelected.emit(i);this.value=i.value;this.hide()}showDropdown(){var e,i;this.open=true;this.dropdownMenu.setAttribute("data-show","");this.dropdownMenu.removeAttribute("aria-hidden");(e=this.popper)===null||e===void 0?void 0:e.setOptions((e=>({...e,modifiers:[...e.modifiers,{name:"eventListeners",enabled:true}]}))).catch((()=>{}));(i=this.popper)===null||i===void 0?void 0:i.update().catch((()=>{}))}handleHideDropdown(e){var i,s;if(((i=e===null||e===void 0?void 0:e.target)===null||i===void 0?void 0:i.localName)==="button"&&((s=e===null||e===void 0?void 0:e.target)===null||s===void 0?void 0:s.className)==="arrow"){return}this.hide()}toggleDropdown(e){e.stopPropagation();if(this.open){this.hide()}else{this.showDropdown()}}hide(){var e;this.open=false;this.dropdownMenu.removeAttribute("data-show");this.dropdownMenu.setAttribute("aria-hidden","true");(e=this.popper)===null||e===void 0?void 0:e.setOptions((e=>({...e,modifiers:[...e.modifiers,{name:"eventListeners",enabled:false}]}))).catch((()=>{}))}render(){var e,i,s;const r=(e=this.options)===null||e===void 0?void 0:e.find((e=>e.value===this.value));const n=(i=this.options)===null||i===void 0?void 0:i.reduce(((e,i)=>e.label.length>i.label.length?e:i));const c=a((n===null||n===void 0?void 0:n.label)||"FILLER","14px Inter, Barlow, sans-serif");const l=a(this.label,"14px Inter, Barlow, sans-serif");const f=`${c+l+40}px`;return t(o,{key:"cfe727c8f805c943d18a81e1a748a07ab535349a",class:{open:!!this.open},style:{minWidth:f,display:"inline-block"}},t("div",{key:"ffb4b41d81426cd6fa82410e891cfe7a42d9ac31",class:"control",onClick:e=>this.toggleDropdown(e),onBlur:e=>this.handleHideDropdown(e)},t("div",{key:"dc1513481f6e0e8f0094924a4acc64d9ffde0f72",class:"title",ref:e=>this.dropdownButton=e},t("span",{key:"86e1fb3beda26885f1d72b176f5fcf41f13ce30b",class:"prefix"},this.label,":"),r?r.label:this.placeholder),t("div",{key:"83f7540a96890f032a1510bd653439c595944fd8",style:{flex:"1"}}),t("div",{key:"ea3222f3d719c71fa045bebc9f8ede4839d9213f",class:"separator"}),t("div",{key:"43b3f76921e94417ec2ca71e09afbb62e557b260",class:"arrow",innerHTML:d,"aria-label":"Open Menu"})),t("div",{key:"0172863407e7454d489ec5fb090c56658c39c61b",class:"items","aria-hidden":!this.open,ref:e=>this.dropdownMenu=e,style:{minWidth:f}},(s=this.options)===null||s===void 0?void 0:s.map((e=>e.label?t("button",{onClick:i=>this.handleSelectOption(i,e),class:`option ${e.value===this.value?"selected":""}`,disabled:e.disabled},e.label):t("div",{class:"separator"})))))}get el(){return this}static get style(){return l()}},[0,"verdocs-quick-filter",{options:[16],label:[1],value:[1537],placeholder:[1],open:[32]}]);function p(){if(typeof customElements==="undefined"){return}const e=["verdocs-quick-filter","verdocs-flag"];e.forEach((e=>{switch(e){case"verdocs-quick-filter":if(!customElements.get(r(e))){customElements.define(r(e),f)}break;case"verdocs-flag":if(!customElements.get(r(e))){n()}break}}))}export{f as V,p as d};
2
+ //# sourceMappingURL=p-BeDDvLcN.js.map
@@ -0,0 +1,2 @@
1
+ import{p as t,H as e,c as s,h as i,d as o,F as l,t as d}from"./p-yZBlG3YQ.js";import{i as a}from"./p-COaijEV0.js";import{VerdocsEndpoint as r,getTemplate as n,updateField as c,createField as h,integerSequence as m}from"@verdocs/js-sdk";import{g as p,i as v,j as f,k as u,d as g,l as w}from"./p-zYtapVJ0.js";import{D as x}from"./p-C7k2AOsW.js";import{V as b}from"./p-D97GxsI-.js";import{S as k}from"./p-C1sRVZWv.js";import{S as E}from"./p-C7hFgM52.js";import{d as q}from"./p-Bb5V9TQx.js";import{d as C}from"./p-NtvxlYzY.js";import{d as Z}from"./p-C-v22G3g.js";import{d as y}from"./p-C90lxyUX.js";import{d as M}from"./p-5M_R8La0.js";import{d as V}from"./p-BLsFdjFq.js";import{d as H}from"./p-C8ZliaLz.js";import{d as S}from"./p-YCI5JKXK.js";import{d as j}from"./p-h3swu3rA.js";import{d as L}from"./p-DbWcp3S8.js";import{d as D}from"./p-BPcxbmXF.js";import{d as F}from"./p-CAJJndLX.js";import{d as z}from"./p-DMaRtkQF.js";import{d as I}from"./p-DReW8CSB.js";import{d as T}from"./p-C8yiLtCJ.js";import{d as Q}from"./p-DHzSlpJw.js";import{d as B}from"./p-DqzFuSNN.js";import{d as N}from"./p-5FU3bYQ3.js";import{d as P}from"./p-DhOuB4nS.js";import{d as R}from"./p-Bodw4NVB.js";import{d as A}from"./p-DX713VO2.js";import{d as U}from"./p-qLNetL5t.js";import{d as Y}from"./p-PfdIkMoz.js";import{d as J}from"./p-B-ul_Soj.js";import{d as O}from"./p-DM3wePVp.js";const W=()=>`verdocs-template-fields{font-family:var(--verdocs-primary-font, "Inter", "Barlow", sans-serif);position:relative;display:block;min-height:600px}verdocs-template-fields .verdocs-field-selected{outline:2px solid rgba(101, 77, 203, 0.75);outline-offset:1px}verdocs-template-fields .page-0{padding:65px 15px 0 15px;-webkit-box-sizing:border-box;box-sizing:border-box}verdocs-template-fields .page-0 .user-placed-fields{height:100px;position:relative;background:#ffffff;-webkit-box-shadow:0 0 10px 5px rgba(0, 0, 0, 0.0588235294);box-shadow:0 0 10px 5px rgba(0, 0, 0, 0.0588235294)}verdocs-template-fields .page-0 .user-placed-fields .title{top:0;left:0;color:#ffffff;font-size:12px;padding:3px 6px;font-weight:bold;position:absolute;background:#46497d}verdocs-template-fields .pages{display:-ms-flexbox;display:flex;padding:15px;row-gap:15px;min-height:200px;position:relative;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-direction:column;flex-direction:column}verdocs-template-fields .pages div,verdocs-template-fields .pages canvas{-webkit-box-sizing:border-box;box-sizing:border-box}verdocs-template-fields .pages .document-separator{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:10px;padding:12px 20px;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#33364b;color:white;border-radius:6px;font-size:16px;font-weight:500;margin-top:20px;-webkit-box-shadow:0 2px 4px rgba(0, 0, 0, 0.1);box-shadow:0 2px 4px rgba(0, 0, 0, 0.1)}verdocs-template-fields .pages .document-separator svg{-ms-flex-negative:0;flex-shrink:0}verdocs-template-fields .pages .document-separator:first-child{margin-top:0}verdocs-template-fields #verdocs-template-fields-toolbar{width:100%;height:50px;display:-ms-flexbox;display:flex;-webkit-column-gap:15px;-moz-column-gap:15px;column-gap:15px;font-weight:700;padding:0 20px 0 0;-ms-flex-align:center;align-items:center;-ms-flex-direction:row;flex-direction:row;color:#f5f5fa;-ms-flex-pack:center;justify-content:center;background:#46497d}verdocs-template-fields #verdocs-template-fields-toolbar>verdocs-select-input{margin:0}verdocs-template-fields #verdocs-template-fields-toolbar svg{width:24px;height:24px}verdocs-template-fields #verdocs-template-fields-toolbar .add-for{margin:0;font-weight:500;color:#f5f5fa}verdocs-template-fields #verdocs-template-fields-toolbar verdocs-select-input{margin:0 20px 0 0}@media all and (max-width: 1000px){verdocs-template-fields #verdocs-template-fields-toolbar{-webkit-column-gap:8px;-moz-column-gap:8px;column-gap:8px;padding:0 10px 0 0}verdocs-template-fields #verdocs-template-fields-toolbar svg{-webkit-transform:scale(0.8);transform:scale(0.8)}verdocs-template-fields #verdocs-template-fields-toolbar .add-for,verdocs-template-fields #verdocs-template-fields-toolbar verdocs-select-input{display:none}}@media all and (max-width: 600px){verdocs-template-fields #verdocs-template-fields-toolbar{-webkit-column-gap:6px;-moz-column-gap:6px;column-gap:6px}verdocs-template-fields #verdocs-template-fields-toolbar svg{-webkit-transform:scale(0.6);transform:scale(0.6)}verdocs-template-fields #verdocs-template-fields-toolbar .separator,verdocs-template-fields #verdocs-template-fields-toolbar .add-for,verdocs-template-fields #verdocs-template-fields-toolbar verdocs-select-input{display:none}}verdocs-template-fields.placing-attachment{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath d='m10.55 16.55 7.275-7.275L16.05 7.5l-5.5 5.45-2.675-2.65L6.1 12.075Zm-5.375 4.925q-1.125 0-1.887-.763-.763-.762-.763-1.887V5.175q0-1.125.763-1.888.762-.762 1.887-.762h13.65q1.125 0 1.888.762.762.763.762 1.888v13.65q0 1.125-.762 1.887-.763.763-1.888.763Zm0-2.65h13.65V5.175H5.175v13.65Zm0-13.65v13.65-13.65Z'/%3E%3C/svg%3E") 16 16, pointer}verdocs-template-fields.placing-checkbox{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath d='m10.55 16.55 7.275-7.275L16.05 7.5l-5.5 5.45-2.675-2.65L6.1 12.075Zm-5.375 4.925q-1.125 0-1.887-.763-.763-.762-.763-1.887V5.175q0-1.125.763-1.888.762-.762 1.887-.762h13.65q1.125 0 1.888.762.762.763.762 1.888v13.65q0 1.125-.762 1.887-.763.763-1.888.763Zm0-2.65h13.65V5.175H5.175v13.65Zm0-13.65v13.65-13.65Z'/%3E%3C/svg%3E") 16 16, pointer}verdocs-template-fields.placing-date{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath fill='%23000000' d='M7.6 13.925q-.55 0-.925-.375t-.375-.925q0-.55.375-.937.375-.388.925-.388t.925.388q.375.387.375.937t-.375.925q-.375.375-.925.375Zm4.4 0q-.55 0-.925-.375t-.375-.925q0-.55.375-.937.375-.388.925-.388t.925.388q.375.387.375.937t-.375.925q-.375.375-.925.375Zm4.4 0q-.55 0-.925-.375t-.375-.925q0-.55.375-.937.375-.388.925-.388t.925.388q.375.387.375.937t-.375.925q-.375.375-.925.375ZM5.3 22.85q-1.325 0-2.238-.912-.912-.913-.912-2.238V6.3q0-1.325.912-2.238.913-.912 2.238-.912H6v-2h2.575v2h6.85v-2H18v2h.7q1.325 0 2.238.912.912.913.912 2.238v13.4q0 1.325-.912 2.238-.913.912-2.238.912Zm0-3.15h13.4V10H5.3v9.7ZM5.3 8h13.4V6.3H5.3Zm0 0V6.3 8Z'/%3E%3C/svg%3E") 16 16, pointer}verdocs-template-fields.placing-dropdown{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24' stroke-width='1.5' stroke='currentColor'%3E%3Cpath stroke='%23000000' stroke-linecap='round' stroke-linejoin='round' d='M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0l-3.75-3.75M17.25 21L21 17.25' /%3E%3C/svg%3E") 16 16, pointer}verdocs-template-fields.placing-initial{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath d='M6.225 20.775V7h-5V3.225H15V7h-5v13.775Zm9.775 0v-8h-3V9h9.775v3.775h-3v8Z'/%3E%3C/svg%3E") 16 16, pointer}verdocs-template-fields.placing-payment{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath d='m10.55 16.55 7.275-7.275L16.05 7.5l-5.5 5.45-2.675-2.65L6.1 12.075Zm-5.375 4.925q-1.125 0-1.887-.763-.763-.762-.763-1.887V5.175q0-1.125.763-1.888.762-.762 1.887-.762h13.65q1.125 0 1.888.762.762.763.762 1.888v13.65q0 1.125-.762 1.887-.763.763-1.888.763Zm0-2.65h13.65V5.175H5.175v13.65Zm0-13.65v13.65-13.65Z'/%3E%3C/svg%3E") 16 16, pointer}verdocs-template-fields.placing-radio{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath d='M12 17q2.075 0 3.538-1.463Q17 14.075 17 12t-1.462-3.538Q14.075 7 12 7 9.925 7 8.463 8.462 7 9.925 7 12q0 2.075 1.463 3.537Q9.925 17 12 17Zm0 5.85q-2.275 0-4.25-.85t-3.438-2.312Q2.85 18.225 2 16.25q-.85-1.975-.85-4.25T2 7.75q.85-1.975 2.312-3.438Q5.775 2.85 7.75 2q1.975-.85 4.25-.85t4.25.85q1.975.85 3.438 2.312Q21.15 5.775 22 7.75q.85 1.975.85 4.25T22 16.25q-.85 1.975-2.312 3.438Q18.225 21.15 16.25 22q-1.975.85-4.25.85Zm0-3.15q3.25 0 5.475-2.225Q19.7 15.25 19.7 12q0-3.25-2.225-5.475Q15.25 4.3 12 4.3q-3.25 0-5.475 2.225Q4.3 8.75 4.3 12q0 3.25 2.225 5.475Q8.75 19.7 12 19.7Zm0-7.7Z'/%3E%3C/svg%3E") 16 16, pointer}verdocs-template-fields.placing-signature{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath d='m9.225 21.225 4.65-4.65h8.45v4.65Zm-5.35-2.2H5.05l8.5-8.5-1.175-1.175-8.5 8.5Zm14.25-9.95L13.8 4.8l1.325-1.325q.625-.65 1.525-.663.9-.012 1.6.663l1.225 1.175q.675.675.663 1.562-.013.888-.663 1.513ZM16.7 10.55 6 21.225H1.675V16.9L12.35 6.225Zm-3.725-.625-.6-.575 1.175 1.175Z'/%3E%3C/svg%3E") 16 16, pointer}verdocs-template-fields.placing-textarea{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath d='M3.225 20.725v-3.15h11.55v3.15Zm0-4.775V12.8h17.55v3.15Zm0-4.75V8.05h17.55v3.15Zm0-4.775v-3.15h17.55v3.15Z'/%3E%3C/svg%3E") 16 16, pointer}verdocs-template-fields.placing-textbox{cursor:url("data:image/svg+xml,%3Csvg width='32' height='15' viewBox='0 0 32 15' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cmask id='path-1-inside-1_1401_24' fill='white'%3E%3Cpath d='M0 0H32V15H0V0Z'/%3E%3C/mask%3E%3Cpath d='M0 0H32V15H0V0Z' fill='%234C56CB' fill-opacity='0.1'/%3E%3Cpath d='M0 0V-1H-1V0H0ZM0 15H-1V16H0V15ZM0 1H32V-1H0V1ZM32 14H0V16H32V14ZM1 15V0H-1V15H1Z' fill='%234C56CB' mask='url(%23path-1-inside-1_1401_24)'/%3E%3Cpath d='M3 11.8V8.65H14.15V11.8H3ZM3 6.65V3.5H20.15V6.65H3Z' fill='%234C56CB'/%3E%3Cline x1='31.5' y1='1' x2='31.5' y2='14' stroke='%234C56CB' stroke-opacity='0.32' stroke-dasharray='1 1'/%3E%3C/svg%3E%0A") 0 14, pointer}verdocs-template-fields.placing-timestamp{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath fill='%23000000' d='M9 1h6v2H9zm10.03 6.39 1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42C16.07 4.74 14.12 4 12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9 9-4.03 9-9c0-2.12-.74-4.07-1.97-5.61zM13 14h-2V8h2v6z'%3E%3C/path%3E%3C/svg%3E") 16 16, pointer}`;const X='<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"><path fill="#ffffff" d="M3.425 16.15V13h11.15v3.15Zm0-5.15V7.85h17.15V11Z"/></svg>';const $='<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"><path fill="#ffffff" d="m10.55 16.55 7.275-7.275L16.05 7.5l-5.5 5.45-2.675-2.65L6.1 12.075Zm-5.375 4.925q-1.125 0-1.887-.763-.763-.762-.763-1.887V5.175q0-1.125.763-1.888.762-.762 1.887-.762h13.65q1.125 0 1.888.762.762.763.762 1.888v13.65q0 1.125-.762 1.887-.763.763-1.888.763Zm0-2.65h13.65V5.175H5.175v13.65Zm0-13.65v13.65-13.65Z"/></svg>';const _='<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"><path fill="#ffffff" d="M12 17q2.075 0 3.538-1.463Q17 14.075 17 12t-1.462-3.538Q14.075 7 12 7 9.925 7 8.463 8.462 7 9.925 7 12q0 2.075 1.463 3.537Q9.925 17 12 17Zm0 5.85q-2.275 0-4.25-.85t-3.438-2.312Q2.85 18.225 2 16.25q-.85-1.975-.85-4.25T2 7.75q.85-1.975 2.312-3.438Q5.775 2.85 7.75 2q1.975-.85 4.25-.85t4.25.85q1.975.85 3.438 2.312Q21.15 5.775 22 7.75q.85 1.975.85 4.25T22 16.25q-.85 1.975-2.312 3.438Q18.225 21.15 16.25 22q-1.975.85-4.25.85Zm0-3.15q3.25 0 5.475-2.225Q19.7 15.25 19.7 12q0-3.25-2.225-5.475Q15.25 4.3 12 4.3q-3.25 0-5.475 2.225Q4.3 8.75 4.3 12q0 3.25 2.225 5.475Q8.75 19.7 12 19.7Zm0-7.7Z"/></svg>';const G='<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"><path fill="#ffffff" d="M7.6 13.925q-.55 0-.925-.375t-.375-.925q0-.55.375-.937.375-.388.925-.388t.925.388q.375.387.375.937t-.375.925q-.375.375-.925.375Zm4.4 0q-.55 0-.925-.375t-.375-.925q0-.55.375-.937.375-.388.925-.388t.925.388q.375.387.375.937t-.375.925q-.375.375-.925.375Zm4.4 0q-.55 0-.925-.375t-.375-.925q0-.55.375-.937.375-.388.925-.388t.925.388q.375.387.375.937t-.375.925q-.375.375-.925.375ZM5.3 22.85q-1.325 0-2.238-.912-.912-.913-.912-2.238V6.3q0-1.325.912-2.238.913-.912 2.238-.912H6v-2h2.575v2h6.85v-2H18v2h.7q1.325 0 2.238.912.912.913.912 2.238v13.4q0 1.325-.912 2.238-.913.912-2.238.912Zm0-3.15h13.4V10H5.3v9.7ZM5.3 8h13.4V6.3H5.3Zm0 0V6.3 8Z"/></svg>';const K='<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"><path fill="#ffffff" d="m9.225 21.225 4.65-4.65h8.45v4.65Zm-5.35-2.2H5.05l8.5-8.5-1.175-1.175-8.5 8.5Zm14.25-9.95L13.8 4.8l1.325-1.325q.625-.65 1.525-.663.9-.012 1.6.663l1.225 1.175q.675.675.663 1.562-.013.888-.663 1.513ZM16.7 10.55 6 21.225H1.675V16.9L12.35 6.225Zm-3.725-.625-.6-.575 1.175 1.175Z"/></svg>';const tt='<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"><path fill="#ffffff" d="M6.225 20.775V7h-5V3.225H15V7h-5v13.775Zm9.775 0v-8h-3V9h9.775v3.775h-3v8Z"/></svg>';const et='<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" stroke-width="1.5" stroke="currentColor"><path stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" d="M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0l-3.75-3.75M17.25 21L21 17.25" /></svg>';const st='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-6"><path stroke-linecap="round" stroke-linejoin="round" d="m18.375 12.739-7.693 7.693a4.5 4.5 0 0 1-6.364-6.364l10.94-10.94A3 3 0 1 1 19.5 7.372L8.552 18.32m.009-.01-.01.01m5.699-9.941-7.81 7.81a1.5 1.5 0 0 0 2.112 2.13" /></svg>';const it='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14.707 14.707"><g><rect x="6.275" y="0" fill="#ffffff7f" width="1" height="15"/></g></svg>';const ot=["x","y","width","height","page","multiline"];const lt=400;const dt=50;const at=t=>!!t&&(["INPUT","TEXTAREA","SELECT"].includes(t.tagName)||t.isContentEditable);const rt=[{id:"signature",tooltip:"Signature",icon:K,class:"signature"},{id:"initial",tooltip:"Initials",icon:tt,class:"initial"},{id:"sep1",tooltip:"",icon:it,class:"separator"},{id:"textbox",tooltip:"Text Box",icon:X,class:"textbox"},{id:"checkbox",tooltip:"Check Box",icon:$,class:"checkbox"},{id:"radio",tooltip:"Radio Button",icon:_,class:"radio"},{id:"dropdown",tooltip:"Dropdown",icon:et,class:"dropdown"},{id:"sep2",tooltip:"",icon:it,class:"separator"},{id:"date",tooltip:"Date",icon:G,class:"date"},{id:"attachment",tooltip:"Attachment",icon:st,class:"attachment"}];const nt=t(class t extends e{constructor(t){super();if(t!==false){this.__registerHost()}this.sdkError=s(this,"sdkError");this.templateUpdated=s(this,"templateUpdated");this.templateListenerId=null;this.endpoint=r.getDefault();this.templateId=null;this.toolbarTargetId=null;this.placing=null;this.showMustSelectRole=false;this.selectedRoleName="";this.loading=true;this.template=null;this.pageHeights={};this.selectedFieldName=null;this.undoStack=[];this.pendingNudge=null;this.nudgeTimer=null;this.dragBefore=null;this.optimistic=new Map;this.inFlight=new Set;this.pendingResizes=new Map;this.handleFieldTap=t=>{var e,s;return this.selectField(((s=(e=t.currentTarget)===null||e===void 0?void 0:e.getAttribute)===null||s===void 0?void 0:s.call(e,"fieldname"))||null)};this.handleFieldResizeStart=t=>{var e,s;const i=((s=(e=t.target)===null||e===void 0?void 0:e.getAttribute)===null||s===void 0?void 0:s.call(e,"fieldname"))||null;this.flushNudge();this.selectField(i);this.startResize(i)};this.cachedPageInfo={}}onTemplateIdChanged(){this.listenToTemplate()}handleKeyDown(t){var e,s;if(t.key==="Escape"){this.placing=null;this.selectField(null);return}const i=((e=t.composedPath)===null||e===void 0?void 0:e.call(t)[0])||t.target;if(t.defaultPrevented||at(i)){return}if(i!==document.body&&i!==document.documentElement&&!this.el.contains(i)){return}if((t.metaKey||t.ctrlKey)&&!t.shiftKey&&!t.altKey&&t.key.toLowerCase()==="z"){if(this.pendingNudge||this.undoStack.length>0||this.inFlight.size>0||this.pendingResizes.size>0){t.preventDefault();this.undo()}return}const o=t.shiftKey?10:1;const l={ArrowLeft:[-o,0],ArrowRight:[o,0],ArrowUp:[0,o],ArrowDown:[0,-o]}[t.key];if(!l||!this.selectedFieldName||t.metaKey||t.ctrlKey||t.altKey){return}const d=this.findField(this.selectedFieldName);const a=d?(s=document.getElementById(p(d)))===null||s===void 0?void 0:s.getBoundingClientRect():null;if(!a||a.bottom<0||a.top>window.innerHeight||a.right<0||a.left>window.innerWidth){this.selectField(null);return}t.preventDefault();this.nudge(l[0],l[1])}handleFieldSettingsChanged(t){var e;const{fieldName:s,field:i}=t.detail||{};if(i&&s&&i.name!==s){this.renameFieldState(s,i.name)}const o=i?this.pendingResizes.get(i.name):null;if(o){this.recordUndo(i.name,o.before,i);o.settle()}(e=this.templateUpdated)===null||e===void 0?void 0:e.emit({endpoint:this.endpoint,template:this.template,event:"updated-field"})}handleFieldDeleted(t){var e,s;const i=(e=t.detail)===null||e===void 0?void 0:e.fieldName;if(i){this.forgetField(i)}(s=this.templateUpdated)===null||s===void 0?void 0:s.emit({endpoint:this.endpoint,template:this.template,event:"deleted-field"})}async componentWillLoad(){var t,e,s;try{this.endpoint.loadSession();if(!this.templateId){console.log(`[FIELDS] Missing required template ID ${this.templateId}`);return}if(!this.endpoint.session){console.log("[FIELDS] Unable to start builder session, must be authenticated");return}this.listenToTemplate()}catch(i){console.log("[FIELDS] Error with fields session",i);(t=this.sdkError)===null||t===void 0?void 0:t.emit(new k(i.message,(e=i.response)===null||e===void 0?void 0:e.status,(s=i.response)===null||s===void 0?void 0:s.data))}}componentDidRender(){a.dynamicDrop(true);document.querySelectorAll(".verdocs-field").forEach((t=>{this.makeDraggable(t)}));const t=this.toolbarTargetId?document.getElementById(this.toolbarTargetId):null;const e=document.getElementById("verdocs-template-fields-toolbar");if(t&&e){e.remove();t.append(e)}this.applySelection()}componentWillUpdate(){var t,e;const s=[...((t=this.template)===null||t===void 0?void 0:t.roles)||[]].sort(((t,e)=>{var s,i;return((s=t.sequence)!==null&&s!==void 0?s:0)-((i=e.sequence)!==null&&i!==void 0?i:0)}));if(!this.selectedRoleName||!s.find((t=>t&&t.name===this.selectedRoleName))){this.selectedRoleName=((e=s[0])===null||e===void 0?void 0:e.name)||"";console.log("[FIELDS] Selected new role",this.selectedRoleName)}}disconnectedCallback(){this.unlistenToTemplate();this.flushNudge();this.selectField(null)}async listenToTemplate(){this.unlistenToTemplate();E.subscribe("templates",this.templateId,(()=>n(this.endpoint,this.templateId)),false,(t=>{var e;console.log("Template updated");this.template=t;this.loading=false;if(!this.selectedRoleName){const s=[...t.roles||[]].sort(((t,e)=>{var s,i;return((s=t.sequence)!==null&&s!==void 0?s:0)-((i=e.sequence)!==null&&i!==void 0?i:0)}));this.selectedRoleName=((e=s[0])===null||e===void 0?void 0:e.name)||""}}))}unlistenToTemplate(){if(this.templateListenerId){E.store.delListener(this.templateListenerId);this.templateListenerId=null}}handlePageRendered(t){var e,s;var i,o;const l=t.detail;console.log("[FIELDS] Page rendered",l.documentId,l.pageNumber,l.xScale,l.yScale);(e=(i=this.cachedPageInfo)[o=l.documentId])!==null&&e!==void 0?e:i[o]={};this.cachedPageInfo[l.documentId][l.pageNumber]=l;this.pageHeights[l.pageNumber]=l.naturalHeight;(((s=this.template)===null||s===void 0?void 0:s.fields)||[]).filter((t=>t&&t.page===l.pageNumber)).forEach((t=>{const e=p(t);const s=document.getElementById(e);if(s){s.setAttribute("templateid",this.templateId);s.setAttribute("fieldname",t.name);s.setAttribute("documentid",String(t.document_id));s.setAttribute("pagenumber",String(t.page));s.setAttribute("xScale",String(l.xScale));s.setAttribute("yScale",String(l.yScale));this.makeDraggable(s)}}))}makeDraggable(t){a(t).draggable({listeners:{start:this.handleMoveStart.bind(this),move:this.handleMoveField.bind(this),end:this.handleMoveEnd.bind(this)}}).off("tap",this.handleFieldTap).on("tap",this.handleFieldTap).off("resizestart",this.handleFieldResizeStart).on("resizestart",this.handleFieldResizeStart)}findField(t){var e;return t?(((e=this.template)===null||e===void 0?void 0:e.fields)||[]).find((e=>e.name===t)):undefined}currentGeometry(t){const{x:e,y:s,width:i,height:o,page:l,multiline:d}={...t,...this.optimistic.get(t.name)};return{x:e,y:s,width:i,height:o,page:l,multiline:d}}selectField(t){if(this.pendingNudge&&this.pendingNudge.name!==t){this.flushNudge()}this.selectedFieldName=t;this.applySelection()}applySelection(){var t;document.querySelectorAll(".verdocs-field-selected").forEach((t=>t.classList.remove("verdocs-field-selected")));const e=this.findField(this.selectedFieldName);if(e){(t=document.getElementById(p(e)))===null||t===void 0?void 0:t.classList.add("verdocs-field-selected")}}recordUndo(t,e,s){if(ot.some((t=>s[t]!==undefined&&s[t]!==e[t]))){this.undoStack.push({name:t,before:e});this.undoStack.splice(0,Math.max(0,this.undoStack.length-dt))}}startResize(t){var e;const s=this.findField(t);if(!s){return}(e=this.pendingResizes.get(s.name))===null||e===void 0?void 0:e.settle();let i;const o=new Promise((t=>i=t));const l={before:this.currentGeometry(s),settle:()=>i(),done:o};this.pendingResizes.set(s.name,l);const d=setTimeout((()=>l.settle()),5e3);o.then((()=>{clearTimeout(d);if(this.pendingResizes.get(s.name)===l){this.pendingResizes.delete(s.name)}}))}renameFieldState(t,e){this.undoStack.forEach((s=>s.name===t&&(s.name=e)));if(this.selectedFieldName===t){this.selectedFieldName=e}}forgetField(t){var e,s;this.undoStack=this.undoStack.filter((e=>e.name!==t));this.optimistic.delete(t);(e=this.pendingResizes.get(t))===null||e===void 0?void 0:e.settle();if(((s=this.pendingNudge)===null||s===void 0?void 0:s.name)===t){clearTimeout(this.nudgeTimer);this.nudgeTimer=null;this.pendingNudge=null}if(this.selectedFieldName===t){this.selectField(null)}}drawField(t,e={}){var s,i;const o=(s=this.cachedPageInfo[t.document_id])===null||s===void 0?void 0:s[(i=e.page)!==null&&i!==void 0?i:t.page];const l=document.getElementById(p(t));if(l&&o){v(l,{...t,...e},o.xScale,o.yScale)}}nudge(t,e){var s,i,o,l,d;const a=this.findField(this.selectedFieldName);if(!a||!document.getElementById(p(a))||!((s=this.cachedPageInfo[a.document_id])===null||s===void 0?void 0:s[a.page])){return}if(((i=this.pendingNudge)===null||i===void 0?void 0:i.name)!==a.name){this.flushNudge();const t=this.currentGeometry(a);this.pendingNudge={name:a.name,before:t,x:t.x,y:t.y}}const r=(d=(l=(((o=this.template)===null||o===void 0?void 0:o.documents)||[]).find((t=>t.id===a.document_id)))===null||l===void 0?void 0:l.page_sizes)===null||d===void 0?void 0:d[a.page];const n=((r===null||r===void 0?void 0:r.width)||612)-(a.width||w(a.type));const c=((r===null||r===void 0?void 0:r.height)||792)-(a.height||g(a.type));this.pendingNudge.x=Math.min(Math.max(this.pendingNudge.x+t,0),n);this.pendingNudge.y=Math.min(Math.max(this.pendingNudge.y+e,0),c);this.drawField(a,{x:this.pendingNudge.x,y:this.pendingNudge.y});if(this.nudgeTimer){clearTimeout(this.nudgeTimer)}this.nudgeTimer=setTimeout((()=>this.flushNudge()),lt)}async flushNudge(){if(this.nudgeTimer){clearTimeout(this.nudgeTimer);this.nudgeTimer=null}const t=this.pendingNudge;this.pendingNudge=null;if(t){await this.saveGeometry(t.name,{x:t.x,y:t.y},t.before)}}async undo(){await this.flushNudge();await Promise.all([...this.inFlight,...[...this.pendingResizes.values()].map((t=>t.done))]);while(this.undoStack.length>0){const{name:t,before:e}=this.undoStack.pop();const s=this.findField(t);if(s&&ot.some((t=>s[t]!==e[t]))){this.selectField(t);await this.saveGeometry(t,e);return}}}saveGeometry(t,e,s){const i=this.findField(t);if(!i){return Promise.resolve()}const o={...e};this.optimistic.set(t,o);this.drawField(i,e);const l=(async()=>{var i,l,d,a,r,n;try{const o=await c(this.endpoint,this.templateId,t,e);const l=JSON.parse(JSON.stringify(this.template));const d=l.fields.findIndex((e=>e.name===t));if(d>-1){l.fields[d]=o}E.updateTemplate(this.templateId,l);this.drawField(o);if(s){this.recordUndo(t,s,o)}(i=this.templateUpdated)===null||i===void 0?void 0:i.emit({endpoint:this.endpoint,template:l,event:"updated-field"})}catch(e){console.log("[FIELDS] Error saving field position",e);b(((d=(l=e.response)===null||l===void 0?void 0:l.data)===null||d===void 0?void 0:d.error)||"Unable to move the field. Please try again.",{style:"error"});(a=this.sdkError)===null||a===void 0?void 0:a.emit(new k(e.message,(r=e.response)===null||r===void 0?void 0:r.status,(n=e.response)===null||n===void 0?void 0:n.data));const s=this.findField(t);if(s){this.drawField(s)}}finally{if(this.optimistic.get(t)===o){this.optimistic.delete(t)}}})();this.inFlight.add(l);l.finally((()=>this.inFlight.delete(l)));return l}handleMoveStart(t){const e=t.target.getAttribute("fieldname");this.flushNudge();this.selectField(e);const s=this.findField(e);this.dragBefore=s?{name:e,before:this.currentGeometry(s)}:null}async handleMoveField(t){const e=+(t.target.getAttribute("posX")||0);const s=+(t.target.getAttribute("posY")||0);const i=+(t.target.getAttribute("xScale")||1);const o=+(t.target.getAttribute("yScale")||1);const l=t.dx/i+e;const d=t.dy/o+s;t.target.setAttribute("posX",l);t.target.setAttribute("posy",d);f(t.target,"translate",`${l}px, ${d}px`)}async handleMoveEnd(t){var e,s,i,o,l;const d=t.target.getAttribute("fieldname");const a=(((e=this.template)===null||e===void 0?void 0:e.fields)||[]).find((t=>t.name===d));if(!a){console.log("[FIELDS] Unable to find field",d,t.target);return}const r=t.target.getAttribute("pagenumber");const n=t.target.getAttribute("documentid");let{naturalWidth:c=612,naturalHeight:h=792,renderedHeight:m=792}=this.cachedPageInfo[n][r];const p=t.target.getBoundingClientRect();const v=t.target.parentElement;const f=v.getBoundingClientRect();const x=a.width||w(a.type);const b=a.height||g(a.type);const k=Math.max(p.left-f.left,0);let E=Math.max(m-(f.bottom-p.bottom),0);let q=parseInt(r);if(E>m){q=Math.min(q+1,((o=(i=((s=this.template)===null||s===void 0?void 0:s.documents)||[])===null||i===void 0?void 0:i[0])===null||o===void 0?void 0:o.pages)||1);E-=m;m=this.cachedPageInfo[n][q].renderedHeight;console.log("Next page",{newPageNumber:q,newY:E,renderedHeight:m})}else if(E<0){q=Math.max(q-1,1);m=this.cachedPageInfo[n][q].renderedHeight;E+=m;console.log("[FIELDS] Next page",{newPageNumber:q,newY:E,renderedHeight:m})}const{x:C,y:Z}=this.viewCoordinatesToPageCoordinates(k,E,n,r,c-x,h-b);t.target.removeAttribute("posX");t.target.removeAttribute("posY");u(t.target);const y=((l=this.dragBefore)===null||l===void 0?void 0:l.name)===d?this.dragBefore.before:undefined;this.dragBefore=null;await this.saveGeometry(d,{x:C,y:Z,page:q},y)}generateFieldName(t,e){var s;let i=1;let o;do{o=`${t}P${e}-${i}`;i++}while((((s=this.template)===null||s===void 0?void 0:s.fields)||[]).some((t=>t&&t.name===o)));return o}viewCoordinatesToPageCoordinates(t,e,s,i,o,l){const{xScale:d=1,yScale:a=1,renderedHeight:r=792}=this.cachedPageInfo[s][i];const n=Math.round(Math.min(t/d,o));const c=Math.round(Math.min(Math.max(r-e,0)/a,l));return{x:n,y:c}}async handleClickPage(t,e,s){var i,o,l;if(!this.placing&&!((o=(i=t.target)===null||i===void 0?void 0:i.closest)===null||o===void 0?void 0:o.call(i,".verdocs-field"))){this.selectField(null)}if(this.placing){const i=t.offsetX;const o=t.offsetY;const d=w(this.placing);const a=g(this.placing);const r=this.cachedPageInfo[e][s];const{naturalWidth:n=612,naturalHeight:c=792}=r;const m=this.viewCoordinatesToPageCoordinates(i,o,e,s,n-d,c-a);const p=Math.floor(m.x);const v=Math.floor(m.y);const f={name:this.generateFieldName(this.placing,s),role_name:this.selectedRoleName,template_id:this.templateId,document_id:r.documentId,type:this.placing,required:this.placing!=="radio"&&this.placing!=="attachment"&&this.placing!=="checkbox",page:s,validator:null,label:null,default:null,placeholder:null,group:null,settings:{},x:p,y:v,width:d,height:a,multiline:false,readonly:false,options:this.placing==="radio"?[{id:"option-1",label:"Option 1"}]:[]};const u=await h(this.endpoint,this.templateId,f);console.log("[FIELDS] Created field",u);const x=JSON.parse(JSON.stringify(this.template));x.fields.push(u);E.updateTemplate(this.templateId,x);(l=this.templateUpdated)===null||l===void 0?void 0:l.emit({endpoint:this.endpoint,template:x,event:"added-field"});this.placing=null}}render(){var t,e,s;console.log("Rendering");if(this.loading){return i(o,null,i("verdocs-loader",null))}if(!this.endpoint.session){return i(o,null,i("verdocs-component-error",{message:"You must be authenticated to use this module."}))}const d=[...((t=this.template)===null||t===void 0?void 0:t.roles)||[]].sort(((t,e)=>{var s,i;return((s=t.sequence)!==null&&s!==void 0?s:0)-((i=e.sequence)!==null&&i!==void 0?i:0)}));const a=d.map((t=>({value:t.name,label:t.full_name?`${t.name}: ${t.full_name}`:t.name})));return i(o,{class:this.placing?{[`placing-${this.placing}`]:true}:{},onSubmit:()=>{}},i("div",{id:"verdocs-template-fields-toolbar"},i("div",{class:"add-for"},"Add field:"),i("verdocs-select-input",{value:this.selectedRoleName,options:a,onInput:t=>this.selectedRoleName=t.target.value}),rt.map((t=>i("verdocs-toolbar-icon",{text:t.tooltip,icon:t.icon,class:t.class,onClick:()=>{if(t.tooltip){if(this.selectedRoleName){this.placing=t.id}else{this.showMustSelectRole=true}}}})))),i("div",{class:"pages"},(((e=this.template)===null||e===void 0?void 0:e.documents)||[]).map((t=>{const e=m(1,t.pages);return e.map((e=>{var s;const o=t.page_sizes[e];return i(l,null,((s=this.template)===null||s===void 0?void 0:s.documents.length)>1&&i("div",{class:"document-separator"},i("div",{innerHTML:x}),i("span",null,t.name)),i("verdocs-template-document-page",{templateId:this.templateId,documentId:t.id,pageNumber:e,virtualWidth:(o===null||o===void 0?void 0:o.width)||612,virtualHeight:(o===null||o===void 0?void 0:o.height)||792,disabled:true,editable:true,done:false,onClick:s=>this.handleClickPage(s,t.id,e),onPageRendered:t=>this.handlePageRendered(t),layers:[{name:"page",type:"canvas"},{name:"controls",type:"div"}]}))}))}))),this.showMustSelectRole&&i("verdocs-ok-dialog",{heading:"Unable to add field",message:(((s=this.template)===null||s===void 0?void 0:s.roles)||[]).length>0?"Please select a role before adding fields.":"Please add at least one role before adding fields.",onNext:()=>this.showMustSelectRole=false}))}get el(){return this}static get watchers(){return{templateId:[{onTemplateIdChanged:0}]}}static get style(){return W()}},[0,"verdocs-template-fields",{endpoint:[16],templateId:[1537,"template-id"],toolbarTargetId:[1,"toolbar-target-id"],placing:[32],showMustSelectRole:[32],selectedRoleName:[32],loading:[32],template:[32]},[[4,"keydown","handleKeyDown"],[0,"settingsChanged","handleFieldSettingsChanged"],[0,"deleted","handleFieldDeleted"]],{templateId:[{onTemplateIdChanged:0}]}]);function ct(){if(typeof customElements==="undefined"){return}const t=["verdocs-template-fields","verdocs-button","verdocs-checkbox","verdocs-component-error","verdocs-dialog","verdocs-field-attachment","verdocs-field-checkbox","verdocs-field-date","verdocs-field-dropdown","verdocs-field-initial","verdocs-field-radio","verdocs-field-signature","verdocs-field-textarea","verdocs-field-textbox","verdocs-field-timestamp","verdocs-flag","verdocs-help-icon","verdocs-loader","verdocs-ok-dialog","verdocs-portal","verdocs-select-input","verdocs-template-document-page","verdocs-template-field-properties","verdocs-text-input","verdocs-toolbar-icon","verdocs-upload-dialog"];t.forEach((t=>{switch(t){case"verdocs-template-fields":if(!customElements.get(d(t))){customElements.define(d(t),nt)}break;case"verdocs-button":if(!customElements.get(d(t))){q()}break;case"verdocs-checkbox":if(!customElements.get(d(t))){C()}break;case"verdocs-component-error":if(!customElements.get(d(t))){Z()}break;case"verdocs-dialog":if(!customElements.get(d(t))){y()}break;case"verdocs-field-attachment":if(!customElements.get(d(t))){M()}break;case"verdocs-field-checkbox":if(!customElements.get(d(t))){V()}break;case"verdocs-field-date":if(!customElements.get(d(t))){H()}break;case"verdocs-field-dropdown":if(!customElements.get(d(t))){S()}break;case"verdocs-field-initial":if(!customElements.get(d(t))){j()}break;case"verdocs-field-radio":if(!customElements.get(d(t))){L()}break;case"verdocs-field-signature":if(!customElements.get(d(t))){D()}break;case"verdocs-field-textarea":if(!customElements.get(d(t))){F()}break;case"verdocs-field-textbox":if(!customElements.get(d(t))){z()}break;case"verdocs-field-timestamp":if(!customElements.get(d(t))){I()}break;case"verdocs-flag":if(!customElements.get(d(t))){T()}break;case"verdocs-help-icon":if(!customElements.get(d(t))){Q()}break;case"verdocs-loader":if(!customElements.get(d(t))){B()}break;case"verdocs-ok-dialog":if(!customElements.get(d(t))){N()}break;case"verdocs-portal":if(!customElements.get(d(t))){P()}break;case"verdocs-select-input":if(!customElements.get(d(t))){R()}break;case"verdocs-template-document-page":if(!customElements.get(d(t))){A()}break;case"verdocs-template-field-properties":if(!customElements.get(d(t))){U()}break;case"verdocs-text-input":if(!customElements.get(d(t))){Y()}break;case"verdocs-toolbar-icon":if(!customElements.get(d(t))){J()}break;case"verdocs-upload-dialog":if(!customElements.get(d(t))){O()}break}}))}export{nt as V,ct as d};
2
+ //# sourceMappingURL=p-ByEpps_M.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["verdocsTemplateFieldsCss","iconTextbox","iconCheck","iconRadio","iconDatepicker","iconSignature","iconInitial","iconDropdown","iconAttachment","separator","GEOMETRY_KEYS","NUDGE_SAVE_DELAY_MS","MAX_UNDO","isTypingTarget","el","includes","tagName","isContentEditable","menuOptions","id","tooltip","icon","class","VerdocsTemplateFields","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","templateListenerId","endpoint","VerdocsEndpoint","getDefault","templateId","toolbarTargetId","placing","showMustSelectRole","selectedRoleName","loading","template","pageHeights","selectedFieldName","undoStack","pendingNudge","nudgeTimer","dragBefore","optimistic","Map","inFlight","Set","pendingResizes","handleFieldTap","e","_a","_b","selectField","currentTarget","getAttribute","call","handleFieldResizeStart","name","target","flushNudge","startResize","cachedPageInfo","onTemplateIdChanged","listenToTemplate","handleKeyDown","ev","key","composedPath","defaultPrevented","document","body","documentElement","contains","metaKey","ctrlKey","shiftKey","altKey","toLowerCase","length","size","preventDefault","undo","step","delta","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","field","findField","rect","getElementById","getFieldId","getBoundingClientRect","bottom","top","window","innerHeight","right","left","innerWidth","nudge","handleFieldSettingsChanged","fieldName","detail","renameFieldState","resize","get","recordUndo","before","settle","templateUpdated","emit","event","handleFieldDeleted","forgetField","componentWillLoad","loadSession","console","log","session","sdkError","SDKError","message","response","status","_c","data","componentDidRender","interact","dynamicDrop","querySelectorAll","forEach","makeDraggable","toolbarTarget","toolbarEl","remove","append","applySelection","componentWillUpdate","roles","sort","a","b","sequence","find","role","disconnectedCallback","unlistenToTemplate","Store","subscribe","getTemplate","sorted","store","delListener","handlePageRendered","pageInfo","documentId","pageNumber","xScale","yScale","_d","naturalHeight","fields","filter","page","setAttribute","String","document_id","draggable","listeners","start","handleMoveStart","bind","move","handleMoveField","end","handleMoveEnd","off","on","undefined","currentGeometry","x","y","width","height","multiline","classList","add","after","some","push","splice","Math","max","done","Promise","resolve","entry","set","timer","setTimeout","then","clearTimeout","delete","oldName","newName","drawField","geometry","setControlStyles","dx","dy","pageSize","_e","documents","doc","page_sizes","maxX","defaultWidth","type","maxY","defaultHeight","min","pending","saveGeometry","all","values","map","pop","sent","save","updatedField","updateField","newTemplate","JSON","parse","stringify","fieldIndex","findIndex","updateTemplate","VerdocsToast","error","style","_f","saved","finally","oldX","oldY","newX","newY","updateCssTransform","naturalWidth","renderedHeight","clientRect","parent","parentElement","parentRect","newPageNumber","parseInt","pages","viewCoordinatesToPageCoordinates","removeAttribute","removeCssTransform","generateFieldName","i","viewX","viewY","xMax","yMax","round","handleClickPage","closest","clickedX","offsetX","clickedY","offsetY","cachedPage","coords","floor","role_name","template_id","required","validator","label","default","placeholder","group","settings","readonly","options","newField","createField","render","h","Host","sortedRoles","selectableRoles","value","full_name","onSubmit","onInput","option","text","onClick","pageNumbers","integerSequence","Fragment","innerHTML","DocumentPageIcon","virtualWidth","virtualHeight","disabled","editable","onPageRendered","layers","heading","onNext"],"sources":["src/components/templates/verdocs-template-fields/verdocs-template-fields.scss?tag=verdocs-template-fields","src/components/templates/verdocs-template-fields/verdocs-template-fields.tsx"],"sourcesContent":["@import '../../../theme.scss';\n\nverdocs-template-fields {\n font-family: $verdocs-primary-font;\n position: relative;\n display: block;\n min-height: 600px;\n\n .verdocs-field-selected {\n outline: 2px solid rgba(101, 77, 203, 0.75);\n outline-offset: 1px;\n }\n\n .page-0 {\n padding: 65px 15px 0 15px;\n box-sizing: border-box;\n\n .user-placed-fields {\n height: 100px;\n position: relative;\n background: #ffffff;\n box-shadow: 0 0 10px 5px #0000000f;\n\n .title {\n top: 0;\n left: 0;\n color: #ffffff;\n font-size: 12px;\n padding: 3px 6px;\n font-weight: bold;\n position: absolute;\n background: $verdocs-grey-blue;\n }\n }\n }\n\n .pages {\n display: flex;\n padding: 15px;\n row-gap: 15px;\n min-height: 200px;\n position: relative;\n align-items: center;\n box-sizing: border-box;\n flex-direction: column;\n\n div,\n canvas {\n box-sizing: border-box;\n }\n\n .document-separator {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 20px;\n width: 100%;\n box-sizing: border-box;\n background-color: $verdocs-grey-1;\n color: white;\n border-radius: 6px;\n font-size: 16px;\n font-weight: 500;\n margin-top: 20px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n\n svg {\n flex-shrink: 0;\n }\n\n // Remove margin for the very first one if desired, but 20px spacing is probably good even for the first one\n &:first-child {\n margin-top: 0;\n }\n }\n }\n\n #verdocs-template-fields-toolbar {\n width: 100%;\n height: 50px;\n display: flex;\n column-gap: 15px;\n font-weight: 700;\n padding: 0 20px 0 0; // Right-only to better balance the visual\n align-items: center;\n flex-direction: row;\n color: $verdocs-grey-3;\n justify-content: center;\n background: $verdocs-grey-blue;\n\n > verdocs-select-input {\n margin: 0;\n }\n\n svg {\n width: 24px;\n height: 24px;\n }\n\n .add-for {\n margin: 0;\n font-weight: 500;\n color: $verdocs-grey-3;\n }\n\n verdocs-select-input {\n margin: 0 20px 0 0;\n }\n\n @media all and (max-width: 1000px) {\n column-gap: 8px;\n padding: 0 10px 0 0; // Right-only to better balance the visual\n\n svg {\n transform: scale(0.8);\n }\n\n .add-for,\n verdocs-select-input {\n display: none;\n }\n }\n\n @media all and (max-width: 600px) {\n column-gap: 6px;\n\n svg {\n transform: scale(0.6);\n }\n\n .separator,\n .add-for,\n verdocs-select-input {\n display: none;\n }\n }\n }\n\n &.placing-attachment {\n cursor:\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath d='m10.55 16.55 7.275-7.275L16.05 7.5l-5.5 5.45-2.675-2.65L6.1 12.075Zm-5.375 4.925q-1.125 0-1.887-.763-.763-.762-.763-1.887V5.175q0-1.125.763-1.888.762-.762 1.887-.762h13.65q1.125 0 1.888.762.762.763.762 1.888v13.65q0 1.125-.762 1.887-.763.763-1.888.763Zm0-2.65h13.65V5.175H5.175v13.65Zm0-13.65v13.65-13.65Z'/%3E%3C/svg%3E\")\n 16 16,\n pointer;\n }\n\n &.placing-checkbox {\n cursor:\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath d='m10.55 16.55 7.275-7.275L16.05 7.5l-5.5 5.45-2.675-2.65L6.1 12.075Zm-5.375 4.925q-1.125 0-1.887-.763-.763-.762-.763-1.887V5.175q0-1.125.763-1.888.762-.762 1.887-.762h13.65q1.125 0 1.888.762.762.763.762 1.888v13.65q0 1.125-.762 1.887-.763.763-1.888.763Zm0-2.65h13.65V5.175H5.175v13.65Zm0-13.65v13.65-13.65Z'/%3E%3C/svg%3E\")\n 16 16,\n pointer;\n }\n\n &.placing-date {\n cursor:\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath fill='%23000000' d='M7.6 13.925q-.55 0-.925-.375t-.375-.925q0-.55.375-.937.375-.388.925-.388t.925.388q.375.387.375.937t-.375.925q-.375.375-.925.375Zm4.4 0q-.55 0-.925-.375t-.375-.925q0-.55.375-.937.375-.388.925-.388t.925.388q.375.387.375.937t-.375.925q-.375.375-.925.375Zm4.4 0q-.55 0-.925-.375t-.375-.925q0-.55.375-.937.375-.388.925-.388t.925.388q.375.387.375.937t-.375.925q-.375.375-.925.375ZM5.3 22.85q-1.325 0-2.238-.912-.912-.913-.912-2.238V6.3q0-1.325.912-2.238.913-.912 2.238-.912H6v-2h2.575v2h6.85v-2H18v2h.7q1.325 0 2.238.912.912.913.912 2.238v13.4q0 1.325-.912 2.238-.913.912-2.238.912Zm0-3.15h13.4V10H5.3v9.7ZM5.3 8h13.4V6.3H5.3Zm0 0V6.3 8Z'/%3E%3C/svg%3E\")\n 16 16,\n pointer;\n }\n\n &.placing-dropdown {\n cursor:\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24' stroke-width='1.5' stroke='currentColor'%3E%3Cpath stroke='%23000000' stroke-linecap='round' stroke-linejoin='round' d='M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0l-3.75-3.75M17.25 21L21 17.25' /%3E%3C/svg%3E\")\n 16 16,\n pointer;\n }\n\n &.placing-initial {\n cursor:\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath d='M6.225 20.775V7h-5V3.225H15V7h-5v13.775Zm9.775 0v-8h-3V9h9.775v3.775h-3v8Z'/%3E%3C/svg%3E\")\n 16 16,\n pointer;\n }\n\n &.placing-payment {\n cursor:\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath d='m10.55 16.55 7.275-7.275L16.05 7.5l-5.5 5.45-2.675-2.65L6.1 12.075Zm-5.375 4.925q-1.125 0-1.887-.763-.763-.762-.763-1.887V5.175q0-1.125.763-1.888.762-.762 1.887-.762h13.65q1.125 0 1.888.762.762.763.762 1.888v13.65q0 1.125-.762 1.887-.763.763-1.888.763Zm0-2.65h13.65V5.175H5.175v13.65Zm0-13.65v13.65-13.65Z'/%3E%3C/svg%3E\")\n 16 16,\n pointer;\n }\n\n &.placing-radio {\n cursor:\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath d='M12 17q2.075 0 3.538-1.463Q17 14.075 17 12t-1.462-3.538Q14.075 7 12 7 9.925 7 8.463 8.462 7 9.925 7 12q0 2.075 1.463 3.537Q9.925 17 12 17Zm0 5.85q-2.275 0-4.25-.85t-3.438-2.312Q2.85 18.225 2 16.25q-.85-1.975-.85-4.25T2 7.75q.85-1.975 2.312-3.438Q5.775 2.85 7.75 2q1.975-.85 4.25-.85t4.25.85q1.975.85 3.438 2.312Q21.15 5.775 22 7.75q.85 1.975.85 4.25T22 16.25q-.85 1.975-2.312 3.438Q18.225 21.15 16.25 22q-1.975.85-4.25.85Zm0-3.15q3.25 0 5.475-2.225Q19.7 15.25 19.7 12q0-3.25-2.225-5.475Q15.25 4.3 12 4.3q-3.25 0-5.475 2.225Q4.3 8.75 4.3 12q0 3.25 2.225 5.475Q8.75 19.7 12 19.7Zm0-7.7Z'/%3E%3C/svg%3E\")\n 16 16,\n pointer;\n }\n\n &.placing-signature {\n cursor:\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath d='m9.225 21.225 4.65-4.65h8.45v4.65Zm-5.35-2.2H5.05l8.5-8.5-1.175-1.175-8.5 8.5Zm14.25-9.95L13.8 4.8l1.325-1.325q.625-.65 1.525-.663.9-.012 1.6.663l1.225 1.175q.675.675.663 1.562-.013.888-.663 1.513ZM16.7 10.55 6 21.225H1.675V16.9L12.35 6.225Zm-3.725-.625-.6-.575 1.175 1.175Z'/%3E%3C/svg%3E\")\n 16 16,\n pointer;\n }\n\n &.placing-textarea {\n cursor:\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath d='M3.225 20.725v-3.15h11.55v3.15Zm0-4.775V12.8h17.55v3.15Zm0-4.75V8.05h17.55v3.15Zm0-4.775v-3.15h17.55v3.15Z'/%3E%3C/svg%3E\")\n 16 16,\n pointer;\n }\n\n &.placing-textbox {\n cursor:\n url(\"data:image/svg+xml,%3Csvg width='32' height='15' viewBox='0 0 32 15' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cmask id='path-1-inside-1_1401_24' fill='white'%3E%3Cpath d='M0 0H32V15H0V0Z'/%3E%3C/mask%3E%3Cpath d='M0 0H32V15H0V0Z' fill='%234C56CB' fill-opacity='0.1'/%3E%3Cpath d='M0 0V-1H-1V0H0ZM0 15H-1V16H0V15ZM0 1H32V-1H0V1ZM32 14H0V16H32V14ZM1 15V0H-1V15H1Z' fill='%234C56CB' mask='url(%23path-1-inside-1_1401_24)'/%3E%3Cpath d='M3 11.8V8.65H14.15V11.8H3ZM3 6.65V3.5H20.15V6.65H3Z' fill='%234C56CB'/%3E%3Cline x1='31.5' y1='1' x2='31.5' y2='14' stroke='%234C56CB' stroke-opacity='0.32' stroke-dasharray='1 1'/%3E%3C/svg%3E%0A\")\n 0 14,\n pointer;\n }\n\n &.placing-timestamp {\n cursor:\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath fill='%23000000' d='M9 1h6v2H9zm10.03 6.39 1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42C16.07 4.74 14.12 4 12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9 9-4.03 9-9c0-2.12-.74-4.07-1.97-5.61zM13 14h-2V8h2v6z'%3E%3C/path%3E%3C/svg%3E\")\n 16 16,\n pointer;\n }\n}\n","import interact from 'interactjs';\nimport {Component, h, Element, Event, EventEmitter, Fragment, Prop, Host, State, Listen, Watch} from '@stencil/core';\nimport {createField, getTemplate, integerSequence, ITemplate, ITemplateField, TFieldType, updateField, VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {defaultHeight, defaultWidth, getFieldId, removeCssTransform, setControlStyles, updateCssTransform} from '../../../utils/utils';\nimport {IDocumentPageInfo} from '../../../utils/Types';\nimport {DocumentPageIcon} from '../../../utils/Icons';\nimport {VerdocsToast} from '../../../utils/Toast';\nimport {SDKError} from '../../../utils/errors';\nimport {Store} from '../../../utils/Datastore';\n\nconst iconTextbox = '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\"><path fill=\"#ffffff\" d=\"M3.425 16.15V13h11.15v3.15Zm0-5.15V7.85h17.15V11Z\"/></svg>';\n\nconst iconCheck =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\"><path fill=\"#ffffff\" d=\"m10.55 16.55 7.275-7.275L16.05 7.5l-5.5 5.45-2.675-2.65L6.1 12.075Zm-5.375 4.925q-1.125 0-1.887-.763-.763-.762-.763-1.887V5.175q0-1.125.763-1.888.762-.762 1.887-.762h13.65q1.125 0 1.888.762.762.763.762 1.888v13.65q0 1.125-.762 1.887-.763.763-1.888.763Zm0-2.65h13.65V5.175H5.175v13.65Zm0-13.65v13.65-13.65Z\"/></svg>';\n\nconst iconRadio =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\"><path fill=\"#ffffff\" d=\"M12 17q2.075 0 3.538-1.463Q17 14.075 17 12t-1.462-3.538Q14.075 7 12 7 9.925 7 8.463 8.462 7 9.925 7 12q0 2.075 1.463 3.537Q9.925 17 12 17Zm0 5.85q-2.275 0-4.25-.85t-3.438-2.312Q2.85 18.225 2 16.25q-.85-1.975-.85-4.25T2 7.75q.85-1.975 2.312-3.438Q5.775 2.85 7.75 2q1.975-.85 4.25-.85t4.25.85q1.975.85 3.438 2.312Q21.15 5.775 22 7.75q.85 1.975.85 4.25T22 16.25q-.85 1.975-2.312 3.438Q18.225 21.15 16.25 22q-1.975.85-4.25.85Zm0-3.15q3.25 0 5.475-2.225Q19.7 15.25 19.7 12q0-3.25-2.225-5.475Q15.25 4.3 12 4.3q-3.25 0-5.475 2.225Q4.3 8.75 4.3 12q0 3.25 2.225 5.475Q8.75 19.7 12 19.7Zm0-7.7Z\"/></svg>';\n\nconst iconDatepicker =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\"><path fill=\"#ffffff\" d=\"M7.6 13.925q-.55 0-.925-.375t-.375-.925q0-.55.375-.937.375-.388.925-.388t.925.388q.375.387.375.937t-.375.925q-.375.375-.925.375Zm4.4 0q-.55 0-.925-.375t-.375-.925q0-.55.375-.937.375-.388.925-.388t.925.388q.375.387.375.937t-.375.925q-.375.375-.925.375Zm4.4 0q-.55 0-.925-.375t-.375-.925q0-.55.375-.937.375-.388.925-.388t.925.388q.375.387.375.937t-.375.925q-.375.375-.925.375ZM5.3 22.85q-1.325 0-2.238-.912-.912-.913-.912-2.238V6.3q0-1.325.912-2.238.913-.912 2.238-.912H6v-2h2.575v2h6.85v-2H18v2h.7q1.325 0 2.238.912.912.913.912 2.238v13.4q0 1.325-.912 2.238-.913.912-2.238.912Zm0-3.15h13.4V10H5.3v9.7ZM5.3 8h13.4V6.3H5.3Zm0 0V6.3 8Z\"/></svg>';\n\nconst iconSignature =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\"><path fill=\"#ffffff\" d=\"m9.225 21.225 4.65-4.65h8.45v4.65Zm-5.35-2.2H5.05l8.5-8.5-1.175-1.175-8.5 8.5Zm14.25-9.95L13.8 4.8l1.325-1.325q.625-.65 1.525-.663.9-.012 1.6.663l1.225 1.175q.675.675.663 1.562-.013.888-.663 1.513ZM16.7 10.55 6 21.225H1.675V16.9L12.35 6.225Zm-3.725-.625-.6-.575 1.175 1.175Z\"/></svg>';\n\nconst iconInitial =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\"><path fill=\"#ffffff\" d=\"M6.225 20.775V7h-5V3.225H15V7h-5v13.775Zm9.775 0v-8h-3V9h9.775v3.775h-3v8Z\"/></svg>';\n\n// const iconTimestamp =\n// '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\"><path fill=\"#ffffff\" d=\"M9 1h6v2H9zm10.03 6.39 1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42C16.07 4.74 14.12 4 12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9 9-4.03 9-9c0-2.12-.74-4.07-1.97-5.61zM13 14h-2V8h2v6z\"></path></svg>';\n\nconst iconDropdown =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" stroke-width=\"1.5\" stroke=\"currentColor\"><path stroke=\"#ffffff\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0l-3.75-3.75M17.25 21L21 17.25\" /></svg>';\n\nconst iconAttachment =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"size-6\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m18.375 12.739-7.693 7.693a4.5 4.5 0 0 1-6.364-6.364l10.94-10.94A3 3 0 1 1 19.5 7.372L8.552 18.32m.009-.01-.01.01m5.699-9.941-7.81 7.81a1.5 1.5 0 0 0 2.112 2.13\" /></svg>';\n\nconst separator = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14.707 14.707\"><g><rect x=\"6.275\" y=\"0\" fill=\"#ffffff7f\" width=\"1\" height=\"15\"/></g></svg>';\n\n// We include multiline because a text field's height controls it, so undoing a resize has to restore both.\ntype TFieldGeometry = Pick<ITemplateField, 'x' | 'y' | 'width' | 'height' | 'page' | 'multiline'>;\n\nconst GEOMETRY_KEYS: (keyof TFieldGeometry)[] = ['x', 'y', 'width', 'height', 'page', 'multiline'];\n\n// We save a burst of arrow-key nudges once the keys go quiet instead of on every press.\nconst NUDGE_SAVE_DELAY_MS = 400;\n\nconst MAX_UNDO = 50;\n\nconst isTypingTarget = (el: Element | null) => !!el && (['INPUT', 'TEXTAREA', 'SELECT'].includes(el.tagName) || (el as HTMLElement).isContentEditable);\n\nconst menuOptions = [\n {id: 'signature', tooltip: 'Signature', icon: iconSignature, class: 'signature'},\n {id: 'initial', tooltip: 'Initials', icon: iconInitial, class: 'initial'},\n {id: 'sep1', tooltip: '', icon: separator, class: 'separator'},\n {id: 'textbox', tooltip: 'Text Box', icon: iconTextbox, class: 'textbox'},\n {id: 'checkbox', tooltip: 'Check Box', icon: iconCheck, class: 'checkbox'},\n {id: 'radio', tooltip: 'Radio Button', icon: iconRadio, class: 'radio'},\n {id: 'dropdown', tooltip: 'Dropdown', icon: iconDropdown, class: 'dropdown'},\n {id: 'sep2', tooltip: '', icon: separator, class: 'separator'},\n {id: 'date', tooltip: 'Date', icon: iconDatepicker, class: 'date'},\n // {id: 'timestamp', tooltip: 'Timestamp', icon: iconTimestamp, class: 'timestamp'},\n // {id: 'sep3', tooltip: '', icon: separator},\n {id: 'attachment', tooltip: 'Attachment', icon: iconAttachment, class: 'attachment'},\n // {id: 'payment', tooltip: 'Payment', icon: 'P'},\n];\n\n/**\n * Displays a builder experience for laying out fields in a template. Note that this experience requires a large display area to\n * present all of the required controls, so it is primarily intended to be used in desktop environments.\n */\n@Component({\n tag: 'verdocs-template-fields',\n styleUrl: 'verdocs-template-fields.scss',\n shadow: false,\n})\nexport class VerdocsTemplateFields {\n private templateListenerId = null;\n\n @Element() el: HTMLElement;\n\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The ID of the template to create the document from.\n */\n @Prop({reflect: true, mutable: true}) templateId: string | null = null;\n\n /**\n * If set, (recommended), the host application should create a <DIV> element with a unique ID. When this\n * component renders, the toolbar will be removed from its default location and placed in the target element.\n * This allows the parent application to more easily control its placement and scroll effects.\n *\n * The movement of the toolbar to the target container is not dynamic - it is performed only on the initial\n * render. Host applications should not conditionally render this container. If the toolbar's visibility must\n * be externally controlled, use CSS display options to hide/show it instead.\n */\n @Prop() toolbarTargetId: string | null = null;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n /**\n * Event fired when the template is updated in any way. May be used for tasks such as cache invalidation or reporting to other systems.\n */\n @Event({composed: true}) templateUpdated: EventEmitter<{endpoint: VerdocsEndpoint; template: ITemplate; event: 'added-field' | 'updated-field' | 'deleted-field'}>;\n\n @State() placing: TFieldType | null = null;\n @State() showMustSelectRole = false;\n @State() selectedRoleName = '';\n\n @State() loading = true;\n @State() template: ITemplate | null = null;\n\n pageHeights: Record<number, number> = {};\n\n // Selection lives on the DOM (a class on the field element) so picking a field doesn't re-render every page.\n selectedFieldName: string | null = null;\n\n // Undo entries are recorded only once their save lands, so the stack never holds a change the server didn't take.\n undoStack: {name: string; before: TFieldGeometry}[] = [];\n pendingNudge: {name: string; before: TFieldGeometry; x: number; y: number} | null = null;\n nudgeTimer: ReturnType<typeof setTimeout> | null = null;\n dragBefore: {name: string; before: TFieldGeometry} | null = null;\n\n // Geometry we've sent but the server hasn't confirmed yet, so a new nudge or undo starts from where the field is drawn.\n optimistic = new Map<string, Partial<TFieldGeometry>>();\n inFlight = new Set<Promise<unknown>>();\n\n // Field components save their own resizes and announce them with settingsChanged; undo waits for that.\n pendingResizes = new Map<string, {before: TFieldGeometry; settle: () => void; done: Promise<void>}>();\n\n // Stable references so makeDraggable can re-bind them on every render without stacking duplicates.\n handleFieldTap = (e: any) => this.selectField(e.currentTarget?.getAttribute?.('fieldname') || null);\n handleFieldResizeStart = (e: any) => {\n const name = e.target?.getAttribute?.('fieldname') || null;\n this.flushNudge();\n this.selectField(name);\n this.startResize(name);\n };\n\n @Watch('templateId')\n onTemplateIdChanged() {\n this.listenToTemplate();\n }\n\n // Escape clears placement and selection, arrows nudge the selected field (Shift for 10pt), and Cmd/Ctrl+Z undoes a move or resize.\n @Listen('keydown', {target: 'document'})\n handleKeyDown(ev: KeyboardEvent) {\n if (ev.key === 'Escape') {\n this.placing = null;\n this.selectField(null);\n return;\n }\n\n // composedPath reaches inputs inside a host page's shadow DOM, where activeElement would only show the host.\n const target = (ev.composedPath?.()[0] || ev.target) as Element;\n if (ev.defaultPrevented || isTypingTarget(target)) {\n return;\n }\n\n // Keys pressed in a dialog, menu, or anything else outside the builder belong to that control.\n if (target !== document.body && target !== document.documentElement && !this.el.contains(target)) {\n return;\n }\n\n if ((ev.metaKey || ev.ctrlKey) && !ev.shiftKey && !ev.altKey && ev.key.toLowerCase() === 'z') {\n if (this.pendingNudge || this.undoStack.length > 0 || this.inFlight.size > 0 || this.pendingResizes.size > 0) {\n ev.preventDefault();\n this.undo();\n }\n return;\n }\n\n const step = ev.shiftKey ? 10 : 1;\n const delta = {ArrowLeft: [-step, 0], ArrowRight: [step, 0], ArrowUp: [0, step], ArrowDown: [0, -step]}[ev.key];\n if (!delta || !this.selectedFieldName || ev.metaKey || ev.ctrlKey || ev.altKey) {\n return;\n }\n\n // Once the selected field has scrolled out of view, arrows go back to scrolling the page.\n const field = this.findField(this.selectedFieldName);\n const rect = field ? document.getElementById(getFieldId(field))?.getBoundingClientRect() : null;\n if (!rect || rect.bottom < 0 || rect.top > window.innerHeight || rect.right < 0 || rect.left > window.innerWidth) {\n this.selectField(null);\n return;\n }\n\n ev.preventDefault();\n this.nudge(delta[0], delta[1]);\n }\n\n @Listen('settingsChanged')\n handleFieldSettingsChanged(e: CustomEvent<{fieldName: string; field: ITemplateField}>) {\n const {fieldName, field} = e.detail || ({} as any);\n if (field && fieldName && field.name !== fieldName) {\n this.renameFieldState(fieldName, field.name);\n }\n\n const resize = field ? this.pendingResizes.get(field.name) : null;\n if (resize) {\n this.recordUndo(field.name, resize.before, field);\n resize.settle();\n }\n\n this.templateUpdated?.emit({endpoint: this.endpoint, template: this.template, event: 'updated-field'});\n }\n\n @Listen('deleted')\n handleFieldDeleted(e: CustomEvent<{fieldName: string}>) {\n const name = e.detail?.fieldName;\n if (name) {\n this.forgetField(name);\n }\n\n this.templateUpdated?.emit({endpoint: this.endpoint, template: this.template, event: 'deleted-field'});\n }\n\n async componentWillLoad() {\n try {\n this.endpoint.loadSession();\n\n if (!this.templateId) {\n console.log(`[FIELDS] Missing required template ID ${this.templateId}`);\n return;\n }\n\n if (!this.endpoint.session) {\n console.log('[FIELDS] Unable to start builder session, must be authenticated');\n return;\n }\n\n this.listenToTemplate();\n } catch (e) {\n console.log('[FIELDS] Error with fields session', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n }\n }\n\n componentDidRender() {\n interact.dynamicDrop(true);\n\n // Defensive re-attach: when returning to the Fields tab from Preview, the preview component\n // may have unset interact bindings on shared field DOM elements. pageRendered doesn't always\n // refire in that case, so ensure every .verdocs-field in the document has a drag handler.\n // makeDraggable is idempotent (interact re-configures the same Interactable).\n document.querySelectorAll('.verdocs-field').forEach(el => {\n this.makeDraggable(el as HTMLElement);\n });\n\n const toolbarTarget = this.toolbarTargetId ? document.getElementById(this.toolbarTargetId) : null;\n const toolbarEl = document.getElementById('verdocs-template-fields-toolbar');\n if (toolbarTarget && toolbarEl) {\n toolbarEl.remove();\n toolbarTarget.append(toolbarEl);\n }\n\n this.applySelection();\n }\n\n componentWillUpdate() {\n // If a new role was added and there were none yet so far, or the \"selected\" role was deleted, reset our selection\n const roles = [...(this.template?.roles || [])].sort((a, b) => (a.sequence ?? 0) - (b.sequence ?? 0));\n if (!this.selectedRoleName || !roles.find(role => role && role.name === this.selectedRoleName)) {\n this.selectedRoleName = roles[0]?.name || '';\n console.log('[FIELDS] Selected new role', this.selectedRoleName);\n }\n }\n\n disconnectedCallback() {\n this.unlistenToTemplate();\n this.flushNudge();\n this.selectField(null);\n }\n\n async listenToTemplate() {\n this.unlistenToTemplate();\n Store.subscribe(\n 'templates',\n this.templateId,\n () => getTemplate(this.endpoint, this.templateId),\n false,\n (template: ITemplate) => {\n console.log('Template updated');\n this.template = template;\n this.loading = false;\n\n if (!this.selectedRoleName) {\n const sorted = [...(template.roles || [])].sort((a, b) => (a.sequence ?? 0) - (b.sequence ?? 0));\n this.selectedRoleName = sorted[0]?.name || '';\n }\n },\n );\n }\n\n unlistenToTemplate() {\n if (this.templateListenerId) {\n Store.store.delListener(this.templateListenerId);\n this.templateListenerId = null;\n }\n }\n\n cachedPageInfo: Record<string, Record<number, IDocumentPageInfo>> = {};\n handlePageRendered(e: any) {\n const pageInfo = e.detail as IDocumentPageInfo;\n console.log('[FIELDS] Page rendered', pageInfo.documentId, pageInfo.pageNumber, pageInfo.xScale, pageInfo.yScale);\n this.cachedPageInfo[pageInfo.documentId] ??= {};\n this.cachedPageInfo[pageInfo.documentId][pageInfo.pageNumber] = pageInfo;\n\n this.pageHeights[pageInfo.pageNumber] = pageInfo.naturalHeight;\n\n (this.template?.fields || [])\n .filter(field => field && field.page === pageInfo.pageNumber)\n .forEach(field => {\n const id = getFieldId(field);\n const el = document.getElementById(id);\n if (el) {\n el.setAttribute('templateid', this.templateId);\n el.setAttribute('fieldname', field.name);\n el.setAttribute('documentid', String(field.document_id));\n el.setAttribute('pagenumber', String(field.page));\n el.setAttribute('xScale', String(pageInfo.xScale));\n el.setAttribute('yScale', String(pageInfo.yScale));\n this.makeDraggable(el);\n }\n });\n }\n\n makeDraggable(el: HTMLElement) {\n interact(el)\n .draggable({\n listeners: {\n start: this.handleMoveStart.bind(this),\n move: this.handleMoveField.bind(this),\n end: this.handleMoveEnd.bind(this),\n },\n })\n .off('tap', this.handleFieldTap)\n .on('tap', this.handleFieldTap)\n .off('resizestart', this.handleFieldResizeStart)\n .on('resizestart', this.handleFieldResizeStart);\n }\n\n findField(name: string | null) {\n return name ? (this.template?.fields || []).find(field => field.name === name) : undefined;\n }\n\n // Where the field is drawn right now: its saved geometry plus anything still on its way to the server.\n currentGeometry(field: ITemplateField): TFieldGeometry {\n const {x, y, width, height, page, multiline} = {...field, ...this.optimistic.get(field.name)};\n return {x, y, width, height, page, multiline};\n }\n\n selectField(name: string | null) {\n if (this.pendingNudge && this.pendingNudge.name !== name) {\n this.flushNudge();\n }\n\n this.selectedFieldName = name;\n this.applySelection();\n }\n\n applySelection() {\n document.querySelectorAll('.verdocs-field-selected').forEach(el => el.classList.remove('verdocs-field-selected'));\n const field = this.findField(this.selectedFieldName);\n if (field) {\n document.getElementById(getFieldId(field))?.classList.add('verdocs-field-selected');\n }\n }\n\n recordUndo(name: string, before: TFieldGeometry, after: Partial<TFieldGeometry>) {\n if (GEOMETRY_KEYS.some(key => after[key] !== undefined && after[key] !== before[key])) {\n this.undoStack.push({name, before});\n this.undoStack.splice(0, Math.max(0, this.undoStack.length - MAX_UNDO));\n }\n }\n\n startResize(name: string | null) {\n const field = this.findField(name);\n if (!field) {\n return;\n }\n\n this.pendingResizes.get(field.name)?.settle();\n let settle: () => void;\n const done = new Promise<void>(resolve => (settle = resolve));\n const entry = {before: this.currentGeometry(field), settle: () => settle(), done};\n this.pendingResizes.set(field.name, entry);\n\n // A failed resize never announces itself, so stop waiting on it after a while.\n const timer = setTimeout(() => entry.settle(), 5000);\n done.then(() => {\n clearTimeout(timer);\n if (this.pendingResizes.get(field.name) === entry) {\n this.pendingResizes.delete(field.name);\n }\n });\n }\n\n renameFieldState(oldName: string, newName: string) {\n this.undoStack.forEach(entry => entry.name === oldName && (entry.name = newName));\n if (this.selectedFieldName === oldName) {\n this.selectedFieldName = newName;\n }\n }\n\n forgetField(name: string) {\n this.undoStack = this.undoStack.filter(entry => entry.name !== name);\n this.optimistic.delete(name);\n this.pendingResizes.get(name)?.settle();\n if (this.pendingNudge?.name === name) {\n clearTimeout(this.nudgeTimer);\n this.nudgeTimer = null;\n this.pendingNudge = null;\n }\n if (this.selectedFieldName === name) {\n this.selectField(null);\n }\n }\n\n drawField(field: ITemplateField, geometry: Partial<TFieldGeometry> = {}) {\n const pageInfo = this.cachedPageInfo[field.document_id]?.[geometry.page ?? field.page];\n const el = document.getElementById(getFieldId(field));\n if (el && pageInfo) {\n setControlStyles(el, {...field, ...geometry}, pageInfo.xScale, pageInfo.yScale);\n }\n }\n\n nudge(dx: number, dy: number) {\n const field = this.findField(this.selectedFieldName);\n if (!field || !document.getElementById(getFieldId(field)) || !this.cachedPageInfo[field.document_id]?.[field.page]) {\n return;\n }\n\n if (this.pendingNudge?.name !== field.name) {\n this.flushNudge();\n const before = this.currentGeometry(field);\n this.pendingNudge = {name: field.name, before, x: before.x, y: before.y};\n }\n\n // Keep the whole field on the page, measured in PDF points.\n const pageSize = (this.template?.documents || []).find(doc => doc.id === field.document_id)?.page_sizes?.[field.page];\n const maxX = (pageSize?.width || 612) - (field.width || defaultWidth(field.type));\n const maxY = (pageSize?.height || 792) - (field.height || defaultHeight(field.type));\n this.pendingNudge.x = Math.min(Math.max(this.pendingNudge.x + dx, 0), maxX);\n this.pendingNudge.y = Math.min(Math.max(this.pendingNudge.y + dy, 0), maxY);\n this.drawField(field, {x: this.pendingNudge.x, y: this.pendingNudge.y});\n\n if (this.nudgeTimer) {\n clearTimeout(this.nudgeTimer);\n }\n this.nudgeTimer = setTimeout(() => this.flushNudge(), NUDGE_SAVE_DELAY_MS);\n }\n\n async flushNudge() {\n if (this.nudgeTimer) {\n clearTimeout(this.nudgeTimer);\n this.nudgeTimer = null;\n }\n\n const pending = this.pendingNudge;\n this.pendingNudge = null;\n if (pending) {\n await this.saveGeometry(pending.name, {x: pending.x, y: pending.y}, pending.before);\n }\n }\n\n async undo() {\n await this.flushNudge();\n await Promise.all([...this.inFlight, ...[...this.pendingResizes.values()].map(resize => resize.done)]);\n\n while (this.undoStack.length > 0) {\n const {name, before} = this.undoStack.pop();\n const field = this.findField(name);\n if (field && GEOMETRY_KEYS.some(key => field[key] !== before[key])) {\n this.selectField(name);\n await this.saveGeometry(name, before);\n return;\n }\n }\n }\n\n // Saves a move, nudge, or undo, drawing the field at its new spot right away. Pass `before` to make it undoable.\n saveGeometry(name: string, geometry: Partial<TFieldGeometry>, before?: TFieldGeometry) {\n const field = this.findField(name);\n if (!field) {\n return Promise.resolve();\n }\n\n const sent = {...geometry};\n this.optimistic.set(name, sent);\n this.drawField(field, geometry);\n\n const save = (async () => {\n try {\n const updatedField = await updateField(this.endpoint, this.templateId, name, geometry);\n const newTemplate = JSON.parse(JSON.stringify(this.template));\n const fieldIndex = newTemplate.fields.findIndex(field => field.name === name);\n if (fieldIndex > -1) {\n newTemplate.fields[fieldIndex] = updatedField;\n }\n\n Store.updateTemplate(this.templateId, newTemplate);\n this.drawField(updatedField);\n if (before) {\n this.recordUndo(name, before, updatedField);\n }\n\n this.templateUpdated?.emit({endpoint: this.endpoint, template: newTemplate, event: 'updated-field'});\n } catch (e) {\n console.log('[FIELDS] Error saving field position', e);\n VerdocsToast(e.response?.data?.error || 'Unable to move the field. Please try again.', {style: 'error'});\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n\n // Put it back where the server still has it.\n const saved = this.findField(name);\n if (saved) {\n this.drawField(saved);\n }\n } finally {\n if (this.optimistic.get(name) === sent) {\n this.optimistic.delete(name);\n }\n }\n })();\n\n this.inFlight.add(save);\n save.finally(() => this.inFlight.delete(save));\n return save;\n }\n\n handleMoveStart(event: any) {\n const name = event.target.getAttribute('fieldname');\n this.flushNudge();\n this.selectField(name);\n\n const field = this.findField(name);\n this.dragBefore = field ? {name, before: this.currentGeometry(field)} : null;\n }\n\n async handleMoveField(event: any) {\n const oldX = +(event.target.getAttribute('posX') || 0);\n const oldY = +(event.target.getAttribute('posY') || 0);\n const xScale = +(event.target.getAttribute('xScale') || 1);\n const yScale = +(event.target.getAttribute('yScale') || 1);\n const newX = event.dx / xScale + oldX;\n const newY = event.dy / yScale + oldY;\n event.target.setAttribute('posX', newX);\n event.target.setAttribute('posy', newY);\n updateCssTransform(event.target, 'translate', `${newX}px, ${newY}px`);\n }\n\n async handleMoveEnd(event: any) {\n const name = event.target.getAttribute('fieldname');\n const field = (this.template?.fields || []).find(field => field.name === name);\n if (!field) {\n console.log('[FIELDS] Unable to find field', name, event.target);\n return;\n }\n\n const pageNumber = event.target.getAttribute('pagenumber');\n const documentId = event.target.getAttribute('documentid');\n let {naturalWidth = 612, naturalHeight = 792, renderedHeight = 792} = this.cachedPageInfo[documentId][pageNumber];\n const clientRect = event.target.getBoundingClientRect();\n const parent = event.target.parentElement;\n const parentRect = parent.getBoundingClientRect();\n\n const width = field.width || defaultWidth(field.type);\n const height = field.height || defaultHeight(field.type);\n\n // These two being backwards is not a mistake. Left measures \"over\" from the left\n // (positive displacement) while bottom measures \"up\" from the bottom (negative displacement).\n const newX = Math.max(clientRect.left - parentRect.left, 0);\n let newY = Math.max(renderedHeight - (parentRect.bottom - clientRect.bottom), 0);\n\n let newPageNumber = parseInt(pageNumber);\n if (newY > renderedHeight) {\n newPageNumber = Math.min(newPageNumber + 1, (this.template?.documents || [])?.[0]?.pages || 1);\n newY -= renderedHeight;\n renderedHeight = this.cachedPageInfo[documentId][newPageNumber].renderedHeight;\n\n console.log('Next page', {newPageNumber, newY, renderedHeight});\n } else if (newY < 0) {\n newPageNumber = Math.max(newPageNumber - 1, 1);\n renderedHeight = this.cachedPageInfo[documentId][newPageNumber].renderedHeight;\n newY += renderedHeight;\n console.log('[FIELDS] Next page', {newPageNumber, newY, renderedHeight});\n }\n\n const {x, y} = this.viewCoordinatesToPageCoordinates(newX, newY, documentId, pageNumber, naturalWidth - width, naturalHeight - height);\n event.target.removeAttribute('posX');\n event.target.removeAttribute('posY');\n removeCssTransform(event.target);\n\n const before = this.dragBefore?.name === name ? this.dragBefore.before : undefined;\n this.dragBefore = null;\n await this.saveGeometry(name, {x, y, page: newPageNumber}, before);\n }\n\n generateFieldName(type: string, pageNumber: number) {\n let i = 1;\n let fieldName: string;\n do {\n fieldName = `${type}P${pageNumber}-${i}`;\n i++;\n } while ((this.template?.fields || []).some(field => field && field.name === fieldName));\n\n return fieldName;\n }\n\n // Scale the X,Y clicks to the virtual page dimensions. Also ensure the field doesn't go off the page.\n viewCoordinatesToPageCoordinates(viewX: number, viewY: number, documentId: string, pageNumber: number, xMax: number, yMax: number) {\n const {xScale = 1, yScale = 1, renderedHeight = 792} = this.cachedPageInfo[documentId][pageNumber];\n // Round rather than floor: PDF y counts up from the bottom, so flooring would pull every drop down and to the left.\n const x = Math.round(Math.min(viewX / xScale, xMax));\n const y = Math.round(Math.min(Math.max(renderedHeight - viewY, 0) / yScale, yMax));\n return {x, y};\n }\n\n async handleClickPage(e: any, documentId: string, pageNumber: number) {\n // Clicks on a field select it through interact's tap, so only a click on the bare page clears the selection.\n if (!this.placing && !e.target?.closest?.('.verdocs-field')) {\n this.selectField(null);\n }\n\n if (this.placing) {\n // console.log('Placing field', {documentId, pageNumber});\n const clickedX = e.offsetX;\n const clickedY = e.offsetY;\n\n const width = defaultWidth(this.placing);\n const height = defaultHeight(this.placing);\n\n const cachedPage = this.cachedPageInfo[documentId][pageNumber];\n const {naturalWidth = 612, naturalHeight = 792} = cachedPage;\n\n const coords = this.viewCoordinatesToPageCoordinates(clickedX, clickedY, documentId, pageNumber, naturalWidth - width, naturalHeight - height);\n const x = Math.floor(coords.x);\n const y = Math.floor(coords.y);\n\n const field: ITemplateField = {\n name: this.generateFieldName(this.placing, pageNumber), // 'textboxP1-22',\n role_name: this.selectedRoleName,\n template_id: this.templateId,\n document_id: cachedPage.documentId,\n type: this.placing,\n required: this.placing !== 'radio' && this.placing !== 'attachment' && this.placing !== 'checkbox',\n page: pageNumber,\n validator: null,\n label: null,\n default: null,\n placeholder: null,\n group: null,\n settings: {},\n x,\n y,\n width,\n height,\n multiline: false,\n readonly: false,\n options: this.placing === 'radio' ? [{id: 'option-1', label: 'Option 1'}] : [],\n };\n\n const newField = await createField(this.endpoint, this.templateId, field);\n console.log('[FIELDS] Created field', newField);\n\n const newTemplate = JSON.parse(JSON.stringify(this.template));\n newTemplate.fields.push(newField);\n\n Store.updateTemplate(this.templateId, newTemplate);\n this.templateUpdated?.emit({endpoint: this.endpoint, template: newTemplate, event: 'added-field'});\n\n this.placing = null;\n }\n }\n\n render() {\n console.log('Rendering');\n if (this.loading) {\n return (\n <Host>\n <verdocs-loader />\n </Host>\n );\n }\n\n if (!this.endpoint.session) {\n return (\n <Host>\n <verdocs-component-error message=\"You must be authenticated to use this module.\" />\n </Host>\n );\n }\n\n const sortedRoles = [...(this.template?.roles || [])].sort((a, b) => (a.sequence ?? 0) - (b.sequence ?? 0));\n const selectableRoles = sortedRoles.map(role => ({value: role.name, label: role.full_name ? `${role.name}: ${role.full_name}` : role.name}));\n\n return (\n <Host class={this.placing ? {[`placing-${this.placing}`]: true} : {}} onSubmit={() => {}}>\n <div id=\"verdocs-template-fields-toolbar\">\n <div class=\"add-for\">Add field:</div>\n <verdocs-select-input value={this.selectedRoleName} options={selectableRoles} onInput={(e: any) => (this.selectedRoleName = e.target.value)} />\n\n {menuOptions.map(option => (\n <verdocs-toolbar-icon\n text={option.tooltip}\n icon={option.icon}\n class={option.class}\n onClick={() => {\n // We ignore empty-tooltip entries because they're separators\n if (option.tooltip) {\n // We require a role to be selected first\n if (this.selectedRoleName) {\n this.placing = option.id as TFieldType;\n } else {\n this.showMustSelectRole = true;\n }\n }\n }}\n />\n ))}\n </div>\n\n {/* <div class=\"page-0\" ref={el => (this.page0El = el as HTMLDivElement)}>*/}\n {/* <div class=\"user-placed-fields\">*/}\n {/* <div class=\"title\">User-Placed Fields</div>*/}\n {/* <verdocs-field-signature*/}\n {/* field={testField}*/}\n {/* style={{width: '82px', height: '41px', left: '20px', top: '40px', transform: 'scale(1,1)', backgroundColor: getRGBA(0)}}*/}\n {/* moveable={true}*/}\n {/* editable={true}*/}\n {/* />*/}\n {/* </div>*/}\n {/*</div>*/}\n\n <div class=\"pages\">\n {(this.template?.documents || []).map(document => {\n const pageNumbers = integerSequence(1, document.pages);\n\n return pageNumbers.map(page => {\n const pageSize = document.page_sizes[page];\n\n return (\n <Fragment>\n {this.template?.documents.length > 1 && (\n <div class=\"document-separator\">\n <div innerHTML={DocumentPageIcon} />\n <span>{document.name}</span>\n </div>\n )}\n\n <verdocs-template-document-page\n templateId={this.templateId}\n documentId={document.id}\n pageNumber={page}\n virtualWidth={pageSize?.width || 612}\n virtualHeight={pageSize?.height || 792}\n disabled={true}\n editable={true}\n done={false}\n onClick={(e: PointerEvent) => this.handleClickPage(e, document.id, page)}\n onPageRendered={e => this.handlePageRendered(e)}\n layers={[\n {name: 'page', type: 'canvas'},\n {name: 'controls', type: 'div'},\n ]}\n />\n </Fragment>\n );\n });\n })}\n </div>\n {this.showMustSelectRole && (\n <verdocs-ok-dialog\n heading=\"Unable to add field\"\n message={(this.template?.roles || []).length > 0 ? 'Please select a role before adding fields.' : 'Please add at least one role before adding fields.'}\n onNext={() => (this.showMustSelectRole = false)}\n />\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}