@verdocs/web-sdk 1.9.26 → 1.9.30

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 (255) hide show
  1. package/dist/cjs/{Envelopes-d44c4a28.js → Envelopes-5c4569c8.js} +10 -2
  2. package/dist/cjs/Envelopes-5c4569c8.js.map +1 -0
  3. package/dist/cjs/{Templates-805e8ffa.js → Templates-7d9dda98.js} +2 -2
  4. package/dist/cjs/{Templates-805e8ffa.js.map → Templates-7d9dda98.js.map} +1 -1
  5. package/dist/cjs/index-1329d89c.js.map +1 -1
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/{templateStore-a1ccccdb.js → templateStore-0d394f32.js} +2 -2
  8. package/dist/cjs/{templateStore-a1ccccdb.js.map → templateStore-0d394f32.js.map} +1 -1
  9. package/dist/cjs/{utils-aa1285cc.js → utils-0666fb5d.js} +13 -1
  10. package/dist/cjs/utils-0666fb5d.js.map +1 -0
  11. package/dist/cjs/verdocs-build.cjs.entry.js +3 -3
  12. package/dist/cjs/verdocs-document-page_2.cjs.entry.js +1 -1
  13. package/dist/cjs/verdocs-document-page_2.cjs.entry.js.map +1 -1
  14. package/dist/cjs/verdocs-dropdown_2.cjs.entry.js +3 -2
  15. package/dist/cjs/verdocs-dropdown_2.cjs.entry.js.map +1 -1
  16. package/dist/cjs/verdocs-field-checkbox.cjs.entry.js +1 -1
  17. package/dist/cjs/verdocs-field-date.cjs.entry.js +1 -1
  18. package/dist/cjs/verdocs-field-dropdown.cjs.entry.js +1 -1
  19. package/dist/cjs/verdocs-field-initial.cjs.entry.js +4 -4
  20. package/dist/cjs/verdocs-field-initial.cjs.entry.js.map +1 -1
  21. package/dist/cjs/verdocs-field-payment.cjs.entry.js +1 -1
  22. package/dist/cjs/verdocs-field-radio-button.cjs.entry.js +1 -1
  23. package/dist/cjs/verdocs-field-signature_3.cjs.entry.js +4 -4
  24. package/dist/cjs/verdocs-field-signature_3.cjs.entry.js.map +1 -1
  25. package/dist/cjs/verdocs-field-textarea.cjs.entry.js +1 -1
  26. package/dist/cjs/verdocs-field-textbox.cjs.entry.js +2 -2
  27. package/dist/cjs/verdocs-field-timestamp.cjs.entry.js +1 -1
  28. package/dist/cjs/verdocs-preview.cjs.entry.js +3 -3
  29. package/dist/cjs/verdocs-send.cjs.entry.js +1 -1
  30. package/dist/cjs/verdocs-sign.cjs.entry.js +66 -30
  31. package/dist/cjs/verdocs-sign.cjs.entry.js.map +1 -1
  32. package/dist/cjs/verdocs-template-create_4.cjs.entry.js +3 -3
  33. package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
  34. package/dist/collection/components/elements/verdocs-document-page/verdocs-document-page.js +1 -1
  35. package/dist/collection/components/elements/verdocs-document-page/verdocs-document-page.js.map +1 -1
  36. package/dist/collection/components/elements/verdocs-field-initial/verdocs-field-initial.js +3 -3
  37. package/dist/collection/components/elements/verdocs-field-initial/verdocs-field-initial.js.map +1 -1
  38. package/dist/collection/components/elements/verdocs-field-signature/verdocs-field-signature.js +3 -3
  39. package/dist/collection/components/elements/verdocs-field-signature/verdocs-field-signature.js.map +1 -1
  40. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js +64 -29
  41. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js.map +1 -1
  42. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.stories.js +3 -2
  43. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.stories.js.map +1 -1
  44. package/dist/collection/utils/Envelopes.js +7 -0
  45. package/dist/collection/utils/Envelopes.js.map +1 -1
  46. package/dist/collection/utils/envelopeStore.js +1 -0
  47. package/dist/collection/utils/envelopeStore.js.map +1 -1
  48. package/dist/collection/utils/utils.js +11 -0
  49. package/dist/collection/utils/utils.js.map +1 -1
  50. package/dist/components/templateStore.js +1 -1
  51. package/dist/components/utils.js +12 -1
  52. package/dist/components/utils.js.map +1 -1
  53. package/dist/components/verdocs-document-page2.js +1 -1
  54. package/dist/components/verdocs-document-page2.js.map +1 -1
  55. package/dist/components/verdocs-field-initial.js +3 -3
  56. package/dist/components/verdocs-field-initial.js.map +1 -1
  57. package/dist/components/verdocs-field-signature2.js +3 -3
  58. package/dist/components/verdocs-field-signature2.js.map +1 -1
  59. package/dist/components/verdocs-sign.js +64 -29
  60. package/dist/components/verdocs-sign.js.map +1 -1
  61. package/dist/components/verdocs-template-fields2.js +1 -1
  62. package/dist/components/verdocs-view2.js +9 -1
  63. package/dist/components/verdocs-view2.js.map +1 -1
  64. package/dist/docs.json +2 -2
  65. package/dist/esm/{Envelopes-28a4c67f.js → Envelopes-b87b1909.js} +10 -2
  66. package/dist/esm/Envelopes-b87b1909.js.map +1 -0
  67. package/dist/esm/{Templates-653648bb.js → Templates-452173e6.js} +2 -2
  68. package/dist/esm/{Templates-653648bb.js.map → Templates-452173e6.js.map} +1 -1
  69. package/dist/esm/index-f78d163d.js.map +1 -1
  70. package/dist/esm/loader.js +1 -1
  71. package/dist/esm/{templateStore-8585145f.js → templateStore-d6995852.js} +2 -2
  72. package/dist/esm/{templateStore-8585145f.js.map → templateStore-d6995852.js.map} +1 -1
  73. package/dist/esm/{utils-c666adcf.js → utils-5cddd371.js} +13 -2
  74. package/dist/esm/utils-5cddd371.js.map +1 -0
  75. package/dist/esm/verdocs-build.entry.js +3 -3
  76. package/dist/esm/verdocs-document-page_2.entry.js +1 -1
  77. package/dist/esm/verdocs-document-page_2.entry.js.map +1 -1
  78. package/dist/esm/verdocs-dropdown_2.entry.js +3 -2
  79. package/dist/esm/verdocs-dropdown_2.entry.js.map +1 -1
  80. package/dist/esm/verdocs-field-checkbox.entry.js +1 -1
  81. package/dist/esm/verdocs-field-date.entry.js +1 -1
  82. package/dist/esm/verdocs-field-dropdown.entry.js +1 -1
  83. package/dist/esm/verdocs-field-initial.entry.js +4 -4
  84. package/dist/esm/verdocs-field-initial.entry.js.map +1 -1
  85. package/dist/esm/verdocs-field-payment.entry.js +1 -1
  86. package/dist/esm/verdocs-field-radio-button.entry.js +1 -1
  87. package/dist/esm/verdocs-field-signature_3.entry.js +4 -4
  88. package/dist/esm/verdocs-field-signature_3.entry.js.map +1 -1
  89. package/dist/esm/verdocs-field-textarea.entry.js +1 -1
  90. package/dist/esm/verdocs-field-textbox.entry.js +2 -2
  91. package/dist/esm/verdocs-field-timestamp.entry.js +1 -1
  92. package/dist/esm/verdocs-preview.entry.js +3 -3
  93. package/dist/esm/verdocs-send.entry.js +1 -1
  94. package/dist/esm/verdocs-sign.entry.js +66 -30
  95. package/dist/esm/verdocs-sign.entry.js.map +1 -1
  96. package/dist/esm/verdocs-template-create_4.entry.js +3 -3
  97. package/dist/esm/verdocs-web-sdk.js +1 -1
  98. package/dist/esm-es5/Envelopes-b87b1909.js +2 -0
  99. package/dist/esm-es5/Envelopes-b87b1909.js.map +1 -0
  100. package/dist/esm-es5/{Templates-653648bb.js → Templates-452173e6.js} +2 -2
  101. package/dist/esm-es5/{Templates-653648bb.js.map → Templates-452173e6.js.map} +0 -0
  102. package/dist/esm-es5/index-f78d163d.js.map +1 -1
  103. package/dist/esm-es5/loader.js +1 -1
  104. package/dist/esm-es5/loader.js.map +1 -1
  105. package/dist/esm-es5/{templateStore-8585145f.js → templateStore-d6995852.js} +2 -2
  106. package/dist/esm-es5/{templateStore-8585145f.js.map → templateStore-d6995852.js.map} +0 -0
  107. package/dist/esm-es5/utils-5cddd371.js +2 -0
  108. package/dist/esm-es5/utils-5cddd371.js.map +1 -0
  109. package/dist/esm-es5/verdocs-build.entry.js +1 -1
  110. package/dist/esm-es5/verdocs-document-page_2.entry.js +1 -1
  111. package/dist/esm-es5/verdocs-document-page_2.entry.js.map +1 -1
  112. package/dist/esm-es5/verdocs-dropdown_2.entry.js +1 -1
  113. package/dist/esm-es5/verdocs-dropdown_2.entry.js.map +1 -1
  114. package/dist/esm-es5/verdocs-field-checkbox.entry.js +1 -1
  115. package/dist/esm-es5/verdocs-field-date.entry.js +1 -1
  116. package/dist/esm-es5/verdocs-field-dropdown.entry.js +1 -1
  117. package/dist/esm-es5/verdocs-field-initial.entry.js +1 -1
  118. package/dist/esm-es5/verdocs-field-initial.entry.js.map +1 -1
  119. package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
  120. package/dist/esm-es5/verdocs-field-radio-button.entry.js +1 -1
  121. package/dist/esm-es5/verdocs-field-signature_3.entry.js +1 -1
  122. package/dist/esm-es5/verdocs-field-signature_3.entry.js.map +1 -1
  123. package/dist/esm-es5/verdocs-field-textarea.entry.js +1 -1
  124. package/dist/esm-es5/verdocs-field-textbox.entry.js +1 -1
  125. package/dist/esm-es5/verdocs-field-timestamp.entry.js +1 -1
  126. package/dist/esm-es5/verdocs-preview.entry.js +1 -1
  127. package/dist/esm-es5/verdocs-send.entry.js +1 -1
  128. package/dist/esm-es5/verdocs-sign.entry.js +1 -1
  129. package/dist/esm-es5/verdocs-sign.entry.js.map +1 -1
  130. package/dist/esm-es5/verdocs-template-create_4.entry.js +1 -1
  131. package/dist/esm-es5/verdocs-web-sdk.js +1 -1
  132. package/dist/esm-es5/verdocs-web-sdk.js.map +1 -1
  133. package/dist/types/components/embeds/verdocs-sign/verdocs-sign.d.ts +1 -0
  134. package/dist/types/utils/envelopeStore.d.ts +2 -0
  135. package/dist/types/utils/utils.d.ts +1 -0
  136. package/dist/verdocs-web-sdk/{p-1cb6f31a.entry.js → p-0105b271.entry.js} +2 -2
  137. package/dist/verdocs-web-sdk/{p-1cb6f31a.entry.js.map → p-0105b271.entry.js.map} +0 -0
  138. package/dist/verdocs-web-sdk/{p-5b7a5deb.js → p-01a88d6f.js} +2 -2
  139. package/dist/verdocs-web-sdk/{p-5b7a5deb.js.map → p-01a88d6f.js.map} +0 -0
  140. package/dist/verdocs-web-sdk/{p-e02e05a2.entry.js → p-06652374.entry.js} +2 -2
  141. package/dist/verdocs-web-sdk/{p-e02e05a2.entry.js.map → p-06652374.entry.js.map} +0 -0
  142. package/dist/verdocs-web-sdk/{p-c6de4457.system.entry.js → p-0e5b8a3c.system.entry.js} +2 -2
  143. package/dist/verdocs-web-sdk/{p-c6de4457.system.entry.js.map → p-0e5b8a3c.system.entry.js.map} +0 -0
  144. package/dist/verdocs-web-sdk/{p-7421e32e.entry.js → p-1c035886.entry.js} +2 -2
  145. package/dist/verdocs-web-sdk/p-1c035886.entry.js.map +1 -0
  146. package/dist/verdocs-web-sdk/{p-7fd610f5.entry.js → p-1d96d8e2.entry.js} +2 -2
  147. package/dist/verdocs-web-sdk/{p-7fd610f5.entry.js.map → p-1d96d8e2.entry.js.map} +0 -0
  148. package/dist/verdocs-web-sdk/{p-9dc3b579.system.entry.js → p-1ee79c76.system.entry.js} +2 -2
  149. package/dist/verdocs-web-sdk/{p-9dc3b579.system.entry.js.map → p-1ee79c76.system.entry.js.map} +0 -0
  150. package/dist/verdocs-web-sdk/{p-695a3cce.entry.js → p-26409bd3.entry.js} +2 -2
  151. package/dist/verdocs-web-sdk/{p-695a3cce.entry.js.map → p-26409bd3.entry.js.map} +0 -0
  152. package/dist/verdocs-web-sdk/{p-15aa525d.entry.js → p-2c00bfe5.entry.js} +2 -2
  153. package/dist/verdocs-web-sdk/{p-15aa525d.entry.js.map → p-2c00bfe5.entry.js.map} +0 -0
  154. package/dist/verdocs-web-sdk/{p-92e526a0.system.entry.js → p-2ce6d16e.system.entry.js} +2 -2
  155. package/dist/verdocs-web-sdk/p-2ce6d16e.system.entry.js.map +1 -0
  156. package/dist/verdocs-web-sdk/{p-9e5fcf92.system.entry.js → p-30e6ba76.system.entry.js} +2 -2
  157. package/dist/verdocs-web-sdk/{p-9e5fcf92.system.entry.js.map → p-30e6ba76.system.entry.js.map} +0 -0
  158. package/dist/verdocs-web-sdk/{p-0ca01601.system.entry.js → p-3397509c.system.entry.js} +2 -2
  159. package/dist/verdocs-web-sdk/{p-0ca01601.system.entry.js.map → p-3397509c.system.entry.js.map} +0 -0
  160. package/dist/verdocs-web-sdk/{p-6ec79ddc.system.entry.js → p-41758626.system.entry.js} +2 -2
  161. package/dist/verdocs-web-sdk/{p-6ec79ddc.system.entry.js.map → p-41758626.system.entry.js.map} +0 -0
  162. package/dist/verdocs-web-sdk/p-4a6d038d.js +2 -0
  163. package/dist/verdocs-web-sdk/p-4a6d038d.js.map +1 -0
  164. package/dist/verdocs-web-sdk/{p-f47224c8.system.entry.js → p-4b5c0516.system.entry.js} +2 -2
  165. package/dist/verdocs-web-sdk/{p-f47224c8.system.entry.js.map → p-4b5c0516.system.entry.js.map} +0 -0
  166. package/dist/verdocs-web-sdk/{p-075025ab.system.js → p-4dfd765a.system.js} +2 -2
  167. package/dist/verdocs-web-sdk/{p-075025ab.system.js.map → p-4dfd765a.system.js.map} +0 -0
  168. package/dist/verdocs-web-sdk/{p-4d371bfe.system.entry.js → p-529b7da3.system.entry.js} +2 -2
  169. package/dist/verdocs-web-sdk/{p-4d371bfe.system.entry.js.map → p-529b7da3.system.entry.js.map} +0 -0
  170. package/dist/verdocs-web-sdk/{p-f7a56f6c.entry.js → p-534f0a97.entry.js} +2 -2
  171. package/dist/verdocs-web-sdk/p-534f0a97.entry.js.map +1 -0
  172. package/dist/verdocs-web-sdk/p-584d8151.js +2 -0
  173. package/dist/verdocs-web-sdk/{p-a51bb6bf.js.map → p-584d8151.js.map} +0 -0
  174. package/dist/verdocs-web-sdk/{p-1fc3f986.system.entry.js → p-58e850fe.system.entry.js} +2 -2
  175. package/dist/verdocs-web-sdk/p-58e850fe.system.entry.js.map +1 -0
  176. package/dist/verdocs-web-sdk/{p-db837a46.system.entry.js → p-5fd49bc3.system.entry.js} +2 -2
  177. package/dist/verdocs-web-sdk/{p-db837a46.system.entry.js.map → p-5fd49bc3.system.entry.js.map} +0 -0
  178. package/dist/verdocs-web-sdk/p-625b1c62.entry.js +2 -0
  179. package/dist/verdocs-web-sdk/{p-5f036dfe.entry.js.map → p-625b1c62.entry.js.map} +1 -1
  180. package/dist/verdocs-web-sdk/{p-fcc3041d.js → p-72984b2f.js} +2 -2
  181. package/dist/verdocs-web-sdk/p-72984b2f.js.map +1 -0
  182. package/dist/verdocs-web-sdk/{p-4f3b1c7c.entry.js → p-822f510f.entry.js} +2 -2
  183. package/dist/verdocs-web-sdk/{p-4f3b1c7c.entry.js.map → p-822f510f.entry.js.map} +0 -0
  184. package/dist/verdocs-web-sdk/{p-38d5bc9e.entry.js → p-8917f698.entry.js} +2 -2
  185. package/dist/verdocs-web-sdk/{p-38d5bc9e.entry.js.map → p-8917f698.entry.js.map} +0 -0
  186. package/dist/verdocs-web-sdk/{p-a6781789.system.entry.js → p-8945bf3c.system.entry.js} +2 -2
  187. package/dist/verdocs-web-sdk/{p-a6781789.system.entry.js.map → p-8945bf3c.system.entry.js.map} +0 -0
  188. package/dist/verdocs-web-sdk/p-8ba71030.entry.js +2 -0
  189. package/dist/verdocs-web-sdk/p-8ba71030.entry.js.map +1 -0
  190. package/dist/verdocs-web-sdk/{p-0126c601.entry.js → p-8d5a6ec9.entry.js} +2 -2
  191. package/dist/verdocs-web-sdk/{p-0126c601.entry.js.map → p-8d5a6ec9.entry.js.map} +0 -0
  192. package/dist/verdocs-web-sdk/p-95518265.system.entry.js +2 -0
  193. package/dist/verdocs-web-sdk/p-95518265.system.entry.js.map +1 -0
  194. package/dist/verdocs-web-sdk/p-97329951.system.js.map +1 -1
  195. package/dist/verdocs-web-sdk/{p-78f5c8ad.system.js → p-9ff3e906.system.js} +2 -2
  196. package/dist/verdocs-web-sdk/p-9ff3e906.system.js.map +1 -0
  197. package/dist/verdocs-web-sdk/{p-f68306f5.entry.js → p-a2702bfa.entry.js} +2 -2
  198. package/dist/verdocs-web-sdk/{p-f68306f5.entry.js.map → p-a2702bfa.entry.js.map} +0 -0
  199. package/dist/verdocs-web-sdk/{p-b5f64429.entry.js → p-a3fff56c.entry.js} +2 -2
  200. package/dist/verdocs-web-sdk/{p-b5f64429.entry.js.map → p-a3fff56c.entry.js.map} +0 -0
  201. package/dist/verdocs-web-sdk/p-c16b6ca4.system.js +1 -1
  202. package/dist/verdocs-web-sdk/p-c16b6ca4.system.js.map +1 -1
  203. package/dist/verdocs-web-sdk/p-c7a4ccd5.entry.js +2 -0
  204. package/dist/verdocs-web-sdk/p-c7a4ccd5.entry.js.map +1 -0
  205. package/dist/verdocs-web-sdk/{p-070ba589.system.entry.js → p-d0d56c55.system.entry.js} +2 -2
  206. package/dist/verdocs-web-sdk/{p-070ba589.system.entry.js.map → p-d0d56c55.system.entry.js.map} +0 -0
  207. package/dist/verdocs-web-sdk/{p-5a08e378.entry.js → p-d93d1b8d.entry.js} +2 -2
  208. package/dist/verdocs-web-sdk/{p-5a08e378.entry.js.map → p-d93d1b8d.entry.js.map} +0 -0
  209. package/dist/verdocs-web-sdk/p-dcd4f1c9.system.entry.js +2 -0
  210. package/dist/verdocs-web-sdk/p-dcd4f1c9.system.entry.js.map +1 -0
  211. package/dist/verdocs-web-sdk/p-decfd8b1.system.js +2 -0
  212. package/dist/verdocs-web-sdk/p-decfd8b1.system.js.map +1 -0
  213. package/dist/verdocs-web-sdk/{p-c41d9fc0.entry.js → p-dfd06a67.entry.js} +2 -2
  214. package/dist/verdocs-web-sdk/{p-c41d9fc0.entry.js.map → p-dfd06a67.entry.js.map} +0 -0
  215. package/dist/verdocs-web-sdk/{p-7937a240.system.entry.js → p-eb74df9e.system.entry.js} +2 -2
  216. package/dist/verdocs-web-sdk/{p-7937a240.system.entry.js.map → p-eb74df9e.system.entry.js.map} +0 -0
  217. package/dist/verdocs-web-sdk/p-f4193d8f.system.entry.js +2 -0
  218. package/dist/verdocs-web-sdk/{p-c731755d.system.entry.js.map → p-f4193d8f.system.entry.js.map} +1 -1
  219. package/dist/verdocs-web-sdk/{p-a98ced34.system.entry.js → p-f4451ad4.system.entry.js} +2 -2
  220. package/dist/verdocs-web-sdk/{p-a98ced34.system.entry.js.map → p-f4451ad4.system.entry.js.map} +0 -0
  221. package/dist/verdocs-web-sdk/{p-2bc68d06.system.js → p-fcedb50f.system.js} +2 -2
  222. package/dist/verdocs-web-sdk/{p-2bc68d06.system.js.map → p-fcedb50f.system.js.map} +0 -0
  223. package/dist/verdocs-web-sdk/p-ff1278ed.js.map +1 -1
  224. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  225. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js.map +1 -1
  226. package/package.json +1 -1
  227. package/dist/cjs/Envelopes-d44c4a28.js.map +0 -1
  228. package/dist/cjs/utils-aa1285cc.js.map +0 -1
  229. package/dist/esm/Envelopes-28a4c67f.js.map +0 -1
  230. package/dist/esm/utils-c666adcf.js.map +0 -1
  231. package/dist/esm-es5/Envelopes-28a4c67f.js +0 -2
  232. package/dist/esm-es5/Envelopes-28a4c67f.js.map +0 -1
  233. package/dist/esm-es5/utils-c666adcf.js +0 -2
  234. package/dist/esm-es5/utils-c666adcf.js.map +0 -1
  235. package/dist/verdocs-web-sdk/p-1058c062.system.js +0 -2
  236. package/dist/verdocs-web-sdk/p-1058c062.system.js.map +0 -1
  237. package/dist/verdocs-web-sdk/p-1fc3f986.system.entry.js.map +0 -1
  238. package/dist/verdocs-web-sdk/p-4b516c47.system.entry.js +0 -2
  239. package/dist/verdocs-web-sdk/p-4b516c47.system.entry.js.map +0 -1
  240. package/dist/verdocs-web-sdk/p-5f036dfe.entry.js +0 -2
  241. package/dist/verdocs-web-sdk/p-7421e32e.entry.js.map +0 -1
  242. package/dist/verdocs-web-sdk/p-78f5c8ad.system.js.map +0 -1
  243. package/dist/verdocs-web-sdk/p-92e526a0.system.entry.js.map +0 -1
  244. package/dist/verdocs-web-sdk/p-a51bb6bf.js +0 -2
  245. package/dist/verdocs-web-sdk/p-c731755d.system.entry.js +0 -2
  246. package/dist/verdocs-web-sdk/p-c7a22e57.system.entry.js +0 -2
  247. package/dist/verdocs-web-sdk/p-c7a22e57.system.entry.js.map +0 -1
  248. package/dist/verdocs-web-sdk/p-de06e0c6.js +0 -2
  249. package/dist/verdocs-web-sdk/p-de06e0c6.js.map +0 -1
  250. package/dist/verdocs-web-sdk/p-f7a56f6c.entry.js.map +0 -1
  251. package/dist/verdocs-web-sdk/p-f9103136.entry.js +0 -2
  252. package/dist/verdocs-web-sdk/p-f9103136.entry.js.map +0 -1
  253. package/dist/verdocs-web-sdk/p-fa25cd77.entry.js +0 -2
  254. package/dist/verdocs-web-sdk/p-fa25cd77.entry.js.map +0 -1
  255. package/dist/verdocs-web-sdk/p-fcc3041d.js.map +0 -1
