@verdocs/web-sdk 1.9.30 → 1.9.32

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 (331) hide show
  1. package/dist/cjs/{Envelopes-5c4569c8.js → Envelopes-019e8a9f.js} +2 -2
  2. package/dist/cjs/{Envelopes-5c4569c8.js.map → Envelopes-019e8a9f.js.map} +1 -1
  3. package/dist/cjs/Files-4bdc0c0f.js +49 -0
  4. package/dist/cjs/Files-4bdc0c0f.js.map +1 -0
  5. package/dist/cjs/Primitives-be5088cb.js +25 -0
  6. package/dist/cjs/Primitives-be5088cb.js.map +1 -0
  7. package/dist/cjs/{Templates-7d9dda98.js → Templates-358eaee4.js} +2 -2
  8. package/dist/cjs/{Templates-7d9dda98.js.map → Templates-358eaee4.js.map} +1 -1
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/cjs/{templateStore-0d394f32.js → templateStore-eed1f161.js} +3 -4
  11. package/dist/cjs/templateStore-eed1f161.js.map +1 -0
  12. package/dist/cjs/{utils-0666fb5d.js → utils-787b2115.js} +5 -30
  13. package/dist/cjs/utils-787b2115.js.map +1 -0
  14. package/dist/cjs/verdocs-build.cjs.entry.js +3 -3
  15. package/dist/cjs/verdocs-document-page_2.cjs.entry.js +2 -1
  16. package/dist/cjs/verdocs-document-page_2.cjs.entry.js.map +1 -1
  17. package/dist/cjs/verdocs-dropdown_2.cjs.entry.js +3 -2
  18. package/dist/cjs/verdocs-dropdown_2.cjs.entry.js.map +1 -1
  19. package/dist/cjs/verdocs-field-checkbox.cjs.entry.js +2 -1
  20. package/dist/cjs/verdocs-field-checkbox.cjs.entry.js.map +1 -1
  21. package/dist/cjs/verdocs-field-date.cjs.entry.js +2 -1
  22. package/dist/cjs/verdocs-field-date.cjs.entry.js.map +1 -1
  23. package/dist/cjs/verdocs-field-dropdown.cjs.entry.js +2 -1
  24. package/dist/cjs/verdocs-field-dropdown.cjs.entry.js.map +1 -1
  25. package/dist/cjs/verdocs-field-initial.cjs.entry.js +2 -1
  26. package/dist/cjs/verdocs-field-initial.cjs.entry.js.map +1 -1
  27. package/dist/cjs/verdocs-field-payment.cjs.entry.js +2 -1
  28. package/dist/cjs/verdocs-field-payment.cjs.entry.js.map +1 -1
  29. package/dist/cjs/verdocs-field-radio-button.cjs.entry.js +2 -1
  30. package/dist/cjs/verdocs-field-radio-button.cjs.entry.js.map +1 -1
  31. package/dist/cjs/verdocs-field-signature_3.cjs.entry.js +2 -1
  32. package/dist/cjs/verdocs-field-signature_3.cjs.entry.js.map +1 -1
  33. package/dist/cjs/verdocs-field-textarea.cjs.entry.js +2 -1
  34. package/dist/cjs/verdocs-field-textarea.cjs.entry.js.map +1 -1
  35. package/dist/cjs/verdocs-field-textbox.cjs.entry.js +4 -2
  36. package/dist/cjs/verdocs-field-textbox.cjs.entry.js.map +1 -1
  37. package/dist/cjs/verdocs-field-timestamp.cjs.entry.js +2 -1
  38. package/dist/cjs/verdocs-field-timestamp.cjs.entry.js.map +1 -1
  39. package/dist/cjs/verdocs-preview.cjs.entry.js +5 -3
  40. package/dist/cjs/verdocs-preview.cjs.entry.js.map +1 -1
  41. package/dist/cjs/verdocs-send.cjs.entry.js +2 -1
  42. package/dist/cjs/verdocs-send.cjs.entry.js.map +1 -1
  43. package/dist/cjs/verdocs-sign.cjs.entry.js +18 -19
  44. package/dist/cjs/verdocs-sign.cjs.entry.js.map +1 -1
  45. package/dist/cjs/verdocs-template-create_4.cjs.entry.js +5 -3
  46. package/dist/cjs/verdocs-template-create_4.cjs.entry.js.map +1 -1
  47. package/dist/cjs/verdocs-upload-dialog.cjs.entry.js +3 -28
  48. package/dist/cjs/verdocs-upload-dialog.cjs.entry.js.map +1 -1
  49. package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
  50. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js +18 -19
  51. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js.map +1 -1
  52. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.stories.js +2 -3
  53. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.stories.js.map +1 -1
  54. package/dist/collection/utils/templateStore.js +1 -4
  55. package/dist/collection/utils/templateStore.js.map +1 -1
  56. package/dist/collection/utils/utils.js +3 -24
  57. package/dist/collection/utils/utils.js.map +1 -1
  58. package/dist/components/Files.js +46 -0
  59. package/dist/components/Files.js.map +1 -0
  60. package/dist/components/Primitives.js +22 -0
  61. package/dist/components/Primitives.js.map +1 -0
  62. package/dist/components/templateStore.js +1 -2
  63. package/dist/components/templateStore.js.map +1 -1
  64. package/dist/components/utils.js +5 -28
  65. package/dist/components/utils.js.map +1 -1
  66. package/dist/components/verdocs-sign.js +17 -18
  67. package/dist/components/verdocs-sign.js.map +1 -1
  68. package/dist/components/verdocs-template-create2.js.map +1 -1
  69. package/dist/components/verdocs-template-fields2.js +1 -1
  70. package/dist/components/verdocs-upload-dialog2.js +1 -26
  71. package/dist/components/verdocs-upload-dialog2.js.map +1 -1
  72. package/dist/components/verdocs-view2.js +1 -1
  73. package/dist/custom-elements.json +1123 -0
  74. package/dist/docs.json +1 -1
  75. package/dist/esm/{Envelopes-b87b1909.js → Envelopes-c2545a20.js} +2 -2
  76. package/dist/esm/{Envelopes-b87b1909.js.map → Envelopes-c2545a20.js.map} +1 -1
  77. package/dist/esm/Files-70a192df.js +46 -0
  78. package/dist/esm/Files-70a192df.js.map +1 -0
  79. package/dist/esm/Primitives-054bc6e5.js +22 -0
  80. package/dist/esm/Primitives-054bc6e5.js.map +1 -0
  81. package/dist/esm/{Templates-452173e6.js → Templates-ad0e1ebe.js} +2 -2
  82. package/dist/esm/{Templates-452173e6.js.map → Templates-ad0e1ebe.js.map} +1 -1
  83. package/dist/esm/loader.js +1 -1
  84. package/dist/esm/{templateStore-d6995852.js → templateStore-7b50460b.js} +2 -3
  85. package/dist/esm/templateStore-7b50460b.js.map +1 -0
  86. package/dist/esm/{utils-5cddd371.js → utils-6e8bd73f.js} +6 -29
  87. package/dist/esm/utils-6e8bd73f.js.map +1 -0
  88. package/dist/esm/verdocs-build.entry.js +3 -3
  89. package/dist/esm/verdocs-document-page_2.entry.js +2 -1
  90. package/dist/esm/verdocs-document-page_2.entry.js.map +1 -1
  91. package/dist/esm/verdocs-dropdown_2.entry.js +3 -2
  92. package/dist/esm/verdocs-dropdown_2.entry.js.map +1 -1
  93. package/dist/esm/verdocs-field-checkbox.entry.js +2 -1
  94. package/dist/esm/verdocs-field-checkbox.entry.js.map +1 -1
  95. package/dist/esm/verdocs-field-date.entry.js +2 -1
  96. package/dist/esm/verdocs-field-date.entry.js.map +1 -1
  97. package/dist/esm/verdocs-field-dropdown.entry.js +2 -1
  98. package/dist/esm/verdocs-field-dropdown.entry.js.map +1 -1
  99. package/dist/esm/verdocs-field-initial.entry.js +2 -1
  100. package/dist/esm/verdocs-field-initial.entry.js.map +1 -1
  101. package/dist/esm/verdocs-field-payment.entry.js +2 -1
  102. package/dist/esm/verdocs-field-payment.entry.js.map +1 -1
  103. package/dist/esm/verdocs-field-radio-button.entry.js +2 -1
  104. package/dist/esm/verdocs-field-radio-button.entry.js.map +1 -1
  105. package/dist/esm/verdocs-field-signature_3.entry.js +2 -1
  106. package/dist/esm/verdocs-field-signature_3.entry.js.map +1 -1
  107. package/dist/esm/verdocs-field-textarea.entry.js +2 -1
  108. package/dist/esm/verdocs-field-textarea.entry.js.map +1 -1
  109. package/dist/esm/verdocs-field-textbox.entry.js +4 -2
  110. package/dist/esm/verdocs-field-textbox.entry.js.map +1 -1
  111. package/dist/esm/verdocs-field-timestamp.entry.js +2 -1
  112. package/dist/esm/verdocs-field-timestamp.entry.js.map +1 -1
  113. package/dist/esm/verdocs-preview.entry.js +5 -3
  114. package/dist/esm/verdocs-preview.entry.js.map +1 -1
  115. package/dist/esm/verdocs-send.entry.js +2 -1
  116. package/dist/esm/verdocs-send.entry.js.map +1 -1
  117. package/dist/esm/verdocs-sign.entry.js +17 -18
  118. package/dist/esm/verdocs-sign.entry.js.map +1 -1
  119. package/dist/esm/verdocs-template-create_4.entry.js +5 -3
  120. package/dist/esm/verdocs-template-create_4.entry.js.map +1 -1
  121. package/dist/esm/verdocs-upload-dialog.entry.js +1 -26
  122. package/dist/esm/verdocs-upload-dialog.entry.js.map +1 -1
  123. package/dist/esm/verdocs-web-sdk.js +1 -1
  124. package/dist/esm-es5/{Envelopes-b87b1909.js → Envelopes-c2545a20.js} +2 -2
  125. package/dist/esm-es5/{Envelopes-b87b1909.js.map → Envelopes-c2545a20.js.map} +0 -0
  126. package/dist/esm-es5/Files-70a192df.js +2 -0
  127. package/dist/esm-es5/Files-70a192df.js.map +1 -0
  128. package/dist/esm-es5/Primitives-054bc6e5.js +2 -0
  129. package/dist/esm-es5/Primitives-054bc6e5.js.map +1 -0
  130. package/dist/esm-es5/{Templates-452173e6.js → Templates-ad0e1ebe.js} +2 -2
  131. package/dist/esm-es5/{Templates-452173e6.js.map → Templates-ad0e1ebe.js.map} +0 -0
  132. package/dist/esm-es5/loader.js +1 -1
  133. package/dist/esm-es5/loader.js.map +1 -1
  134. package/dist/esm-es5/templateStore-7b50460b.js +2 -0
  135. package/dist/esm-es5/templateStore-7b50460b.js.map +1 -0
  136. package/dist/esm-es5/utils-6e8bd73f.js +2 -0
  137. package/dist/esm-es5/utils-6e8bd73f.js.map +1 -0
  138. package/dist/esm-es5/verdocs-build.entry.js +1 -1
  139. package/dist/esm-es5/verdocs-build.entry.js.map +1 -1
  140. package/dist/esm-es5/verdocs-document-page_2.entry.js +1 -1
  141. package/dist/esm-es5/verdocs-document-page_2.entry.js.map +1 -1
  142. package/dist/esm-es5/verdocs-dropdown_2.entry.js +1 -1
  143. package/dist/esm-es5/verdocs-dropdown_2.entry.js.map +1 -1
  144. package/dist/esm-es5/verdocs-field-checkbox.entry.js +1 -1
  145. package/dist/esm-es5/verdocs-field-checkbox.entry.js.map +1 -1
  146. package/dist/esm-es5/verdocs-field-date.entry.js +1 -1
  147. package/dist/esm-es5/verdocs-field-date.entry.js.map +1 -1
  148. package/dist/esm-es5/verdocs-field-dropdown.entry.js +1 -1
  149. package/dist/esm-es5/verdocs-field-dropdown.entry.js.map +1 -1
  150. package/dist/esm-es5/verdocs-field-initial.entry.js +1 -1
  151. package/dist/esm-es5/verdocs-field-initial.entry.js.map +1 -1
  152. package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
  153. package/dist/esm-es5/verdocs-field-payment.entry.js.map +1 -1
  154. package/dist/esm-es5/verdocs-field-radio-button.entry.js +1 -1
  155. package/dist/esm-es5/verdocs-field-radio-button.entry.js.map +1 -1
  156. package/dist/esm-es5/verdocs-field-signature_3.entry.js +1 -1
  157. package/dist/esm-es5/verdocs-field-signature_3.entry.js.map +1 -1
  158. package/dist/esm-es5/verdocs-field-textarea.entry.js +1 -1
  159. package/dist/esm-es5/verdocs-field-textarea.entry.js.map +1 -1
  160. package/dist/esm-es5/verdocs-field-textbox.entry.js +1 -1
  161. package/dist/esm-es5/verdocs-field-textbox.entry.js.map +1 -1
  162. package/dist/esm-es5/verdocs-field-timestamp.entry.js +1 -1
  163. package/dist/esm-es5/verdocs-field-timestamp.entry.js.map +1 -1
  164. package/dist/esm-es5/verdocs-preview.entry.js +1 -1
  165. package/dist/esm-es5/verdocs-preview.entry.js.map +1 -1
  166. package/dist/esm-es5/verdocs-send.entry.js +1 -1
  167. package/dist/esm-es5/verdocs-send.entry.js.map +1 -1
  168. package/dist/esm-es5/verdocs-sign.entry.js +1 -1
  169. package/dist/esm-es5/verdocs-sign.entry.js.map +1 -1
  170. package/dist/esm-es5/verdocs-template-create_4.entry.js +1 -1
  171. package/dist/esm-es5/verdocs-template-create_4.entry.js.map +1 -1
  172. package/dist/esm-es5/verdocs-upload-dialog.entry.js +1 -1
  173. package/dist/esm-es5/verdocs-upload-dialog.entry.js.map +1 -1
  174. package/dist/esm-es5/verdocs-web-sdk.js +1 -1
  175. package/dist/esm-es5/verdocs-web-sdk.js.map +1 -1
  176. package/dist/types/components/embeds/verdocs-sign/verdocs-sign.d.ts +1 -1
  177. package/dist/types/utils/utils.d.ts +0 -2
  178. package/dist/verdocs-web-sdk/p-008f67ce.entry.js +2 -0
  179. package/dist/verdocs-web-sdk/p-008f67ce.entry.js.map +1 -0
  180. package/dist/verdocs-web-sdk/p-016521f8.system.entry.js +2 -0
  181. package/dist/verdocs-web-sdk/{p-5fd49bc3.system.entry.js.map → p-016521f8.system.entry.js.map} +1 -1
  182. package/dist/verdocs-web-sdk/p-08800f26.entry.js +2 -0
  183. package/dist/verdocs-web-sdk/{p-822f510f.entry.js.map → p-08800f26.entry.js.map} +1 -1
  184. package/dist/verdocs-web-sdk/p-11ab1bd0.js +2 -0
  185. package/dist/verdocs-web-sdk/{p-584d8151.js.map → p-11ab1bd0.js.map} +0 -0
  186. package/dist/verdocs-web-sdk/{p-1d96d8e2.entry.js → p-12fd1696.entry.js} +2 -2
  187. package/dist/verdocs-web-sdk/{p-1d96d8e2.entry.js.map → p-12fd1696.entry.js.map} +0 -0
  188. package/dist/verdocs-web-sdk/p-14513fd8.system.entry.js +2 -0
  189. package/dist/verdocs-web-sdk/{p-3397509c.system.entry.js.map → p-14513fd8.system.entry.js.map} +1 -1
  190. package/dist/verdocs-web-sdk/{p-0e5b8a3c.system.entry.js → p-14c69e28.system.entry.js} +2 -2
  191. package/dist/verdocs-web-sdk/{p-0e5b8a3c.system.entry.js.map → p-14c69e28.system.entry.js.map} +0 -0
  192. package/dist/verdocs-web-sdk/p-194a9ea7.entry.js +2 -0
  193. package/dist/verdocs-web-sdk/{p-0105b271.entry.js.map → p-194a9ea7.entry.js.map} +1 -1
  194. package/dist/verdocs-web-sdk/p-210606ed.entry.js +2 -0
  195. package/dist/verdocs-web-sdk/{p-8d5a6ec9.entry.js.map → p-210606ed.entry.js.map} +1 -1
  196. package/dist/verdocs-web-sdk/{p-decfd8b1.system.js → p-252d594a.system.js} +2 -2
  197. package/dist/verdocs-web-sdk/{p-decfd8b1.system.js.map → p-252d594a.system.js.map} +0 -0
  198. package/dist/verdocs-web-sdk/p-327858f0.system.js +2 -0
  199. package/dist/verdocs-web-sdk/p-327858f0.system.js.map +1 -0
  200. package/dist/verdocs-web-sdk/p-3cafb2e3.entry.js +2 -0
  201. package/dist/verdocs-web-sdk/{p-06652374.entry.js.map → p-3cafb2e3.entry.js.map} +1 -1
  202. package/dist/verdocs-web-sdk/p-3e33cd27.system.entry.js +2 -0
  203. package/dist/verdocs-web-sdk/{p-1ee79c76.system.entry.js.map → p-3e33cd27.system.entry.js.map} +1 -1
  204. package/dist/verdocs-web-sdk/p-417ee5e0.js +2 -0
  205. package/dist/verdocs-web-sdk/p-417ee5e0.js.map +1 -0
  206. package/dist/verdocs-web-sdk/p-46e776de.system.entry.js +2 -0
  207. package/dist/verdocs-web-sdk/{p-8945bf3c.system.entry.js.map → p-46e776de.system.entry.js.map} +1 -1
  208. package/dist/verdocs-web-sdk/p-553176fa.system.entry.js +2 -0
  209. package/dist/verdocs-web-sdk/{p-f4451ad4.system.entry.js.map → p-553176fa.system.entry.js.map} +1 -1
  210. package/dist/verdocs-web-sdk/p-5c895ce6.system.entry.js +2 -0
  211. package/dist/verdocs-web-sdk/{p-58e850fe.system.entry.js.map → p-5c895ce6.system.entry.js.map} +1 -1
  212. package/dist/verdocs-web-sdk/p-6f177552.system.entry.js +2 -0
  213. package/dist/verdocs-web-sdk/{p-4b5c0516.system.entry.js.map → p-6f177552.system.entry.js.map} +1 -1
  214. package/dist/verdocs-web-sdk/p-7291906c.js +2 -0
  215. package/dist/verdocs-web-sdk/p-7291906c.js.map +1 -0
  216. package/dist/verdocs-web-sdk/p-763b1dd8.entry.js +2 -0
  217. package/dist/verdocs-web-sdk/{p-8917f698.entry.js.map → p-763b1dd8.entry.js.map} +1 -1
  218. package/dist/verdocs-web-sdk/p-78989f41.entry.js +2 -0
  219. package/dist/verdocs-web-sdk/{p-a2702bfa.entry.js.map → p-78989f41.entry.js.map} +1 -1
  220. package/dist/verdocs-web-sdk/p-831ee1b6.system.js +2 -0
  221. package/dist/verdocs-web-sdk/p-831ee1b6.system.js.map +1 -0
  222. package/dist/verdocs-web-sdk/p-851f5c2b.system.entry.js +2 -0
  223. package/dist/verdocs-web-sdk/p-851f5c2b.system.entry.js.map +1 -0
  224. package/dist/verdocs-web-sdk/p-87776dc1.system.entry.js +2 -0
  225. package/dist/verdocs-web-sdk/{p-2ce6d16e.system.entry.js.map → p-87776dc1.system.entry.js.map} +1 -1
  226. package/dist/verdocs-web-sdk/p-893d6bfb.entry.js +2 -0
  227. package/dist/verdocs-web-sdk/{p-a3fff56c.entry.js.map → p-893d6bfb.entry.js.map} +1 -1
  228. package/dist/verdocs-web-sdk/{p-4a6d038d.js → p-8c0aa0e9.js} +2 -2
  229. package/dist/verdocs-web-sdk/{p-4a6d038d.js.map → p-8c0aa0e9.js.map} +0 -0
  230. package/dist/verdocs-web-sdk/p-977ccc81.entry.js +2 -0
  231. package/dist/verdocs-web-sdk/p-977ccc81.entry.js.map +1 -0
  232. package/dist/verdocs-web-sdk/p-9c208c1d.entry.js +2 -0
  233. package/dist/verdocs-web-sdk/{p-26409bd3.entry.js.map → p-9c208c1d.entry.js.map} +1 -1
  234. package/dist/verdocs-web-sdk/p-9f1225bf.entry.js +2 -0
  235. package/dist/verdocs-web-sdk/{p-625b1c62.entry.js.map → p-9f1225bf.entry.js.map} +1 -1
  236. package/dist/verdocs-web-sdk/p-a3820c7f.entry.js +2 -0
  237. package/dist/verdocs-web-sdk/{p-2c00bfe5.entry.js.map → p-a3820c7f.entry.js.map} +1 -1
  238. package/dist/verdocs-web-sdk/{p-4dfd765a.system.js → p-a74a9c6b.system.js} +2 -2
  239. package/dist/verdocs-web-sdk/p-a74a9c6b.system.js.map +1 -0
  240. package/dist/verdocs-web-sdk/p-a8b91e3f.entry.js +2 -0
  241. package/dist/verdocs-web-sdk/{p-534f0a97.entry.js.map → p-a8b91e3f.entry.js.map} +1 -1
  242. package/dist/verdocs-web-sdk/p-a8cc5e31.entry.js +2 -0
  243. package/dist/verdocs-web-sdk/{p-1c035886.entry.js.map → p-a8cc5e31.entry.js.map} +1 -1
  244. package/dist/verdocs-web-sdk/p-aa124212.js +2 -0
  245. package/dist/verdocs-web-sdk/p-aa124212.js.map +1 -0
  246. package/dist/verdocs-web-sdk/p-b122f5c7.system.entry.js +2 -0
  247. package/dist/verdocs-web-sdk/{p-f4193d8f.system.entry.js.map → p-b122f5c7.system.entry.js.map} +1 -1
  248. package/dist/verdocs-web-sdk/p-b94cdaea.system.entry.js +2 -0
  249. package/dist/verdocs-web-sdk/{p-41758626.system.entry.js.map → p-b94cdaea.system.entry.js.map} +1 -1
  250. package/dist/verdocs-web-sdk/p-b988a40a.entry.js +2 -0
  251. package/dist/verdocs-web-sdk/{p-c7a4ccd5.entry.js.map → p-b988a40a.entry.js.map} +1 -1
  252. package/dist/verdocs-web-sdk/p-b9a1a471.system.entry.js +2 -0
  253. package/dist/verdocs-web-sdk/{p-d0d56c55.system.entry.js.map → p-b9a1a471.system.entry.js.map} +1 -1
  254. package/dist/verdocs-web-sdk/p-bd503b85.entry.js +2 -0
  255. package/dist/verdocs-web-sdk/{p-dfd06a67.entry.js.map → p-bd503b85.entry.js.map} +1 -1
  256. package/dist/verdocs-web-sdk/p-c0cc2b8e.system.entry.js +2 -0
  257. package/dist/verdocs-web-sdk/{p-eb74df9e.system.entry.js.map → p-c0cc2b8e.system.entry.js.map} +1 -1
  258. package/dist/verdocs-web-sdk/p-c0f5116c.system.entry.js +2 -0
  259. package/dist/verdocs-web-sdk/{p-529b7da3.system.entry.js.map → p-c0f5116c.system.entry.js.map} +1 -1
  260. package/dist/verdocs-web-sdk/p-c16b6ca4.system.js +1 -1
  261. package/dist/verdocs-web-sdk/p-c16b6ca4.system.js.map +1 -1
  262. package/dist/verdocs-web-sdk/{p-fcedb50f.system.js → p-c8e8732b.system.js} +2 -2
  263. package/dist/verdocs-web-sdk/{p-fcedb50f.system.js.map → p-c8e8732b.system.js.map} +0 -0
  264. package/dist/verdocs-web-sdk/p-d50523fd.system.js +2 -0
  265. package/dist/verdocs-web-sdk/p-d50523fd.system.js.map +1 -0
  266. package/dist/verdocs-web-sdk/p-d85e61ee.system.entry.js +2 -0
  267. package/dist/verdocs-web-sdk/p-d85e61ee.system.entry.js.map +1 -0
  268. package/dist/verdocs-web-sdk/p-d954919a.entry.js +2 -0
  269. package/dist/verdocs-web-sdk/{p-d93d1b8d.entry.js.map → p-d954919a.entry.js.map} +1 -1
  270. package/dist/verdocs-web-sdk/{p-01a88d6f.js → p-e53f969c.js} +2 -2
  271. package/dist/verdocs-web-sdk/p-e53f969c.js.map +1 -0
  272. package/dist/verdocs-web-sdk/p-f36c6695.system.entry.js +2 -0
  273. package/dist/verdocs-web-sdk/{p-30e6ba76.system.entry.js.map → p-f36c6695.system.entry.js.map} +1 -1
  274. package/dist/verdocs-web-sdk/p-f4a3bc08.system.entry.js +2 -0
  275. package/dist/verdocs-web-sdk/{p-95518265.system.entry.js.map → p-f4a3bc08.system.entry.js.map} +1 -1
  276. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  277. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js.map +1 -1
  278. package/package.json +2 -2
  279. package/dist/cjs/templateStore-0d394f32.js.map +0 -1
  280. package/dist/cjs/utils-0666fb5d.js.map +0 -1
  281. package/dist/esm/templateStore-d6995852.js.map +0 -1
  282. package/dist/esm/utils-5cddd371.js.map +0 -1
  283. package/dist/esm-es5/templateStore-d6995852.js +0 -2
  284. package/dist/esm-es5/templateStore-d6995852.js.map +0 -1
  285. package/dist/esm-es5/utils-5cddd371.js +0 -2
  286. package/dist/esm-es5/utils-5cddd371.js.map +0 -1
  287. package/dist/verdocs-web-sdk/p-0105b271.entry.js +0 -2
  288. package/dist/verdocs-web-sdk/p-01a88d6f.js.map +0 -1
  289. package/dist/verdocs-web-sdk/p-06652374.entry.js +0 -2
  290. package/dist/verdocs-web-sdk/p-1c035886.entry.js +0 -2
  291. package/dist/verdocs-web-sdk/p-1ee79c76.system.entry.js +0 -2
  292. package/dist/verdocs-web-sdk/p-26409bd3.entry.js +0 -2
  293. package/dist/verdocs-web-sdk/p-2c00bfe5.entry.js +0 -2
  294. package/dist/verdocs-web-sdk/p-2ce6d16e.system.entry.js +0 -2
  295. package/dist/verdocs-web-sdk/p-30e6ba76.system.entry.js +0 -2
  296. package/dist/verdocs-web-sdk/p-3397509c.system.entry.js +0 -2
  297. package/dist/verdocs-web-sdk/p-41758626.system.entry.js +0 -2
  298. package/dist/verdocs-web-sdk/p-4b5c0516.system.entry.js +0 -2
  299. package/dist/verdocs-web-sdk/p-4dfd765a.system.js.map +0 -1
  300. package/dist/verdocs-web-sdk/p-529b7da3.system.entry.js +0 -2
  301. package/dist/verdocs-web-sdk/p-534f0a97.entry.js +0 -2
  302. package/dist/verdocs-web-sdk/p-584d8151.js +0 -2
  303. package/dist/verdocs-web-sdk/p-58e850fe.system.entry.js +0 -2
  304. package/dist/verdocs-web-sdk/p-5fd49bc3.system.entry.js +0 -2
  305. package/dist/verdocs-web-sdk/p-625b1c62.entry.js +0 -2
  306. package/dist/verdocs-web-sdk/p-71f1e3c9.system.entry.js +0 -2
  307. package/dist/verdocs-web-sdk/p-71f1e3c9.system.entry.js.map +0 -1
  308. package/dist/verdocs-web-sdk/p-72984b2f.js +0 -2
  309. package/dist/verdocs-web-sdk/p-72984b2f.js.map +0 -1
  310. package/dist/verdocs-web-sdk/p-822f510f.entry.js +0 -2
  311. package/dist/verdocs-web-sdk/p-8917f698.entry.js +0 -2
  312. package/dist/verdocs-web-sdk/p-8945bf3c.system.entry.js +0 -2
  313. package/dist/verdocs-web-sdk/p-8ba71030.entry.js +0 -2
  314. package/dist/verdocs-web-sdk/p-8ba71030.entry.js.map +0 -1
  315. package/dist/verdocs-web-sdk/p-8d5a6ec9.entry.js +0 -2
  316. package/dist/verdocs-web-sdk/p-95518265.system.entry.js +0 -2
  317. package/dist/verdocs-web-sdk/p-9ff3e906.system.js +0 -2
  318. package/dist/verdocs-web-sdk/p-9ff3e906.system.js.map +0 -1
  319. package/dist/verdocs-web-sdk/p-a2702bfa.entry.js +0 -2
  320. package/dist/verdocs-web-sdk/p-a3fff56c.entry.js +0 -2
  321. package/dist/verdocs-web-sdk/p-c7a4ccd5.entry.js +0 -2
  322. package/dist/verdocs-web-sdk/p-d0d56c55.system.entry.js +0 -2
  323. package/dist/verdocs-web-sdk/p-d5f48c21.entry.js +0 -2
  324. package/dist/verdocs-web-sdk/p-d5f48c21.entry.js.map +0 -1
  325. package/dist/verdocs-web-sdk/p-d93d1b8d.entry.js +0 -2
  326. package/dist/verdocs-web-sdk/p-dcd4f1c9.system.entry.js +0 -2
  327. package/dist/verdocs-web-sdk/p-dcd4f1c9.system.entry.js.map +0 -1
  328. package/dist/verdocs-web-sdk/p-dfd06a67.entry.js +0 -2
  329. package/dist/verdocs-web-sdk/p-eb74df9e.system.entry.js +0 -2
  330. package/dist/verdocs-web-sdk/p-f4193d8f.system.entry.js +0 -2
  331. package/dist/verdocs-web-sdk/p-f4451ad4.system.entry.js +0 -2
