@verdocs/web-sdk 1.9.26 → 1.9.31

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-752bdc31.js} +10 -2
  2. package/dist/cjs/Envelopes-752bdc31.js.map +1 -0
  3. package/dist/cjs/{Templates-805e8ffa.js → Templates-a4370308.js} +2 -2
  4. package/dist/cjs/{Templates-805e8ffa.js.map → Templates-a4370308.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-8c8dc4c1.js} +2 -2
  8. package/dist/cjs/{templateStore-a1ccccdb.js.map → templateStore-8c8dc4c1.js.map} +1 -1
  9. package/dist/cjs/{utils-aa1285cc.js → utils-91d249b4.js} +12 -1
  10. package/dist/cjs/utils-91d249b4.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 +72 -41
  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 +72 -41
  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 +2 -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 +10 -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 +11 -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 +72 -41
  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-83934981.js} +10 -2
  66. package/dist/esm/Envelopes-83934981.js.map +1 -0
  67. package/dist/esm/{Templates-653648bb.js → Templates-41762101.js} +2 -2
  68. package/dist/esm/{Templates-653648bb.js.map → Templates-41762101.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-103a54ab.js} +2 -2
  72. package/dist/esm/{templateStore-8585145f.js.map → templateStore-103a54ab.js.map} +1 -1
  73. package/dist/esm/{utils-c666adcf.js → utils-36d44309.js} +12 -2
  74. package/dist/esm/utils-36d44309.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 +72 -41
  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-83934981.js +2 -0
  99. package/dist/esm-es5/Envelopes-83934981.js.map +1 -0
  100. package/dist/esm-es5/{Templates-653648bb.js → Templates-41762101.js} +2 -2
  101. package/dist/esm-es5/{Templates-653648bb.js.map → Templates-41762101.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-103a54ab.js} +2 -2
  106. package/dist/esm-es5/{templateStore-8585145f.js.map → templateStore-103a54ab.js.map} +0 -0
  107. package/dist/esm-es5/utils-36d44309.js +2 -0
  108. package/dist/esm-es5/utils-36d44309.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 +2 -1
  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-0225575c.system.entry.js +2 -0
  137. package/dist/verdocs-web-sdk/p-0225575c.system.entry.js.map +1 -0
  138. package/dist/verdocs-web-sdk/{p-6ec79ddc.system.entry.js → p-0398fe67.system.entry.js} +2 -2
  139. package/dist/verdocs-web-sdk/{p-6ec79ddc.system.entry.js.map → p-0398fe67.system.entry.js.map} +0 -0
  140. package/dist/verdocs-web-sdk/{p-7421e32e.entry.js → p-102bc4bc.entry.js} +2 -2
  141. package/dist/verdocs-web-sdk/p-102bc4bc.entry.js.map +1 -0
  142. package/dist/verdocs-web-sdk/{p-15aa525d.entry.js → p-19a634b9.entry.js} +2 -2
  143. package/dist/verdocs-web-sdk/{p-15aa525d.entry.js.map → p-19a634b9.entry.js.map} +0 -0
  144. package/dist/verdocs-web-sdk/{p-9e5fcf92.system.entry.js → p-1b3be2ae.system.entry.js} +2 -2
  145. package/dist/verdocs-web-sdk/{p-9e5fcf92.system.entry.js.map → p-1b3be2ae.system.entry.js.map} +0 -0
  146. package/dist/verdocs-web-sdk/{p-f47224c8.system.entry.js → p-206bbfe3.system.entry.js} +2 -2
  147. package/dist/verdocs-web-sdk/{p-f47224c8.system.entry.js.map → p-206bbfe3.system.entry.js.map} +0 -0
  148. package/dist/verdocs-web-sdk/{p-a6781789.system.entry.js → p-26e0caa5.system.entry.js} +2 -2
  149. package/dist/verdocs-web-sdk/{p-a6781789.system.entry.js.map → p-26e0caa5.system.entry.js.map} +0 -0
  150. package/dist/verdocs-web-sdk/{p-e02e05a2.entry.js → p-29044b5b.entry.js} +2 -2
  151. package/dist/verdocs-web-sdk/{p-e02e05a2.entry.js.map → p-29044b5b.entry.js.map} +0 -0
  152. package/dist/verdocs-web-sdk/{p-a98ced34.system.entry.js → p-2d1b5389.system.entry.js} +2 -2
  153. package/dist/verdocs-web-sdk/{p-a98ced34.system.entry.js.map → p-2d1b5389.system.entry.js.map} +0 -0
  154. package/dist/verdocs-web-sdk/{p-b5f64429.entry.js → p-2e8a3d90.entry.js} +2 -2
  155. package/dist/verdocs-web-sdk/{p-b5f64429.entry.js.map → p-2e8a3d90.entry.js.map} +0 -0
  156. package/dist/verdocs-web-sdk/{p-075025ab.system.js → p-30fcf18d.system.js} +2 -2
  157. package/dist/verdocs-web-sdk/{p-075025ab.system.js.map → p-30fcf18d.system.js.map} +0 -0
  158. package/dist/verdocs-web-sdk/{p-5b7a5deb.js → p-3ce35714.js} +2 -2
  159. package/dist/verdocs-web-sdk/{p-5b7a5deb.js.map → p-3ce35714.js.map} +0 -0
  160. package/dist/verdocs-web-sdk/{p-1cb6f31a.entry.js → p-455c2dd9.entry.js} +2 -2
  161. package/dist/verdocs-web-sdk/{p-1cb6f31a.entry.js.map → p-455c2dd9.entry.js.map} +0 -0
  162. package/dist/verdocs-web-sdk/{p-a51bb6bf.js → p-458b639d.js} +2 -2
  163. package/dist/verdocs-web-sdk/{p-a51bb6bf.js.map → p-458b639d.js.map} +0 -0
  164. package/dist/verdocs-web-sdk/p-49227301.entry.js +2 -0
  165. package/dist/verdocs-web-sdk/{p-5f036dfe.entry.js.map → p-49227301.entry.js.map} +1 -1
  166. package/dist/verdocs-web-sdk/{p-c41d9fc0.entry.js → p-515f3ab2.entry.js} +2 -2
  167. package/dist/verdocs-web-sdk/{p-c41d9fc0.entry.js.map → p-515f3ab2.entry.js.map} +0 -0
  168. package/dist/verdocs-web-sdk/p-57fad02b.system.js +2 -0
  169. package/dist/verdocs-web-sdk/p-57fad02b.system.js.map +1 -0
  170. package/dist/verdocs-web-sdk/{p-78f5c8ad.system.js → p-58c4b767.system.js} +2 -2
  171. package/dist/verdocs-web-sdk/p-58c4b767.system.js.map +1 -0
  172. package/dist/verdocs-web-sdk/{p-7937a240.system.entry.js → p-5e693763.system.entry.js} +2 -2
  173. package/dist/verdocs-web-sdk/{p-7937a240.system.entry.js.map → p-5e693763.system.entry.js.map} +0 -0
  174. package/dist/verdocs-web-sdk/{p-db837a46.system.entry.js → p-6896b64c.system.entry.js} +2 -2
  175. package/dist/verdocs-web-sdk/{p-db837a46.system.entry.js.map → p-6896b64c.system.entry.js.map} +0 -0
  176. package/dist/verdocs-web-sdk/p-6baf87ba.js +2 -0
  177. package/dist/verdocs-web-sdk/p-6baf87ba.js.map +1 -0
  178. package/dist/verdocs-web-sdk/{p-7fd610f5.entry.js → p-6d858f25.entry.js} +2 -2
  179. package/dist/verdocs-web-sdk/{p-7fd610f5.entry.js.map → p-6d858f25.entry.js.map} +0 -0
  180. package/dist/verdocs-web-sdk/{p-2bc68d06.system.js → p-6d8b9e75.system.js} +2 -2
  181. package/dist/verdocs-web-sdk/{p-2bc68d06.system.js.map → p-6d8b9e75.system.js.map} +0 -0
  182. package/dist/verdocs-web-sdk/{p-070ba589.system.entry.js → p-729db0b6.system.entry.js} +2 -2
  183. package/dist/verdocs-web-sdk/{p-070ba589.system.entry.js.map → p-729db0b6.system.entry.js.map} +0 -0
  184. package/dist/verdocs-web-sdk/{p-f7a56f6c.entry.js → p-78c6b2b1.entry.js} +2 -2
  185. package/dist/verdocs-web-sdk/p-78c6b2b1.entry.js.map +1 -0
  186. package/dist/verdocs-web-sdk/{p-c6de4457.system.entry.js → p-7d1a5bc5.system.entry.js} +2 -2
  187. package/dist/verdocs-web-sdk/{p-c6de4457.system.entry.js.map → p-7d1a5bc5.system.entry.js.map} +0 -0
  188. package/dist/verdocs-web-sdk/{p-4f3b1c7c.entry.js → p-8c2cdcc4.entry.js} +2 -2
  189. package/dist/verdocs-web-sdk/{p-4f3b1c7c.entry.js.map → p-8c2cdcc4.entry.js.map} +0 -0
  190. package/dist/verdocs-web-sdk/p-97329951.system.js.map +1 -1
  191. package/dist/verdocs-web-sdk/{p-4d371bfe.system.entry.js → p-99495fbb.system.entry.js} +2 -2
  192. package/dist/verdocs-web-sdk/{p-4d371bfe.system.entry.js.map → p-99495fbb.system.entry.js.map} +0 -0
  193. package/dist/verdocs-web-sdk/{p-38d5bc9e.entry.js → p-9f381d10.entry.js} +2 -2
  194. package/dist/verdocs-web-sdk/{p-38d5bc9e.entry.js.map → p-9f381d10.entry.js.map} +0 -0
  195. package/dist/verdocs-web-sdk/p-a45632ec.entry.js +2 -0
  196. package/dist/verdocs-web-sdk/{p-695a3cce.entry.js.map → p-a45632ec.entry.js.map} +1 -1
  197. package/dist/verdocs-web-sdk/{p-1fc3f986.system.entry.js → p-b5cf7ddc.system.entry.js} +2 -2
  198. package/dist/verdocs-web-sdk/p-b5cf7ddc.system.entry.js.map +1 -0
  199. package/dist/verdocs-web-sdk/p-b76c949d.entry.js +2 -0
  200. package/dist/verdocs-web-sdk/p-b76c949d.entry.js.map +1 -0
  201. package/dist/verdocs-web-sdk/{p-0ca01601.system.entry.js → p-bd6175d9.system.entry.js} +2 -2
  202. package/dist/verdocs-web-sdk/{p-0ca01601.system.entry.js.map → p-bd6175d9.system.entry.js.map} +0 -0
  203. package/dist/verdocs-web-sdk/p-c16b6ca4.system.js +1 -1
  204. package/dist/verdocs-web-sdk/p-c16b6ca4.system.js.map +1 -1
  205. package/dist/verdocs-web-sdk/{p-92e526a0.system.entry.js → p-c35a211a.system.entry.js} +2 -2
  206. package/dist/verdocs-web-sdk/p-c35a211a.system.entry.js.map +1 -0
  207. package/dist/verdocs-web-sdk/{p-5a08e378.entry.js → p-c3d5596a.entry.js} +2 -2
  208. package/dist/verdocs-web-sdk/{p-5a08e378.entry.js.map → p-c3d5596a.entry.js.map} +0 -0
  209. package/dist/verdocs-web-sdk/{p-f68306f5.entry.js → p-c8fb8a55.entry.js} +2 -2
  210. package/dist/verdocs-web-sdk/{p-f68306f5.entry.js.map → p-c8fb8a55.entry.js.map} +0 -0
  211. package/dist/verdocs-web-sdk/{p-0126c601.entry.js → p-cc30f8c8.entry.js} +2 -2
  212. package/dist/verdocs-web-sdk/{p-0126c601.entry.js.map → p-cc30f8c8.entry.js.map} +0 -0
  213. package/dist/verdocs-web-sdk/p-cf6cfa4f.system.entry.js +2 -0
  214. package/dist/verdocs-web-sdk/p-cf6cfa4f.system.entry.js.map +1 -0
  215. package/dist/verdocs-web-sdk/p-d1c6b0f4.system.entry.js +2 -0
  216. package/dist/verdocs-web-sdk/{p-c731755d.system.entry.js.map → p-d1c6b0f4.system.entry.js.map} +1 -1
  217. package/dist/verdocs-web-sdk/{p-9dc3b579.system.entry.js → p-d9413770.system.entry.js} +2 -2
  218. package/dist/verdocs-web-sdk/{p-9dc3b579.system.entry.js.map → p-d9413770.system.entry.js.map} +0 -0
  219. package/dist/verdocs-web-sdk/p-de207098.entry.js +2 -0
  220. package/dist/verdocs-web-sdk/p-de207098.entry.js.map +1 -0
  221. package/dist/verdocs-web-sdk/p-ff1278ed.js.map +1 -1
  222. package/dist/verdocs-web-sdk/{p-fcc3041d.js → p-ff3b285c.js} +2 -2
  223. package/dist/verdocs-web-sdk/p-ff3b285c.js.map +1 -0
  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-695a3cce.entry.js +0 -2
  242. package/dist/verdocs-web-sdk/p-7421e32e.entry.js.map +0 -1
  243. package/dist/verdocs-web-sdk/p-78f5c8ad.system.js.map +0 -1
  244. package/dist/verdocs-web-sdk/p-92e526a0.system.entry.js.map +0 -1
  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":";;;;;;AAAA,MAAM,wBAAwB,GAAG,i4CAAi4C;;ACMl6C,MAAM,YAAY,GAChB,wrCAAwrC,CAAC;MAW9qC,qBAAqB;;;;;iBAIwB,IAAI;gBAKpC,EAAE;oBAKG,KAAK;oBAML,KAAK;oBAKL,KAAK;gBAKT,KAAK;qBAKD,CAAC;yBAkBN,EAAE;;EANhB,MAAM,UAAU;IACxB,IAAI,CAAC,UAAU,EAAE,CAAC;IAClB,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;GAC9B;EAOD,UAAU;;IACR,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;GACpB;EAED,WAAW,CAAC,CAAM;;IAChB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC7C,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,MAAA,IAAI,CAAC,WAAW,0CAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3C,IAAI,CAAC,UAAU,EAAE,CAAC;GACnB;EAED,UAAU;IACR,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC;IACjE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;GACnC;EAED,MAAM;;IACJ,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,mCAAI,QAAQ,CAAC,QAAQ,mCAAI,KAAK,CAAC;IAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEtE,IAAI,IAAI,CAAC,IAAI,EAAE;MACb,OAAO,EAAC,IAAI,IAAC,KAAK,EAAE,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAC,IAAG,KAAK,IAAI,WAAK,GAAG,EAAE,KAAK,EAAE,GAAG,EAAC,WAAW,GAAG,CAAQ,CAAC;KAC9F;IAED,QACE,EAAC,IAAI,IAAC,KAAK,EAAE,EAAC,QAAQ,EAAE,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ,EAAE,QAAQ,EAAC,EAAE,KAAK,EAAE,EAAC,eAAe,EAAC,IAC9E,KAAK,GAAG,WAAK,GAAG,EAAE,KAAK,EAAE,GAAG,EAAC,WAAW,GAAG,GAAG,cAAQ,OAAO,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,gBAAoB,EAEvH,IAAI,CAAC,QAAQ,KACZ,4BAAsB,IAAI,EAAE,YAAY,IACtC,+BAAuB,EACvB,gBACE,4BACE,KAAK,EAAC,WAAW,EACjB,OAAO,EAAE;QACP,EAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAC;QAChC,EAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAC;OACnC,GACD,EAEF,0BAAoB,KAAK,EAAC,YAAY,EAAC,KAAK,EAAC,EAAE,EAAC,WAAW,EAAC,sBAAsB,EAAC,OAAO,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,GAAI,EAC1H,0BAAoB,KAAK,EAAC,aAAa,EAAC,KAAK,EAAC,EAAE,EAAC,WAAW,EAAC,qBAAqB,EAAC,OAAO,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,GAAI,CACrH,CACc,CACxB,CACI,EACP;GACH;;;;ACjIH,MAAM,yBAAyB,GAAG,ixDAAixD;;MCUtyD,sBAAsB;;;;;gBAMV,EAAE;sBAaH,KAAK;uBAEI,EAAE;gBAET,MAAM;;EAE9B,iBAAiB;IACf,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;IAE7B,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,gBAAgB,EAAE,kHAAkH,CAAC,CAAC;IAC9J,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI;MACjB,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;MACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KACxB,CAAC,CAAC;GACJ;EAED,gBAAgB;IACd,IAAI,CAAC,eAAe,EAAE,CAAC;GACxB;EAED,kBAAkB;IAChB,IAAI,CAAC,eAAe,EAAE,CAAC;GACxB;EAED,eAAe;IACb,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;MACvB,OAAO;KACR;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;IAE7C,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACpD,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAE7E,IAAI,QAAQ,GAAG,GAAG,CAAC;IACnB,GAAG;MACD,QAAQ,IAAI,CAAC,CAAC;MACd,OAAO,CAAC,IAAI,GAAG,GAAG,QAAQ,mBAAmB,CAAC;KAC/C,QAAQ,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,WAAW,GAAG,EAAE,EAAE;IAEzE,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC7B,OAAO,CAAC,YAAY,GAAG,QAAQ,CAAC;IAChC,OAAO,CAAC,IAAI,GAAG,GAAG,QAAQ,mBAAmB,CAAC;IAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;GACjG;EAED,gBAAgB,CAAC,CAAM;IACrB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;GACnC;EAED,YAAY,CAAC,CAAM;IACjB,CAAC,CAAC,eAAe,EAAE,CAAC;IACpB,CAAC,CAAC,cAAc,EAAE,CAAC;IACnB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;GACpB;EAED,WAAW,CAAC,CAAM;IAChB,CAAC,CAAC,eAAe,EAAE,CAAC;IACpB,CAAC,CAAC,cAAc,EAAE,CAAC;IACnB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;GACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgKD,MAAM;IACJ,QACE,EAAC,IAAI,IAAC,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IACtC,WAAK,KAAK,EAAC,QAAQ,IACjB,WAAK,KAAK,EAAC,SAAS,4BAA4B,EAEhD,WAAK,KAAK,EAAC,SAAS,IAClB,0BAAoB,WAAW,EAAC,cAAc,EAAC,KAAK,EAAC,WAAW,EAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,GAAI,EACvK,WAAK,KAAK,EAAC,UAAU,qDAAqD,EAWzE,IAAI,CAAC,UAAU,GAAG,cAAQ,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,aAAa,GAAG,EAAuB,CAAC,GAAI,GAAG,WAAK,KAAK,EAAE,EAAC,OAAO,EAAE,MAAM,EAAC,GAAI,EAE5H,WAAK,KAAK,EAAC,YAAY,yQAGjB,EAEN,WAAK,KAAK,EAAC,SAAS,IAClB,sBAAgB,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAI,EACrG,sBAAgB,KAAK,EAAC,cAAc,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAI,CACpF,CACF,CACF,CACD,EACP;GACH;;;;AC5RH,MAAM,qBAAqB,GAAG,yrCAAyrC;;MCY1sC,kBAAkB;;;gBAQN,EAAE;gBAKF,EAAE;uBAOF,wBAAwB,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;;EAE5F,gBAAgB;IACd,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE;;;KAG7D,CAAC,CAAC;GACJ;EAED,oBAAoB;IAClB,IAAI,IAAI,CAAC,cAAc,EAAE;MACvB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;MAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;GACF;EAED,IAAI;;IACF,MAAA,IAAI,CAAC,OAAO,0CAAE,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAA,IAAI,CAAC,cAAc,0CAAE,MAAM,GAAG,KAAK,CAAC,SAAQ,CAAC,CAAC;GAC/C;EAED,IAAI;;IACF,MAAA,IAAI,CAAC,OAAO,0CAAE,eAAe,CAAC,WAAW,CAAC,CAAC;GAC5C;;;;EAMD,MAAM;IACJ,QACE,EAAC,IAAI,IAAC,KAAK,EAAE,EAAE,IACb,+BACoB,IAAI,CAAC,WAAW,EAClC,KAAK,EAAC,MAAM,EACZ,SAAS,EAAE,IAAI,CAAC,IAAI,EACpB,YAAY,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,EAC/B,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,EAC1B,YAAY,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,EAC/B,MAAM,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,EACzB,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,MAAM,GAAG,EAAoB,CAAC,GAC/C,EACF,WAAK,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAC,SAAS,EAAC,KAAK,EAAC,SAAS,2BAAuB,QAAQ,EAAC,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,OAAO,GAAG,EAAoB,CAAC,IACtI,IAAI,CAAC,IAAI,EACV,gCAAuB,MAAM,EAAC,KAAK,EAAC,OAAO,GAAG,CAC1C,CACD,EACP;GACH;;;;;;","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-36d44309.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-103a54ab.js';