@@ -1 +1 @@
1
- {"file":"verdocs-field-signature.verdocs-signature-dialog.verdocs-toolbar-icon.entry.js","mappings":"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","names":[],"sources":["./src/components/elements/verdocs-field-signature/verdocs-field-signature.scss?tag=verdocs-field-signature","./src/components/elements/verdocs-field-signature/verdocs-field-signature.tsx","./src/components/dialogs/verdocs-signature-dialog/verdocs-signature-dialog.scss?tag=verdocs-signature-dialog","./src/components/dialogs/verdocs-signature-dialog/verdocs-signature-dialog.tsx","./src/components/controls/verdocs-toolbar-icon/verdocs-toolbar-icon.scss?tag=verdocs-toolbar-icon","./src/components/controls/verdocs-toolbar-icon/verdocs-toolbar-icon.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 letter-spacing: 0.3px;\n background-color: transparent;\n transform-origin: bottom left;\n border: 1px solid rgba(0, 0, 0, 0.2);\n\n &.disabled {\n opacity: 0.5;\n }\n\n &.done {\n border: none;\n opacity: 1;\n }\n\n img {\n display: block;\n max-width: 100%;\n max-height: 100%;\n }\n\n button {\n box-sizing: border-box;\n border: none;\n 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 rgb(204, 0, 0);\n }\n\n &.focused {\n animation: verdocs-field-pulse 0.75s 2;\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","import {getRGBA} from '@verdocs/js-sdk/Utils/Colors';\nimport {ITemplateField} from '@verdocs/js-sdk/Templates/Types';\nimport {IDocumentField} from '@verdocs/js-sdk/Envelopes/Types';\nimport {Component, h, Host, Prop, Event, EventEmitter, Method, State} from '@stencil/core';\nimport {getFieldSettings} from '../../../utils/utils';\n\nconst settingsIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" width=\"20\"><path d=\"m7.5 18.5-.312-2.667q-.188-.125-.396-.25-.209-.125-.396-.229l-2.479 1.063-2.521-4.334 2.125-1.625q.021-.104.021-.229v-.458q0-.125-.021-.229L1.396 7.917l2.521-4.313 2.5 1.042q.166-.104.375-.229.208-.125.396-.229L7.5 1.5h5l.312 2.688q.188.104.396.229.209.125.396.229l2.479-1.042 2.521 4.313-2.125 1.625v.916l2.125 1.625-2.521 4.334-2.5-1.063q-.166.104-.375.229-.208.125-.396.25L12.5 18.5Zm2.479-5.521q1.229 0 2.104-.875T12.958 10q0-1.229-.875-2.104t-2.104-.875q-1.208 0-2.094.875Q7 8.771 7 10t.885 2.104q.886.875 2.094.875Zm0-1.75q-.5 0-.864-.364Q8.75 10.5 8.75 10t.365-.865q.364-.364.864-.364t.865.364q.364.365.364.865t-.364.865q-.365.364-.865.364ZM10.021 10Zm-.792 6.521h1.542l.25-2.146q.625-.167 1.198-.51.573-.344 1.031-.823l2.021.854.771-1.271-1.771-1.354q.104-.292.156-.615.052-.323.052-.656 0-.292-.052-.604-.052-.313-.135-.646l1.77-1.375-.77-1.271-2.021.875q-.479-.5-1.042-.833-.562-.334-1.187-.5l-.271-2.167H9.208l-.25 2.167q-.625.166-1.187.5-.563.333-1.042.812l-2-.854-.771 1.271 1.73 1.354q-.084.333-.136.656Q5.5 9.708 5.5 10t.052.604q.052.313.136.667l-1.73 1.354.771 1.271 2-.834q.479.459 1.042.792.562.334 1.187.5Z\"/></svg>';\n\n/**\n * Displays a signature field. If a signature already exists, it will be displayed and the field will be disabled. Otherwise, a placeholder\n * button will be shown. Clicking the button will show a dialog to adopt a signature.\n */\n@Component({\n tag: 'verdocs-field-signature',\n styleUrl: 'verdocs-field-signature.scss',\n shadow: false,\n})\nexport class VerdocsFieldSignature {\n /**\n * The document or template field to display.\n */\n @Prop() field: IDocumentField | ITemplateField | null = null;\n\n /**\n * If set, the signature creation dialog will be initialized with this text.\n */\n @Prop() 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() 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() 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() 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() done?: boolean = false;\n\n /**\n * If set, the field will be colored using this index value to select the background color.\n */\n @Prop() roleindex?: number = 0;\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 @Method() async focusField() {\n this.handleShow();\n console.log('focused', this);\n }\n\n @State()\n tempSignature: string = '';\n\n private dialog?: any;\n\n hideDialog() {\n this.dialog?.remove();\n this.dialog = null;\n }\n\n handleAdopt(e: any) {\n console.log('[SIGNATURE] Adopted signature');\n this.tempSignature = e.detail;\n this.fieldChange?.emit(this.tempSignature);\n this.hideDialog();\n }\n\n handleShow() {\n this.dialog = document.createElement('verdocs-signature-dialog');\n this.dialog.setAttribute('name', this.name);\n this.dialog.setAttribute('roleindex', this.roleindex);\n this.dialog.addEventListener('cancel', () => this.hideDialog());\n this.dialog.addEventListener('next', e => this.handleAdopt(e));\n document.body.append(this.dialog);\n }\n\n render() {\n const settings = getFieldSettings(this.field);\n const value = this.tempSignature || settings.base64;\n const disabled = this.disabled ?? settings.disabled ?? false;\n const backgroundColor = this.field['rgba'] || getRGBA(this.roleindex);\n\n if (this.done) {\n return <Host class={{done: this.done}}>{value && <img src={this.tempSignature || settings.base64} alt=\"Signature\" />}</Host>;\n }\n\n return (\n <Host class={{required: this.field?.required, disabled}} style={{backgroundColor}}>\n {value ? <img src={this.tempSignature || settings.base64} alt=\"Signature\" /> : <button onClick={() => !disabled && this.handleShow()}>Signature</button>}\n\n {this.editable && (\n <verdocs-button-panel icon={settingsIcon}>\n <h6>Field Settings</h6>\n <form>\n <verdocs-select-input\n label=\"Recipient\"\n options={[\n {label: 'Buyer', value: 'Buyer'},\n {label: 'Seller', value: 'Seller'},\n ]}\n />\n\n <verdocs-text-input label=\"Field Name\" value=\"\" placeholder=\"Stored field name...\" onInput={e => console.log('ipt', e)} />\n <verdocs-text-input label=\"Placeholder\" value=\"\" placeholder=\"Placeholder text...\" onInput={e => console.log('ipt', e)} />\n </form>\n </verdocs-button-panel>\n )}\n </Host>\n );\n }\n}\n","@import '../../../theme.scss';\n\nverdocs-signature-dialog {\n font-family: $primary-font;\n box-sizing: border-box;\n position: fixed;\n z-index: 10000;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #0000007f;\n\n .dialog {\n width: 100%;\n max-width: 340px;\n border-radius: 4px;\n overflow: hidden;\n box-shadow: 3px 3px 5px 1px rgba(40, 40, 40, 0.4);\n background: $dialog-bg;\n }\n\n .heading {\n display: flex;\n flex-direction: row;\n padding: 20px 20px 0 20px;\n line-height: 28px;\n font-size: 20px;\n font-weight: 500;\n }\n\n .content {\n font-size: 14px;\n padding: 20px;\n }\n\n .buttons {\n display: flex;\n margin: 20px 0 0 0;\n flex-direction: row;\n justify-content: flex-end;\n align-items: center;\n\n verdocs-button {\n margin-left: 16px;\n }\n }\n\n canvas {\n background: $verdocs-grey-4;\n box-sizing: border-box;\n margin: 0 auto;\n width: 300px;\n // TODO: The original app had an aspect ratio of (80 / 305) * (signatureBodyWidth - 20)\n height: 79px;\n max-width: 100%;\n box-shadow: 0 0 6px 0 #0000001f;\n }\n\n .disclaimer {\n text-align: justify;\n padding: 8px 0;\n font-size: 11px;\n line-height: 14px;\n color: rgba(0, 0, 0, 0.54);\n }\n\n .as-shown {\n font-size: 11px;\n margin: 4px 0 20px 4px;\n color: rgba(0, 0, 0, 0.54);\n }\n\n .tabs {\n display: flex;\n flex-direction: row;\n\n .tab {\n padding: 8px 15px;\n cursor: pointer;\n\n &.active {\n border-bottom: 2px solid $light-border-color;\n }\n\n &:hover {\n color: $primary-color;\n }\n }\n }\n}\n","import {Component, Prop, h, Event, EventEmitter, State, Host} from '@stencil/core';\n\n/**\n * Display a dialog that allows the user to specify a signature image, either by using a signature-font-generated image\n * based on their full name, or by hand-drawing their signature with a mouse or tablet.\n */\n@Component({\n tag: 'verdocs-signature-dialog',\n styleUrl: 'verdocs-signature-dialog.scss',\n})\nexport class VerdocsSignatureDialog {\n private canvasElement?: HTMLCanvasElement;\n\n /**\n * Initial signature text\n */\n @Prop() name: string = '';\n\n /**\n * Fired when the user completes the dialog and clicks Adopt. The event detail will contain a base64-encoded string\n * representation of the signature adopted.\n */\n @Event({composed: true}) next: EventEmitter<string>;\n\n /**\n * Fired if the user cancels the dialog.\n */\n @Event({composed: true}) cancel: EventEmitter;\n\n @State() fontLoaded = false;\n\n @State() enteredName: string = '';\n\n @State() mode: string = 'type';\n\n componentWillLoad() {\n this.enteredName = this.name;\n\n const ds = new FontFace('Dancing Script', 'url(https://fonts.gstatic.com/s/dancingscript/v19/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BMSo3Sup6hNX6plRP.woff)');\n ds.load().then(font => {\n document.fonts.add(font);\n this.fontLoaded = true;\n });\n }\n\n componentDidLoad() {\n this.redrawSignature();\n }\n\n componentDidUpdate() {\n this.redrawSignature();\n }\n\n redrawSignature() {\n if (!this.canvasElement) {\n return;\n }\n\n const canvasWidth = this.canvasElement.width;\n\n const context = this.canvasElement.getContext('2d');\n context.clearRect(0, 0, this.canvasElement.width, this.canvasElement.height);\n\n let fontSize = 100;\n do {\n fontSize -= 2;\n context.font = `${fontSize}px Dancing Script`;\n } while (context.measureText(this.enteredName).width > canvasWidth - 32); // 32px padding each side\n\n context.textAlign = 'center';\n context.textBaseline = 'middle';\n context.font = `${fontSize}px Dancing Script`;\n context.fillText(this.enteredName, this.canvasElement.width / 2, this.canvasElement.height / 2);\n }\n\n handleNameChange(e: any) {\n this.enteredName = e.target.value;\n }\n\n handleCancel(e: any) {\n e.stopPropagation();\n e.preventDefault();\n this.cancel.emit();\n }\n\n handleAdopt(e: any) {\n e.stopPropagation();\n e.preventDefault();\n const data = this.canvasElement.toDataURL('image/png');\n this.next.emit(data);\n }\n\n /*\n selColor(hex: string) {\n this.color = hex;\n this.animateDraw();\n }\n\n stopDraw() {\n this.paint = false;\n this.adoptedAndSigned = !this.hasSignature();\n }\n\n draw(e) {\n this.paint = true;\n this.addPoints(e, false);\n this.animateDraw();\n }\n\n recordPoints(e) {\n if (this.paint) {\n this.addPoints(e, true);\n this.animateDraw();\n }\n }\n\n animateDraw() {\n this.canvas.clearRect(0, 0, this.canvas.canvas.offsetWidth, this.canvas.canvas.offsetHeight);\n\n this.canvas.strokeStyle = this.color || '#000000';\n this.canvas.lineJoin = 'round';\n this.canvas.lineWidth = 3;\n\n for (let i = 0; i < this.points.length; i++) {\n this.canvas.beginPath();\n if (this.points[i].drag && i) {\n this.canvas.moveTo(this.points[i - 1].x, this.points[i - 1].y);\n // this.canvas.arc(this.points[i - 1].x, this.points[i - 1].y, 2, 0, 2 * Math.PI, false);\n } else {\n this.canvas.moveTo(this.points[i].x - 1, this.points[i].y);\n // this.canvas.arc(this.points[i].x, this.points[i].y, 2, 0, 2 * Math.PI, false);\n }\n\n this.canvas.lineTo(this.points[i].x, this.points[i].y);\n this.canvas.closePath();\n this.canvas.stroke();\n }\n }\n\n drawCurve(color: string, curve: number) {\n this.canvas.beginPath();\n }\n\n\n\n addPoints(e, drag: boolean) {\n if (window) {\n let x;\n let y;\n e.preventDefault();\n if (e.touches && e.touches.length > 0) {\n x = e.touches[0].clientX;\n } else {\n x = e.clientX;\n }\n\n if (e.touches && e.touches.length > 0) {\n y = e.touches[0].clientY;\n } else {\n y = e.clientY;\n }\n const rect = this.signatureCanvas.nativeElement.getBoundingClientRect();\n this.points.push({\n x: x - rect.left,\n y: y - rect.top,\n drag: drag\n });\n }\n }\n\n clearPad() {\n this.canvas.clearRect(0, 0, this.canvas.canvas.offsetWidth, this.canvas.canvas.offsetHeight);\n this.points = [];\n this.adoptedAndSigned = !this.hasSignature();\n }\n\n async adoptAndSign() {\n try {\n this.adoptedAndSigned = true;\n await this.updateFullName();\n await this.captureSignatureFromCanvas();\n const message = this.signatureMode === 'Signature' ? 'Saving Signature' : 'Saving Initial';\n this.snackbarService.open(message, 'OK', this.snackbarService.initConfig(null, 'bottom'));\n this.handleMode();\n } catch (err) {\n this.snackbarService.open('Failed to apply signature', 'OK', this.snackbarService.initConfig(null, 'bottom'));\n }\n }\n\n handleMode() {\n let currentField;\n switch (this.mode) {\n case 'signerview':\n if (this.signatureMode === 'Signature') {\n this.signatureService.postSignatureBlob().then(result => {\n if (result && result.id && result.url) {\n currentField = this.signatureService.currField;\n this.signatureService.updateSigned(currentField.fName, true);\n this.signatureService.toggleSig(false);\n this.signatureService.setSignatureId(result.id);\n this.signatureService.putSignatureField(this.envelopeId, this.fieldName, result.id).then(res => {\n this.eventTracker.createEvent({\n category: 'verdoc',\n action: 'verdoc signed',\n label: `verdoc id: ${this.envelopeId}`\n })\n if (res && res.settings) {\n this.signatureService.setSignatureData(res.settings.base64);\n this.signatureService.setSignatureId(res.settings.signature_id);\n }\n this.snackbarService.dismiss();\n this.dialog.close({ status: 'saved', temp_sig: res.settings.base64, sig_id: res.settings.signature_id });\n }).catch(err => {\n this.snackbarService.open('Failed to save signature. Please try again.', 'DISMISS', {\n duration: 3000\n });\n this.adoptedAndSigned = false;\n return err;\n });\n }\n });\n } else {\n this.signatureService.postInitialBlob().then(result => {\n if (result && result.id && result.url) {\n currentField = this.signatureService.currField;\n this.signatureService.updateInitialed(currentField.fName, true);\n this.signatureService.setInitialId(result.id);\n this.signatureService.toggleSig(false);\n this.signatureService.putInitialField(this.envelopeId, this.fieldName, result.id).then(res => {\n if (res && res.settings) {\n this.signatureService.setInitialData(res.settings.base64);\n this.signatureService.setInitialId(res.settings.initial_id);\n }\n this.snackbarService.dismiss();\n this.dialog.close({ status: 'saved', temp_int: res.settings.base64, int_id: res.settings.initial_id });\n }).catch(err => {\n this.snackbarService.open('Failed to save initial. Please try again.', 'DISMISS', {\n duration: 3000\n });\n this.adoptedAndSigned = false;\n return err;\n });\n }\n });\n }\n break;\n }\n }\n */\n\n render() {\n return (\n <Host onClick={e => this.handleCancel(e)}>\n <div class=\"dialog\">\n <div class=\"heading\">Create Your Signature</div>\n\n <div class=\"content\">\n <verdocs-text-input placeholder=\"Full Name...\" label=\"Full Name\" value={this.enteredName} onInput={e => this.handleNameChange(e)} onClick={e => e.stopPropagation()} />\n <div class=\"as-shown\">As shown on driver's license or govt. ID card.</div>\n\n {/*<div class=\"tabs\">*/}\n {/* <div class={{tab: true, active: this.mode === 'type'}} onClick={() => (this.mode = 'type')}>*/}\n {/* Type*/}\n {/* </div>*/}\n {/*<div class={{tab: true, active: this.mode === 'draw'}} onClick={() => (this.mode = 'draw')}>*/}\n {/* Draw*/}\n {/*</div>*/}\n {/*</div>*/}\n\n {this.fontLoaded ? <canvas ref={el => (this.canvasElement = el as HTMLCanvasElement)} /> : <div style={{display: 'none'}} />}\n\n <div class=\"disclaimer\">\n By clicking Adopt, I agree that the signature will be the electronic representation of my signature for all purposes when I (or my agent) use them on documents,\n including legally binding contracts &mdash; just the same as a pen-and-paper signature or initial.\n </div>\n\n <div class=\"buttons\">\n <verdocs-button label=\"CANCEL\" size=\"normal\" variant=\"outline\" onClick={e => this.handleCancel(e)} />\n <verdocs-button label=\"Adopt & Sign\" size=\"normal\" onClick={e => this.handleAdopt(e)} />\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n","@import '../../../theme.scss';\n\nverdocs-toolbar-icon {\n font-family: $verdocs-primary-font;\n display: inline-block;\n\n .icon {\n display: inline-block;\n cursor: pointer;\n\n svg {\n fill: $choice-available-color;\n }\n }\n\n .tooltip {\n display: none;\n box-shadow: 0 0 10px 1px #999999;\n background: #ffffff;\n color: $label-color;\n max-width: 240px;\n font-weight: bold;\n padding: 5px 10px;\n font-size: 13px;\n position: relative;\n border-radius: 4px;\n z-index: 10000;\n\n .arrow,\n .arrow::before {\n position: absolute;\n width: 8px;\n height: 8px;\n background: inherit;\n }\n\n .arrow {\n visibility: hidden;\n top: -4px;\n }\n\n .arrow::before {\n visibility: visible;\n content: '';\n transform: rotate(45deg);\n }\n\n &[data-show] {\n display: block;\n }\n\n &[data-popper-placement^='top'] > .arrow {\n bottom: -4px;\n }\n\n &[data-popper-placement^='bottom'] > .arrow {\n top: -4px;\n }\n\n &[data-popper-placement^='left'] > .arrow {\n right: -4px;\n }\n\n &[data-popper-placement^='right'] > .arrow {\n left: -4px;\n }\n }\n}\n","import {createPopper, Instance} from '@popperjs/core';\nimport {Component, h, Host, Prop, State} from '@stencil/core';\n// import {Component, Event, EventEmitter, h, Host, Prop, State} from '@stencil/core';\n\n/**\n * Displays a simple help icon. Upon hover or focus, a tooltip will be displayed with help text.\n */\n@Component({\n tag: 'verdocs-toolbar-icon',\n styleUrl: 'verdocs-toolbar-icon.scss',\n shadow: false,\n})\nexport class VerdocsToolbarIcon {\n iconEl: HTMLDivElement;\n tooltip: HTMLDivElement;\n popperInstance: Instance;\n\n /**\n * Help text to display on hover/focus\n */\n @Prop() text: string = '';\n\n /**\n * SVG icon to display\n */\n @Prop() icon: string = '';\n\n /**\n * Triggered when the icon is pressed\n */\n // @Event({composed: true}) press: EventEmitter;\n\n @State() containerId = `verdocs-toolbar-icon-${Math.random().toString(36).substring(2, 11)}`;\n\n componentDidLoad() {\n this.popperInstance = createPopper(this.iconEl, this.tooltip, {\n // placement: 'top-end',\n // modifiers: [{name: 'offset', options: {offset: [0, 10]}}],\n });\n }\n\n disconnectedCallback() {\n if (this.popperInstance) {\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n }\n\n show() {\n this.tooltip?.setAttribute('data-show', '');\n this.popperInstance?.update().catch(() => {});\n }\n\n hide() {\n this.tooltip?.removeAttribute('data-show');\n }\n\n // handlePress() {\n // this.press?.emit();\n // }\n\n render() {\n return (\n <Host class={{}}>\n <div\n aria-describedby={this.containerId}\n class=\"icon\"\n innerHTML={this.icon}\n onMouseEnter={() => this.show()}\n onFocus={() => this.show()}\n onMouseLeave={() => this.hide()}\n onBlur={() => this.hide()}\n ref={el => (this.iconEl = el as HTMLDivElement)}\n />\n <div id={this.containerId} role=\"tooltip\" class=\"tooltip\" data-popper-placement=\"bottom\" ref={el => (this.tooltip = el as HTMLDivElement)}>\n {this.text}\n <div data-popper-arrow=\"true\" class=\"arrow\" />\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"verdocs-field-signature.verdocs-signature-dialog.verdocs-toolbar-icon.entry.js","mappings":"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","names":[],"sources":["./src/components/elements/verdocs-field-signature/verdocs-field-signature.scss?tag=verdocs-field-signature","./src/components/elements/verdocs-field-signature/verdocs-field-signature.tsx","./src/components/dialogs/verdocs-signature-dialog/verdocs-signature-dialog.scss?tag=verdocs-signature-dialog","./src/components/dialogs/verdocs-signature-dialog/verdocs-signature-dialog.tsx","./src/components/controls/verdocs-toolbar-icon/verdocs-toolbar-icon.scss?tag=verdocs-toolbar-icon","./src/components/controls/verdocs-toolbar-icon/verdocs-toolbar-icon.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 letter-spacing: 0.3px;\n background-color: transparent;\n transform-origin: bottom left;\n border: 1px solid rgba(0, 0, 0, 0.2);\n\n &.disabled {\n opacity: 0.5;\n }\n\n &.done {\n border: none;\n opacity: 1;\n }\n\n img {\n display: block;\n max-width: 100%;\n max-height: 100%;\n }\n\n button {\n box-sizing: border-box;\n border: none;\n 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 rgb(204, 0, 0);\n }\n\n &.focused {\n animation: verdocs-field-pulse 0.75s 2;\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","import {getRGBA} from '@verdocs/js-sdk/Utils/Colors';\nimport {ITemplateField} from '@verdocs/js-sdk/Templates/Types';\nimport {IDocumentField} from '@verdocs/js-sdk/Envelopes/Types';\nimport {Component, h, Host, Prop, Event, EventEmitter, Method, State} from '@stencil/core';\nimport {getFieldSettings} from '../../../utils/utils';\n\nconst settingsIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" width=\"20\"><path d=\"m7.5 18.5-.312-2.667q-.188-.125-.396-.25-.209-.125-.396-.229l-2.479 1.063-2.521-4.334 2.125-1.625q.021-.104.021-.229v-.458q0-.125-.021-.229L1.396 7.917l2.521-4.313 2.5 1.042q.166-.104.375-.229.208-.125.396-.229L7.5 1.5h5l.312 2.688q.188.104.396.229.209.125.396.229l2.479-1.042 2.521 4.313-2.125 1.625v.916l2.125 1.625-2.521 4.334-2.5-1.063q-.166.104-.375.229-.208.125-.396.25L12.5 18.5Zm2.479-5.521q1.229 0 2.104-.875T12.958 10q0-1.229-.875-2.104t-2.104-.875q-1.208 0-2.094.875Q7 8.771 7 10t.885 2.104q.886.875 2.094.875Zm0-1.75q-.5 0-.864-.364Q8.75 10.5 8.75 10t.365-.865q.364-.364.864-.364t.865.364q.364.365.364.865t-.364.865q-.365.364-.865.364ZM10.021 10Zm-.792 6.521h1.542l.25-2.146q.625-.167 1.198-.51.573-.344 1.031-.823l2.021.854.771-1.271-1.771-1.354q.104-.292.156-.615.052-.323.052-.656 0-.292-.052-.604-.052-.313-.135-.646l1.77-1.375-.77-1.271-2.021.875q-.479-.5-1.042-.833-.562-.334-1.187-.5l-.271-2.167H9.208l-.25 2.167q-.625.166-1.187.5-.563.333-1.042.812l-2-.854-.771 1.271 1.73 1.354q-.084.333-.136.656Q5.5 9.708 5.5 10t.052.604q.052.313.136.667l-1.73 1.354.771 1.271 2-.834q.479.459 1.042.792.562.334 1.187.5Z\"/></svg>';\n\n/**\n * Displays a signature field. If a signature already exists, it will be displayed and the field will be disabled. Otherwise, a placeholder\n * button will be shown. Clicking the button will show a dialog to adopt a signature.\n */\n@Component({\n tag: 'verdocs-field-signature',\n styleUrl: 'verdocs-field-signature.scss',\n shadow: false,\n})\nexport class VerdocsFieldSignature {\n /**\n * The document or template field to display.\n */\n @Prop() field: IDocumentField | ITemplateField | null = null;\n\n /**\n * If set, the signature creation dialog will be initialized with this text.\n */\n @Prop() 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() 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() 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() 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() done?: boolean = false;\n\n /**\n * If set, the field will be colored using this index value to select the background color.\n */\n @Prop() roleindex?: number = 0;\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 @Method() async focusField() {\n this.handleShow();\n console.log('focused', this);\n }\n\n @State()\n tempSignature: string = '';\n\n private dialog?: any;\n\n hideDialog() {\n this.dialog?.remove();\n this.dialog = null;\n }\n\n handleAdopt(e: any) {\n console.log('[SIGNATURE] Adopted signature');\n this.tempSignature = e.detail;\n this.fieldChange?.emit(this.tempSignature);\n this.hideDialog();\n }\n\n handleShow() {\n this.dialog = document.createElement('verdocs-signature-dialog');\n this.dialog.setAttribute('name', this.name);\n this.dialog.setAttribute('roleindex', this.roleindex);\n this.dialog.addEventListener('cancel', () => this.hideDialog());\n this.dialog.addEventListener('next', e => this.handleAdopt(e));\n document.body.append(this.dialog);\n }\n\n render() {\n const settings = getFieldSettings(this.field);\n const value = settings.base64 || this.tempSignature;\n const disabled = this.disabled ?? settings.disabled ?? false;\n const backgroundColor = this.field['rgba'] || getRGBA(this.roleindex);\n\n if (this.done) {\n return <Host class={{done: this.done}}>{value && <img src={value} alt=\"Signature\" />}</Host>;\n }\n\n return (\n <Host class={{required: this.field?.required, disabled}} style={{backgroundColor}}>\n {value ? <img src={value} alt=\"Signature\" /> : <button onClick={() => !disabled && this.handleShow()}>Signature</button>}\n\n {this.editable && (\n <verdocs-button-panel icon={settingsIcon}>\n <h6>Field Settings</h6>\n <form>\n <verdocs-select-input\n label=\"Recipient\"\n options={[\n {label: 'Buyer', value: 'Buyer'},\n {label: 'Seller', value: 'Seller'},\n ]}\n />\n\n <verdocs-text-input label=\"Field Name\" value=\"\" placeholder=\"Stored field name...\" onInput={e => console.log('ipt', e)} />\n <verdocs-text-input label=\"Placeholder\" value=\"\" placeholder=\"Placeholder text...\" onInput={e => console.log('ipt', e)} />\n </form>\n </verdocs-button-panel>\n )}\n </Host>\n );\n }\n}\n","@import '../../../theme.scss';\n\nverdocs-signature-dialog {\n font-family: $primary-font;\n box-sizing: border-box;\n position: fixed;\n z-index: 10000;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #0000007f;\n\n .dialog {\n width: 100%;\n max-width: 340px;\n border-radius: 4px;\n overflow: hidden;\n box-shadow: 3px 3px 5px 1px rgba(40, 40, 40, 0.4);\n background: $dialog-bg;\n }\n\n .heading {\n display: flex;\n flex-direction: row;\n padding: 20px 20px 0 20px;\n line-height: 28px;\n font-size: 20px;\n font-weight: 500;\n }\n\n .content {\n font-size: 14px;\n padding: 20px;\n }\n\n .buttons {\n display: flex;\n margin: 20px 0 0 0;\n flex-direction: row;\n justify-content: flex-end;\n align-items: center;\n\n verdocs-button {\n margin-left: 16px;\n }\n }\n\n canvas {\n background: $verdocs-grey-4;\n box-sizing: border-box;\n margin: 0 auto;\n width: 300px;\n // TODO: The original app had an aspect ratio of (80 / 305) * (signatureBodyWidth - 20)\n height: 79px;\n max-width: 100%;\n box-shadow: 0 0 6px 0 #0000001f;\n }\n\n .disclaimer {\n text-align: justify;\n padding: 8px 0;\n font-size: 11px;\n line-height: 14px;\n color: rgba(0, 0, 0, 0.54);\n }\n\n .as-shown {\n font-size: 11px;\n margin: 4px 0 20px 4px;\n color: rgba(0, 0, 0, 0.54);\n }\n\n .tabs {\n display: flex;\n flex-direction: row;\n\n .tab {\n padding: 8px 15px;\n cursor: pointer;\n\n &.active {\n border-bottom: 2px solid $light-border-color;\n }\n\n &:hover {\n color: $primary-color;\n }\n }\n }\n}\n","import {Component, Prop, h, Event, EventEmitter, State, Host} from '@stencil/core';\n\n/**\n * Display a dialog that allows the user to specify a signature image, either by using a signature-font-generated image\n * based on their full name, or by hand-drawing their signature with a mouse or tablet.\n */\n@Component({\n tag: 'verdocs-signature-dialog',\n styleUrl: 'verdocs-signature-dialog.scss',\n})\nexport class VerdocsSignatureDialog {\n private canvasElement?: HTMLCanvasElement;\n\n /**\n * Initial signature text\n */\n @Prop() name: string = '';\n\n /**\n * Fired when the user completes the dialog and clicks Adopt. The event detail will contain a base64-encoded string\n * representation of the signature adopted.\n */\n @Event({composed: true}) next: EventEmitter<string>;\n\n /**\n * Fired if the user cancels the dialog.\n */\n @Event({composed: true}) cancel: EventEmitter;\n\n @State() fontLoaded = false;\n\n @State() enteredName: string = '';\n\n @State() mode: string = 'type';\n\n componentWillLoad() {\n this.enteredName = this.name;\n\n const ds = new FontFace('Dancing Script', 'url(https://fonts.gstatic.com/s/dancingscript/v19/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BMSo3Sup6hNX6plRP.woff)');\n ds.load().then(font => {\n document.fonts.add(font);\n this.fontLoaded = true;\n });\n }\n\n componentDidLoad() {\n this.redrawSignature();\n }\n\n componentDidUpdate() {\n this.redrawSignature();\n }\n\n redrawSignature() {\n if (!this.canvasElement) {\n return;\n }\n\n const canvasWidth = this.canvasElement.width;\n\n const context = this.canvasElement.getContext('2d');\n context.clearRect(0, 0, this.canvasElement.width, this.canvasElement.height);\n\n let fontSize = 100;\n do {\n fontSize -= 2;\n context.font = `${fontSize}px Dancing Script`;\n } while (context.measureText(this.enteredName).width > canvasWidth - 32); // 32px padding each side\n\n context.textAlign = 'center';\n context.textBaseline = 'middle';\n context.font = `${fontSize}px Dancing Script`;\n context.fillText(this.enteredName, this.canvasElement.width / 2, this.canvasElement.height / 2);\n }\n\n handleNameChange(e: any) {\n this.enteredName = e.target.value;\n }\n\n handleCancel(e: any) {\n e.stopPropagation();\n e.preventDefault();\n this.cancel.emit();\n }\n\n handleAdopt(e: any) {\n e.stopPropagation();\n e.preventDefault();\n const data = this.canvasElement.toDataURL('image/png');\n this.next.emit(data);\n }\n\n /*\n selColor(hex: string) {\n this.color = hex;\n this.animateDraw();\n }\n\n stopDraw() {\n this.paint = false;\n this.adoptedAndSigned = !this.hasSignature();\n }\n\n draw(e) {\n this.paint = true;\n this.addPoints(e, false);\n this.animateDraw();\n }\n\n recordPoints(e) {\n if (this.paint) {\n this.addPoints(e, true);\n this.animateDraw();\n }\n }\n\n animateDraw() {\n this.canvas.clearRect(0, 0, this.canvas.canvas.offsetWidth, this.canvas.canvas.offsetHeight);\n\n this.canvas.strokeStyle = this.color || '#000000';\n this.canvas.lineJoin = 'round';\n this.canvas.lineWidth = 3;\n\n for (let i = 0; i < this.points.length; i++) {\n this.canvas.beginPath();\n if (this.points[i].drag && i) {\n this.canvas.moveTo(this.points[i - 1].x, this.points[i - 1].y);\n // this.canvas.arc(this.points[i - 1].x, this.points[i - 1].y, 2, 0, 2 * Math.PI, false);\n } else {\n this.canvas.moveTo(this.points[i].x - 1, this.points[i].y);\n // this.canvas.arc(this.points[i].x, this.points[i].y, 2, 0, 2 * Math.PI, false);\n }\n\n this.canvas.lineTo(this.points[i].x, this.points[i].y);\n this.canvas.closePath();\n this.canvas.stroke();\n }\n }\n\n drawCurve(color: string, curve: number) {\n this.canvas.beginPath();\n }\n\n\n\n addPoints(e, drag: boolean) {\n if (window) {\n let x;\n let y;\n e.preventDefault();\n if (e.touches && e.touches.length > 0) {\n x = e.touches[0].clientX;\n } else {\n x = e.clientX;\n }\n\n if (e.touches && e.touches.length > 0) {\n y = e.touches[0].clientY;\n } else {\n y = e.clientY;\n }\n const rect = this.signatureCanvas.nativeElement.getBoundingClientRect();\n this.points.push({\n x: x - rect.left,\n y: y - rect.top,\n drag: drag\n });\n }\n }\n\n clearPad() {\n this.canvas.clearRect(0, 0, this.canvas.canvas.offsetWidth, this.canvas.canvas.offsetHeight);\n this.points = [];\n this.adoptedAndSigned = !this.hasSignature();\n }\n\n async adoptAndSign() {\n try {\n this.adoptedAndSigned = true;\n await this.updateFullName();\n await this.captureSignatureFromCanvas();\n const message = this.signatureMode === 'Signature' ? 'Saving Signature' : 'Saving Initial';\n this.snackbarService.open(message, 'OK', this.snackbarService.initConfig(null, 'bottom'));\n this.handleMode();\n } catch (err) {\n this.snackbarService.open('Failed to apply signature', 'OK', this.snackbarService.initConfig(null, 'bottom'));\n }\n }\n\n handleMode() {\n let currentField;\n switch (this.mode) {\n case 'signerview':\n if (this.signatureMode === 'Signature') {\n this.signatureService.postSignatureBlob().then(result => {\n if (result && result.id && result.url) {\n currentField = this.signatureService.currField;\n this.signatureService.updateSigned(currentField.fName, true);\n this.signatureService.toggleSig(false);\n this.signatureService.setSignatureId(result.id);\n this.signatureService.putSignatureField(this.envelopeId, this.fieldName, result.id).then(res => {\n this.eventTracker.createEvent({\n category: 'verdoc',\n action: 'verdoc signed',\n label: `verdoc id: ${this.envelopeId}`\n })\n if (res && res.settings) {\n this.signatureService.setSignatureData(res.settings.base64);\n this.signatureService.setSignatureId(res.settings.signature_id);\n }\n this.snackbarService.dismiss();\n this.dialog.close({ status: 'saved', temp_sig: res.settings.base64, sig_id: res.settings.signature_id });\n }).catch(err => {\n this.snackbarService.open('Failed to save signature. Please try again.', 'DISMISS', {\n duration: 3000\n });\n this.adoptedAndSigned = false;\n return err;\n });\n }\n });\n } else {\n this.signatureService.postInitialBlob().then(result => {\n if (result && result.id && result.url) {\n currentField = this.signatureService.currField;\n this.signatureService.updateInitialed(currentField.fName, true);\n this.signatureService.setInitialId(result.id);\n this.signatureService.toggleSig(false);\n this.signatureService.putInitialField(this.envelopeId, this.fieldName, result.id).then(res => {\n if (res && res.settings) {\n this.signatureService.setInitialData(res.settings.base64);\n this.signatureService.setInitialId(res.settings.initial_id);\n }\n this.snackbarService.dismiss();\n this.dialog.close({ status: 'saved', temp_int: res.settings.base64, int_id: res.settings.initial_id });\n }).catch(err => {\n this.snackbarService.open('Failed to save initial. Please try again.', 'DISMISS', {\n duration: 3000\n });\n this.adoptedAndSigned = false;\n return err;\n });\n }\n });\n }\n break;\n }\n }\n */\n\n render() {\n return (\n <Host onClick={e => this.handleCancel(e)}>\n <div class=\"dialog\">\n <div class=\"heading\">Create Your Signature</div>\n\n <div class=\"content\">\n <verdocs-text-input placeholder=\"Full Name...\" label=\"Full Name\" value={this.enteredName} onInput={e => this.handleNameChange(e)} onClick={e => e.stopPropagation()} />\n <div class=\"as-shown\">As shown on driver's license or govt. ID card.</div>\n\n {/*<div class=\"tabs\">*/}\n {/* <div class={{tab: true, active: this.mode === 'type'}} onClick={() => (this.mode = 'type')}>*/}\n {/* Type*/}\n {/* </div>*/}\n {/*<div class={{tab: true, active: this.mode === 'draw'}} onClick={() => (this.mode = 'draw')}>*/}\n {/* Draw*/}\n {/*</div>*/}\n {/*</div>*/}\n\n {this.fontLoaded ? <canvas ref={el => (this.canvasElement = el as HTMLCanvasElement)} /> : <div style={{display: 'none'}} />}\n\n <div class=\"disclaimer\">\n By clicking Adopt, I agree that the signature will be the electronic representation of my signature for all purposes when I (or my agent) use them on documents,\n including legally binding contracts &mdash; just the same as a pen-and-paper signature or initial.\n </div>\n\n <div class=\"buttons\">\n <verdocs-button label=\"CANCEL\" size=\"normal\" variant=\"outline\" onClick={e => this.handleCancel(e)} />\n <verdocs-button label=\"Adopt & Sign\" size=\"normal\" onClick={e => this.handleAdopt(e)} />\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n","@import '../../../theme.scss';\n\nverdocs-toolbar-icon {\n font-family: $verdocs-primary-font;\n display: inline-block;\n\n .icon {\n display: inline-block;\n cursor: pointer;\n\n svg {\n fill: $choice-available-color;\n }\n }\n\n .tooltip {\n display: none;\n box-shadow: 0 0 10px 1px #999999;\n background: #ffffff;\n color: $label-color;\n max-width: 240px;\n font-weight: bold;\n padding: 5px 10px;\n font-size: 13px;\n position: relative;\n border-radius: 4px;\n z-index: 10000;\n\n .arrow,\n .arrow::before {\n position: absolute;\n width: 8px;\n height: 8px;\n background: inherit;\n }\n\n .arrow {\n visibility: hidden;\n top: -4px;\n }\n\n .arrow::before {\n visibility: visible;\n content: '';\n transform: rotate(45deg);\n }\n\n &[data-show] {\n display: block;\n }\n\n &[data-popper-placement^='top'] > .arrow {\n bottom: -4px;\n }\n\n &[data-popper-placement^='bottom'] > .arrow {\n top: -4px;\n }\n\n &[data-popper-placement^='left'] > .arrow {\n right: -4px;\n }\n\n &[data-popper-placement^='right'] > .arrow {\n left: -4px;\n }\n }\n}\n","import {createPopper, Instance} from '@popperjs/core';\nimport {Component, h, Host, Prop, State} from '@stencil/core';\n// import {Component, Event, EventEmitter, h, Host, Prop, State} from '@stencil/core';\n\n/**\n * Displays a simple help icon. Upon hover or focus, a tooltip will be displayed with help text.\n */\n@Component({\n tag: 'verdocs-toolbar-icon',\n styleUrl: 'verdocs-toolbar-icon.scss',\n shadow: false,\n})\nexport class VerdocsToolbarIcon {\n iconEl: HTMLDivElement;\n tooltip: HTMLDivElement;\n popperInstance: Instance;\n\n /**\n * Help text to display on hover/focus\n */\n @Prop() text: string = '';\n\n /**\n * SVG icon to display\n */\n @Prop() icon: string = '';\n\n /**\n * Triggered when the icon is pressed\n */\n // @Event({composed: true}) press: EventEmitter;\n\n @State() containerId = `verdocs-toolbar-icon-${Math.random().toString(36).substring(2, 11)}`;\n\n componentDidLoad() {\n this.popperInstance = createPopper(this.iconEl, this.tooltip, {\n // placement: 'top-end',\n // modifiers: [{name: 'offset', options: {offset: [0, 10]}}],\n });\n }\n\n disconnectedCallback() {\n if (this.popperInstance) {\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n }\n\n show() {\n this.tooltip?.setAttribute('data-show', '');\n this.popperInstance?.update().catch(() => {});\n }\n\n hide() {\n this.tooltip?.removeAttribute('data-show');\n }\n\n // handlePress() {\n // this.press?.emit();\n // }\n\n render() {\n return (\n <Host class={{}}>\n <div\n aria-describedby={this.containerId}\n class=\"icon\"\n innerHTML={this.icon}\n onMouseEnter={() => this.show()}\n onFocus={() => this.show()}\n onMouseLeave={() => this.hide()}\n onBlur={() => this.hide()}\n ref={el => (this.iconEl = el as HTMLDivElement)}\n />\n <div id={this.containerId} role=\"tooltip\" class=\"tooltip\" data-popper-placement=\"bottom\" ref={el => (this.tooltip = el as HTMLDivElement)}>\n {this.text}\n <div data-popper-arrow=\"true\" class=\"arrow\" />\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-f78d163d.js';
2
2
  import { g as getRGBA } from './Colors-1b298092.js';
3
- import { g as getFieldSettings } from './utils-c666adcf.js';
3
+ import { g as getFieldSettings } from './utils-5cddd371.js';
4
4
  import './Token-54690789.js';
5
5
 
6
6
  const verdocsFieldTextareaCss = "verdocs-field-textarea{font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif;width:150px;height:15px;display:block;font-size:11px;position:relative;background-color:transparent;-webkit-transform-origin:bottom left;transform-origin:bottom left}verdocs-field-textarea.disabled{opacity:0.5}verdocs-field-textarea textarea{-webkit-box-sizing:border-box;box-sizing:border-box;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;border:1px solid rgba(0, 0, 0, 0.2)}verdocs-field-textarea textarea.hide{display:none}verdocs-field-textarea.required{border:1px solid #cc0000}verdocs-field-textarea.focused{-webkit-animation:verdocs-field-pulse 0.75s 2;animation:verdocs-field-pulse 0.75s 2}";
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-f78d163d.js';
2
2
  import { g as getRGBA } from './Colors-1b298092.js';
3
- import { s as state } from './templateStore-8585145f.js';
4
- import { g as getFieldSettings } from './utils-c666adcf.js';
3
+ import { s as state } from './templateStore-d6995852.js';
4
+ import { g as getFieldSettings } from './utils-5cddd371.js';
5
5
  import './index-fd7b8a34.js';
6
6
  import './Token-54690789.js';
7
7
 
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-f78d163d.js';
2
2
  import { g as getRGBA } from './Colors-1b298092.js';
3
- import { g as getFieldSettings } from './utils-c666adcf.js';
3
+ import { g as getFieldSettings } from './utils-5cddd371.js';
4
4
  import { f as format } from './index-d264c496.js';
5
5
  import './Token-54690789.js';
6
6
 
@@ -1,9 +1,9 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-f78d163d.js';
2
2
  import './Types-ab9f6af8.js';
3
3
  import { V as VerdocsEndpoint } from './VerdocsEndpoint-28ba21cc.js';
4
- import { r as renderDocumentField, a as getRoleIndex } from './utils-c666adcf.js';
5
- import { s as state } from './templateStore-8585145f.js';
6
- import { l as loadTemplate } from './Templates-653648bb.js';
4
+ import { r as renderDocumentField, a as getRoleIndex } from './utils-5cddd371.js';
5
+ import { s as state } from './templateStore-d6995852.js';
6
+ import { l as loadTemplate } from './Templates-452173e6.js';
7
7
  import { S as SDKError } from './errors-9b5498c8.js';
8
8
  import './Token-54690789.js';
9
9
  import './index-fd7b8a34.js';
@@ -4,7 +4,7 @@ import './Types-ab9f6af8.js';
4
4
  import { i as isValidEmail, a as isValidPhone } from './Validators-f110bae2.js';
5
5
  import { g as getRGBA } from './Colors-1b298092.js';
6
6
  import { V as VerdocsEndpoint } from './VerdocsEndpoint-28ba21cc.js';
7
- import { a as getRoleIndex } from './utils-c666adcf.js';
7
+ import { a as getRoleIndex } from './utils-5cddd371.js';
8
8
  import './Token-54690789.js';
9
9
 
10
10
  const verdocsSendCss = "verdocs-send{display:-ms-flexbox;display:flex;padding:10px;position:relative;background:#ffffff;-ms-flex-direction:column;flex-direction:column;font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif}verdocs-send .recipients{position:relative}verdocs-send .left-line{top:32px;left:20px;z-index:1;width:12px;bottom:30px;position:absolute;background:#ffffff;border-left:3px dotted #9b9b9b}verdocs-send .level{display:-ms-flexbox;display:flex;-webkit-column-gap:10px;-moz-column-gap:10px;column-gap:10px;margin-left:50px;position:relative;-ms-flex-direction:row;flex-direction:row;padding:8px 0 4px 0;border-bottom:1px solid #97979744}verdocs-send .level .level-icon{top:14px;z-index:2;left:-40px;width:24px;height:24px;position:absolute;background:#ffffff}verdocs-send .level .level-icon svg{fill:#00000089}verdocs-send .level .recipient{height:30px;display:-ms-flexbox;display:flex;-ms-flex:0 0 30px;flex:0 0 30px;color:#000000;cursor:pointer;font-size:14px;-ms-flex-align:center;align-items:center;border-radius:30px;-ms-flex-direction:row;flex-direction:row;background:#dddddd;white-space:nowrap;padding:2px 10px 2px 14px}verdocs-send .level .recipient .icon{width:22px;height:22px;-ms-flex:0 0 22px;flex:0 0 22px;margin:0 0 0 10px}verdocs-send .level .recipient .icon svg{width:22px;height:22px;fill:#333333;outline:none}verdocs-send .level .complete{-ms-flex:1;flex:1;height:30px;display:-ms-flexbox;display:flex;color:#000000;font-size:14px;-ms-flex-align:center;align-items:center;-ms-flex-direction:row;flex-direction:row;padding:3px 10px 3px 2px}verdocs-send .buttons{display:-ms-flexbox;display:flex;margin-top:10px;-webkit-column-gap:15px;-moz-column-gap:15px;column-gap:15px;-ms-flex-direction:row;flex-direction:row}verdocs-send verdocs-contact-picker{left:0;top:41px;z-index:10;position:absolute;border:1px solid #dddddd;-webkit-box-shadow:0 0 6px 3px rgba(0, 0, 0, 0.1);box-shadow:0 0 6px 3px rgba(0, 0, 0, 0.1)}";
@@ -1,12 +1,13 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, F as Fragment } from './index-f78d163d.js';
2
- import { b as getSigningSession, s as savePDF, u as updateEnvelopeField, c as updateEnvelopeFieldSignature, d as updateEnvelopeFieldInitials, f as fullNameToInitials, a as getRoleIndex, r as renderDocumentField, e as getFieldId } from './utils-c666adcf.js';
2
+ import { b as getSigningSession, s as savePDF, u as updateDocumentFieldValue, c as updateEnvelopeField, d as updateEnvelopeFieldSignature, e as updateEnvelopeFieldInitials, f as fullNameToInitials, a as getRoleIndex, r as renderDocumentField, h as getFieldId } from './utils-5cddd371.js';
3
3
  import './Types-ab9f6af8.js';
4
4
  import { a as isValidPhone, i as isValidEmail } from './Validators-f110bae2.js';
5
5
  import { V as VerdocsEndpoint } from './VerdocsEndpoint-28ba21cc.js';
6
- import { g as getEnvelopeById, s as state } from './Envelopes-28a4c67f.js';
6
+ import { g as getEnvelopeById, s as state } from './Envelopes-b87b1909.js';
7
7
  import { S as SDKError } from './errors-9b5498c8.js';
8
8
  import './Token-54690789.js';
9
9
  import './index-fd7b8a34.js';
10
+ import './Templates-0638b1e4.js';
10
11
 
11
12
  var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
12
13
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
@@ -155,22 +156,23 @@ const VerdocsSign = class {
155
156
  });
156
157
  console.log(`[SIGN] Loaded signing session ${session.email} / ${session.profile_id}`);
157
158
  this.recipient = recipient;
159
+ console.log('[SIGN] We are recipient', this.recipient);
158
160
  this.signerToken = signerToken;
159
161
  this.endpoint.setToken(signerToken);
160
162
  if (this.recipient.agreed) {
161
163
  this.nextButtonLabel = 'Next';
162
164
  }
163
165
  await getEnvelopeById(this.endpoint, this.envelopeId);
164
- // const envelope = await Envelopes.getEnvelope(this.endpoint, this.envelopeId);
165
- // this.envelope = envelope;
166
- // console.log('[SIGN] Loaded envelope', envelope);
167
166
  this.recipientIndex = state.envelope.recipients.findIndex(recipient => recipient.role_name == this.roleId);
168
167
  if (this.recipientIndex > -1) {
169
168
  this.recipient = state.envelope.recipients[this.recipientIndex];
170
169
  this.fields = this.recipient.fields;
170
+ console.log('[SIGN] Found our recipient in the envelope', this.recipientIndex, this.recipient, this.fields);
171
+ }
172
+ else {
173
+ console.log('[SIGN] Could not find our recipient record', this.roleId, state.envelope.recipients);
171
174
  }
172
175
  this.isDone = ['submitted', 'canceled', 'declined'].includes(this.recipient.status);
173
- console.log('Done', this.isDone);
174
176
  // TODO: Fix service to allow this?
175
177
  // const sigs = await getSignatures();
176
178
  // console.log('sigs', sigs);
@@ -222,8 +224,21 @@ const VerdocsSign = class {
222
224
  break;
223
225
  }
224
226
  }
