@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
@@ -17,6 +17,11 @@ const iconInitial = '<svg xmlns="http://www.w3.org/2000/svg" height="24" width="
17
17
  const iconDropdown = '<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>';
18
18
  const iconAttachment = '<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>';
19
19
  const 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>';
20
+ const GEOMETRY_KEYS = ['x', 'y', 'width', 'height', 'page', 'multiline'];
21
+ // We save a burst of arrow-key nudges once the keys go quiet instead of on every press.
22
+ const NUDGE_SAVE_DELAY_MS = 400;
23
+ const MAX_UNDO = 50;
24
+ const isTypingTarget = (el) => !!el && (['INPUT', 'TEXTAREA', 'SELECT'].includes(el.tagName) || el.isContentEditable);
20
25
  const menuOptions = [
21
26
  { id: 'signature', tooltip: 'Signature', icon: iconSignature, class: 'signature' },
22
27
  { id: 'initial', tooltip: 'Initials', icon: iconInitial, class: 'initial' },
@@ -63,24 +68,91 @@ export class VerdocsTemplateFields {
63
68
  this.loading = true;
64
69
  this.template = null;
65
70
  this.pageHeights = {};
71
+ // Selection lives on the DOM (a class on the field element) so picking a field doesn't re-render every page.
72
+ this.selectedFieldName = null;
73
+ // Undo entries are recorded only once their save lands, so the stack never holds a change the server didn't take.
74
+ this.undoStack = [];
75
+ this.pendingNudge = null;
76
+ this.nudgeTimer = null;
77
+ this.dragBefore = null;
78
+ // Geometry we've sent but the server hasn't confirmed yet, so a new nudge or undo starts from where the field is drawn.
79
+ this.optimistic = new Map();
80
+ this.inFlight = new Set();
81
+ // Field components save their own resizes and announce them with settingsChanged; undo waits for that.
82
+ this.pendingResizes = new Map();
83
+ // Stable references so makeDraggable can re-bind them on every render without stacking duplicates.
84
+ this.handleFieldTap = (e) => { var _a, _b; return this.selectField(((_b = (_a = e.currentTarget) === null || _a === void 0 ? void 0 : _a.getAttribute) === null || _b === void 0 ? void 0 : _b.call(_a, 'fieldname')) || null); };
85
+ this.handleFieldResizeStart = (e) => {
86
+ var _a, _b;
87
+ const name = ((_b = (_a = e.target) === null || _a === void 0 ? void 0 : _a.getAttribute) === null || _b === void 0 ? void 0 : _b.call(_a, 'fieldname')) || null;
88
+ this.flushNudge();
89
+ this.selectField(name);
90
+ this.startResize(name);
91
+ };
66
92
  this.cachedPageInfo = {};
67
93
  }
68
94
  onTemplateIdChanged() {
69
95
  this.listenToTemplate();
70
96
  }
71
- // Stop field-placement mode if ESC is pressed
97
+ // Escape clears placement and selection, arrows nudge the selected field (Shift for 10pt), and Cmd/Ctrl+Z undoes a move or resize.
72
98
  handleKeyDown(ev) {
99
+ var _a, _b;
73
100
  if (ev.key === 'Escape') {
74
101
  this.placing = null;
102
+ this.selectField(null);
103
+ return;
104
+ }
105
+ // composedPath reaches inputs inside a host page's shadow DOM, where activeElement would only show the host.
106
+ const target = (((_a = ev.composedPath) === null || _a === void 0 ? void 0 : _a.call(ev)[0]) || ev.target);
107
+ if (ev.defaultPrevented || isTypingTarget(target)) {
108
+ return;
109
+ }
110
+ // Keys pressed in a dialog, menu, or anything else outside the builder belong to that control.
111
+ if (target !== document.body && target !== document.documentElement && !this.el.contains(target)) {
112
+ return;
113
+ }
114
+ if ((ev.metaKey || ev.ctrlKey) && !ev.shiftKey && !ev.altKey && ev.key.toLowerCase() === 'z') {
115
+ if (this.pendingNudge || this.undoStack.length > 0 || this.inFlight.size > 0 || this.pendingResizes.size > 0) {
116
+ ev.preventDefault();
117
+ this.undo();
118
+ }
119
+ return;
75
120
  }
121
+ const step = ev.shiftKey ? 10 : 1;
122
+ const delta = { ArrowLeft: [-step, 0], ArrowRight: [step, 0], ArrowUp: [0, step], ArrowDown: [0, -step] }[ev.key];
123
+ if (!delta || !this.selectedFieldName || ev.metaKey || ev.ctrlKey || ev.altKey) {
124
+ return;
125
+ }
126
+ // Once the selected field has scrolled out of view, arrows go back to scrolling the page.
127
+ const field = this.findField(this.selectedFieldName);
128
+ const rect = field ? (_b = document.getElementById(getFieldId(field))) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect() : null;
129
+ if (!rect || rect.bottom < 0 || rect.top > window.innerHeight || rect.right < 0 || rect.left > window.innerWidth) {
130
+ this.selectField(null);
131
+ return;
132
+ }
133
+ ev.preventDefault();
134
+ this.nudge(delta[0], delta[1]);
76
135
  }
77
- handleFieldSettingsChanged() {
136
+ handleFieldSettingsChanged(e) {
78
137
  var _a;
138
+ const { fieldName, field } = e.detail || {};
139
+ if (field && fieldName && field.name !== fieldName) {
140
+ this.renameFieldState(fieldName, field.name);
141
+ }
142
+ const resize = field ? this.pendingResizes.get(field.name) : null;
143
+ if (resize) {
144
+ this.recordUndo(field.name, resize.before, field);
145
+ resize.settle();
146
+ }
79
147
  (_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: this.template, event: 'updated-field' });
80
148
  }
81
- handleFieldDeleted() {
82
- var _a;
83
- (_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: this.template, event: 'deleted-field' });
149
+ handleFieldDeleted(e) {
150
+ var _a, _b;
151
+ const name = (_a = e.detail) === null || _a === void 0 ? void 0 : _a.fieldName;
152
+ if (name) {
153
+ this.forgetField(name);
154
+ }
155
+ (_b = this.templateUpdated) === null || _b === void 0 ? void 0 : _b.emit({ endpoint: this.endpoint, template: this.template, event: 'deleted-field' });
84
156
  }
85
157
  async componentWillLoad() {
86
158
  var _a, _b, _c;
@@ -116,6 +188,7 @@ export class VerdocsTemplateFields {
116
188
  toolbarEl.remove();
117
189
  toolbarTarget.append(toolbarEl);
118
190
  }
191
+ this.applySelection();
119
192
  }
120
193
  componentWillUpdate() {
121
194
  var _a, _b;
@@ -128,6 +201,8 @@ export class VerdocsTemplateFields {
128
201
  }
129
202
  disconnectedCallback() {
130
203
  this.unlistenToTemplate();
204
+ this.flushNudge();
205
+ this.selectField(null);
131
206
  }
132
207
  async listenToTemplate() {
133
208
  this.unlistenToTemplate();
@@ -173,13 +248,196 @@ export class VerdocsTemplateFields {
173
248
  });
174
249
  }
175
250
  makeDraggable(el) {
176
- interact(el).draggable({
251
+ interact(el)
252
+ .draggable({
177
253
  listeners: {
254
+ start: this.handleMoveStart.bind(this),
178
255
  move: this.handleMoveField.bind(this),
179
256
  end: this.handleMoveEnd.bind(this),
180
257
  },
258
+ })
259
+ .off('tap', this.handleFieldTap)
260
+ .on('tap', this.handleFieldTap)
261
+ .off('resizestart', this.handleFieldResizeStart)
262
+ .on('resizestart', this.handleFieldResizeStart);
263
+ }
264
+ findField(name) {
265
+ var _a;
266
+ return name ? (((_a = this.template) === null || _a === void 0 ? void 0 : _a.fields) || []).find(field => field.name === name) : undefined;
267
+ }
268
+ // Where the field is drawn right now: its saved geometry plus anything still on its way to the server.
269
+ currentGeometry(field) {
270
+ const { x, y, width, height, page, multiline } = { ...field, ...this.optimistic.get(field.name) };
271
+ return { x, y, width, height, page, multiline };
272
+ }
273
+ selectField(name) {
274
+ if (this.pendingNudge && this.pendingNudge.name !== name) {
275
+ this.flushNudge();
276
+ }
277
+ this.selectedFieldName = name;
278
+ this.applySelection();
279
+ }
280
+ applySelection() {
281
+ var _a;
282
+ document.querySelectorAll('.verdocs-field-selected').forEach(el => el.classList.remove('verdocs-field-selected'));
283
+ const field = this.findField(this.selectedFieldName);
284
+ if (field) {
285
+ (_a = document.getElementById(getFieldId(field))) === null || _a === void 0 ? void 0 : _a.classList.add('verdocs-field-selected');
286
+ }
287
+ }
288
+ recordUndo(name, before, after) {
289
+ if (GEOMETRY_KEYS.some(key => after[key] !== undefined && after[key] !== before[key])) {
290
+ this.undoStack.push({ name, before });
291
+ this.undoStack.splice(0, Math.max(0, this.undoStack.length - MAX_UNDO));
292
+ }
293
+ }
294
+ startResize(name) {
295
+ var _a;
296
+ const field = this.findField(name);
297
+ if (!field) {
298
+ return;
299
+ }
300
+ (_a = this.pendingResizes.get(field.name)) === null || _a === void 0 ? void 0 : _a.settle();
301
+ let settle;
302
+ const done = new Promise(resolve => (settle = resolve));
303
+ const entry = { before: this.currentGeometry(field), settle: () => settle(), done };
304
+ this.pendingResizes.set(field.name, entry);
305
+ // A failed resize never announces itself, so stop waiting on it after a while.
306
+ const timer = setTimeout(() => entry.settle(), 5000);
307
+ done.then(() => {
308
+ clearTimeout(timer);
309
+ if (this.pendingResizes.get(field.name) === entry) {
310
+ this.pendingResizes.delete(field.name);
311
+ }
181
312
  });
182
313
  }
314
+ renameFieldState(oldName, newName) {
315
+ this.undoStack.forEach(entry => entry.name === oldName && (entry.name = newName));
316
+ if (this.selectedFieldName === oldName) {
317
+ this.selectedFieldName = newName;
318
+ }
319
+ }
320
+ forgetField(name) {
321
+ var _a, _b;
322
+ this.undoStack = this.undoStack.filter(entry => entry.name !== name);
323
+ this.optimistic.delete(name);
324
+ (_a = this.pendingResizes.get(name)) === null || _a === void 0 ? void 0 : _a.settle();
325
+ if (((_b = this.pendingNudge) === null || _b === void 0 ? void 0 : _b.name) === name) {
326
+ clearTimeout(this.nudgeTimer);
327
+ this.nudgeTimer = null;
328
+ this.pendingNudge = null;
329
+ }
330
+ if (this.selectedFieldName === name) {
331
+ this.selectField(null);
332
+ }
333
+ }
334
+ drawField(field, geometry = {}) {
335
+ var _a, _b;
336
+ const pageInfo = (_a = this.cachedPageInfo[field.document_id]) === null || _a === void 0 ? void 0 : _a[(_b = geometry.page) !== null && _b !== void 0 ? _b : field.page];
337
+ const el = document.getElementById(getFieldId(field));
338
+ if (el && pageInfo) {
339
+ setControlStyles(el, { ...field, ...geometry }, pageInfo.xScale, pageInfo.yScale);
340
+ }
341
+ }
342
+ nudge(dx, dy) {
343
+ var _a, _b, _c, _d, _e;
344
+ const field = this.findField(this.selectedFieldName);
345
+ if (!field || !document.getElementById(getFieldId(field)) || !((_a = this.cachedPageInfo[field.document_id]) === null || _a === void 0 ? void 0 : _a[field.page])) {
346
+ return;
347
+ }
348
+ if (((_b = this.pendingNudge) === null || _b === void 0 ? void 0 : _b.name) !== field.name) {
349
+ this.flushNudge();
350
+ const before = this.currentGeometry(field);
351
+ this.pendingNudge = { name: field.name, before, x: before.x, y: before.y };
352
+ }
353
+ // Keep the whole field on the page, measured in PDF points.
354
+ const pageSize = (_e = (_d = (((_c = this.template) === null || _c === void 0 ? void 0 : _c.documents) || []).find(doc => doc.id === field.document_id)) === null || _d === void 0 ? void 0 : _d.page_sizes) === null || _e === void 0 ? void 0 : _e[field.page];
355
+ const maxX = ((pageSize === null || pageSize === void 0 ? void 0 : pageSize.width) || 612) - (field.width || defaultWidth(field.type));
356
+ const maxY = ((pageSize === null || pageSize === void 0 ? void 0 : pageSize.height) || 792) - (field.height || defaultHeight(field.type));
357
+ this.pendingNudge.x = Math.min(Math.max(this.pendingNudge.x + dx, 0), maxX);
358
+ this.pendingNudge.y = Math.min(Math.max(this.pendingNudge.y + dy, 0), maxY);
359
+ this.drawField(field, { x: this.pendingNudge.x, y: this.pendingNudge.y });
360
+ if (this.nudgeTimer) {
361
+ clearTimeout(this.nudgeTimer);
362
+ }
363
+ this.nudgeTimer = setTimeout(() => this.flushNudge(), NUDGE_SAVE_DELAY_MS);
364
+ }
365
+ async flushNudge() {
366
+ if (this.nudgeTimer) {
367
+ clearTimeout(this.nudgeTimer);
368
+ this.nudgeTimer = null;
369
+ }
370
+ const pending = this.pendingNudge;
371
+ this.pendingNudge = null;
372
+ if (pending) {
373
+ await this.saveGeometry(pending.name, { x: pending.x, y: pending.y }, pending.before);
374
+ }
375
+ }
376
+ async undo() {
377
+ await this.flushNudge();
378
+ await Promise.all([...this.inFlight, ...[...this.pendingResizes.values()].map(resize => resize.done)]);
379
+ while (this.undoStack.length > 0) {
380
+ const { name, before } = this.undoStack.pop();
381
+ const field = this.findField(name);
382
+ if (field && GEOMETRY_KEYS.some(key => field[key] !== before[key])) {
383
+ this.selectField(name);
384
+ await this.saveGeometry(name, before);
385
+ return;
386
+ }
387
+ }
388
+ }
389
+ // Saves a move, nudge, or undo, drawing the field at its new spot right away. Pass `before` to make it undoable.
390
+ saveGeometry(name, geometry, before) {
391
+ const field = this.findField(name);
392
+ if (!field) {
393
+ return Promise.resolve();
394
+ }
395
+ const sent = { ...geometry };
396
+ this.optimistic.set(name, sent);
397
+ this.drawField(field, geometry);
398
+ const save = (async () => {
399
+ var _a, _b, _c, _d, _e, _f;
400
+ try {
401
+ const updatedField = await updateField(this.endpoint, this.templateId, name, geometry);
402
+ const newTemplate = JSON.parse(JSON.stringify(this.template));
403
+ const fieldIndex = newTemplate.fields.findIndex(field => field.name === name);
404
+ if (fieldIndex > -1) {
405
+ newTemplate.fields[fieldIndex] = updatedField;
406
+ }
407
+ Store.updateTemplate(this.templateId, newTemplate);
408
+ this.drawField(updatedField);
409
+ if (before) {
410
+ this.recordUndo(name, before, updatedField);
411
+ }
412
+ (_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: newTemplate, event: 'updated-field' });
413
+ }
414
+ catch (e) {
415
+ console.log('[FIELDS] Error saving field position', e);
416
+ VerdocsToast(((_c = (_b = e.response) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.error) || 'Unable to move the field. Please try again.', { style: 'error' });
417
+ (_d = this.sdkError) === null || _d === void 0 ? void 0 : _d.emit(new SDKError(e.message, (_e = e.response) === null || _e === void 0 ? void 0 : _e.status, (_f = e.response) === null || _f === void 0 ? void 0 : _f.data));
418
+ // Put it back where the server still has it.
419
+ const saved = this.findField(name);
420
+ if (saved) {
421
+ this.drawField(saved);
422
+ }
423
+ }
424
+ finally {
425
+ if (this.optimistic.get(name) === sent) {
426
+ this.optimistic.delete(name);
427
+ }
428
+ }
429
+ })();
430
+ this.inFlight.add(save);
431
+ save.finally(() => this.inFlight.delete(save));
432
+ return save;
433
+ }
434
+ handleMoveStart(event) {
435
+ const name = event.target.getAttribute('fieldname');
436
+ this.flushNudge();
437
+ this.selectField(name);
438
+ const field = this.findField(name);
439
+ this.dragBefore = field ? { name, before: this.currentGeometry(field) } : null;
440
+ }
183
441
  async handleMoveField(event) {
184
442
  const oldX = +(event.target.getAttribute('posX') || 0);
185
443
  const oldY = +(event.target.getAttribute('posY') || 0);
@@ -192,7 +450,7 @@ export class VerdocsTemplateFields {
192
450
  updateCssTransform(event.target, 'translate', `${newX}px, ${newY}px`);
193
451
  }
194
452
  async handleMoveEnd(event) {
195
- var _a, _b, _c, _d, _e, _f, _g, _h;
453
+ var _a, _b, _c, _d, _e;
196
454
  const name = event.target.getAttribute('fieldname');
197
455
  const field = (((_a = this.template) === null || _a === void 0 ? void 0 : _a.fields) || []).find(field => field.name === name);
198
456
  if (!field) {
@@ -225,31 +483,12 @@ export class VerdocsTemplateFields {
225
483
  console.log('[FIELDS] Next page', { newPageNumber, newY, renderedHeight });
226
484
  }
227
485
  const { x, y } = this.viewCoordinatesToPageCoordinates(newX, newY, documentId, pageNumber, naturalWidth - width, naturalHeight - height);
228
- try {
229
- const params = { x, y, page: newPageNumber };
230
- const updatedField = await updateField(this.endpoint, this.templateId, name, params);
231
- console.log('[FIELDS] Updated', updatedField);
232
- const newTemplate = JSON.parse(JSON.stringify(this.template));
233
- const fieldIndex = newTemplate.fields.findIndex(field => field.name === name);
234
- if (fieldIndex > -1) {
235
- newTemplate.fields[fieldIndex] = updatedField;
236
- }
237
- Store.updateTemplate(this.templateId, newTemplate);
238
- event.target.removeAttribute('posX');
239
- event.target.removeAttribute('posY');
240
- removeCssTransform(event.target);
241
- const { xScale = 1, yScale = 1 } = this.cachedPageInfo[documentId][pageNumber];
242
- setControlStyles(event.target, updatedField, xScale, yScale);
243
- (_e = this.templateUpdated) === null || _e === void 0 ? void 0 : _e.emit({ endpoint: this.endpoint, template: newTemplate, event: 'updated-field' });
244
- }
245
- catch (e) {
246
- VerdocsToast('Error updating field, please try again later', { style: 'error' });
247
- console.log('[FIELDS] Error updating field', e);
248
- (_f = this.sdkError) === null || _f === void 0 ? void 0 : _f.emit(new SDKError(e.message, (_g = e.response) === null || _g === void 0 ? void 0 : _g.status, (_h = e.response) === null || _h === void 0 ? void 0 : _h.data));
249
- event.target.removeAttribute('posX');
250
- event.target.removeAttribute('posY');
251
- removeCssTransform(event.target);
252
- }
486
+ event.target.removeAttribute('posX');
487
+ event.target.removeAttribute('posY');
488
+ removeCssTransform(event.target);
489
+ const before = ((_e = this.dragBefore) === null || _e === void 0 ? void 0 : _e.name) === name ? this.dragBefore.before : undefined;
490
+ this.dragBefore = null;
491
+ await this.saveGeometry(name, { x, y, page: newPageNumber }, before);
253
492
  }
254
493
  generateFieldName(type, pageNumber) {
255
494
  var _a;
@@ -264,12 +503,17 @@ export class VerdocsTemplateFields {
264
503
  // Scale the X,Y clicks to the virtual page dimensions. Also ensure the field doesn't go off the page.
265
504
  viewCoordinatesToPageCoordinates(viewX, viewY, documentId, pageNumber, xMax, yMax) {
266
505
  const { xScale = 1, yScale = 1, renderedHeight = 792 } = this.cachedPageInfo[documentId][pageNumber];
267
- const x = Math.floor(Math.min(viewX / xScale, xMax));
268
- const y = Math.floor(Math.min(Math.max(renderedHeight - viewY, 0) / yScale, yMax));
506
+ // Round rather than floor: PDF y counts up from the bottom, so flooring would pull every drop down and to the left.
507
+ const x = Math.round(Math.min(viewX / xScale, xMax));
508
+ const y = Math.round(Math.min(Math.max(renderedHeight - viewY, 0) / yScale, yMax));
269
509
  return { x, y };
270
510
  }
271
511
  async handleClickPage(e, documentId, pageNumber) {
272
- var _a;
512
+ var _a, _b, _c;
513
+ // Clicks on a field select it through interact's tap, so only a click on the bare page clears the selection.
514
+ if (!this.placing && !((_b = (_a = e.target) === null || _a === void 0 ? void 0 : _a.closest) === null || _b === void 0 ? void 0 : _b.call(_a, '.verdocs-field'))) {
515
+ this.selectField(null);
516
+ }
273
517
  if (this.placing) {
274
518
  // console.log('Placing field', {documentId, pageNumber});
275
519
  const clickedX = e.offsetX;
@@ -308,7 +552,7 @@ export class VerdocsTemplateFields {
308
552
  const newTemplate = JSON.parse(JSON.stringify(this.template));
309
553
  newTemplate.fields.push(newField);
310
554
  Store.updateTemplate(this.templateId, newTemplate);
311
- (_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: newTemplate, event: 'added-field' });
555
+ (_c = this.templateUpdated) === null || _c === void 0 ? void 0 : _c.emit({ endpoint: this.endpoint, template: newTemplate, event: 'added-field' });
312
556
  this.placing = null;
313
557
  }
314
558
  }
@@ -488,6 +732,7 @@ export class VerdocsTemplateFields {
488
732
  }
489
733
  }];
490
734
  }
735
+ static get elementRef() { return "el"; }
491
736
  static get watchers() {
492
737
  return [{
493
738
  "propName": "templateId",