4
+ import { g as getFieldSettings } from './utils-36d44309.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-36d44309.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-36d44309.js';
5
+ import { s as state } from './templateStore-103a54ab.js';
6
+ import { l as loadTemplate } from './Templates-41762101.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-36d44309.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-36d44309.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-83934981.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); }); }
@@ -113,7 +114,6 @@ const VerdocsSign = class {
113
114
  this.envelopeUpdated = createEvent(this, "envelopeUpdated", 7);
114
115
  this.endpoint = null;
115
116
  this.recipientIndex = -1;
116
- this.fields = [];
117
117
  this.envelopeId = null;
118
118
  this.roleId = null;
119
119
  this.inviteCode = null;
@@ -128,6 +128,7 @@ const VerdocsSign = class {
128
128
  this.showDone = false;
129
129
  this.finishLater = false;
130
130
  this.showFinishLater = false;
131
+ this.agreed = false;
131
132
  }
132
133
  componentWillLoad() {
133
134
  this.endpoint = new VerdocsEndpoint({ sessionType: 'signing' });
@@ -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
- if (this.recipient.agreed) {
162
+ if (this.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
- this.fields = this.recipient.fields;
169
+ this.agreed = this.recipient.agreed;
170
+ console.log('[SIGN] Found our recipient in the envelope', this.recipientIndex, this.recipient);
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);
@@ -183,10 +185,10 @@ const VerdocsSign = class {
183
185
  }
184
186
  handleClickAgree() {
185
187
  envelopeRecipientAgree(this.endpoint, this.envelopeId, this.roleId, true)
186
- .then(r => {
188
+ .then(() => {
187
189
  var _a;
188
190
  this.nextButtonLabel = 'Next';
189
- this.recipient = r;
191
+ this.agreed = true; // The server returns a recipient object but it's not "deep" so we track this locally
190
192
  (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'agreed' });
191
193
  })
192
194
  .catch(e => {
@@ -201,11 +203,9 @@ const VerdocsSign = class {
201
203
  this.finishLater = true;
202
204
  this.showFinishLater = true;
203
205
  // this.router.navigate([`view/sign/${this.envelopeId}/role/${this.roleName}/saved`]);
204
- // if (!window?.['STORYBOOK_ENV']) {
205
- // window.alert('User intends to sign later.');
206
- // }
207
206
  break;
208
207
  case 'claim':
208
+ window.alert('This feature will be available in an upcoming release.');
209
209
  break;
210
210
  case 'decline':
211
211
  {
@@ -222,8 +222,20 @@ const VerdocsSign = class {
222
222
  break;
223
223
  }
224
224
  }
225
+ updateRecipientFieldValue(fieldName, updateResult) {
226
+ this.recipient.fields.forEach(oldField => {
227
+ if (oldField.name === fieldName) {
228
+ oldField.settings = updateResult.settings;
229
+ // TODO: When we break out other fields like value, update them here too
230
+ updateDocumentFieldValue(oldField);
231
+ }
232
+ });
233
+ }
225
234
  saveFieldChange(fieldName, fields) {
226
235
  updateEnvelopeField(this.endpoint, this.envelopeId, fieldName, fields) //
236
+ .then(updateResult => {
237
+ this.updateRecipientFieldValue(fieldName, updateResult);
238
+ })
227
239
  .catch(e => {
228
240
  var _a, _b, _c, _d, _e, _f;
229
241
  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 +267,16 @@ const VerdocsSign = class {
255
267
  case 'initial':
256
268
  const initialsBlob = await (await fetch(e.detail)).blob();
257
269
  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);
270
+ .then(async (newInitials) => {
271
+ const updateResult = await updateEnvelopeFieldInitials(this.endpoint, this.envelopeId, field.name, newInitials.id);
272
+ this.updateRecipientFieldValue(field.name, updateResult);
261
273
  });
262
274
  case 'signature':
263
275
  const signatureBlob = await (await fetch(e.detail)).blob();
264
276
  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);
277
+ .then(async (newSignature) => {
278
+ const updateResult = await updateEnvelopeFieldSignature(this.endpoint, this.envelopeId, field.name, newSignature.id);
279
+ this.updateRecipientFieldValue(field.name, updateResult);
268
280
  });
269
281
  case 'date':
270
282
  const iso = e.target.getAttribute('iso');
@@ -325,22 +337,14 @@ const VerdocsSign = class {
325
337
  console.log('[SIGN] Submitted successfully', result);
326
338
  this.showDone = true;
327
339
  this.isDone = true;
328
- // updateRecipientStatus()
329
340
  }
330
341
  catch (e) {
331
342
  console.log('Error submitting', e);
332
343
  }
333
344
  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
345
  }
342
346
  // Find and focus the next incomplete required field
343
- const requiredFields = this.fields.filter(field => field.required);
347
+ const requiredFields = this.recipient.fields.filter(field => field.required);
344
348
  const focusedIndex = requiredFields.findIndex(field => field.name === this.focusedField);
345
349
  let nextFocusedIndex = focusedIndex + 1;
346
350
  if (nextFocusedIndex >= requiredFields.length) {
@@ -376,12 +380,14 @@ const VerdocsSign = class {
376
380
  }
377
381
  else {
378
382
  console.log('[SIGN] Remaining invalid fields', invalidFields);
383
+ this.nextButtonLabel = 'Next';
379
384
  this.nextSubmits = false;
380
385
  }
381
386
  }
382
387
  attachFieldAttributes(pageInfo, field, roleIndex, el) {
383
388
  var _a;
384
389
  el.addEventListener('input', e => this.handleFieldChange(field, e).finally(() => this.checkRecipientFields()));
390
+ el.addEventListener('blur', () => this.checkRecipientFields());
385
391
  el.addEventListener('fieldChange', e => this.handleFieldChange(field, e).finally(() => this.checkRecipientFields()));
386
392
  el.setAttribute('roleindex', roleIndex);
387
393
  el.setAttribute('xScale', pageInfo.xScale);
@@ -433,24 +439,38 @@ const VerdocsSign = class {
433
439
  // Render fields for "the other" recipients
434
440
  state.envelope.recipients
435
441
  .filter(recipient => recipient.role_name !== this.recipient.role_name)
436
- .map(otherRecipient => {
442
+ .forEach(otherRecipient => {
437
443
  const otherRoleIndex = getRoleIndex(state.roleNames, otherRecipient.role_name);
438
444
  const recipientFields = otherRecipient.fields.filter(field => field.page === pageInfo.pageNumber);
439
- // const fields = this.fields.filter(field => field.page_sequence === pageInfo.renderedPage.pageNumber);
445
+ // We don't render other recipients' fields if they've already acted, because those values are now stamped into the document page.
446
+ // TODO: Do we want to render alternate treatments for recipients who have declined (red boxes?) and/or if the envelope is cancelled?
447
+ // TODO: When doing server-side rendering we probably want to "stamp" values into the rendered PDF only once the recipient is done
448
+ // acting. Do this once vSign is in Production.
449
+ // TODO: Changed tacks here. During signing we show the template PDFs and everybody's fields, filled in or no. When done, we switch
450
+ // to showing the envelope PDFs with stamped-in values. Confirm this is a good approach.
451
+ // if (!['submitted', 'signed'].includes(otherRecipient.status)) {
440
452
  recipientFields.forEach(field => {
441
- const el = renderDocumentField(field, pageInfo, otherRoleIndex, { disabled: true, editable: false, draggable: false, done: this.isDone });
453
+ const el = renderDocumentField(field, pageInfo, otherRoleIndex, {
454
+ disabled: true,
455
+ editable: false,
456
+ draggable: false,
457
+ done: this.isDone,
458
+ });
442
459
  if (!el) {
443
460
  return;
444
461
  }
445
- el.setAttribute('roleindex', otherRoleIndex);
446
- el.setAttribute('xScale', pageInfo.xScale);
447
- el.setAttribute('yScale', pageInfo.yScale);
462
+ // TODO: Research why this occurs. There are cases when we're getting "el.setAttribute is not a function"
463
+ if (el.setAttribute) {
464
+ el.setAttribute('roleindex', otherRoleIndex);
465
+ el.setAttribute('xScale', pageInfo.xScale);
466
+ el.setAttribute('yScale', pageInfo.yScale);
467
+ }
448
468
  });
469
+ // }
449
470
  });
450
471
  this.checkRecipientFields();
451
472
  }
452
473
  render() {
453
- var _a, _b, _c, _d;
454
474
  if (state.loading || !state.envelope) {
455
475
  return (h(Host, null, h("verdocs-loader", null)));
456
476
  }
@@ -461,15 +481,26 @@ const VerdocsSign = class {
461
481
  { id: 'print', label: 'Print Without Signing', disabled: true },
462
482
  { id: 'download', label: 'Download' },
463
483
  ];
464
- return (h(Host, { class: { agreed: (_a = this.recipient) === null || _a === void 0 ? void 0 : _a.agreed } }, !this.isDone && !this.finishLater && h("div", { class: "intro" }, "Please review and act on these documents."), !this.isDone && (h("div", { class: "header" }, !this.isDone && !this.finishLater && h("verdocs-dropdown", { options: menuOptions, onOptionSelected: e => this.handleOptionSelected(e) }), !((_b = this.recipient) === null || _b === void 0 ? void 0 : _b.agreed) ? (h("div", { class: "agree" }, h("verdocs-checkbox", { name: "agree", label: "I agree to use electronic records and signatures.", onInput: () => this.handleClickAgree() }))) : (h(Fragment, null, h("img", { src: "https://verdocs.com/assets/white-logo.svg", alt: "Verdocs Logo", class: "logo" }), h("div", { class: "title" }, state.envelope.name), h("div", { style: { flex: '1' } }), h("div", { innerHTML: PrintIcon, style: { width: '24px', height: '24px', fill: '#fff', cursor: 'pointer' }, onClick: () => window.print() }), h("div", { innerHTML: DownloadIcon, style: { width: '24px', height: '24px', fill: '#fff', cursor: 'pointer', margin: '0 16px', maginRight: '30px' }, onClick: () => savePDF(this.endpoint, state.envelope, state.envelope.envelope_document_id).catch(() => { }) }))), !this.isDone && !this.finishLater && h("verdocs-button", { size: "small", label: this.nextButtonLabel, disabled: !((_c = this.recipient) === null || _c === void 0 ? void 0 : _c.agreed), onClick: () => this.handleNext() }))), !this.isDone && !((_d = this.recipient) === null || _d === void 0 ? void 0 : _d.agreed) ? h("div", { class: "cover" }) : h("div", { style: { display: 'none' } }), this.isDone ? (
484
+ return (h(Host, { class: { agreed: this.agreed } }, !this.isDone && !this.finishLater && h("div", { class: "intro" }, "Please review and act on these documents."), !this.isDone && (h("div", { class: "header" }, !this.isDone && !this.finishLater && h("verdocs-dropdown", { options: menuOptions, onOptionSelected: e => this.handleOptionSelected(e) }), !this.agreed ? (h("div", { class: "agree" }, h("verdocs-checkbox", { name: "agree", label: "I agree to use electronic records and signatures.", onInput: () => this.handleClickAgree() }))) : (h(Fragment, null, h("img", { src: "https://verdocs.com/assets/white-logo.svg", alt: "Verdocs Logo", class: "logo" }), h("div", { class: "title" }, state.envelope.name), h("div", { style: { flex: '1' } }), h("div", { innerHTML: PrintIcon, style: { width: '24px', height: '24px', fill: '#fff', cursor: 'pointer' }, onClick: () => window.print() }), h("div", { innerHTML: DownloadIcon, style: { width: '24px', height: '24px', fill: '#fff', cursor: 'pointer', margin: '0 16px', maginRight: '30px' }, onClick: () => savePDF(this.endpoint, state.envelope, state.envelope.envelope_document_id).catch(() => { }) }))), !this.isDone && !this.finishLater && h("verdocs-button", { size: "small", label: this.nextButtonLabel, disabled: !this.agreed, onClick: () => this.handleNext() }))), !this.isDone && !this.agreed ? h("div", { class: "cover" }) : h("div", { style: { display: 'none' } }), this.isDone ? (
465
485
  // <div>test</div>
466
486
  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
487
  const pages = [...((envelopeDocument === null || envelopeDocument === void 0 ? void 0 : envelopeDocument.pages) || [])];
468
488
  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
- ] })))));
489
+ return (h(Fragment, null, pages.map(page => {
490
+ var _a;
491
+ // In signing mode we show the original template page with all the recipient fields so we can show source formatting and
492
+ // where everything went. This is also a visual indicator when optional fields weren't filled in by previous actors, or
493
+ // future signers still need to act. Once we're "done" we flip to showing the envelope's documents which have the final
494
+ // field vales (so far) stamped into them.
495
+ const templatePage = (_a = state.template) === null || _a === void 0 ? void 0 : _a.pages.find(p => p.sequence === page.sequence);
496
+ // TODO: Confirm that a pure page-number match is good enough to find the matching template page. We need to make sure
497
+ // we either don't reset our page numbers for additional attachments, or add match-on identifiers to work around that.
498
+ // console.log('tp', templatePage, page);
499
+ 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: [
500
+ { name: 'page', type: 'canvas' },
501
+ { name: 'controls', type: 'div' },
502
+ ] }));
503
+ })));
473
504
  }))), 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
505
  }
475
506
  };