227
+ updateRecipientFieldValue(fieldName, updateResult) {
228
+ this.recipient.fields.forEach(oldField => {
229
+ if (oldField.name === fieldName) {
230
+ console.log('New settings', fieldName, updateResult.settings);
231
+ oldField.settings = updateResult.settings;
232
+ // TODO: When we break out other fields like value, update them here too
233
+ updateDocumentFieldValue(oldField);
234
+ }
235
+ });
236
+ }
225
237
  saveFieldChange(fieldName, fields) {
226
238
  updateEnvelopeField(this.endpoint, this.envelopeId, fieldName, fields) //
239
+ .then(updateResult => {
240
+ this.updateRecipientFieldValue(fieldName, updateResult);
241
+ })
227
242
  .catch(e => {
228
243
  var _a, _b, _c, _d, _e, _f;
229
244
  if (((_a = e.response) === null || _a === void 0 ? void 0 : _a.status) === 401 && ((_c = (_b = e.response) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.error) === 'jwt expired') {
@@ -255,16 +270,16 @@ const VerdocsSign = class {
255
270
  case 'initial':
256
271
  const initialsBlob = await (await fetch(e.detail)).blob();
257
272
  return createInitials(this.endpoint, 'initial', initialsBlob) //
258
- .then(newInitials => {
259
- console.log('New initials', field.name, newInitials);
260
- updateEnvelopeFieldInitials(this.endpoint, this.envelopeId, field.name, newInitials.id);
273
+ .then(async (newInitials) => {
274
+ const updateResult = await updateEnvelopeFieldInitials(this.endpoint, this.envelopeId, field.name, newInitials.id);
275
+ this.updateRecipientFieldValue(field.name, updateResult);
261
276
  });
262
277
  case 'signature':
263
278
  const signatureBlob = await (await fetch(e.detail)).blob();
264
279
  return createSignature(this.endpoint, 'signature', signatureBlob) //
265
- .then(newSignature => {
266
- console.log('New sign', field.name, newSignature);
267
- updateEnvelopeFieldSignature(this.endpoint, this.envelopeId, field.name, newSignature.id);
280
+ .then(async (newSignature) => {
281
+ const updateResult = await updateEnvelopeFieldSignature(this.endpoint, this.envelopeId, field.name, newSignature.id);
282
+ this.updateRecipientFieldValue(field.name, updateResult);
268
283
  });
269
284
  case 'date':
270
285
  const iso = e.target.getAttribute('iso');
@@ -293,6 +308,7 @@ const VerdocsSign = class {
293
308
  }
294
309
  case 'signature':
295
310
  case 'initial':
311
+ console.log('Evaluating initial field', field);
296
312
  return !required || base64 !== '';
297
313
  // Timestamp fields get automatically filled when the envelope is submitted.
298
314
  case 'timestamp':
@@ -325,19 +341,11 @@ const VerdocsSign = class {
325
341
  console.log('[SIGN] Submitted successfully', result);
326
342
  this.showDone = true;
327
343
  this.isDone = true;
328
- // updateRecipientStatus()
329
344
  }
330
345
  catch (e) {
331
346
  console.log('Error submitting', e);
332
347
  }
333
348
  return;
334
- // You're done.
335
- // You can access the Verdoc at any time by clicking on the link from invitation email.
336
- //
337
- // After all recipients have completed their actions, you will receive an email with the document and envelope certificate attached.
338
- //
339
- // Thank you for using Verdocs.
340
- // Got it, thanks
341
349
  }
342
350
  // Find and focus the next incomplete required field
343
351
  const requiredFields = this.fields.filter(field => field.required);
@@ -376,12 +384,14 @@ const VerdocsSign = class {
376
384
  }
377
385
  else {
378
386
  console.log('[SIGN] Remaining invalid fields', invalidFields);
387
+ this.nextButtonLabel = 'Next';
379
388
  this.nextSubmits = false;
380
389
  }
381
390
  }
382
391
  attachFieldAttributes(pageInfo, field, roleIndex, el) {
383
392
  var _a;
384
393
  el.addEventListener('input', e => this.handleFieldChange(field, e).finally(() => this.checkRecipientFields()));
394
+ el.addEventListener('blur', () => this.checkRecipientFields());
385
395
  el.addEventListener('fieldChange', e => this.handleFieldChange(field, e).finally(() => this.checkRecipientFields()));
386
396
  el.setAttribute('roleindex', roleIndex);
387
397
  el.setAttribute('xScale', pageInfo.xScale);
@@ -433,19 +443,34 @@ const VerdocsSign = class {
433
443
  // Render fields for "the other" recipients
434
444
  state.envelope.recipients
435
445
  .filter(recipient => recipient.role_name !== this.recipient.role_name)
436
- .map(otherRecipient => {
446
+ .forEach(otherRecipient => {
437
447
  const otherRoleIndex = getRoleIndex(state.roleNames, otherRecipient.role_name);
438
448
  const recipientFields = otherRecipient.fields.filter(field => field.page === pageInfo.pageNumber);
439
- // const fields = this.fields.filter(field => field.page_sequence === pageInfo.renderedPage.pageNumber);
449
+ // We don't render other recipients' fields if they've already acted, because those values are now stamped into the document page.
450
+ // TODO: Do we want to render alternate treatments for recipients who have declined (red boxes?) and/or if the envelope is cancelled?
451
+ // TODO: When doing server-side rendering we probably want to "stamp" values into the rendered PDF only once the recipient is done
452
+ // acting. Do this once vSign is in Production.
453
+ // TODO: Changed tacks here. During signing we show the template PDFs and everybody's fields, filled in or no. When done, we switch
454
+ // to showing the envelope PDFs with stamped-in values. Confirm this is a good approach.
455
+ // if (!['submitted', 'signed'].includes(otherRecipient.status)) {
440
456
  recipientFields.forEach(field => {
441
- const el = renderDocumentField(field, pageInfo, otherRoleIndex, { disabled: true, editable: false, draggable: false, done: this.isDone });
457
+ const el = renderDocumentField(field, pageInfo, otherRoleIndex, {
458
+ disabled: true,
459
+ editable: false,
460
+ draggable: false,
461
+ done: this.isDone,
462
+ });
442
463
  if (!el) {
443
464
  return;
444
465
  }
445
- el.setAttribute('roleindex', otherRoleIndex);
446
- el.setAttribute('xScale', pageInfo.xScale);
447
- el.setAttribute('yScale', pageInfo.yScale);
466
+ // TODO: Research why this occurs. There are cases when we're getting "el.setAttribute is not a function"
467
+ if (el.setAttribute) {
468
+ el.setAttribute('roleindex', otherRoleIndex);
469
+ el.setAttribute('xScale', pageInfo.xScale);
470
+ el.setAttribute('yScale', pageInfo.yScale);
471
+ }
448
472
  });
473
+ // }
449
474
  });
450
475
  this.checkRecipientFields();
451
476
  }
@@ -466,10 +491,21 @@ const VerdocsSign = class {
466
491
  h("verdocs-view", { endpoint: this.endpoint, envelopeId: this.envelopeId, onSdkError: e => { var _a; return (_a = this.sdkError) === null || _a === void 0 ? void 0 : _a.emit(e.detail); } })) : (h("div", { class: "document" }, (state.envelope.documents || []).map(envelopeDocument => {
467
492
  const pages = [...((envelopeDocument === null || envelopeDocument === void 0 ? void 0 : envelopeDocument.pages) || [])];
468
493
  pages.sort((a, b) => a.sequence - b.sequence);
469
- return (h(Fragment, null, pages.map(page => (h("verdocs-document-page", { pageImageUri: page.display_uri, virtualWidth: 612, virtualHeight: 792, pageNumber: page.sequence, onPageRendered: e => this.handlePageRendered(e), layers: [
470
- { name: 'page', type: 'canvas' },
471
- { name: 'controls', type: 'div' },
472
- ] })))));
494
+ return (h(Fragment, null, pages.map(page => {
495
+ var _a;
496
+ // In signing mode we show the original template page with all the recipient fields so we can show source formatting and
497
+ // where everything went. This is also a visual indicator when optional fields weren't filled in by previous actors, or
498
+ // future signers still need to act. Once we're "done" we flip to showing the envelope's documents which have the final
499
+ // field vales (so far) stamped into them.
500
+ const templatePage = (_a = state.template) === null || _a === void 0 ? void 0 : _a.pages.find(p => p.sequence === page.sequence);
501
+ // TODO: Confirm that a pure page-number match is good enough to find the matching template page. We need to make sure
502
+ // we either don't reset our page numbers for additional attachments, or add match-on identifiers to work around that.
503
+ // console.log('tp', templatePage, page);
504
+ return (h("verdocs-document-page", { pageImageUri: (templatePage === null || templatePage === void 0 ? void 0 : templatePage.display_uri) || page.display_uri, virtualWidth: 612, virtualHeight: 792, pageNumber: page.sequence, onPageRendered: e => this.handlePageRendered(e), layers: [
505
+ { name: 'page', type: 'canvas' },
506
+ { name: 'controls', type: 'div' },
507
+ ] }));
508
+ })));
473
509
  }))), this.showFinishLater && (h("verdocs-ok-dialog", { heading: "You've saved your document to finish later.", message: "To complete the document, use the link in the original email notification inviting you to review and finish the document.", onNext: () => (this.showFinishLater = false) })), this.errorMessage && h("verdocs-ok-dialog", { heading: "Network Error", message: this.errorMessage, onNext: () => (this.errorMessage = '') }), this.showDone && (h("verdocs-ok-dialog", { heading: "You're Done!", message: "You can access the Verdoc at any time by clicking on the link from the invitation email.<br /><br />After all recipients have completed their actions, you will receive an email with the document and envelope certificate attached.", onNext: () => (this.showDone = false) }))));
474
510
  }
475
511
  };