@@ -1 +1 @@
1
- {"file":"verdocs-preview.entry.js","mappings":";;;;;;;;;;;AAAA,MAAM,iBAAiB,GAAG,2bAA2b;;MCoBxc,cAAc;;;;oBAIW,eAAe,CAAC,UAAU,EAAE;sBAK5B,IAAI;;;EASxC,MAAM,gBAAgB;;IACpB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAE5B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;MACpB,OAAO,CAAC,GAAG,CAAC,0CAA0C,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;MACzE,OAAO;KACR;IAED,IAAI;MACF,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;MAC7D,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KACpD;IAAC,OAAO,CAAC,EAAE;MACV,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,CAAC,CAAC,CAAC;MACnD,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,MAAA,CAAC,CAAC,QAAQ,0CAAE,MAAM,EAAE,MAAA,CAAC,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC,CAAC;KACpF;GACF;EAED,MAAM,iBAAiB,CAAC,KAAqB,EAAE,CAAM,EAAE,QAAiB;IACtE,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;GAChE;EAED,kBAAkB,CAAC,CAAC;IAClB,MAAM,QAAQ,GAAG,CAAC,CAAC,MAA2B,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;IAEjD,MAAM,MAAM,GAAGA,KAAa,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,UAAU,CAAC,CAAC;IACjG,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAACA,KAAa,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC;GAC5K;EAED,MAAM;;IAEJ,IAAIA,KAAa,CAAC,OAAO,IAAI,CAACA,KAAa,CAAC,QAAQ,EAAE;MACpD,QACE,EAAC,IAAI,QACH,yBAAkB,CACb,EACP;KACH;IAED,MAAM,KAAK,GAAG,CAAC,GAAGA,KAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAE9C,QACE,EAAC,IAAI,QACF,KAAK,CAAC,GAAG,CAAC,IAAI;MACb,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;MACpC,QACE,6BACE,YAAY,EAAE,IAAI,CAAC,WAAW,EAC9B,YAAY,EAAE,GAAG,EACjB,aAAa,EAAE,GAAG,EAClB,UAAU,EAAE,IAAI,CAAC,QAAQ,EACzB,cAAc,EAAE,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAC/C,MAAM,EAAE;UACN,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAC;UAC9B,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAC;SAChC,GACD,EACF;KACH,CAAC,CACG,EACP;GACH;;;;;;","names":["TemplateStore"],"sources":["./src/components/embeds/verdocs-preview/verdocs-preview.scss?tag=verdocs-preview","./src/components/embeds/verdocs-preview/verdocs-preview.tsx"],"sourcesContent":["@import '../../../theme.scss';\n\nverdocs-preview {\n font-family: $verdocs-primary-font;\n display: flex;\n padding: 15px;\n row-gap: 15px;\n min-height: 200px;\n position: relative;\n align-items: center;\n box-sizing: border-box;\n flex-direction: column;\n\n div,\n canvas {\n box-sizing: border-box;\n }\n}\n","import {VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {Component, Prop, h} from '@stencil/core';\nimport {Event, EventEmitter, Host} from '@stencil/core';\nimport {ITemplateField} from '@verdocs/js-sdk/Templates/Types';\nimport {getRoleIndex, renderDocumentField} from '../../../utils/utils';\nimport {IDocumentPageInfo} from '../../../utils/Types';\nimport TemplateStore from '../../../utils/templateStore';\nimport {loadTemplate} from '../../../utils/Templates';\nimport {SDKError} from '../../../utils/errors';\n\n/**\n * Display a template preview experience. This will display the template's attached\n * documents with signing fields overlaid on each page. Fields will be color-coded\n * by recipient, and will be read-only (cannot be filled, moved, or altered).\n */\n@Component({\n tag: 'verdocs-preview',\n styleUrl: 'verdocs-preview.scss',\n shadow: false,\n})\nexport class VerdocsPreview {\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The ID of the template to create the document from.\n */\n @Prop() templateId: string | null = null;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n // TODO: Move to state store so we can load this one time\n async componentDidLoad() {\n this.endpoint.loadSession();\n\n if (!this.templateId) {\n console.log(`[PREVIEW] Missing required template ID ${this.templateId}`);\n return;\n }\n\n try {\n console.log(`[PREVIEW] Loading template ${this.templateId}`);\n await loadTemplate(this.endpoint, this.templateId);\n } catch (e) {\n console.log('[PREVIEW] Error loading template', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n }\n }\n\n async handleFieldChange(field: ITemplateField, e: any, optionId?: string) {\n console.log('[PREVIEW] handleFieldChange', field, e, optionId);\n }\n\n handlePageRendered(e) {\n const pageInfo = e.detail as IDocumentPageInfo;\n console.log('[PREVIEW] Page rendered', pageInfo);\n\n const fields = TemplateStore.fields.filter(field => field.page_sequence === pageInfo.pageNumber);\n console.log('[PREVIEW] Fields on page', fields);\n fields.forEach(field => renderDocumentField(field, pageInfo, getRoleIndex(TemplateStore.roleNames, field.role_name), {disabled: true, editable: false, draggable: false}));\n }\n\n render() {\n // TODO: Render a better error\n if (TemplateStore.loading || !TemplateStore.template) {\n return (\n <Host>\n <verdocs-loader />\n </Host>\n );\n }\n\n const pages = [...TemplateStore.template.pages];\n pages.sort((a, b) => a.sequence - b.sequence);\n\n return (\n <Host>\n {pages.map(page => {\n console.log('rendering page', page);\n return (\n <verdocs-document-page\n pageImageUri={page.display_uri}\n virtualWidth={612}\n virtualHeight={792}\n pageNumber={page.sequence}\n onPageRendered={e => this.handlePageRendered(e)}\n layers={[\n {name: 'page', type: 'canvas'},\n {name: 'controls', type: 'div'},\n ]}\n />\n );\n })}\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"verdocs-preview.entry.js","mappings":";;;;;;;;;;;;;AAAA,MAAM,iBAAiB,GAAG,2bAA2b;;MCoBxc,cAAc;;;;oBAIW,eAAe,CAAC,UAAU,EAAE;sBAK5B,IAAI;;;EASxC,MAAM,gBAAgB;;IACpB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAE5B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;MACpB,OAAO,CAAC,GAAG,CAAC,0CAA0C,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;MACzE,OAAO;KACR;IAED,IAAI;MACF,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;MAC7D,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KACpD;IAAC,OAAO,CAAC,EAAE;MACV,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,CAAC,CAAC,CAAC;MACnD,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,MAAA,CAAC,CAAC,QAAQ,0CAAE,MAAM,EAAE,MAAA,CAAC,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC,CAAC;KACpF;GACF;EAED,MAAM,iBAAiB,CAAC,KAAqB,EAAE,CAAM,EAAE,QAAiB;IACtE,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;GAChE;EAED,kBAAkB,CAAC,CAAC;IAClB,MAAM,QAAQ,GAAG,CAAC,CAAC,MAA2B,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;IAEjD,MAAM,MAAM,GAAGA,KAAa,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,UAAU,CAAC,CAAC;IACjG,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAACA,KAAa,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC;GAC5K;EAED,MAAM;;IAEJ,IAAIA,KAAa,CAAC,OAAO,IAAI,CAACA,KAAa,CAAC,QAAQ,EAAE;MACpD,QACE,EAAC,IAAI,QACH,yBAAkB,CACb,EACP;KACH;IAED,MAAM,KAAK,GAAG,CAAC,GAAGA,KAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAE9C,QACE,EAAC,IAAI,QACF,KAAK,CAAC,GAAG,CAAC,IAAI;MACb,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;MACpC,QACE,6BACE,YAAY,EAAE,IAAI,CAAC,WAAW,EAC9B,YAAY,EAAE,GAAG,EACjB,aAAa,EAAE,GAAG,EAClB,UAAU,EAAE,IAAI,CAAC,QAAQ,EACzB,cAAc,EAAE,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAC/C,MAAM,EAAE;UACN,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAC;UAC9B,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAC;SAChC,GACD,EACF;KACH,CAAC,CACG,EACP;GACH;;;;;;","names":["TemplateStore"],"sources":["./src/components/embeds/verdocs-preview/verdocs-preview.scss?tag=verdocs-preview","./src/components/embeds/verdocs-preview/verdocs-preview.tsx"],"sourcesContent":["@import '../../../theme.scss';\n\nverdocs-preview {\n font-family: $verdocs-primary-font;\n display: flex;\n padding: 15px;\n row-gap: 15px;\n min-height: 200px;\n position: relative;\n align-items: center;\n box-sizing: border-box;\n flex-direction: column;\n\n div,\n canvas {\n box-sizing: border-box;\n }\n}\n","import {VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {Component, Prop, h} from '@stencil/core';\nimport {Event, EventEmitter, Host} from '@stencil/core';\nimport {ITemplateField} from '@verdocs/js-sdk/Templates/Types';\nimport {getRoleIndex, renderDocumentField} from '../../../utils/utils';\nimport {IDocumentPageInfo} from '../../../utils/Types';\nimport TemplateStore from '../../../utils/templateStore';\nimport {loadTemplate} from '../../../utils/Templates';\nimport {SDKError} from '../../../utils/errors';\n\n/**\n * Display a template preview experience. This will display the template's attached\n * documents with signing fields overlaid on each page. Fields will be color-coded\n * by recipient, and will be read-only (cannot be filled, moved, or altered).\n */\n@Component({\n tag: 'verdocs-preview',\n styleUrl: 'verdocs-preview.scss',\n shadow: false,\n})\nexport class VerdocsPreview {\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The ID of the template to create the document from.\n */\n @Prop() templateId: string | null = null;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n // TODO: Move to state store so we can load this one time\n async componentDidLoad() {\n this.endpoint.loadSession();\n\n if (!this.templateId) {\n console.log(`[PREVIEW] Missing required template ID ${this.templateId}`);\n return;\n }\n\n try {\n console.log(`[PREVIEW] Loading template ${this.templateId}`);\n await loadTemplate(this.endpoint, this.templateId);\n } catch (e) {\n console.log('[PREVIEW] Error loading template', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n }\n }\n\n async handleFieldChange(field: ITemplateField, e: any, optionId?: string) {\n console.log('[PREVIEW] handleFieldChange', field, e, optionId);\n }\n\n handlePageRendered(e) {\n const pageInfo = e.detail as IDocumentPageInfo;\n console.log('[PREVIEW] Page rendered', pageInfo);\n\n const fields = TemplateStore.fields.filter(field => field.page_sequence === pageInfo.pageNumber);\n console.log('[PREVIEW] Fields on page', fields);\n fields.forEach(field => renderDocumentField(field, pageInfo, getRoleIndex(TemplateStore.roleNames, field.role_name), {disabled: true, editable: false, draggable: false}));\n }\n\n render() {\n // TODO: Render a better error\n if (TemplateStore.loading || !TemplateStore.template) {\n return (\n <Host>\n <verdocs-loader />\n </Host>\n );\n }\n\n const pages = [...TemplateStore.template.pages];\n pages.sort((a, b) => a.sequence - b.sequence);\n\n return (\n <Host>\n {pages.map(page => {\n console.log('rendering page', page);\n return (\n <verdocs-document-page\n pageImageUri={page.display_uri}\n virtualWidth={612}\n virtualHeight={792}\n pageNumber={page.sequence}\n onPageRendered={e => this.handlePageRendered(e)}\n layers={[\n {name: 'page', type: 'canvas'},\n {name: 'controls', type: 'div'},\n ]}\n />\n );\n })}\n </Host>\n );\n }\n}\n"],"version":3}
@@ -4,8 +4,9 @@ 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-5cddd371.js';
7
+ import { a as getRoleIndex } from './utils-6e8bd73f.js';
8
8
  import './Token-54690789.js';
9
+ import './Files-70a192df.js';
9
10
 
10
11
  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)}";
11
12
 
@@ -1 +1 @@
1
- {"file":"verdocs-send.entry.js","mappings":"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","names":[],"sources":["./src/components/embeds/verdocs-send/verdocs-send.scss?tag=verdocs-send","./src/components/embeds/verdocs-send/verdocs-send.tsx"],"sourcesContent":["@import '../../../theme.scss';\n\nverdocs-send {\n display: flex;\n padding: 10px;\n position: relative;\n background: #ffffff;\n flex-direction: column;\n font-family: $verdocs-primary-font;\n\n .recipients {\n position: relative;\n }\n\n // To avoid the need to compute things like heights, this layer is simply displayed \"on top\" of all the level rows. Its\n // background obscures the horizontal lines.\n .left-line {\n top: 32px;\n left: 20px;\n z-index: 1;\n width: 12px;\n bottom: 30px;\n position: absolute;\n background: #ffffff;\n border-left: 3px dotted #9b9b9b;\n }\n\n .level {\n display: flex;\n column-gap: 10px;\n margin-left: 50px;\n position: relative;\n flex-direction: row;\n padding: 8px 0 4px 0;\n border-bottom: 1px solid #97979744;\n\n .level-icon {\n top: 14px;\n z-index: 2;\n left: -40px;\n width: 24px;\n height: 24px;\n position: absolute;\n background: #ffffff;\n\n svg {\n fill: #00000089;\n }\n }\n\n .recipient {\n height: 30px;\n display: flex;\n flex: 0 0 30px;\n color: #000000;\n cursor: pointer;\n font-size: 14px;\n align-items: center;\n border-radius: 30px;\n flex-direction: row;\n background: #dddddd;\n white-space: nowrap;\n padding: 2px 10px 2px 14px;\n\n .icon {\n width: 22px;\n height: 22px;\n flex: 0 0 22px;\n margin: 0 0 0 10px;\n\n svg {\n width: 22px;\n height: 22px;\n fill: #333333;\n outline: none;\n }\n }\n }\n\n .complete {\n flex: 1;\n height: 30px;\n display: flex;\n color: #000000;\n font-size: 14px;\n align-items: center;\n flex-direction: row;\n padding: 3px 10px 3px 2px;\n }\n }\n\n .buttons {\n display: flex;\n margin-top: 10px;\n column-gap: 15px;\n flex-direction: row;\n }\n\n verdocs-contact-picker {\n left: 0;\n top: 41px;\n z-index: 10;\n position: absolute;\n border: 1px solid #dddddd;\n box-shadow: 0 0 6px 3px rgb(0 0 0 / 10%);\n }\n}\n","import {VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {getRGBA} from '@verdocs/js-sdk/Utils/Colors';\nimport {getTemplate} from '@verdocs/js-sdk/Templates/Templates';\nimport {IRole, ITemplate} from '@verdocs/js-sdk/Templates/Types';\nimport {isValidEmail, isValidPhone} from '@verdocs/js-sdk/Templates/Validators';\nimport {Component, Prop, State, h, Event, EventEmitter, Host} from '@stencil/core';\nimport {getRoleIndex} from '../../../utils/utils';\nimport {SDKError} from '../../../utils/errors';\n\n// TODO: Evaluating this pattern for simple icons vs. importing external SVG files. Try to standardize on an approach soon.\nconst editIcon =\n '<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" tabindex=\"-1\"><path d=\"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"></path></svg>';\n\nconst startIcon =\n '<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" tabindex=\"-1\"><path d=\"M2 12C2 6.48 6.48 2 12 2s10 4.48 10 10-4.48 10-10 10S2 17.52 2 12zm10 6c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6 2.69 6 6 6z\"></path></svg>';\n\nconst stepIcon =\n '<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" tabindex=\"-1\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z\"></path></svg>';\n\nconst doneIcon =\n '<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" tabindex=\"-1\"><path d=\"m18 7-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41 6 19l1.41-1.41L1.83 12 .41 13.41z\"></path></svg>';\n\ntype TAnnotatedRole = IRole & {id: string};\n\n/**\n * Display a form to collect recipient information for a new Document. If used anonymously, the specified `templateId` must be public.\n * If the user is authenticated\n */\n@Component({\n tag: 'verdocs-send',\n styleUrl: 'verdocs-send.scss',\n shadow: false,\n})\nexport class VerdocsSend {\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The ID of the template to create the document from.\n */\n @Prop() templateId: string | null = null;\n\n /**\n * The user completed the form and clicked send.\n */\n @Event({composed: true}) send: EventEmitter<{recipientsAssigned: IRole[]}>;\n\n /**\n * The user canceled the process.\n */\n @Event({composed: true}) cancel: EventEmitter;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n @State() template: ITemplate | null = null;\n\n @State() pdfUrl = null;\n\n @State() containerId = `verdocs-send-${Math.random().toString(36).substring(2, 11)}`;\n\n @State() rolesAtLevel: Record<number, TAnnotatedRole[]> = {};\n\n @State() showPickerForId = '';\n\n @State() sessionContacts = [];\n\n @State() recipientsAssigned: Record<string, TAnnotatedRole> = {};\n\n levels: number[] = [];\n\n async componentWillLoad() {\n this.sessionContacts = [];\n try {\n const result = await this.endpoint.loadSession();\n\n if (result.session?.profile) {\n this.sessionContacts.push({\n id: result.session.profile.id,\n name: `${result.session.profile.first_name} ${result.session.profile.last_name}`,\n email: result.session.profile.email,\n phone: result.session.profile.phone,\n });\n }\n } catch (e) {\n console.log('Error loading session', e);\n }\n }\n\n async componentDidLoad() {\n console.log('[SEND] Showing template', this.templateId);\n\n try {\n console.log(`[SEND] Loading template ${this.templateId}`);\n const template = await getTemplate(this.endpoint, this.templateId);\n\n console.log('[SEND] Got template', template);\n this.template = template;\n\n if (template?.roles) {\n const rolesAtLevel: Record<number, TAnnotatedRole[]> = {};\n\n template.roles.forEach(role => {\n const level = role.sequence - 1;\n rolesAtLevel[level] ||= [];\n const id = `r-${level}-${rolesAtLevel[level].length}`;\n rolesAtLevel[level].push({...role, id});\n });\n\n this.rolesAtLevel = rolesAtLevel;\n this.levels = Object.keys(rolesAtLevel).map(levelStr => +levelStr);\n this.levels.sort((a, b) => a - b);\n }\n } catch (e) {\n console.log('[SEND] Error getting template', e);\n }\n }\n\n getLevelIcon(level: number) {\n if (level < 0) {\n return <div class=\"level-icon\" innerHTML={startIcon} />;\n } else if (level >= this.levels.length) {\n return <div class=\"level-icon\" innerHTML={doneIcon} />;\n } else {\n return <div class=\"level-icon\" innerHTML={stepIcon} />;\n }\n }\n\n handleSelectContact(e: any, role: TAnnotatedRole) {\n e.preventDefault();\n e.detail; // IContactSelectEvent\n this.recipientsAssigned[role.id] = {...role, ...e.detail};\n this.showPickerForId = '';\n }\n\n handleClickRole(e: any, role: TAnnotatedRole) {\n e.stopPropagation();\n this.showPickerForId = role.id;\n }\n\n handleSend(e) {\n e.stopPropagation();\n this.send?.emit({recipientsAssigned: Object.values(this.recipientsAssigned)});\n }\n\n handleCancel(e) {\n e.stopPropagation();\n this.cancel?.emit();\n }\n\n render() {\n const roleNames = this.template?.roles?.map(role => role.name) || [];\n const allRecipientsAssigned =\n Object.values(this.recipientsAssigned).filter(recipient => {\n console.log('valid email', isValidEmail(recipient.email), recipient.email);\n console.log('valid phone', isValidPhone(recipient.phone), recipient.phone);\n return isValidEmail(recipient.email) || isValidPhone(recipient.phone);\n }).length >= this.template?.roles.length;\n console.log('assigned', allRecipientsAssigned);\n\n return (\n <Host class={{}}>\n <div class=\"recipients\">\n <div class=\"left-line\" />\n <div class={`level level-start`}>\n {this.getLevelIcon(-1)}\n <div class=\"complete\">Send Document</div>\n </div>\n\n {this.levels.map(level => (\n <div class={`level level-${level}`}>\n {this.getLevelIcon(level)}\n\n {this.rolesAtLevel[level].map(role => (\n <div class=\"recipient\" style={{backgroundColor: getRGBA(getRoleIndex(roleNames, role.name))}} onClick={e => this.handleClickRole(e, role)}>\n {this.recipientsAssigned[role.id]?.full_name ?? role.name}\n <div class=\"icon\" innerHTML={editIcon} />\n {this.showPickerForId === role.id && (\n <verdocs-contact-picker\n onCancel={() => (this.showPickerForId = '')}\n onNext={e => this.handleSelectContact(e, role)}\n contactSuggestions={this.sessionContacts}\n templateRole={this.recipientsAssigned[role.id] ?? role}\n onSearchContacts={e => console.log('Search', e.detail)}\n />\n )}\n </div>\n ))}\n </div>\n ))}\n\n <div class={`level level-done`}>\n {this.getLevelIcon(this.levels.length)}\n <div class=\"complete\">Document Complete</div>\n </div>\n </div>\n\n <div class=\"buttons\">\n <verdocs-button label=\"Cancel\" size=\"small\" variant=\"outline\" onClick={e => this.handleCancel(e)} />\n <verdocs-button label=\"Send\" size=\"small\" disabled={!allRecipientsAssigned} onClick={e => this.handleSend(e)} />\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"verdocs-send.entry.js","mappings":"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","names":[],"sources":["./src/components/embeds/verdocs-send/verdocs-send.scss?tag=verdocs-send","./src/components/embeds/verdocs-send/verdocs-send.tsx"],"sourcesContent":["@import '../../../theme.scss';\n\nverdocs-send {\n display: flex;\n padding: 10px;\n position: relative;\n background: #ffffff;\n flex-direction: column;\n font-family: $verdocs-primary-font;\n\n .recipients {\n position: relative;\n }\n\n // To avoid the need to compute things like heights, this layer is simply displayed \"on top\" of all the level rows. Its\n // background obscures the horizontal lines.\n .left-line {\n top: 32px;\n left: 20px;\n z-index: 1;\n width: 12px;\n bottom: 30px;\n position: absolute;\n background: #ffffff;\n border-left: 3px dotted #9b9b9b;\n }\n\n .level {\n display: flex;\n column-gap: 10px;\n margin-left: 50px;\n position: relative;\n flex-direction: row;\n padding: 8px 0 4px 0;\n border-bottom: 1px solid #97979744;\n\n .level-icon {\n top: 14px;\n z-index: 2;\n left: -40px;\n width: 24px;\n height: 24px;\n position: absolute;\n background: #ffffff;\n\n svg {\n fill: #00000089;\n }\n }\n\n .recipient {\n height: 30px;\n display: flex;\n flex: 0 0 30px;\n color: #000000;\n cursor: pointer;\n font-size: 14px;\n align-items: center;\n border-radius: 30px;\n flex-direction: row;\n background: #dddddd;\n white-space: nowrap;\n padding: 2px 10px 2px 14px;\n\n .icon {\n width: 22px;\n height: 22px;\n flex: 0 0 22px;\n margin: 0 0 0 10px;\n\n svg {\n width: 22px;\n height: 22px;\n fill: #333333;\n outline: none;\n }\n }\n }\n\n .complete {\n flex: 1;\n height: 30px;\n display: flex;\n color: #000000;\n font-size: 14px;\n align-items: center;\n flex-direction: row;\n padding: 3px 10px 3px 2px;\n }\n }\n\n .buttons {\n display: flex;\n margin-top: 10px;\n column-gap: 15px;\n flex-direction: row;\n }\n\n verdocs-contact-picker {\n left: 0;\n top: 41px;\n z-index: 10;\n position: absolute;\n border: 1px solid #dddddd;\n box-shadow: 0 0 6px 3px rgb(0 0 0 / 10%);\n }\n}\n","import {VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {getRGBA} from '@verdocs/js-sdk/Utils/Colors';\nimport {getTemplate} from '@verdocs/js-sdk/Templates/Templates';\nimport {IRole, ITemplate} from '@verdocs/js-sdk/Templates/Types';\nimport {isValidEmail, isValidPhone} from '@verdocs/js-sdk/Templates/Validators';\nimport {Component, Prop, State, h, Event, EventEmitter, Host} from '@stencil/core';\nimport {getRoleIndex} from '../../../utils/utils';\nimport {SDKError} from '../../../utils/errors';\n\n// TODO: Evaluating this pattern for simple icons vs. importing external SVG files. Try to standardize on an approach soon.\nconst editIcon =\n '<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" tabindex=\"-1\"><path d=\"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"></path></svg>';\n\nconst startIcon =\n '<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" tabindex=\"-1\"><path d=\"M2 12C2 6.48 6.48 2 12 2s10 4.48 10 10-4.48 10-10 10S2 17.52 2 12zm10 6c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6 2.69 6 6 6z\"></path></svg>';\n\nconst stepIcon =\n '<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" tabindex=\"-1\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z\"></path></svg>';\n\nconst doneIcon =\n '<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" tabindex=\"-1\"><path d=\"m18 7-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41 6 19l1.41-1.41L1.83 12 .41 13.41z\"></path></svg>';\n\ntype TAnnotatedRole = IRole & {id: string};\n\n/**\n * Display a form to collect recipient information for a new Document. If used anonymously, the specified `templateId` must be public.\n * If the user is authenticated\n */\n@Component({\n tag: 'verdocs-send',\n styleUrl: 'verdocs-send.scss',\n shadow: false,\n})\nexport class VerdocsSend {\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The ID of the template to create the document from.\n */\n @Prop() templateId: string | null = null;\n\n /**\n * The user completed the form and clicked send.\n */\n @Event({composed: true}) send: EventEmitter<{recipientsAssigned: IRole[]}>;\n\n /**\n * The user canceled the process.\n */\n @Event({composed: true}) cancel: EventEmitter;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n @State() template: ITemplate | null = null;\n\n @State() pdfUrl = null;\n\n @State() containerId = `verdocs-send-${Math.random().toString(36).substring(2, 11)}`;\n\n @State() rolesAtLevel: Record<number, TAnnotatedRole[]> = {};\n\n @State() showPickerForId = '';\n\n @State() sessionContacts = [];\n\n @State() recipientsAssigned: Record<string, TAnnotatedRole> = {};\n\n levels: number[] = [];\n\n async componentWillLoad() {\n this.sessionContacts = [];\n try {\n const result = await this.endpoint.loadSession();\n\n if (result.session?.profile) {\n this.sessionContacts.push({\n id: result.session.profile.id,\n name: `${result.session.profile.first_name} ${result.session.profile.last_name}`,\n email: result.session.profile.email,\n phone: result.session.profile.phone,\n });\n }\n } catch (e) {\n console.log('Error loading session', e);\n }\n }\n\n async componentDidLoad() {\n console.log('[SEND] Showing template', this.templateId);\n\n try {\n console.log(`[SEND] Loading template ${this.templateId}`);\n const template = await getTemplate(this.endpoint, this.templateId);\n\n console.log('[SEND] Got template', template);\n this.template = template;\n\n if (template?.roles) {\n const rolesAtLevel: Record<number, TAnnotatedRole[]> = {};\n\n template.roles.forEach(role => {\n const level = role.sequence - 1;\n rolesAtLevel[level] ||= [];\n const id = `r-${level}-${rolesAtLevel[level].length}`;\n rolesAtLevel[level].push({...role, id});\n });\n\n this.rolesAtLevel = rolesAtLevel;\n this.levels = Object.keys(rolesAtLevel).map(levelStr => +levelStr);\n this.levels.sort((a, b) => a - b);\n }\n } catch (e) {\n console.log('[SEND] Error getting template', e);\n }\n }\n\n getLevelIcon(level: number) {\n if (level < 0) {\n return <div class=\"level-icon\" innerHTML={startIcon} />;\n } else if (level >= this.levels.length) {\n return <div class=\"level-icon\" innerHTML={doneIcon} />;\n } else {\n return <div class=\"level-icon\" innerHTML={stepIcon} />;\n }\n }\n\n handleSelectContact(e: any, role: TAnnotatedRole) {\n e.preventDefault();\n e.detail; // IContactSelectEvent\n this.recipientsAssigned[role.id] = {...role, ...e.detail};\n this.showPickerForId = '';\n }\n\n handleClickRole(e: any, role: TAnnotatedRole) {\n e.stopPropagation();\n this.showPickerForId = role.id;\n }\n\n handleSend(e) {\n e.stopPropagation();\n this.send?.emit({recipientsAssigned: Object.values(this.recipientsAssigned)});\n }\n\n handleCancel(e) {\n e.stopPropagation();\n this.cancel?.emit();\n }\n\n render() {\n const roleNames = this.template?.roles?.map(role => role.name) || [];\n const allRecipientsAssigned =\n Object.values(this.recipientsAssigned).filter(recipient => {\n console.log('valid email', isValidEmail(recipient.email), recipient.email);\n console.log('valid phone', isValidPhone(recipient.phone), recipient.phone);\n return isValidEmail(recipient.email) || isValidPhone(recipient.phone);\n }).length >= this.template?.roles.length;\n console.log('assigned', allRecipientsAssigned);\n\n return (\n <Host class={{}}>\n <div class=\"recipients\">\n <div class=\"left-line\" />\n <div class={`level level-start`}>\n {this.getLevelIcon(-1)}\n <div class=\"complete\">Send Document</div>\n </div>\n\n {this.levels.map(level => (\n <div class={`level level-${level}`}>\n {this.getLevelIcon(level)}\n\n {this.rolesAtLevel[level].map(role => (\n <div class=\"recipient\" style={{backgroundColor: getRGBA(getRoleIndex(roleNames, role.name))}} onClick={e => this.handleClickRole(e, role)}>\n {this.recipientsAssigned[role.id]?.full_name ?? role.name}\n <div class=\"icon\" innerHTML={editIcon} />\n {this.showPickerForId === role.id && (\n <verdocs-contact-picker\n onCancel={() => (this.showPickerForId = '')}\n onNext={e => this.handleSelectContact(e, role)}\n contactSuggestions={this.sessionContacts}\n templateRole={this.recipientsAssigned[role.id] ?? role}\n onSearchContacts={e => console.log('Search', e.detail)}\n />\n )}\n </div>\n ))}\n </div>\n ))}\n\n <div class={`level level-done`}>\n {this.getLevelIcon(this.levels.length)}\n <div class=\"complete\">Document Complete</div>\n </div>\n </div>\n\n <div class=\"buttons\">\n <verdocs-button label=\"Cancel\" size=\"small\" variant=\"outline\" onClick={e => this.handleCancel(e)} />\n <verdocs-button label=\"Send\" size=\"small\" disabled={!allRecipientsAssigned} onClick={e => this.handleSend(e)} />\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,11 +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 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';
2
+ import { b as getSigningSession, s as savePDF, u as updateDocumentFieldValue, c as updateEnvelopeField, d as updateEnvelopeFieldSignature, e as updateEnvelopeFieldInitials, t as throttle, a as getRoleIndex, r as renderDocumentField, f as getFieldId } from './utils-6e8bd73f.js';
3
3
  import './Types-ab9f6af8.js';
4
4
  import { a as isValidPhone, i as isValidEmail } from './Validators-f110bae2.js';
5
+ import { f as fullNameToInitials } from './Primitives-054bc6e5.js';
5
6
  import { V as VerdocsEndpoint } from './VerdocsEndpoint-28ba21cc.js';
6
- import { g as getEnvelopeById, s as state } from './Envelopes-b87b1909.js';
7
+ import { g as getEnvelopeById, s as state } from './Envelopes-c2545a20.js';
7
8
  import { S as SDKError } from './errors-9b5498c8.js';
8
9
  import './Token-54690789.js';
10
+ import './Files-70a192df.js';
9
11
  import './index-fd7b8a34.js';
10
12
  import './Templates-0638b1e4.js';
11
13
 
@@ -114,7 +116,6 @@ const VerdocsSign = class {
114
116
  this.envelopeUpdated = createEvent(this, "envelopeUpdated", 7);
115
117
  this.endpoint = null;
116
118
  this.recipientIndex = -1;
117
- this.fields = [];
118
119
  this.envelopeId = null;
119
120
  this.roleId = null;
120
121
  this.inviteCode = null;
@@ -129,6 +130,7 @@ const VerdocsSign = class {
129
130
  this.showDone = false;
130
131
  this.finishLater = false;
131
132
  this.showFinishLater = false;
133
+ this.agreed = false;
132
134
  }
133
135
  componentWillLoad() {
134
136
  this.endpoint = new VerdocsEndpoint({ sessionType: 'signing' });
@@ -159,15 +161,15 @@ const VerdocsSign = class {
159
161
  console.log('[SIGN] We are recipient', this.recipient);
160
162
  this.signerToken = signerToken;
161
163
  this.endpoint.setToken(signerToken);
162
- if (this.recipient.agreed) {
164
+ if (this.agreed) {
163
165
  this.nextButtonLabel = 'Next';
164
166
  }
165
167
  await getEnvelopeById(this.endpoint, this.envelopeId);
166
168
  this.recipientIndex = state.envelope.recipients.findIndex(recipient => recipient.role_name == this.roleId);
167
169
  if (this.recipientIndex > -1) {
168
170
  this.recipient = state.envelope.recipients[this.recipientIndex];
169
- this.fields = this.recipient.fields;
170
- console.log('[SIGN] Found our recipient in the envelope', this.recipientIndex, this.recipient, this.fields);
171
+ this.agreed = this.recipient.agreed;
172
+ console.log('[SIGN] Found our recipient in the envelope', this.recipientIndex, this.recipient);
171
173
  }
172
174
  else {
173
175
  console.log('[SIGN] Could not find our recipient record', this.roleId, state.envelope.recipients);
@@ -185,10 +187,10 @@ const VerdocsSign = class {
185
187
  }
186
188
  handleClickAgree() {
187
189
  envelopeRecipientAgree(this.endpoint, this.envelopeId, this.roleId, true)
188
- .then(r => {
190
+ .then(() => {
189
191
  var _a;
190
192
  this.nextButtonLabel = 'Next';
191
- this.recipient = r;
193
+ this.agreed = true; // The server returns a recipient object but it's not "deep" so we track this locally
192
194
  (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'agreed' });
193
195
  })
194
196
  .catch(e => {
@@ -203,11 +205,9 @@ const VerdocsSign = class {
203
205
  this.finishLater = true;
204
206
  this.showFinishLater = true;
205
207
  // this.router.navigate([`view/sign/${this.envelopeId}/role/${this.roleName}/saved`]);
206
- // if (!window?.['STORYBOOK_ENV']) {
207
- // window.alert('User intends to sign later.');
208
- // }
209
208
  break;
210
209
  case 'claim':
210
+ window.alert('This feature will be available in an upcoming release.');
211
211
  break;
212
212
  case 'decline':
213
213
  {
@@ -220,14 +220,15 @@ const VerdocsSign = class {
220
220
  window.print();
221
221
  break;
222
222
  case 'download':
223
- savePDF(this.endpoint, state.envelope, state.envelope.envelope_document_id).catch(() => { });
223
+ savePDF(this.endpoint, state.envelope, state.envelope.envelope_document_id).catch(e => {
224
+ console.log('Error downloading PDF', e);
225
+ });
224
226
  break;
225
227
  }
226
228
  }
227
229
  updateRecipientFieldValue(fieldName, updateResult) {
228
230
  this.recipient.fields.forEach(oldField => {
229
231
  if (oldField.name === fieldName) {
230
- console.log('New settings', fieldName, updateResult.settings);
231
232
  oldField.settings = updateResult.settings;
232
233
  // TODO: When we break out other fields like value, update them here too
233
234
  updateDocumentFieldValue(oldField);
@@ -308,7 +309,6 @@ const VerdocsSign = class {
308
309
  }
309
310
  case 'signature':
310
311
  case 'initial':
311
- console.log('Evaluating initial field', field);
312
312
  return !required || base64 !== '';
313
313
  // Timestamp fields get automatically filled when the envelope is submitted.
314
314
  case 'timestamp':
@@ -348,7 +348,7 @@ const VerdocsSign = class {
348
348
  return;
349
349
  }
350
350
  // Find and focus the next incomplete required field
351
- const requiredFields = this.fields.filter(field => field.required);
351
+ const requiredFields = this.recipient.fields.filter(field => field.required);
352
352
  const focusedIndex = requiredFields.findIndex(field => field.name === this.focusedField);
353
353
  let nextFocusedIndex = focusedIndex + 1;
354
354
  if (nextFocusedIndex >= requiredFields.length) {
@@ -390,7 +390,7 @@ const VerdocsSign = class {
390
390
  }
391
391
  attachFieldAttributes(pageInfo, field, roleIndex, el) {
392
392
  var _a;
393
- el.addEventListener('input', e => this.handleFieldChange(field, e).finally(() => this.checkRecipientFields()));
393
+ el.addEventListener('input', throttle(e => this.handleFieldChange(field, e).finally(() => this.checkRecipientFields()), 250));
394
394
  el.addEventListener('blur', () => this.checkRecipientFields());
395
395
  el.addEventListener('fieldChange', e => this.handleFieldChange(field, e).finally(() => this.checkRecipientFields()));
396
396
  el.setAttribute('roleindex', roleIndex);
@@ -475,7 +475,6 @@ const VerdocsSign = class {
475
475
  this.checkRecipientFields();
476
476
  }
477
477
  render() {
478
- var _a, _b, _c, _d;
479
478
  if (state.loading || !state.envelope) {
480
479
  return (h(Host, null, h("verdocs-loader", null)));
481
480
  }
@@ -486,7 +485,7 @@ const VerdocsSign = class {
486
485
  { id: 'print', label: 'Print Without Signing', disabled: true },
487
486
  { id: 'download', label: 'Download' },
488
487
  ];
489
- 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 ? (
488
+ 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 ? (
490
489
  // <div>test</div>
491
490
  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 => {
492
491
  const pages = [...((envelopeDocument === null || envelopeDocument === void 0 ? void 0 : envelopeDocument.pages) || [])];
@@ -1 +1 @@
1
- {"file":"verdocs-sign.entry.js","mappings":"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","names":["this","Envelopes.getSigningSession","EnvelopeStore","Envelopes.updateEnvelopeField"],"sources":["./node_modules/@verdocs/js-sdk/Envelopes/Recipients.js","./node_modules/@verdocs/js-sdk/Envelopes/Signatures.js","./node_modules/@verdocs/js-sdk/Envelopes/Initials.js","./src/components/embeds/verdocs-sign/verdocs-sign.scss?tag=verdocs-sign","./src/components/embeds/verdocs-sign/verdocs-sign.tsx"],"sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/**\n * Update a recipient's status block\n */\nexport var updateRecipient = function (endpoint, envelopeId, roleName, params) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, endpoint.api //\n .put(\"/envelopes/\".concat(envelopeId, \"/recipients/\").concat(roleName), params)\n .then(function (r) { return r.data; })];\n });\n}); };\n/**\n * Submit an envelope (signing is finished). Note that all fields must be valid/completed for this to succeed.\n */\nexport var envelopeRecipientSubmit = function (endpoint, envelopeId, roleName) {\n return updateRecipient(endpoint, envelopeId, roleName, { action: 'submit' });\n};\n/**\n * Decline to complete an envelope (signing will not terminated).\n */\nexport var envelopeRecipientDecline = function (endpoint, envelopeId, roleName) {\n return updateRecipient(endpoint, envelopeId, roleName, { action: 'decline' });\n};\n/**\n * Claim / change ownership of an envelope. This is a special-case operation only available in certain workflows.\n */\nexport var envelopeRecipientChangeOwner = function (endpoint, envelopeId, roleName, email, fullName) { return updateRecipient(endpoint, envelopeId, roleName, { action: 'owner_update', email: email, full_name: fullName }); };\n/**\n * Agree to electronic signing.\n */\nexport var envelopeRecipientAgree = function (endpoint, envelopeId, roleName, agreed) {\n return updateRecipient(endpoint, envelopeId, roleName, { action: 'update', agreed: agreed });\n};\n/**\n * Change a recipient's name.\n */\nexport var envelopeRecipientUpdateName = function (endpoint, envelopeId, roleName, fullName) {\n return updateRecipient(endpoint, envelopeId, roleName, { action: 'update', new_full_name: fullName });\n};\n/**\n * Change a recipient's name.\n */\nexport var envelopeRecipientPrepare = function (endpoint, envelopeId, roleName, recipients) {\n return updateRecipient(endpoint, envelopeId, roleName, { action: 'prepare', recipients: recipients });\n};\nexport var getSignerToken = function (endpoint, envelopeId, roleName) {\n return endpoint.api //\n .get(\"/envelopes/\".concat(envelopeId, \"/recipients/\").concat(encodeURIComponent(roleName), \"/signer-token\"))\n .then(function (r) { return r.data; });\n};\nexport var getInPersonLink = function (endpoint, envelopeId, roleName) {\n return endpoint.api //\n .get(\"/envelopes/\".concat(envelopeId, \"/recipients/\").concat(encodeURIComponent(roleName), \"?in_person_link=true\"))\n .then(function (r) { return r.data; });\n};\n","/**\n * Create a signature block. In a typical signing workflow, the user is asked at the beginning of the process to \"adopt\"\n * a signature block to be used for all signature fields in the document. Thus, this is typically called one time to\n * create and store a signature block. Thereafter, the ID of the signature block may be re-used for each signature field\n * to be \"stamped\" by the user.\n */\nexport var createSignature = function (endpoint, name, signature) {\n var data = new FormData();\n data.append('signature', signature, name);\n return endpoint.api //\n .post(\"/signatures\", data)\n .then(function (r) { return r.data; });\n};\n/**\n * Get the availbable signatures for a user.\n */\nexport var getSignatures = function (endpoint) {\n return endpoint.api //\n .get('/signatures')\n .then(function (r) { return r.data; });\n};\n/**\n * Get a user's signature by ID.\n */\nexport var getSignature = function (endpoint, signatureId) {\n return endpoint.api //\n .get(\"/signatures/\".concat(signatureId))\n .then(function (r) { return r.data; });\n};\n/**\n * Delete a user's signature.\n */\nexport var deleteSignature = function (endpoint, signatureId) {\n return endpoint.api //\n .delete(\"/signatures/\".concat(signatureId))\n .then(function (r) { return r.data; });\n};\n","/**\n * Create an initials block. In a typical signing workflow, the user is asked at the beginning of the process to \"adopt\"\n * an initials block to be used for all initials fields in the document. Thus, this is typically called one time to\n * create and store an initials block. Thereafter, the ID of the initials block may be re-used for each initials field\n * to be \"stamped\" by the user.\n */\nexport var createInitials = function (endpoint, name, initials) {\n var data = new FormData();\n data.append('initial', initials, name);\n return endpoint.api //\n .post(\"/initials\", data)\n .then(function (r) { return r.data; });\n};\n","@import '../../../theme.scss';\n\nverdocs-sign {\n display: flex;\n overflow: hidden;\n position: relative;\n min-height: 600px;\n flex-direction: column;\n box-sizing: border-box;\n font-family: $verdocs-primary-font;\n\n div {\n display: block;\n box-sizing: border-box;\n }\n\n input {\n vertical-align: top;\n }\n\n .header {\n color: #fff;\n display: flex;\n z-index: 1000;\n flex: 0 0 56px;\n padding: 0 15px;\n font-size: 12px;\n align-items: center;\n flex-direction: row;\n transition: all 0.25s;\n background-color: $medium-bg;\n box-shadow: 0 4px 4px 0 rgb(0 0 0 / 24%), 0 0 4px 0 rgb(0 0 0 / 12%);\n\n .logo {\n width: 80px;\n margin: -6px 0 0 10px;\n }\n\n .title {\n padding-left: 16px;\n font-size: 18px;\n font-weight: 500;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n .intro {\n width: 100%;\n display: flex;\n flex: 0 0 60px;\n color: #111111;\n padding: 0 15px;\n font-size: 18px;\n font-weight: 500;\n line-height: 28px;\n flex-direction: row;\n background: #ffffff;\n align-items: center;\n }\n\n .cover {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 999;\n position: absolute;\n background: rgba(0, 0, 0, 0.5);\n }\n\n .document {\n flex: 1;\n height: 100%;\n display: flex;\n padding: 15px;\n row-gap: 15px;\n min-height: 200px;\n position: relative;\n overflow-y: scroll;\n align-items: center;\n box-sizing: border-box;\n flex-direction: column;\n justify-content: center;\n\n .inner {\n width: 100%;\n max-width: 1028px;\n }\n }\n\n .agree {\n flex: 1;\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0 15px;\n\n .intro {\n display: none;\n }\n\n .header {\n flex: 0 0 56px;\n }\n }\n}\n\n@media print {\n verdocs-sign .header {\n display: none;\n }\n}\n","import {VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {Envelopes} from '@verdocs/js-sdk/Envelopes';\nimport {createInitials} from '@verdocs/js-sdk/Envelopes/Initials';\nimport {createSignature} from '@verdocs/js-sdk/Envelopes/Signatures';\nimport {IDocumentField, IEnvelope, IRecipient} from '@verdocs/js-sdk/Envelopes/Types';\nimport {envelopeRecipientAgree, envelopeRecipientDecline, envelopeRecipientSubmit} from '@verdocs/js-sdk/Envelopes/Recipients';\nimport {isValidEmail, isValidPhone} from '@verdocs/js-sdk/Templates/Validators';\nimport {Event, EventEmitter, Host, Fragment, Component, Prop, State, h} from '@stencil/core';\nimport {updateEnvelopeFieldInitials, updateEnvelopeFieldSignature} from '@verdocs/js-sdk/Envelopes/Envelopes';\nimport {fullNameToInitials, getFieldId, getRoleIndex, renderDocumentField, savePDF, updateDocumentFieldValue} from '../../../utils/utils';\nimport {getEnvelopeById} from '../../../utils/Envelopes';\nimport EnvelopeStore from '../../../utils/envelopeStore';\nimport {IDocumentPageInfo} from '../../../utils/Types';\nimport {SDKError} from '../../../utils/errors';\n\nconst PrintIcon = `<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\"><path d=\"M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z\"></path></svg>`;\n\nconst DownloadIcon = `<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\"><path d=\"M5 20h14v-2H5v2zM19 9h-4V3H9v6H5l7 7 7-7z\"></path></svg>`;\n\n/**\n * Display an envelope signing experience. This will display the envelope's attached\n * documents with signing fields overlaid on each page.\n *\n * The component will attempt to initiate a signing session and load the specified\n * envelope. If successful, the recipient's fields will be enabled and the user will\n * be able to sign the envelope's attached documents. If not, an `sdkError` will be\n * thrown and the component will be blank/empty. To provide the best user experience,\n * applications should capture and handle this error to provide the user with\n * instructions/options for next steps based on the application's design and workflow.\n *\n * Unlike other components, this will always create its own endpoint to manage the\n * session session. This endpoint will be included in event callbacks for the\n * convenience of host applications that may wish to make server calls using the\n * signer's credentials once signing is complete (e.g. to obtain copies of\n * the signed attachments.)\n */\n@Component({\n tag: 'verdocs-sign',\n styleUrl: 'verdocs-sign.scss',\n shadow: false,\n})\nexport class VerdocsSign {\n endpoint: VerdocsEndpoint = null;\n\n /**\n * The ID of the envelope to sign.\n */\n @Prop() envelopeId: string | null = null;\n\n /**\n * The ID of the role that will be signing e.g. 'Recipient 1'\n */\n @Prop() roleId: string | null = null;\n\n /**\n * The invite code for the signer.\n */\n @Prop() inviteCode: string | null = null;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n /**\n * Event fired when the envelope is updated in any way.\n */\n @Event({composed: true}) envelopeLoaded: EventEmitter<{endpoint: VerdocsEndpoint; envelope: IEnvelope}>;\n\n /**\n * Event fired when the envelope is updated in any way.\n */\n @Event({composed: true}) envelopeUpdated: EventEmitter<{endpoint: VerdocsEndpoint; envelope: IEnvelope; event: string}>;\n\n @State() recipient: IRecipient | null = null;\n @State() signerToken = null;\n // @State() envelope: IEnvelope | null = null;\n // @State() fields: IDocumentField[] = [];\n @State() hasSignature = false;\n @State() nextButtonLabel = 'Start';\n @State() nextSubmits = false;\n @State() errorMessage = '';\n @State() focusedField = '';\n @State() isDone = false;\n @State() showDone = false;\n\n @State() finishLater = false;\n @State() showFinishLater = false;\n\n recipientIndex: number = -1;\n fields: IDocumentField[] = [];\n\n componentWillLoad() {\n this.endpoint = new VerdocsEndpoint({sessionType: 'signing'});\n }\n\n async componentDidLoad() {\n if (!this.envelopeId) {\n this.sdkError?.emit(new SDKError('[SIGN] Missing required envelopId', 500, ''));\n return;\n }\n\n if (!this.roleId) {\n this.sdkError?.emit(new SDKError('[SIGN] Missing required roleId', 500, ''));\n return;\n }\n\n if (!this.inviteCode) {\n this.sdkError?.emit(new SDKError('[SIGN] Missing required inviteCode', 500, ''));\n return;\n }\n\n try {\n console.log(`[SIGN] Processing invite code for ${this.envelopeId} / ${this.roleId}`);\n const {session, recipient, signerToken} = await Envelopes.getSigningSession(this.endpoint, {\n envelopeId: this.envelopeId,\n roleId: this.roleId,\n inviteCode: this.inviteCode,\n });\n\n console.log(`[SIGN] Loaded signing session ${session.email} / ${session.profile_id}`);\n\n this.recipient = recipient;\n console.log('[SIGN] We are recipient', this.recipient);\n this.signerToken = signerToken;\n this.endpoint.setToken(signerToken);\n\n if (this.recipient.agreed) {\n this.nextButtonLabel = 'Next';\n }\n\n await getEnvelopeById(this.endpoint, this.envelopeId);\n\n this.recipientIndex = EnvelopeStore.envelope.recipients.findIndex(recipient => recipient.role_name == this.roleId);\n if (this.recipientIndex > -1) {\n this.recipient = EnvelopeStore.envelope.recipients[this.recipientIndex];\n this.fields = this.recipient.fields;\n console.log('[SIGN] Found our recipient in the envelope', this.recipientIndex, this.recipient, this.fields);\n } else {\n console.log('[SIGN] Could not find our recipient record', this.roleId, EnvelopeStore.envelope.recipients);\n }\n\n this.isDone = ['submitted', 'canceled', 'declined'].includes(this.recipient.status);\n\n // TODO: Fix service to allow this?\n // const sigs = await getSignatures();\n // console.log('sigs', sigs);\n\n this.envelopeLoaded?.emit({endpoint: this.endpoint, envelope: EnvelopeStore.envelope});\n } catch (e) {\n console.log('Error with signing session', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n }\n }\n\n handleClickAgree() {\n envelopeRecipientAgree(this.endpoint, this.envelopeId, this.roleId, true)\n .then(r => {\n this.nextButtonLabel = 'Next';\n this.recipient = r;\n this.envelopeUpdated?.emit({endpoint: this.endpoint, envelope: EnvelopeStore.envelope, event: 'agreed'});\n })\n .catch(e => {\n console.log('Update failure', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n });\n }\n\n async handleOptionSelected(e) {\n switch (e.detail.id) {\n case 'later':\n this.finishLater = true;\n this.showFinishLater = true;\n // this.router.navigate([`view/sign/${this.envelopeId}/role/${this.roleName}/saved`]);\n // if (!window?.['STORYBOOK_ENV']) {\n // window.alert('User intends to sign later.');\n // }\n break;\n case 'claim':\n break;\n case 'decline':\n {\n const declineResult = await envelopeRecipientDecline(this.endpoint, this.envelopeId, this.roleId);\n console.log('Decline result', declineResult);\n this.isDone = true;\n }\n break;\n case 'print':\n window.print();\n break;\n case 'download':\n savePDF(this.endpoint, EnvelopeStore.envelope, EnvelopeStore.envelope.envelope_document_id).catch(() => {});\n break;\n }\n }\n\n updateRecipientFieldValue(fieldName: string, updateResult: any) {\n this.recipient.fields.forEach(oldField => {\n if (oldField.name === fieldName) {\n console.log('New settings', fieldName, updateResult.settings);\n oldField.settings = updateResult.settings;\n // TODO: When we break out other fields like value, update them here too\n updateDocumentFieldValue(oldField);\n }\n });\n }\n\n saveFieldChange(fieldName: string, fields: Record<string, any>) {\n Envelopes.updateEnvelopeField(this.endpoint, this.envelopeId, fieldName, fields) //\n .then(updateResult => {\n this.updateRecipientFieldValue(fieldName, updateResult);\n })\n .catch(e => {\n if (e.response?.status === 401 && e.response?.data?.error === 'jwt expired') {\n // TODO: Do we want to improve the instructions here?\n console.log('[SIGN] Signing session expired');\n this.errorMessage = 'Signing session expired.';\n } else {\n console.log('[SIGN] Server error', e);\n }\n\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n });\n }\n\n async handleFieldChange(field: IDocumentField, e: any) {\n const {value, checked} = e.target;\n\n switch (field.type) {\n case 'textbox':\n return this.saveFieldChange(field.name, {prepared: false, value});\n\n case 'checkbox_group': {\n const options = field.settings.options.map(option => ({id: option.id, checked: e.target.checked}));\n return this.saveFieldChange(field.name, {prepared: false, value: {options}});\n }\n\n case 'radio_button_group': {\n const options = field.settings.options.map(option => ({id: option.id, selected: e.target.value === option.id}));\n return this.saveFieldChange(field.name, {prepared: false, value: {options}});\n }\n\n case 'dropdown':\n return this.saveFieldChange(field.name, {prepared: false, value: e.detail});\n\n case 'initial':\n const initialsBlob = await (await fetch(e.detail)).blob();\n return createInitials(this.endpoint, 'initial', initialsBlob) //\n .then(async newInitials => {\n const updateResult = await updateEnvelopeFieldInitials(this.endpoint, this.envelopeId, field.name, newInitials.id);\n this.updateRecipientFieldValue(field.name, updateResult);\n });\n\n case 'signature':\n const signatureBlob = await (await fetch(e.detail)).blob();\n return createSignature(this.endpoint, 'signature', signatureBlob) //\n .then(async newSignature => {\n const updateResult = await updateEnvelopeFieldSignature(this.endpoint, this.envelopeId, field.name, newSignature.id);\n this.updateRecipientFieldValue(field.name, updateResult);\n });\n\n case 'date':\n const iso = e.target.getAttribute('iso');\n return this.saveFieldChange(field.name, {prepared: false, value: iso});\n\n case 'timestamp':\n console.log('Updating timestamp', {value, ts: e.target.getAttribute('timestamp')});\n break;\n\n default:\n console.log('Unhandled field update', {value, checked}, field);\n break;\n }\n }\n\n isFieldValid(field: IDocumentField) {\n const {required = false} = field;\n const {result = '', value = '', base64 = ''} = field.settings || {};\n switch (field.type) {\n case 'textbox':\n switch (field.settings?.validator || '') {\n case 'email':\n return isValidEmail(result);\n case 'phone':\n return isValidPhone(result);\n default:\n return !required || result !== '';\n }\n\n case 'signature':\n case 'initial':\n console.log('Evaluating initial field', field);\n return !required || base64 !== '';\n\n // Timestamp fields get automatically filled when the envelope is submitted.\n case 'timestamp':\n return true;\n\n case 'textarea':\n case 'date':\n case 'attachment':\n return !required || result !== '';\n\n case 'dropdown':\n return !required || value !== '';\n\n case 'checkbox_group':\n const checkedCount = (field.settings?.options?.filter(option => option.checked) || []).length;\n return !required || (checkedCount >= (field.settings?.minimum_checked || 0) && checkedCount <= (field.settings?.maximum_checked || 999));\n\n case 'radio_button_group':\n return !required || (field.settings?.options?.filter(option => option.selected) || []).length > 0;\n // TODO\n // case 'checkbox':\n // return <verdocs-field-checkbox style={style} value={result || ''} id={id} />;\n // case 'payment':\n // return <verdocs-field-payment style={style} field={field} id={id} />;\n default:\n return false;\n }\n }\n\n async handleNext() {\n if (this.nextSubmits) {\n try {\n const result = await envelopeRecipientSubmit(this.endpoint, this.envelopeId, this.roleId);\n console.log('[SIGN] Submitted successfully', result);\n this.showDone = true;\n this.isDone = true;\n } catch (e) {\n console.log('Error submitting', e);\n }\n\n return;\n }\n\n // Find and focus the next incomplete required field\n const requiredFields = this.fields.filter(field => field.required);\n const focusedIndex = requiredFields.findIndex(field => field.name === this.focusedField);\n\n let nextFocusedIndex = focusedIndex + 1;\n if (nextFocusedIndex >= requiredFields.length) {\n nextFocusedIndex = 0;\n }\n\n let nextRequiredField = requiredFields[nextFocusedIndex];\n\n // Skip signature and initial fields that are already filled in. We have to count our \"skips\" just in case, to avoid infinite loops.\n let skips = 0;\n if (skips < requiredFields.length && ['signature', 'initial'].includes(nextRequiredField.type) && nextRequiredField.settings?.result === 'signed') {\n skips++;\n nextFocusedIndex++;\n if (nextFocusedIndex >= requiredFields.length) {\n nextFocusedIndex = 0;\n }\n nextRequiredField = requiredFields[nextFocusedIndex];\n }\n\n if (skips >= requiredFields.length) {\n nextRequiredField = null;\n }\n\n if (nextRequiredField) {\n const id = getFieldId(nextRequiredField);\n const el = document.getElementById(id) as any;\n el?.focusField();\n this.focusedField = nextRequiredField.name;\n }\n }\n\n // See if everything that \"needs to be\" filled in is, and all \"fillable fields\" are valid\n checkRecipientFields() {\n const invalidFields = this.recipient.fields.filter(field => !this.isFieldValid(field));\n if (invalidFields.length < 1) {\n this.nextButtonLabel = 'Finish';\n this.nextSubmits = true;\n } else {\n console.log('[SIGN] Remaining invalid fields', invalidFields);\n this.nextButtonLabel = 'Next';\n this.nextSubmits = false;\n }\n }\n\n attachFieldAttributes(pageInfo, field, roleIndex, el) {\n el.addEventListener('input', e => this.handleFieldChange(field, e).finally(() => this.checkRecipientFields()));\n el.addEventListener('blur', () => this.checkRecipientFields());\n el.addEventListener('fieldChange', e => this.handleFieldChange(field, e).finally(() => this.checkRecipientFields()));\n\n el.setAttribute('roleindex', roleIndex);\n el.setAttribute('xScale', pageInfo.xScale);\n el.setAttribute('yScale', pageInfo.yScale);\n el.setAttribute('initials', this.recipient ? fullNameToInitials(this.recipient.full_name) : '');\n el.setAttribute('name', this.recipient?.full_name || '');\n }\n\n handlePageRendered(e) {\n const pageInfo = e.detail as IDocumentPageInfo;\n const roleIndex = getRoleIndex(EnvelopeStore.roleNames, this.recipient.role_name);\n const recipientFields = this.recipient.fields.filter(field => field.page === pageInfo.pageNumber);\n console.log('[SIGN] Page rendered, updating fields', {pageInfo, roleIndex, recipientFields});\n\n recipientFields.forEach(field => {\n const el = renderDocumentField(field, pageInfo, roleIndex, {disabled: false, editable: false, draggable: false, done: this.isDone});\n if (!el) {\n return;\n }\n\n if (Array.isArray(el)) {\n el.map(e => this.attachFieldAttributes(pageInfo, field, roleIndex, e));\n } else {\n this.attachFieldAttributes(pageInfo, field, roleIndex, el);\n }\n\n // interact(el).draggable({\n // listeners: {\n // start(event) {\n // console.log('[FIELDS] Drag started', event.type, event.target);\n // },\n // move(event) {\n // const oldX = +(event.target.getAttribute('posX') || 0);\n // const oldY = +(event.target.getAttribute('posY') || 0);\n // const xScale = +(event.target.getAttribute('xScale') || 1);\n // const yScale = +(event.target.getAttribute('yScale') || 1);\n // const newX = event.dx / xScale + oldX;\n // const newY = event.dy / yScale + oldY;\n // event.target.setAttribute('posX', newX);\n // event.target.setAttribute('posy', newY);\n // updateCssTransform(event.target, 'translate', `${newX}px, ${newY}px`);\n // },\n // end(event) {\n // console.log('[FIELDS] Drag ended', event);\n // // event.target.setAttribute('posX', 0);\n // // event.target.setAttribute('posy', 0);\n // // updateCssTransform(event.target, 'translate', `${0}px, ${0}px`);\n // },\n // },\n // });\n });\n\n // Render fields for \"the other\" recipients\n EnvelopeStore.envelope.recipients\n .filter(recipient => recipient.role_name !== this.recipient.role_name)\n .forEach(otherRecipient => {\n const otherRoleIndex = getRoleIndex(EnvelopeStore.roleNames, otherRecipient.role_name);\n const recipientFields = otherRecipient.fields.filter(field => field.page === pageInfo.pageNumber);\n\n // We don't render other recipients' fields if they've already acted, because those values are now stamped into the document page.\n // TODO: Do we want to render alternate treatments for recipients who have declined (red boxes?) and/or if the envelope is cancelled?\n // TODO: When doing server-side rendering we probably want to \"stamp\" values into the rendered PDF only once the recipient is done\n // acting. Do this once vSign is in Production.\n // TODO: Changed tacks here. During signing we show the template PDFs and everybody's fields, filled in or no. When done, we switch\n // to showing the envelope PDFs with stamped-in values. Confirm this is a good approach.\n // if (!['submitted', 'signed'].includes(otherRecipient.status)) {\n recipientFields.forEach(field => {\n const el = renderDocumentField(field, pageInfo, otherRoleIndex, {\n disabled: true,\n editable: false,\n draggable: false,\n done: this.isDone,\n });\n if (!el) {\n return;\n }\n\n // TODO: Research why this occurs. There are cases when we're getting \"el.setAttribute is not a function\"\n if (el.setAttribute) {\n el.setAttribute('roleindex', otherRoleIndex);\n el.setAttribute('xScale', pageInfo.xScale);\n el.setAttribute('yScale', pageInfo.yScale);\n }\n });\n // }\n });\n\n this.checkRecipientFields();\n }\n\n render() {\n if (EnvelopeStore.loading || !EnvelopeStore.envelope) {\n return (\n <Host>\n <verdocs-loader />\n </Host>\n );\n }\n\n const menuOptions = [\n {id: 'later', label: 'Finish Later'}, //\n // {id: 'claim', label: 'Claim the Document', disabled: true},\n {id: 'decline', label: 'Decline to Sign'},\n {id: 'print', label: 'Print Without Signing', disabled: true},\n {id: 'download', label: 'Download'},\n ];\n\n return (\n <Host class={{agreed: this.recipient?.agreed}}>\n {!this.isDone && !this.finishLater && <div class=\"intro\">Please review and act on these documents.</div>}\n\n {!this.isDone && (\n <div class=\"header\">\n {!this.isDone && !this.finishLater && <verdocs-dropdown options={menuOptions} onOptionSelected={e => this.handleOptionSelected(e)} />}\n\n {!this.recipient?.agreed ? (\n <div class=\"agree\">\n <verdocs-checkbox name=\"agree\" label=\"I agree to use electronic records and signatures.\" onInput={() => this.handleClickAgree()} />\n </div>\n ) : (\n <Fragment>\n <img src=\"https://verdocs.com/assets/white-logo.svg\" alt=\"Verdocs Logo\" class=\"logo\" />\n <div class=\"title\">{EnvelopeStore.envelope.name}</div>\n <div style={{flex: '1'}} />\n <div innerHTML={PrintIcon} style={{width: '24px', height: '24px', fill: '#fff', cursor: 'pointer'}} onClick={() => window.print()} />\n <div\n innerHTML={DownloadIcon}\n style={{width: '24px', height: '24px', fill: '#fff', cursor: 'pointer', margin: '0 16px', maginRight: '30px'}}\n onClick={() => savePDF(this.endpoint, EnvelopeStore.envelope, EnvelopeStore.envelope.envelope_document_id).catch(() => {})}\n />\n </Fragment>\n )}\n\n {!this.isDone && !this.finishLater && <verdocs-button size=\"small\" label={this.nextButtonLabel} disabled={!this.recipient?.agreed} onClick={() => this.handleNext()} />}\n </div>\n )}\n\n {!this.isDone && !this.recipient?.agreed ? <div class=\"cover\" /> : <div style={{display: 'none'}} />}\n\n {this.isDone ? (\n // <div>test</div>\n <verdocs-view endpoint={this.endpoint} envelopeId={this.envelopeId} onSdkError={e => this.sdkError?.emit(e.detail)} />\n ) : (\n <div class=\"document\">\n {(EnvelopeStore.envelope.documents || []).map(envelopeDocument => {\n const pages = [...(envelopeDocument?.pages || [])];\n pages.sort((a, b) => a.sequence - b.sequence);\n\n return (\n <Fragment>\n {pages.map(page => {\n // In signing mode we show the original template page with all the recipient fields so we can show source formatting and\n // where everything went. This is also a visual indicator when optional fields weren't filled in by previous actors, or\n // future signers still need to act. Once we're \"done\" we flip to showing the envelope's documents which have the final\n // field vales (so far) stamped into them.\n const templatePage = EnvelopeStore.template?.pages.find(p => p.sequence === page.sequence);\n // TODO: Confirm that a pure page-number match is good enough to find the matching template page. We need to make sure\n // we either don't reset our page numbers for additional attachments, or add match-on identifiers to work around that.\n // console.log('tp', templatePage, page);\n return (\n <verdocs-document-page\n pageImageUri={templatePage?.display_uri || page.display_uri}\n virtualWidth={612}\n virtualHeight={792}\n pageNumber={page.sequence}\n onPageRendered={e => this.handlePageRendered(e)}\n layers={[\n {name: 'page', type: 'canvas'},\n {name: 'controls', type: 'div'},\n ]}\n />\n );\n })}\n </Fragment>\n );\n })}\n </div>\n )}\n\n {this.showFinishLater && (\n <verdocs-ok-dialog\n heading=\"You've saved your document to finish later.\"\n message=\"To complete the document, use the link in the original email notification inviting you to review and finish the document.\"\n onNext={() => (this.showFinishLater = false)}\n />\n )}\n\n {this.errorMessage && <verdocs-ok-dialog heading=\"Network Error\" message={this.errorMessage} onNext={() => (this.errorMessage = '')} />}\n {this.showDone && (\n <verdocs-ok-dialog\n heading=\"You're Done!\"\n 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.\"\n onNext={() => (this.showDone = false)}\n />\n )}\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"verdocs-sign.entry.js","mappings":"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","names":["this","Envelopes.getSigningSession","EnvelopeStore","Envelopes.updateEnvelopeField"],"sources":["./node_modules/@verdocs/js-sdk/Envelopes/Recipients.js","./node_modules/@verdocs/js-sdk/Envelopes/Signatures.js","./node_modules/@verdocs/js-sdk/Envelopes/Initials.js","./src/components/embeds/verdocs-sign/verdocs-sign.scss?tag=verdocs-sign","./src/components/embeds/verdocs-sign/verdocs-sign.tsx"],"sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/**\n * Update a recipient's status block\n */\nexport var updateRecipient = function (endpoint, envelopeId, roleName, params) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, endpoint.api //\n .put(\"/envelopes/\".concat(envelopeId, \"/recipients/\").concat(roleName), params)\n .then(function (r) { return r.data; })];\n });\n}); };\n/**\n * Submit an envelope (signing is finished). Note that all fields must be valid/completed for this to succeed.\n */\nexport var envelopeRecipientSubmit = function (endpoint, envelopeId, roleName) {\n return updateRecipient(endpoint, envelopeId, roleName, { action: 'submit' });\n};\n/**\n * Decline to complete an envelope (signing will not terminated).\n */\nexport var envelopeRecipientDecline = function (endpoint, envelopeId, roleName) {\n return updateRecipient(endpoint, envelopeId, roleName, { action: 'decline' });\n};\n/**\n * Claim / change ownership of an envelope. This is a special-case operation only available in certain workflows.\n */\nexport var envelopeRecipientChangeOwner = function (endpoint, envelopeId, roleName, email, fullName) { return updateRecipient(endpoint, envelopeId, roleName, { action: 'owner_update', email: email, full_name: fullName }); };\n/**\n * Agree to electronic signing.\n */\nexport var envelopeRecipientAgree = function (endpoint, envelopeId, roleName, agreed) {\n return updateRecipient(endpoint, envelopeId, roleName, { action: 'update', agreed: agreed });\n};\n/**\n * Change a recipient's name.\n */\nexport var envelopeRecipientUpdateName = function (endpoint, envelopeId, roleName, fullName) {\n return updateRecipient(endpoint, envelopeId, roleName, { action: 'update', new_full_name: fullName });\n};\n/**\n * Change a recipient's name.\n */\nexport var envelopeRecipientPrepare = function (endpoint, envelopeId, roleName, recipients) {\n return updateRecipient(endpoint, envelopeId, roleName, { action: 'prepare', recipients: recipients });\n};\nexport var getSignerToken = function (endpoint, envelopeId, roleName) {\n return endpoint.api //\n .get(\"/envelopes/\".concat(envelopeId, \"/recipients/\").concat(encodeURIComponent(roleName), \"/signer-token\"))\n .then(function (r) { return r.data; });\n};\nexport var getInPersonLink = function (endpoint, envelopeId, roleName) {\n return endpoint.api //\n .get(\"/envelopes/\".concat(envelopeId, \"/recipients/\").concat(encodeURIComponent(roleName), \"?in_person_link=true\"))\n .then(function (r) { return r.data; });\n};\n","/**\n * Create a signature block. In a typical signing workflow, the user is asked at the beginning of the process to \"adopt\"\n * a signature block to be used for all signature fields in the document. Thus, this is typically called one time to\n * create and store a signature block. Thereafter, the ID of the signature block may be re-used for each signature field\n * to be \"stamped\" by the user.\n */\nexport var createSignature = function (endpoint, name, signature) {\n var data = new FormData();\n data.append('signature', signature, name);\n return endpoint.api //\n .post(\"/signatures\", data)\n .then(function (r) { return r.data; });\n};\n/**\n * Get the availbable signatures for a user.\n */\nexport var getSignatures = function (endpoint) {\n return endpoint.api //\n .get('/signatures')\n .then(function (r) { return r.data; });\n};\n/**\n * Get a user's signature by ID.\n */\nexport var getSignature = function (endpoint, signatureId) {\n return endpoint.api //\n .get(\"/signatures/\".concat(signatureId))\n .then(function (r) { return r.data; });\n};\n/**\n * Delete a user's signature.\n */\nexport var deleteSignature = function (endpoint, signatureId) {\n return endpoint.api //\n .delete(\"/signatures/\".concat(signatureId))\n .then(function (r) { return r.data; });\n};\n","/**\n * Create an initials block. In a typical signing workflow, the user is asked at the beginning of the process to \"adopt\"\n * an initials block to be used for all initials fields in the document. Thus, this is typically called one time to\n * create and store an initials block. Thereafter, the ID of the initials block may be re-used for each initials field\n * to be \"stamped\" by the user.\n */\nexport var createInitials = function (endpoint, name, initials) {\n var data = new FormData();\n data.append('initial', initials, name);\n return endpoint.api //\n .post(\"/initials\", data)\n .then(function (r) { return r.data; });\n};\n","@import '../../../theme.scss';\n\nverdocs-sign {\n display: flex;\n overflow: hidden;\n position: relative;\n min-height: 600px;\n flex-direction: column;\n box-sizing: border-box;\n font-family: $verdocs-primary-font;\n\n div {\n display: block;\n box-sizing: border-box;\n }\n\n input {\n vertical-align: top;\n }\n\n .header {\n color: #fff;\n display: flex;\n z-index: 1000;\n flex: 0 0 56px;\n padding: 0 15px;\n font-size: 12px;\n align-items: center;\n flex-direction: row;\n transition: all 0.25s;\n background-color: $medium-bg;\n box-shadow: 0 4px 4px 0 rgb(0 0 0 / 24%), 0 0 4px 0 rgb(0 0 0 / 12%);\n\n .logo {\n width: 80px;\n margin: -6px 0 0 10px;\n }\n\n .title {\n padding-left: 16px;\n font-size: 18px;\n font-weight: 500;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n .intro {\n width: 100%;\n display: flex;\n flex: 0 0 60px;\n color: #111111;\n padding: 0 15px;\n font-size: 18px;\n font-weight: 500;\n line-height: 28px;\n flex-direction: row;\n background: #ffffff;\n align-items: center;\n }\n\n .cover {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 999;\n position: absolute;\n background: rgba(0, 0, 0, 0.5);\n }\n\n .document {\n flex: 1;\n height: 100%;\n display: flex;\n padding: 15px;\n row-gap: 15px;\n min-height: 200px;\n position: relative;\n overflow-y: scroll;\n align-items: center;\n box-sizing: border-box;\n flex-direction: column;\n justify-content: center;\n\n .inner {\n width: 100%;\n max-width: 1028px;\n }\n }\n\n .agree {\n flex: 1;\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0 15px;\n\n .intro {\n display: none;\n }\n\n .header {\n flex: 0 0 56px;\n }\n }\n}\n\n@media print {\n verdocs-sign .header {\n display: none;\n }\n}\n","import {VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {Envelopes} from '@verdocs/js-sdk/Envelopes';\nimport {createInitials} from '@verdocs/js-sdk/Envelopes/Initials';\nimport {createSignature} from '@verdocs/js-sdk/Envelopes/Signatures';\nimport {fullNameToInitials} from '@verdocs/js-sdk/Utils/Primitives';\nimport {isValidEmail, isValidPhone} from '@verdocs/js-sdk/Templates/Validators';\nimport {IDocumentField, IEnvelope, IRecipient} from '@verdocs/js-sdk/Envelopes/Types';\nimport {Event, EventEmitter, Host, Fragment, Component, Prop, State, h} from '@stencil/core';\nimport {updateEnvelopeFieldInitials, updateEnvelopeFieldSignature} from '@verdocs/js-sdk/Envelopes/Envelopes';\nimport {envelopeRecipientAgree, envelopeRecipientDecline, envelopeRecipientSubmit} from '@verdocs/js-sdk/Envelopes/Recipients';\nimport {getFieldId, getRoleIndex, renderDocumentField, savePDF, throttle, updateDocumentFieldValue} from '../../../utils/utils';\nimport {getEnvelopeById} from '../../../utils/Envelopes';\nimport EnvelopeStore from '../../../utils/envelopeStore';\nimport {IDocumentPageInfo} from '../../../utils/Types';\nimport {SDKError} from '../../../utils/errors';\n\nconst PrintIcon = `<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\"><path d=\"M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z\"></path></svg>`;\n\nconst DownloadIcon = `<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\"><path d=\"M5 20h14v-2H5v2zM19 9h-4V3H9v6H5l7 7 7-7z\"></path></svg>`;\n\n/**\n * Display an envelope signing experience. This will display the envelope's attached\n * documents with signing fields overlaid on each page.\n *\n * The component will attempt to initiate a signing session and load the specified\n * envelope. If successful, the recipient's fields will be enabled and the user will\n * be able to sign the envelope's attached documents. If not, an `sdkError` will be\n * thrown and the component will be blank/empty. To provide the best user experience,\n * applications should capture and handle this error to provide the user with\n * instructions/options for next steps based on the application's design and workflow.\n *\n * Unlike other components, this will always create its own endpoint to manage the\n * session session. This endpoint will be included in event callbacks for the\n * convenience of host applications that may wish to make server calls using the\n * signer's credentials once signing is complete (e.g. to obtain copies of\n * the signed attachments.)\n */\n@Component({\n tag: 'verdocs-sign',\n styleUrl: 'verdocs-sign.scss',\n shadow: false,\n})\nexport class VerdocsSign {\n endpoint: VerdocsEndpoint = null;\n\n /**\n * The ID of the envelope to sign.\n */\n @Prop() envelopeId: string | null = null;\n\n /**\n * The ID of the role that will be signing e.g. 'Recipient 1'\n */\n @Prop() roleId: string | null = null;\n\n /**\n * The invite code for the signer.\n */\n @Prop() inviteCode: string | null = null;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n /**\n * Event fired when the envelope is updated in any way.\n */\n @Event({composed: true}) envelopeLoaded: EventEmitter<{endpoint: VerdocsEndpoint; envelope: IEnvelope}>;\n\n /**\n * Event fired when the envelope is updated in any way.\n */\n @Event({composed: true}) envelopeUpdated: EventEmitter<{endpoint: VerdocsEndpoint; envelope: IEnvelope; event: string}>;\n\n @State() recipient: IRecipient | null = null;\n @State() signerToken = null;\n @State() hasSignature = false;\n @State() nextButtonLabel = 'Start';\n @State() nextSubmits = false;\n @State() errorMessage = '';\n @State() focusedField = '';\n @State() isDone = false;\n @State() showDone = false;\n\n @State() finishLater = false;\n @State() showFinishLater = false;\n @State() agreed = false;\n\n recipientIndex: number = -1;\n\n componentWillLoad() {\n this.endpoint = new VerdocsEndpoint({sessionType: 'signing'});\n }\n\n async componentDidLoad() {\n if (!this.envelopeId) {\n this.sdkError?.emit(new SDKError('[SIGN] Missing required envelopId', 500, ''));\n return;\n }\n\n if (!this.roleId) {\n this.sdkError?.emit(new SDKError('[SIGN] Missing required roleId', 500, ''));\n return;\n }\n\n if (!this.inviteCode) {\n this.sdkError?.emit(new SDKError('[SIGN] Missing required inviteCode', 500, ''));\n return;\n }\n\n try {\n console.log(`[SIGN] Processing invite code for ${this.envelopeId} / ${this.roleId}`);\n const {session, recipient, signerToken} = await Envelopes.getSigningSession(this.endpoint, {\n envelopeId: this.envelopeId,\n roleId: this.roleId,\n inviteCode: this.inviteCode,\n });\n\n console.log(`[SIGN] Loaded signing session ${session.email} / ${session.profile_id}`);\n\n this.recipient = recipient;\n console.log('[SIGN] We are recipient', this.recipient);\n this.signerToken = signerToken;\n this.endpoint.setToken(signerToken);\n\n if (this.agreed) {\n this.nextButtonLabel = 'Next';\n }\n\n await getEnvelopeById(this.endpoint, this.envelopeId);\n\n this.recipientIndex = EnvelopeStore.envelope.recipients.findIndex(recipient => recipient.role_name == this.roleId);\n if (this.recipientIndex > -1) {\n this.recipient = EnvelopeStore.envelope.recipients[this.recipientIndex];\n this.agreed = this.recipient.agreed;\n console.log('[SIGN] Found our recipient in the envelope', this.recipientIndex, this.recipient);\n } else {\n console.log('[SIGN] Could not find our recipient record', this.roleId, EnvelopeStore.envelope.recipients);\n }\n\n this.isDone = ['submitted', 'canceled', 'declined'].includes(this.recipient.status);\n\n // TODO: Fix service to allow this?\n // const sigs = await getSignatures();\n // console.log('sigs', sigs);\n\n this.envelopeLoaded?.emit({endpoint: this.endpoint, envelope: EnvelopeStore.envelope});\n } catch (e) {\n console.log('Error with signing session', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n }\n }\n\n handleClickAgree() {\n envelopeRecipientAgree(this.endpoint, this.envelopeId, this.roleId, true)\n .then(() => {\n this.nextButtonLabel = 'Next';\n this.agreed = true; // The server returns a recipient object but it's not \"deep\" so we track this locally\n this.envelopeUpdated?.emit({endpoint: this.endpoint, envelope: EnvelopeStore.envelope, event: 'agreed'});\n })\n .catch(e => {\n console.log('Update failure', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n });\n }\n\n async handleOptionSelected(e) {\n switch (e.detail.id) {\n case 'later':\n this.finishLater = true;\n this.showFinishLater = true;\n // this.router.navigate([`view/sign/${this.envelopeId}/role/${this.roleName}/saved`]);\n break;\n case 'claim':\n window.alert('This feature will be available in an upcoming release.');\n break;\n case 'decline':\n {\n const declineResult = await envelopeRecipientDecline(this.endpoint, this.envelopeId, this.roleId);\n console.log('Decline result', declineResult);\n this.isDone = true;\n }\n break;\n case 'print':\n window.print();\n break;\n case 'download':\n savePDF(this.endpoint, EnvelopeStore.envelope, EnvelopeStore.envelope.envelope_document_id).catch(e => {\n console.log('Error downloading PDF', e);\n });\n break;\n }\n }\n\n updateRecipientFieldValue(fieldName: string, updateResult: any) {\n this.recipient.fields.forEach(oldField => {\n if (oldField.name === fieldName) {\n oldField.settings = updateResult.settings;\n // TODO: When we break out other fields like value, update them here too\n updateDocumentFieldValue(oldField);\n }\n });\n }\n\n saveFieldChange(fieldName: string, fields: Record<string, any>) {\n Envelopes.updateEnvelopeField(this.endpoint, this.envelopeId, fieldName, fields) //\n .then(updateResult => {\n this.updateRecipientFieldValue(fieldName, updateResult);\n })\n .catch(e => {\n if (e.response?.status === 401 && e.response?.data?.error === 'jwt expired') {\n // TODO: Do we want to improve the instructions here?\n console.log('[SIGN] Signing session expired');\n this.errorMessage = 'Signing session expired.';\n } else {\n console.log('[SIGN] Server error', e);\n }\n\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n });\n }\n\n async handleFieldChange(field: IDocumentField, e: any) {\n const {value, checked} = e.target;\n\n switch (field.type) {\n case 'textbox':\n return this.saveFieldChange(field.name, {prepared: false, value});\n\n case 'checkbox_group': {\n const options = field.settings.options.map(option => ({id: option.id, checked: e.target.checked}));\n return this.saveFieldChange(field.name, {prepared: false, value: {options}});\n }\n\n case 'radio_button_group': {\n const options = field.settings.options.map(option => ({id: option.id, selected: e.target.value === option.id}));\n return this.saveFieldChange(field.name, {prepared: false, value: {options}});\n }\n\n case 'dropdown':\n return this.saveFieldChange(field.name, {prepared: false, value: e.detail});\n\n case 'initial':\n const initialsBlob = await (await fetch(e.detail)).blob();\n return createInitials(this.endpoint, 'initial', initialsBlob) //\n .then(async newInitials => {\n const updateResult = await updateEnvelopeFieldInitials(this.endpoint, this.envelopeId, field.name, newInitials.id);\n this.updateRecipientFieldValue(field.name, updateResult);\n });\n\n case 'signature':\n const signatureBlob = await (await fetch(e.detail)).blob();\n return createSignature(this.endpoint, 'signature', signatureBlob) //\n .then(async newSignature => {\n const updateResult = await updateEnvelopeFieldSignature(this.endpoint, this.envelopeId, field.name, newSignature.id);\n this.updateRecipientFieldValue(field.name, updateResult);\n });\n\n case 'date':\n const iso = e.target.getAttribute('iso');\n return this.saveFieldChange(field.name, {prepared: false, value: iso});\n\n case 'timestamp':\n console.log('Updating timestamp', {value, ts: e.target.getAttribute('timestamp')});\n break;\n\n default:\n console.log('Unhandled field update', {value, checked}, field);\n break;\n }\n }\n\n isFieldValid(field: IDocumentField) {\n const {required = false} = field;\n const {result = '', value = '', base64 = ''} = field.settings || {};\n switch (field.type) {\n case 'textbox':\n switch (field.settings?.validator || '') {\n case 'email':\n return isValidEmail(result);\n case 'phone':\n return isValidPhone(result);\n default:\n return !required || result !== '';\n }\n\n case 'signature':\n case 'initial':\n return !required || base64 !== '';\n\n // Timestamp fields get automatically filled when the envelope is submitted.\n case 'timestamp':\n return true;\n\n case 'textarea':\n case 'date':\n case 'attachment':\n return !required || result !== '';\n\n case 'dropdown':\n return !required || value !== '';\n\n case 'checkbox_group':\n const checkedCount = (field.settings?.options?.filter(option => option.checked) || []).length;\n return !required || (checkedCount >= (field.settings?.minimum_checked || 0) && checkedCount <= (field.settings?.maximum_checked || 999));\n\n case 'radio_button_group':\n return !required || (field.settings?.options?.filter(option => option.selected) || []).length > 0;\n // TODO\n // case 'checkbox':\n // return <verdocs-field-checkbox style={style} value={result || ''} id={id} />;\n // case 'payment':\n // return <verdocs-field-payment style={style} field={field} id={id} />;\n default:\n return false;\n }\n }\n\n async handleNext() {\n if (this.nextSubmits) {\n try {\n const result = await envelopeRecipientSubmit(this.endpoint, this.envelopeId, this.roleId);\n console.log('[SIGN] Submitted successfully', result);\n this.showDone = true;\n this.isDone = true;\n } catch (e) {\n console.log('Error submitting', e);\n }\n\n return;\n }\n\n // Find and focus the next incomplete required field\n const requiredFields = this.recipient.fields.filter(field => field.required);\n const focusedIndex = requiredFields.findIndex(field => field.name === this.focusedField);\n\n let nextFocusedIndex = focusedIndex + 1;\n if (nextFocusedIndex >= requiredFields.length) {\n nextFocusedIndex = 0;\n }\n\n let nextRequiredField = requiredFields[nextFocusedIndex];\n\n // Skip signature and initial fields that are already filled in. We have to count our \"skips\" just in case, to avoid infinite loops.\n let skips = 0;\n if (skips < requiredFields.length && ['signature', 'initial'].includes(nextRequiredField.type) && nextRequiredField.settings?.result === 'signed') {\n skips++;\n nextFocusedIndex++;\n if (nextFocusedIndex >= requiredFields.length) {\n nextFocusedIndex = 0;\n }\n nextRequiredField = requiredFields[nextFocusedIndex];\n }\n\n if (skips >= requiredFields.length) {\n nextRequiredField = null;\n }\n\n if (nextRequiredField) {\n const id = getFieldId(nextRequiredField);\n const el = document.getElementById(id) as any;\n el?.focusField();\n this.focusedField = nextRequiredField.name;\n }\n }\n\n // See if everything that \"needs to be\" filled in is, and all \"fillable fields\" are valid\n checkRecipientFields() {\n const invalidFields = this.recipient.fields.filter(field => !this.isFieldValid(field));\n if (invalidFields.length < 1) {\n this.nextButtonLabel = 'Finish';\n this.nextSubmits = true;\n } else {\n console.log('[SIGN] Remaining invalid fields', invalidFields);\n this.nextButtonLabel = 'Next';\n this.nextSubmits = false;\n }\n }\n\n attachFieldAttributes(pageInfo, field, roleIndex, el) {\n el.addEventListener(\n 'input',\n throttle(e => this.handleFieldChange(field, e).finally(() => this.checkRecipientFields()), 250),\n );\n el.addEventListener('blur', () => this.checkRecipientFields());\n el.addEventListener('fieldChange', e => this.handleFieldChange(field, e).finally(() => this.checkRecipientFields()));\n\n el.setAttribute('roleindex', roleIndex);\n el.setAttribute('xScale', pageInfo.xScale);\n el.setAttribute('yScale', pageInfo.yScale);\n el.setAttribute('initials', this.recipient ? fullNameToInitials(this.recipient.full_name) : '');\n el.setAttribute('name', this.recipient?.full_name || '');\n }\n\n handlePageRendered(e) {\n const pageInfo = e.detail as IDocumentPageInfo;\n const roleIndex = getRoleIndex(EnvelopeStore.roleNames, this.recipient.role_name);\n const recipientFields = this.recipient.fields.filter(field => field.page === pageInfo.pageNumber);\n console.log('[SIGN] Page rendered, updating fields', {pageInfo, roleIndex, recipientFields});\n\n recipientFields.forEach(field => {\n const el = renderDocumentField(field, pageInfo, roleIndex, {disabled: false, editable: false, draggable: false, done: this.isDone});\n if (!el) {\n return;\n }\n\n if (Array.isArray(el)) {\n el.map(e => this.attachFieldAttributes(pageInfo, field, roleIndex, e));\n } else {\n this.attachFieldAttributes(pageInfo, field, roleIndex, el);\n }\n\n // interact(el).draggable({\n // listeners: {\n // start(event) {\n // console.log('[FIELDS] Drag started', event.type, event.target);\n // },\n // move(event) {\n // const oldX = +(event.target.getAttribute('posX') || 0);\n // const oldY = +(event.target.getAttribute('posY') || 0);\n // const xScale = +(event.target.getAttribute('xScale') || 1);\n // const yScale = +(event.target.getAttribute('yScale') || 1);\n // const newX = event.dx / xScale + oldX;\n // const newY = event.dy / yScale + oldY;\n // event.target.setAttribute('posX', newX);\n // event.target.setAttribute('posy', newY);\n // updateCssTransform(event.target, 'translate', `${newX}px, ${newY}px`);\n // },\n // end(event) {\n // console.log('[FIELDS] Drag ended', event);\n // // event.target.setAttribute('posX', 0);\n // // event.target.setAttribute('posy', 0);\n // // updateCssTransform(event.target, 'translate', `${0}px, ${0}px`);\n // },\n // },\n // });\n });\n\n // Render fields for \"the other\" recipients\n EnvelopeStore.envelope.recipients\n .filter(recipient => recipient.role_name !== this.recipient.role_name)\n .forEach(otherRecipient => {\n const otherRoleIndex = getRoleIndex(EnvelopeStore.roleNames, otherRecipient.role_name);\n const recipientFields = otherRecipient.fields.filter(field => field.page === pageInfo.pageNumber);\n\n // We don't render other recipients' fields if they've already acted, because those values are now stamped into the document page.\n // TODO: Do we want to render alternate treatments for recipients who have declined (red boxes?) and/or if the envelope is cancelled?\n // TODO: When doing server-side rendering we probably want to \"stamp\" values into the rendered PDF only once the recipient is done\n // acting. Do this once vSign is in Production.\n // TODO: Changed tacks here. During signing we show the template PDFs and everybody's fields, filled in or no. When done, we switch\n // to showing the envelope PDFs with stamped-in values. Confirm this is a good approach.\n // if (!['submitted', 'signed'].includes(otherRecipient.status)) {\n recipientFields.forEach(field => {\n const el = renderDocumentField(field, pageInfo, otherRoleIndex, {\n disabled: true,\n editable: false,\n draggable: false,\n done: this.isDone,\n });\n if (!el) {\n return;\n }\n\n // TODO: Research why this occurs. There are cases when we're getting \"el.setAttribute is not a function\"\n if (el.setAttribute) {\n el.setAttribute('roleindex', otherRoleIndex);\n el.setAttribute('xScale', pageInfo.xScale);\n el.setAttribute('yScale', pageInfo.yScale);\n }\n });\n // }\n });\n\n this.checkRecipientFields();\n }\n\n render() {\n if (EnvelopeStore.loading || !EnvelopeStore.envelope) {\n return (\n <Host>\n <verdocs-loader />\n </Host>\n );\n }\n\n const menuOptions = [\n {id: 'later', label: 'Finish Later'}, //\n // {id: 'claim', label: 'Claim the Document', disabled: true},\n {id: 'decline', label: 'Decline to Sign'},\n {id: 'print', label: 'Print Without Signing', disabled: true},\n {id: 'download', label: 'Download'},\n ];\n\n return (\n <Host class={{agreed: this.agreed}}>\n {!this.isDone && !this.finishLater && <div class=\"intro\">Please review and act on these documents.</div>}\n\n {!this.isDone && (\n <div class=\"header\">\n {!this.isDone && !this.finishLater && <verdocs-dropdown options={menuOptions} onOptionSelected={e => this.handleOptionSelected(e)} />}\n\n {!this.agreed ? (\n <div class=\"agree\">\n <verdocs-checkbox name=\"agree\" label=\"I agree to use electronic records and signatures.\" onInput={() => this.handleClickAgree()} />\n </div>\n ) : (\n <Fragment>\n <img src=\"https://verdocs.com/assets/white-logo.svg\" alt=\"Verdocs Logo\" class=\"logo\" />\n <div class=\"title\">{EnvelopeStore.envelope.name}</div>\n <div style={{flex: '1'}} />\n <div innerHTML={PrintIcon} style={{width: '24px', height: '24px', fill: '#fff', cursor: 'pointer'}} onClick={() => window.print()} />\n <div\n innerHTML={DownloadIcon}\n style={{width: '24px', height: '24px', fill: '#fff', cursor: 'pointer', margin: '0 16px', maginRight: '30px'}}\n onClick={() => savePDF(this.endpoint, EnvelopeStore.envelope, EnvelopeStore.envelope.envelope_document_id).catch(() => {})}\n />\n </Fragment>\n )}\n\n {!this.isDone && !this.finishLater && <verdocs-button size=\"small\" label={this.nextButtonLabel} disabled={!this.agreed} onClick={() => this.handleNext()} />}\n </div>\n )}\n\n {!this.isDone && !this.agreed ? <div class=\"cover\" /> : <div style={{display: 'none'}} />}\n\n {this.isDone ? (\n // <div>test</div>\n <verdocs-view endpoint={this.endpoint} envelopeId={this.envelopeId} onSdkError={e => this.sdkError?.emit(e.detail)} />\n ) : (\n <div class=\"document\">\n {(EnvelopeStore.envelope.documents || []).map(envelopeDocument => {\n const pages = [...(envelopeDocument?.pages || [])];\n pages.sort((a, b) => a.sequence - b.sequence);\n\n return (\n <Fragment>\n {pages.map(page => {\n // In signing mode we show the original template page with all the recipient fields so we can show source formatting and\n // where everything went. This is also a visual indicator when optional fields weren't filled in by previous actors, or\n // future signers still need to act. Once we're \"done\" we flip to showing the envelope's documents which have the final\n // field vales (so far) stamped into them.\n const templatePage = EnvelopeStore.template?.pages.find(p => p.sequence === page.sequence);\n // TODO: Confirm that a pure page-number match is good enough to find the matching template page. We need to make sure\n // we either don't reset our page numbers for additional attachments, or add match-on identifiers to work around that.\n // console.log('tp', templatePage, page);\n return (\n <verdocs-document-page\n pageImageUri={templatePage?.display_uri || page.display_uri}\n virtualWidth={612}\n virtualHeight={792}\n pageNumber={page.sequence}\n onPageRendered={e => this.handlePageRendered(e)}\n layers={[\n {name: 'page', type: 'canvas'},\n {name: 'controls', type: 'div'},\n ]}\n />\n );\n })}\n </Fragment>\n );\n })}\n </div>\n )}\n\n {this.showFinishLater && (\n <verdocs-ok-dialog\n heading=\"You've saved your document to finish later.\"\n message=\"To complete the document, use the link in the original email notification inviting you to review and finish the document.\"\n onNext={() => (this.showFinishLater = false)}\n />\n )}\n\n {this.errorMessage && <verdocs-ok-dialog heading=\"Network Error\" message={this.errorMessage} onNext={() => (this.errorMessage = '')} />}\n {this.showDone && (\n <verdocs-ok-dialog\n heading=\"You're Done!\"\n 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.\"\n onNext={() => (this.showDone = false)}\n />\n )}\n </Host>\n );\n }\n}\n"],"version":3}
@@ -4,11 +4,13 @@ import { T as TemplateSenderTypes } from './Types-ab9f6af8.js';
4
4
  import { V as VerdocsEndpoint } from './VerdocsEndpoint-28ba21cc.js';
5
5
  import { S as SDKError } from './errors-9b5498c8.js';
6
6
  import { g as getRGBA } from './Colors-1b298092.js';
7
- import { r as renderDocumentField, a as getRoleIndex, k as updateCssTransform } from './utils-5cddd371.js';
8
- import { s as state } from './templateStore-d6995852.js';
9
- import { l as loadTemplate } from './Templates-452173e6.js';
7
+ import { r as renderDocumentField, a as getRoleIndex, i as updateCssTransform } from './utils-6e8bd73f.js';
8
+ import { s as state } from './templateStore-7b50460b.js';
9
+ import { l as loadTemplate } from './Templates-ad0e1ebe.js';
10
10
  import './Token-54690789.js';
11
+ import './Files-70a192df.js';
11
12
  import './index-fd7b8a34.js';
13
+ import './Primitives-054bc6e5.js';
12
14
 
13
15
  /**
14
16
  * A TemplateDocument represents a PDF or other attachment in a Template.