@verdocs/web-sdk 1.12.21 → 1.12.22

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 (260) hide show
  1. package/dist/cjs/{Envelopes-87aea63d.js → Envelopes-2b8a280d.js} +16 -1
  2. package/dist/cjs/{Templates-e72a23b7.js → Templates-6705a1ce.js} +1 -1
  3. package/dist/cjs/{interact.min-d2e625b7.js → interact.min-8e19d5c0.js} +1 -1
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/{index-4de6ec2f.js → templateStore-1862f03c.js} +45 -1
  6. package/dist/cjs/{utils-cc3321ad.js → utils-cf75a796.js} +1 -1
  7. package/dist/cjs/verdocs-build.cjs.entry.js +2 -3
  8. package/dist/cjs/verdocs-button-panel_3.cjs.entry.js +2 -3
  9. package/dist/cjs/verdocs-dropdown_2.cjs.entry.js +2 -2
  10. package/dist/cjs/verdocs-envelope-sidebar.cjs.entry.js +21 -20
  11. package/dist/cjs/verdocs-field-attachment.cjs.entry.js +1 -2
  12. package/dist/cjs/verdocs-field-checkbox.cjs.entry.js +3 -4
  13. package/dist/cjs/verdocs-field-date.cjs.entry.js +3 -4
  14. package/dist/cjs/verdocs-field-dropdown.cjs.entry.js +3 -4
  15. package/dist/cjs/verdocs-field-initial.cjs.entry.js +3 -4
  16. package/dist/cjs/verdocs-field-payment.cjs.entry.js +3 -4
  17. package/dist/cjs/verdocs-field-radio-button.cjs.entry.js +3 -4
  18. package/dist/cjs/verdocs-field-signature.cjs.entry.js +3 -4
  19. package/dist/cjs/verdocs-field-textarea.cjs.entry.js +3 -4
  20. package/dist/cjs/verdocs-field-textbox.cjs.entry.js +4 -5
  21. package/dist/cjs/verdocs-field-timestamp.cjs.entry.js +3 -4
  22. package/dist/cjs/verdocs-preview.cjs.entry.js +4 -5
  23. package/dist/cjs/verdocs-send.cjs.entry.js +4 -5
  24. package/dist/cjs/verdocs-sign.cjs.entry.js +24 -23
  25. package/dist/cjs/verdocs-template-attachments.cjs.entry.js +2 -3
  26. package/dist/cjs/verdocs-template-create_2.cjs.entry.js +5 -6
  27. package/dist/cjs/verdocs-template-document-page.cjs.entry.js +2 -2
  28. package/dist/cjs/verdocs-template-name.cjs.entry.js +2 -3
  29. package/dist/cjs/verdocs-template-properties.cjs.entry.js +1 -2
  30. package/dist/cjs/verdocs-template-reminders.cjs.entry.js +2 -3
  31. package/dist/cjs/verdocs-template-role-properties_2.cjs.entry.js +2 -3
  32. package/dist/cjs/verdocs-template-roles.cjs.entry.js +5 -6
  33. package/dist/cjs/verdocs-template-visibility.cjs.entry.js +2 -3
  34. package/dist/cjs/verdocs-view.cjs.entry.js +24 -24
  35. package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
  36. package/dist/collection/components/elements/verdocs-envelope-sidebar/verdocs-envelope-sidebar.js +24 -20
  37. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js +26 -23
  38. package/dist/collection/components/embeds/verdocs-view/verdocs-view.js +25 -23
  39. package/dist/components/Envelopes.js +16 -1
  40. package/dist/components/templateStore.js +192 -1
  41. package/dist/components/verdocs-envelope-sidebar.js +23 -18
  42. package/dist/components/verdocs-sign.js +25 -21
  43. package/dist/components/verdocs-view2.js +25 -22
  44. package/dist/docs.json +1 -1
  45. package/dist/esm/{Envelopes-16f09341.js → Envelopes-c36c692e.js} +16 -1
  46. package/dist/esm/{Templates-d66ec625.js → Templates-deedf4bd.js} +1 -1
  47. package/dist/esm/{interact.min-1e2f37ab.js → interact.min-da238961.js} +1 -1
  48. package/dist/esm/loader.js +1 -1
  49. package/dist/esm/{index-85f4a40f.js → templateStore-17c872da.js} +45 -1
  50. package/dist/esm/{utils-bca7b101.js → utils-1d934f99.js} +1 -1
  51. package/dist/esm/verdocs-build.entry.js +2 -3
  52. package/dist/esm/verdocs-button-panel_3.entry.js +2 -3
  53. package/dist/esm/verdocs-dropdown_2.entry.js +2 -2
  54. package/dist/esm/verdocs-envelope-sidebar.entry.js +21 -20
  55. package/dist/esm/verdocs-field-attachment.entry.js +1 -2
  56. package/dist/esm/verdocs-field-checkbox.entry.js +3 -4
  57. package/dist/esm/verdocs-field-date.entry.js +3 -4
  58. package/dist/esm/verdocs-field-dropdown.entry.js +3 -4
  59. package/dist/esm/verdocs-field-initial.entry.js +3 -4
  60. package/dist/esm/verdocs-field-payment.entry.js +3 -4
  61. package/dist/esm/verdocs-field-radio-button.entry.js +3 -4
  62. package/dist/esm/verdocs-field-signature.entry.js +3 -4
  63. package/dist/esm/verdocs-field-textarea.entry.js +3 -4
  64. package/dist/esm/verdocs-field-textbox.entry.js +4 -5
  65. package/dist/esm/verdocs-field-timestamp.entry.js +3 -4
  66. package/dist/esm/verdocs-preview.entry.js +4 -5
  67. package/dist/esm/verdocs-send.entry.js +4 -5
  68. package/dist/esm/verdocs-sign.entry.js +24 -23
  69. package/dist/esm/verdocs-template-attachments.entry.js +2 -3
  70. package/dist/esm/verdocs-template-create_2.entry.js +5 -6
  71. package/dist/esm/verdocs-template-document-page.entry.js +2 -2
  72. package/dist/esm/verdocs-template-name.entry.js +2 -3
  73. package/dist/esm/verdocs-template-properties.entry.js +1 -2
  74. package/dist/esm/verdocs-template-reminders.entry.js +2 -3
  75. package/dist/esm/verdocs-template-role-properties_2.entry.js +2 -3
  76. package/dist/esm/verdocs-template-roles.entry.js +5 -6
  77. package/dist/esm/verdocs-template-visibility.entry.js +2 -3
  78. package/dist/esm/verdocs-view.entry.js +23 -23
  79. package/dist/esm/verdocs-web-sdk.js +1 -1
  80. package/dist/esm-es5/{Envelopes-16f09341.js → Envelopes-c36c692e.js} +1 -1
  81. package/dist/esm-es5/{Templates-d66ec625.js → Templates-deedf4bd.js} +1 -1
  82. package/dist/esm-es5/{interact.min-1e2f37ab.js → interact.min-da238961.js} +1 -1
  83. package/dist/esm-es5/loader.js +1 -1
  84. package/dist/esm-es5/templateStore-17c872da.js +1 -0
  85. package/dist/esm-es5/{utils-bca7b101.js → utils-1d934f99.js} +1 -1
  86. package/dist/esm-es5/verdocs-build.entry.js +1 -1
  87. package/dist/esm-es5/verdocs-button-panel_3.entry.js +1 -1
  88. package/dist/esm-es5/verdocs-dropdown_2.entry.js +1 -1
  89. package/dist/esm-es5/verdocs-envelope-sidebar.entry.js +1 -1
  90. package/dist/esm-es5/verdocs-field-attachment.entry.js +1 -1
  91. package/dist/esm-es5/verdocs-field-checkbox.entry.js +1 -1
  92. package/dist/esm-es5/verdocs-field-date.entry.js +1 -1
  93. package/dist/esm-es5/verdocs-field-dropdown.entry.js +1 -1
  94. package/dist/esm-es5/verdocs-field-initial.entry.js +1 -1
  95. package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
  96. package/dist/esm-es5/verdocs-field-radio-button.entry.js +1 -1
  97. package/dist/esm-es5/verdocs-field-signature.entry.js +1 -1
  98. package/dist/esm-es5/verdocs-field-textarea.entry.js +1 -1
  99. package/dist/esm-es5/verdocs-field-textbox.entry.js +1 -1
  100. package/dist/esm-es5/verdocs-field-timestamp.entry.js +1 -1
  101. package/dist/esm-es5/verdocs-preview.entry.js +1 -1
  102. package/dist/esm-es5/verdocs-send.entry.js +1 -1
  103. package/dist/esm-es5/verdocs-sign.entry.js +1 -1
  104. package/dist/esm-es5/verdocs-template-attachments.entry.js +1 -1
  105. package/dist/esm-es5/verdocs-template-create_2.entry.js +1 -1
  106. package/dist/esm-es5/verdocs-template-document-page.entry.js +1 -1
  107. package/dist/esm-es5/verdocs-template-name.entry.js +1 -1
  108. package/dist/esm-es5/verdocs-template-properties.entry.js +1 -1
  109. package/dist/esm-es5/verdocs-template-reminders.entry.js +1 -1
  110. package/dist/esm-es5/verdocs-template-role-properties_2.entry.js +1 -1
  111. package/dist/esm-es5/verdocs-template-roles.entry.js +1 -1
  112. package/dist/esm-es5/verdocs-template-visibility.entry.js +1 -1
  113. package/dist/esm-es5/verdocs-view.entry.js +1 -1
  114. package/dist/esm-es5/verdocs-web-sdk.js +1 -1
  115. package/dist/types/components/elements/verdocs-envelope-sidebar/verdocs-envelope-sidebar.d.ts +4 -2
  116. package/dist/types/components/embeds/verdocs-sign/verdocs-sign.d.ts +2 -0
  117. package/dist/types/components/embeds/verdocs-view/verdocs-view.d.ts +2 -0
  118. package/dist/verdocs-web-sdk/p-037fa432.system.entry.js +1 -0
  119. package/dist/verdocs-web-sdk/{p-6a2e16ea.system.js → p-0a000948.system.js} +1 -1
  120. package/dist/verdocs-web-sdk/p-10ea4d8d.entry.js +1 -0
  121. package/dist/verdocs-web-sdk/{p-ceae05e8.system.entry.js → p-152f38f2.system.entry.js} +1 -1
  122. package/dist/verdocs-web-sdk/p-1772de58.system.entry.js +1 -0
  123. package/dist/verdocs-web-sdk/p-1a9437d9.system.entry.js +1 -0
  124. package/dist/verdocs-web-sdk/p-1d60a9e2.system.entry.js +1 -0
  125. package/dist/verdocs-web-sdk/{p-7d73a258.entry.js → p-212ecdc5.entry.js} +1 -1
  126. package/dist/verdocs-web-sdk/p-284f69ec.system.entry.js +1 -0
  127. package/dist/verdocs-web-sdk/p-2af1ec32.entry.js +1 -0
  128. package/dist/verdocs-web-sdk/p-2e2fd9f3.entry.js +1 -0
  129. package/dist/verdocs-web-sdk/p-30decbde.entry.js +1 -0
  130. package/dist/verdocs-web-sdk/p-32665c92.entry.js +1 -0
  131. package/dist/verdocs-web-sdk/p-36ef57a7.system.entry.js +1 -0
  132. package/dist/verdocs-web-sdk/p-370e03f7.entry.js +1 -0
  133. package/dist/verdocs-web-sdk/p-38368af4.system.entry.js +1 -0
  134. package/dist/verdocs-web-sdk/p-386a9c8b.system.entry.js +1 -0
  135. package/dist/verdocs-web-sdk/p-3ec38739.entry.js +1 -0
  136. package/dist/verdocs-web-sdk/p-4161fc87.system.entry.js +1 -0
  137. package/dist/verdocs-web-sdk/p-4271a0bf.entry.js +1 -0
  138. package/dist/verdocs-web-sdk/p-449e8445.system.entry.js +1 -0
  139. package/dist/verdocs-web-sdk/p-4680b94d.entry.js +1 -0
  140. package/dist/verdocs-web-sdk/p-47eec326.system.entry.js +1 -0
  141. package/dist/verdocs-web-sdk/p-48fbc0e0.entry.js +1 -0
  142. package/dist/verdocs-web-sdk/p-511ba013.system.entry.js +1 -0
  143. package/dist/verdocs-web-sdk/p-52164a0a.entry.js +1 -0
  144. package/dist/verdocs-web-sdk/p-5574e12d.system.entry.js +1 -0
  145. package/dist/verdocs-web-sdk/p-58cbbdf4.system.entry.js +1 -0
  146. package/dist/verdocs-web-sdk/p-5911bf86.entry.js +1 -0
  147. package/dist/verdocs-web-sdk/p-5e1b2cc7.entry.js +1 -0
  148. package/dist/verdocs-web-sdk/p-62542624.system.entry.js +1 -0
  149. package/dist/verdocs-web-sdk/{p-3d0efcc9.js → p-6324d9f8.js} +1 -1
  150. package/dist/verdocs-web-sdk/p-63789dec.system.entry.js +1 -0
  151. package/dist/verdocs-web-sdk/{p-e5bd3e93.js → p-6685a532.js} +1 -1
  152. package/dist/verdocs-web-sdk/{p-7dc40910.system.entry.js → p-66a21bd1.system.entry.js} +1 -1
  153. package/dist/verdocs-web-sdk/p-6caf1137.system.js +1 -1
  154. package/dist/verdocs-web-sdk/p-6f1501f8.entry.js +1 -0
  155. package/dist/verdocs-web-sdk/p-71b8bb54.system.js +1 -0
  156. package/dist/verdocs-web-sdk/p-7bc337ce.entry.js +1 -0
  157. package/dist/verdocs-web-sdk/p-837894c5.system.entry.js +1 -0
  158. package/dist/verdocs-web-sdk/p-8383c63c.js +1 -0
  159. package/dist/verdocs-web-sdk/p-83ada8f3.system.js +1 -0
  160. package/dist/verdocs-web-sdk/{p-2b335cb4.system.js → p-8ac64953.system.js} +1 -1
  161. package/dist/verdocs-web-sdk/p-8b501a20.system.entry.js +1 -0
  162. package/dist/verdocs-web-sdk/{p-66a673dd.entry.js → p-8b87e539.entry.js} +1 -1
  163. package/dist/verdocs-web-sdk/p-8d567305.system.entry.js +1 -0
  164. package/dist/verdocs-web-sdk/p-92b8c139.entry.js +1 -0
  165. package/dist/verdocs-web-sdk/p-983149af.entry.js +1 -0
  166. package/dist/verdocs-web-sdk/p-98c6210b.system.entry.js +1 -0
  167. package/dist/verdocs-web-sdk/p-9b37434a.entry.js +1 -0
  168. package/dist/verdocs-web-sdk/p-9f44ba0d.entry.js +1 -0
  169. package/dist/verdocs-web-sdk/p-9f52d5c3.entry.js +1 -0
  170. package/dist/verdocs-web-sdk/p-a30da45d.entry.js +1 -0
  171. package/dist/verdocs-web-sdk/p-aac44c0d.system.entry.js +1 -0
  172. package/dist/verdocs-web-sdk/p-c5d2e145.entry.js +1 -0
  173. package/dist/verdocs-web-sdk/p-c903c4a7.js +1 -0
  174. package/dist/verdocs-web-sdk/p-d181f220.system.entry.js +1 -0
  175. package/dist/verdocs-web-sdk/p-d92494e8.system.entry.js +1 -0
  176. package/dist/verdocs-web-sdk/{p-736cf2bf.js → p-ddbe721b.js} +1 -1
  177. package/dist/verdocs-web-sdk/p-de6dec13.entry.js +1 -0
  178. package/dist/verdocs-web-sdk/p-df529ac2.system.entry.js +1 -0
  179. package/dist/verdocs-web-sdk/p-e02ac695.entry.js +1 -0
  180. package/dist/verdocs-web-sdk/p-e176d75b.entry.js +1 -0
  181. package/dist/verdocs-web-sdk/{p-fdcf756a.system.js → p-e4dc637b.system.js} +1 -1
  182. package/dist/verdocs-web-sdk/p-e7640564.system.entry.js +1 -0
  183. package/dist/verdocs-web-sdk/p-f7460048.system.entry.js +1 -0
  184. package/dist/verdocs-web-sdk/p-fbda7ba5.entry.js +1 -0
  185. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  186. package/package.json +2 -2
  187. package/dist/cjs/Envelopes-cd0d7be9.js +0 -68
  188. package/dist/cjs/templateStore-b44b1dd5.js +0 -49
  189. package/dist/collection/utils/Envelopes.js +0 -33
  190. package/dist/collection/utils/envelopeStore.js +0 -32
  191. package/dist/components/Envelopes2.js +0 -65
  192. package/dist/components/index3.js +0 -194
  193. package/dist/custom-elements.json +0 -1462
  194. package/dist/esm/Envelopes-93e699a5.js +0 -65
  195. package/dist/esm/templateStore-3b087176.js +0 -47
  196. package/dist/esm-es5/Envelopes-93e699a5.js +0 -1
  197. package/dist/esm-es5/index-85f4a40f.js +0 -1
  198. package/dist/esm-es5/templateStore-3b087176.js +0 -1
  199. package/dist/types/utils/Envelopes.d.ts +0 -2
  200. package/dist/types/utils/envelopeStore.d.ts +0 -12
  201. package/dist/verdocs-web-sdk/p-02914dbb.js +0 -1
  202. package/dist/verdocs-web-sdk/p-030318b5.entry.js +0 -1
  203. package/dist/verdocs-web-sdk/p-0c1bd8ab.system.entry.js +0 -1
  204. package/dist/verdocs-web-sdk/p-0eb7f329.entry.js +0 -1
  205. package/dist/verdocs-web-sdk/p-19804b90.system.entry.js +0 -1
  206. package/dist/verdocs-web-sdk/p-28551fd4.entry.js +0 -1
  207. package/dist/verdocs-web-sdk/p-2a8a48c1.system.entry.js +0 -1
  208. package/dist/verdocs-web-sdk/p-2afbcb32.entry.js +0 -1
  209. package/dist/verdocs-web-sdk/p-2e105a9d.system.entry.js +0 -1
  210. package/dist/verdocs-web-sdk/p-2e7aba30.js +0 -1
  211. package/dist/verdocs-web-sdk/p-312b3c6e.entry.js +0 -1
  212. package/dist/verdocs-web-sdk/p-335f01d1.system.entry.js +0 -1
  213. package/dist/verdocs-web-sdk/p-3dbb8b8c.system.entry.js +0 -1
  214. package/dist/verdocs-web-sdk/p-40e96848.entry.js +0 -1
  215. package/dist/verdocs-web-sdk/p-41d6c443.entry.js +0 -1
  216. package/dist/verdocs-web-sdk/p-43c3073f.system.js +0 -1
  217. package/dist/verdocs-web-sdk/p-4a52d3a3.system.js +0 -1
  218. package/dist/verdocs-web-sdk/p-518f1125.entry.js +0 -1
  219. package/dist/verdocs-web-sdk/p-568c5e70.system.entry.js +0 -1
  220. package/dist/verdocs-web-sdk/p-59ac5b50.system.entry.js +0 -1
  221. package/dist/verdocs-web-sdk/p-5a362440.entry.js +0 -1
  222. package/dist/verdocs-web-sdk/p-5a4227f6.system.entry.js +0 -1
  223. package/dist/verdocs-web-sdk/p-5abaf86d.js +0 -1
  224. package/dist/verdocs-web-sdk/p-609f6f1c.system.entry.js +0 -1
  225. package/dist/verdocs-web-sdk/p-6616c85f.system.entry.js +0 -1
  226. package/dist/verdocs-web-sdk/p-671bb0a7.entry.js +0 -1
  227. package/dist/verdocs-web-sdk/p-70fe647e.system.entry.js +0 -1
  228. package/dist/verdocs-web-sdk/p-7295a277.system.js +0 -1
  229. package/dist/verdocs-web-sdk/p-745cab4f.entry.js +0 -1
  230. package/dist/verdocs-web-sdk/p-745f02b1.system.entry.js +0 -1
  231. package/dist/verdocs-web-sdk/p-7494a45d.system.entry.js +0 -1
  232. package/dist/verdocs-web-sdk/p-7ec320f8.system.entry.js +0 -1
  233. package/dist/verdocs-web-sdk/p-7f28d60f.entry.js +0 -1
  234. package/dist/verdocs-web-sdk/p-7fe39c68.js +0 -1
  235. package/dist/verdocs-web-sdk/p-83a2eaee.system.entry.js +0 -1
  236. package/dist/verdocs-web-sdk/p-8e2e32a8.entry.js +0 -1
  237. package/dist/verdocs-web-sdk/p-94d43d18.entry.js +0 -1
  238. package/dist/verdocs-web-sdk/p-96044424.entry.js +0 -1
  239. package/dist/verdocs-web-sdk/p-9e1ed4b6.system.entry.js +0 -1
  240. package/dist/verdocs-web-sdk/p-9ff98c7c.entry.js +0 -1
  241. package/dist/verdocs-web-sdk/p-a82fc8d0.entry.js +0 -1
  242. package/dist/verdocs-web-sdk/p-ad58de61.system.entry.js +0 -1
  243. package/dist/verdocs-web-sdk/p-b4355a5a.system.entry.js +0 -1
  244. package/dist/verdocs-web-sdk/p-b55a37d5.system.entry.js +0 -1
  245. package/dist/verdocs-web-sdk/p-c0edd8eb.system.entry.js +0 -1
  246. package/dist/verdocs-web-sdk/p-c521e212.system.js +0 -1
  247. package/dist/verdocs-web-sdk/p-c877e418.system.entry.js +0 -1
  248. package/dist/verdocs-web-sdk/p-d0afa6df.entry.js +0 -1
  249. package/dist/verdocs-web-sdk/p-d0aff325.entry.js +0 -1
  250. package/dist/verdocs-web-sdk/p-d4d689cd.entry.js +0 -1
  251. package/dist/verdocs-web-sdk/p-d90f70da.system.entry.js +0 -1
  252. package/dist/verdocs-web-sdk/p-df483a68.system.entry.js +0 -1
  253. package/dist/verdocs-web-sdk/p-e457d21a.entry.js +0 -1
  254. package/dist/verdocs-web-sdk/p-e50182b0.system.entry.js +0 -1
  255. package/dist/verdocs-web-sdk/p-e6b7b61d.entry.js +0 -1
  256. package/dist/verdocs-web-sdk/p-eaaf7e3e.entry.js +0 -1
  257. package/dist/verdocs-web-sdk/p-f0847cbd.entry.js +0 -1
  258. package/dist/verdocs-web-sdk/p-f65a851a.entry.js +0 -1
  259. package/dist/verdocs-web-sdk/p-f724400e.entry.js +0 -1
  260. package/dist/verdocs-web-sdk/p-fab4b76c.system.entry.js +0 -1
@@ -1,9 +1,8 @@
1
+ import { format } from 'date-fns';
1
2
  import { VerdocsEndpoint } from '@verdocs/js-sdk';
3
+ import { throttledGetEnvelope } from '@verdocs/js-sdk/Envelopes/Envelopes';
2
4
  import { h, Host } from '@stencil/core';
3
- import { getEnvelopeById } from '../../../utils/Envelopes';
4
- import EnvelopeStore from '../../../utils/envelopeStore';
5
5
  import { SDKError } from '../../../utils/errors';
6
- import { format } from 'date-fns';
7
6
  const InformationCircle = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="#ffffff"><path stroke-linecap="round" stroke-linejoin="round" d="M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z" /></svg>`;
8
7
  const Users = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="#ffffff"><path stroke-linecap="round" stroke-linejoin="round" d="M15 19.128a9.38 9.38 0 002.625.372 9.337 9.337 0 004.121-.952 4.125 4.125 0 00-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 018.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0111.964-3.07M12 6.375a3.375 3.375 0 11-6.75 0 3.375 3.375 0 016.75 0zm8.25 2.25a2.625 2.625 0 11-5.25 0 2.625 2.625 0 015.25 0z" /></svg>`;
9
8
  const ClipboardDocuments = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="#ffffff"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12h3.75M9 15h3.75M9 18h3.75m3 .75H18a2.25 2.25 0 002.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 00-1.123-.08m-5.801 0c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75 2.25 2.25 0 00-.1-.664m-5.8 0A2.251 2.251 0 0113.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m0 0H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V9.375c0-.621-.504-1.125-1.125-1.125H8.25zM6.75 12h.008v.008H6.75V12zm0 3h.008v.008H6.75V15zm0 3h.008v.008H6.75V18z" /></svg>`;
@@ -36,6 +35,8 @@ export class VerdocsEnvelopeSidebar {
36
35
  constructor() {
37
36
  this.endpoint = VerdocsEndpoint.getDefault();
38
37
  this.envelopeId = '';
38
+ this.envelope = null;
39
+ this.roleNames = [];
39
40
  this.activeTab = 1;
40
41
  this.panelOpen = false;
41
42
  }
@@ -44,14 +45,15 @@ export class VerdocsEnvelopeSidebar {
44
45
  }
45
46
  // TODO: Handling signing vs preview-as-user cases
46
47
  // TODO: Handle anonymous case and failure to load due to not being logged in
47
- async componentDidLoad() {
48
+ async componentWillRender() {
48
49
  var _a, _b, _c;
49
50
  if (!this.envelopeId) {
50
51
  console.error(`[SIDEBAR] Missing required envelopeId`);
51
52
  return;
52
53
  }
53
54
  try {
54
- await getEnvelopeById(this.endpoint, this.envelopeId);
55
+ this.envelope = await throttledGetEnvelope(this.endpoint, this.envelopeId);
56
+ this.roleNames = this.envelope.recipients.map(r => r.role_name);
55
57
  }
56
58
  catch (e) {
57
59
  (_a = this.sdkError) === null || _a === void 0 ? void 0 : _a.emit(new SDKError(e.message, (_b = e.response) === null || _b === void 0 ? void 0 : _b.status, (_c = e.response) === null || _c === void 0 ? void 0 : _c.data));
@@ -64,12 +66,12 @@ export class VerdocsEnvelopeSidebar {
64
66
  // TODO: Refactor to a common library?
65
67
  canResendRecipient(recipient) {
66
68
  return (!['pending', 'declined', 'submitted', 'canceled'].includes(recipient.status) && //
67
- !['complete', 'declined', 'canceled'].includes(EnvelopeStore.envelope.status));
69
+ !['complete', 'declined', 'canceled'].includes(this.envelope.status));
68
70
  }
69
71
  canModifyRecipient(recipient) {
70
72
  return (!recipient.claimed && //
71
73
  !['declined', 'signed', 'submitted', 'canceled'].includes(recipient.status) &&
72
- !['complete', 'declined', 'canceled'].includes(EnvelopeStore.envelope.status));
74
+ !['complete', 'declined', 'canceled'].includes(this.envelope.status));
73
75
  }
74
76
  handleRecipientAction(recipient, id) {
75
77
  var _a;
@@ -81,21 +83,21 @@ export class VerdocsEnvelopeSidebar {
81
83
  case 'details':
82
84
  break;
83
85
  }
84
- (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: EnvelopeStore.envelope, event: id });
86
+ (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: this.envelope, event: id });
85
87
  }
86
88
  prepareHistoryEntries() {
87
89
  const entries = [];
88
- const histories = EnvelopeStore.envelope.histories || [];
89
- entries.push({ icon: 'pencil', message: 'Envelope created.', date: new Date(EnvelopeStore.envelope.created_at) });
90
- if (EnvelopeStore.envelope.status === 'complete') {
91
- entries.push({ icon: 'pencil', message: 'Envelope completed.', date: new Date(EnvelopeStore.envelope.updated_at) });
90
+ const histories = this.envelope.histories || [];
91
+ entries.push({ icon: 'pencil', message: 'Envelope created.', date: new Date(this.envelope.created_at) });
92
+ if (this.envelope.status === 'complete') {
93
+ entries.push({ icon: 'pencil', message: 'Envelope completed.', date: new Date(this.envelope.updated_at) });
92
94
  }
93
95
  const ownerCanceled = histories.some(history => history.event === 'owner:canceled');
94
- if (EnvelopeStore.envelope.status === 'canceled' && !ownerCanceled) {
95
- entries.push({ icon: 'pencil', message: 'Envelope Cancelled.', date: new Date(EnvelopeStore.envelope.canceled_at) });
96
+ if (this.envelope.status === 'canceled' && !ownerCanceled) {
97
+ entries.push({ icon: 'pencil', message: 'Envelope Cancelled.', date: new Date(this.envelope.canceled_at) });
96
98
  }
97
99
  histories.forEach(history => {
98
- const user = EnvelopeStore.envelope.recipients.find(recipient => recipient.role_name === history.role_name);
100
+ const user = this.envelope.recipients.find(recipient => recipient.role_name === history.role_name);
99
101
  const name = (user === null || user === void 0 ? void 0 : user.full_name) || '';
100
102
  switch (history.event.toLowerCase()) {
101
103
  case 'recipient:signed':
@@ -199,15 +201,15 @@ export class VerdocsEnvelopeSidebar {
199
201
  }
200
202
  render() {
201
203
  var _a, _b, _c;
202
- if (!EnvelopeStore.envelope) {
204
+ if (!this.envelope) {
203
205
  return h(Host, null);
204
206
  }
205
207
  const session = this.endpoint.getSession();
206
- const isEnvelopeOwner = session.profile_id === EnvelopeStore.envelope.profile_id; // TODO: What about org admins?
208
+ const isEnvelopeOwner = session.profile_id === this.envelope.profile_id; // TODO: What about org admins?
207
209
  const historyEntries = this.prepareHistoryEntries();
208
- return (h(Host, { class: this.panelOpen ? 'open' : '', "data-r": EnvelopeStore.updateCount }, h("div", { class: "buttons" }, h("button", { class: this.activeTab === 1 ? 'active' : '', onClick: () => this.setTab(1), innerHTML: InformationCircle }), h("button", { class: this.activeTab === 2 ? 'active' : '', onClick: () => this.setTab(2), innerHTML: Users }), h("button", { class: this.activeTab === 3 ? 'active' : '', onClick: () => this.setTab(3), innerHTML: ClipboardDocuments })), this.activeTab === 1 && (h("div", { class: "content" }, h("div", { class: "title" }, "Details"), h("div", { class: "label" }, "Envelope ID"), h("div", { class: "value" }, EnvelopeStore.envelope.id), h("div", { class: "label" }, "Date Created"), h("div", { class: "value" }, format(new Date(EnvelopeStore.envelope.created_at), 'PP pp')), h("div", { class: "label" }, "Last Modified"), h("div", { class: "value" }, format(new Date(EnvelopeStore.envelope.updated_at), 'PP pp')), h("div", { class: "label" }, "Status"), h("div", { class: "value" }, EnvelopeStore.envelope.status), h("div", { class: "label" }, "Verdoc Owner ID"), h("div", { class: "value" }, EnvelopeStore.envelope.profile_id), h("div", { class: "label" }, "Verdoc Owner Name"), h("div", { class: "value" }, (_a = EnvelopeStore.envelope.profile) === null || _a === void 0 ? void 0 :
209
- _a.first_name, " ", (_b = EnvelopeStore.envelope.profile) === null || _b === void 0 ? void 0 :
210
- _b.last_name), h("div", { class: "label" }, "Verdoc Owner Email"), h("div", { class: "value" }, (_c = EnvelopeStore.envelope.profile) === null || _c === void 0 ? void 0 : _c.email))), this.activeTab === 2 && (h("div", { class: "content" }, h("div", { class: "title" }, "Recipients"), EnvelopeStore.envelope.recipients.map((recipient, index) => (h("div", { class: "recipient-detail" }, h("div", { class: "recipient-header" }, h("div", { class: "recipient-number" }, index + 1), h("div", { class: "recipient-type" }, recipient.type), h("div", { class: { 'recipient-status': true, [recipient.status]: true } }, recipient.status), isEnvelopeOwner && (h("verdocs-dropdown", { onOptionSelected: item => this.handleRecipientAction(recipient, item.detail.id), options: [
210
+ return (h(Host, { class: this.panelOpen ? 'open' : '' }, h("div", { class: "buttons" }, h("button", { class: this.activeTab === 1 ? 'active' : '', onClick: () => this.setTab(1), innerHTML: InformationCircle }), h("button", { class: this.activeTab === 2 ? 'active' : '', onClick: () => this.setTab(2), innerHTML: Users }), h("button", { class: this.activeTab === 3 ? 'active' : '', onClick: () => this.setTab(3), innerHTML: ClipboardDocuments })), this.activeTab === 1 && (h("div", { class: "content" }, h("div", { class: "title" }, "Details"), h("div", { class: "label" }, "Envelope ID"), h("div", { class: "value" }, this.envelope.id), h("div", { class: "label" }, "Date Created"), h("div", { class: "value" }, format(new Date(this.envelope.created_at), 'PP pp')), h("div", { class: "label" }, "Last Modified"), h("div", { class: "value" }, format(new Date(this.envelope.updated_at), 'PP pp')), h("div", { class: "label" }, "Status"), h("div", { class: "value" }, this.envelope.status), h("div", { class: "label" }, "Verdoc Owner ID"), h("div", { class: "value" }, this.envelope.profile_id), h("div", { class: "label" }, "Verdoc Owner Name"), h("div", { class: "value" }, (_a = this.envelope.profile) === null || _a === void 0 ? void 0 :
211
+ _a.first_name, " ", (_b = this.envelope.profile) === null || _b === void 0 ? void 0 :
212
+ _b.last_name), h("div", { class: "label" }, "Verdoc Owner Email"), h("div", { class: "value" }, (_c = this.envelope.profile) === null || _c === void 0 ? void 0 : _c.email))), this.activeTab === 2 && (h("div", { class: "content" }, h("div", { class: "title" }, "Recipients"), this.envelope.recipients.map((recipient, index) => (h("div", { class: "recipient-detail" }, h("div", { class: "recipient-header" }, h("div", { class: "recipient-number" }, index + 1), h("div", { class: "recipient-type" }, recipient.type), h("div", { class: { 'recipient-status': true, [recipient.status]: true } }, recipient.status), isEnvelopeOwner && (h("verdocs-dropdown", { onOptionSelected: item => this.handleRecipientAction(recipient, item.detail.id), options: [
211
213
  { id: 'reminder', label: 'Send Reminder', disabled: !this.canResendRecipient(recipient) },
212
214
  { id: 'modify', label: 'Modify Recipient', disabled: !this.canModifyRecipient(recipient) },
213
215
  { id: 'inperson', label: 'Get In-Person Link', disabled: !this.canModifyRecipient(recipient) || !['invited', 'opened'].includes(recipient.status) },
@@ -271,6 +273,8 @@ export class VerdocsEnvelopeSidebar {
271
273
  }
272
274
  static get states() {
273
275
  return {
276
+ "envelope": {},
277
+ "roleNames": {},
274
278
  "activeTab": {},
275
279
  "panelOpen": {}
276
280
  };
@@ -1,15 +1,13 @@
1
1
  import { VerdocsEndpoint } from '@verdocs/js-sdk';
2
2
  import { Envelopes } from '@verdocs/js-sdk/Envelopes';
3
3
  import { createInitials } from '@verdocs/js-sdk/Envelopes/Initials';
4
- import { createSignature } from '@verdocs/js-sdk/Envelopes/Signatures';
5
4
  import { fullNameToInitials } from '@verdocs/js-sdk/Utils/Primitives';
5
+ import { createSignature } from '@verdocs/js-sdk/Envelopes/Signatures';
6
6
  import { isValidEmail, isValidPhone } from '@verdocs/js-sdk/Templates/Validators';
7
7
  import { Host, Fragment, h } from '@stencil/core';
8
- import { updateEnvelopeFieldInitials, updateEnvelopeFieldSignature } from '@verdocs/js-sdk/Envelopes/Envelopes';
9
8
  import { envelopeRecipientAgree, envelopeRecipientDecline, envelopeRecipientSubmit } from '@verdocs/js-sdk/Envelopes/Recipients';
9
+ import { throttledGetEnvelope, updateEnvelopeFieldInitials, updateEnvelopeFieldSignature } from '@verdocs/js-sdk/Envelopes/Envelopes';
10
10
  import { getFieldId, getRoleIndex, renderDocumentField, saveAttachment, updateDocumentFieldValue } from '../../../utils/utils';
11
- import { getEnvelopeById } from '../../../utils/Envelopes';
12
- import EnvelopeStore from '../../../utils/envelopeStore';
13
11
  import { SDKError } from '../../../utils/errors';
14
12
  const inProgressMenuOptions = [
15
13
  { id: 'later', label: 'Finish Later' },
@@ -47,6 +45,8 @@ export class VerdocsSign {
47
45
  this.roleId = null;
48
46
  this.inviteCode = null;
49
47
  this.headerTargetId = null;
48
+ this.envelope = null;
49
+ this.roleNames = [];
50
50
  this.recipient = null;
51
51
  this.signerToken = null;
52
52
  this.hasSignature = false;
@@ -93,24 +93,25 @@ export class VerdocsSign {
93
93
  if (this.agreed) {
94
94
  this.nextButtonLabel = 'Next';
95
95
  }
96
- await getEnvelopeById(this.endpoint, this.envelopeId, true);
97
- if (EnvelopeStore.envelope.documents.length > 0) {
96
+ this.envelope = await throttledGetEnvelope(this.endpoint, this.envelopeId);
97
+ this.roleNames = this.envelope.recipients.map(r => r.role_name);
98
+ if (this.envelope.documents.length > 0) {
98
99
  this.documentsSingularPlural = 'document(s)';
99
100
  }
100
- this.recipientIndex = EnvelopeStore.envelope.recipients.findIndex(recipient => recipient.role_name == this.roleId);
101
+ this.recipientIndex = this.envelope.recipients.findIndex(recipient => recipient.role_name == this.roleId);
101
102
  if (this.recipientIndex > -1) {
102
- this.recipient = EnvelopeStore.envelope.recipients[this.recipientIndex];
103
+ this.recipient = this.envelope.recipients[this.recipientIndex];
103
104
  this.agreed = this.recipient.agreed;
104
105
  console.log('[SIGN] Found our recipient in the envelope', this.recipientIndex, this.recipient);
105
106
  }
106
107
  else {
107
- console.log('[SIGN] Could not find our recipient record', this.roleId, EnvelopeStore.envelope.recipients);
108
+ console.log('[SIGN] Could not find our recipient record', this.roleId, this.envelope.recipients);
108
109
  }
109
110
  this.isDone = ['submitted', 'canceled', 'declined'].includes(this.recipient.status);
110
111
  // TODO: Fix service to allow this?
111
112
  // const sigs = await getSignatures();
112
113
  // console.log('sigs', sigs);
113
- (_d = this.envelopeLoaded) === null || _d === void 0 ? void 0 : _d.emit({ endpoint: this.endpoint, envelope: EnvelopeStore.envelope });
114
+ (_d = this.envelopeLoaded) === null || _d === void 0 ? void 0 : _d.emit({ endpoint: this.endpoint, envelope: this.envelope });
114
115
  }
115
116
  catch (e) {
116
117
  console.log('Error with signing session', e);
@@ -132,7 +133,7 @@ export class VerdocsSign {
132
133
  var _a;
133
134
  this.nextButtonLabel = 'Next';
134
135
  this.agreed = true; // The server returns a recipient object but it's not "deep" so we track this locally
135
- (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: EnvelopeStore.envelope, event: 'agreed' });
136
+ (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'agreed' });
136
137
  })
137
138
  .catch(e => {
138
139
  var _a, _b, _c;
@@ -146,29 +147,29 @@ export class VerdocsSign {
146
147
  case 'later':
147
148
  this.finishLater = true;
148
149
  this.showFinishLater = true;
149
- (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: EnvelopeStore.envelope, event: 'later' });
150
+ (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'later' });
150
151
  break;
151
152
  case 'claim':
152
153
  window.alert('This feature will be available in an upcoming release.');
153
- (_b = this.envelopeUpdated) === null || _b === void 0 ? void 0 : _b.emit({ endpoint: this.endpoint, envelope: EnvelopeStore.envelope, event: 'claimed' });
154
+ (_b = this.envelopeUpdated) === null || _b === void 0 ? void 0 : _b.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'claimed' });
154
155
  break;
155
156
  case 'decline':
156
157
  {
157
158
  const declineResult = await envelopeRecipientDecline(this.endpoint, this.envelopeId, this.roleId);
158
159
  console.log('Decline result', declineResult);
159
- (_c = this.envelopeUpdated) === null || _c === void 0 ? void 0 : _c.emit({ endpoint: this.endpoint, envelope: EnvelopeStore.envelope, event: 'declined' });
160
+ (_c = this.envelopeUpdated) === null || _c === void 0 ? void 0 : _c.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'declined' });
160
161
  this.isDone = true;
161
162
  }
162
163
  break;
163
164
  case 'print':
164
165
  window.print();
165
- (_d = this.envelopeUpdated) === null || _d === void 0 ? void 0 : _d.emit({ endpoint: this.endpoint, envelope: EnvelopeStore.envelope, event: 'printed' });
166
+ (_d = this.envelopeUpdated) === null || _d === void 0 ? void 0 : _d.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'printed' });
166
167
  break;
167
168
  case 'download':
168
- saveAttachment(this.endpoint, EnvelopeStore.envelope, EnvelopeStore.envelope.envelope_document_id).catch(e => {
169
+ saveAttachment(this.endpoint, this.envelope, this.envelope.envelope_document_id).catch(e => {
169
170
  console.log('Error downloading PDF', e);
170
171
  });
171
- (_e = this.envelopeUpdated) === null || _e === void 0 ? void 0 : _e.emit({ endpoint: this.endpoint, envelope: EnvelopeStore.envelope, event: 'downloaded' });
172
+ (_e = this.envelopeUpdated) === null || _e === void 0 ? void 0 : _e.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'downloaded' });
172
173
  break;
173
174
  }
174
175
  }
@@ -347,7 +348,7 @@ export class VerdocsSign {
347
348
  }
348
349
  handlePageRendered(e) {
349
350
  const pageInfo = e.detail;
350
- const roleIndex = getRoleIndex(EnvelopeStore.roleNames, this.recipient.role_name);
351
+ const roleIndex = getRoleIndex(this.roleNames, this.recipient.role_name);
351
352
  const recipientFields = this.recipient.fields.filter(field => field.page === pageInfo.pageNumber);
352
353
  console.log('[SIGN] Page rendered, updating fields', { pageInfo, roleIndex, recipientFields });
353
354
  recipientFields.forEach(field => {
@@ -387,10 +388,10 @@ export class VerdocsSign {
387
388
  // });
388
389
  });
389
390
  // Render fields for "the other" recipients
390
- EnvelopeStore.envelope.recipients
391
+ this.envelope.recipients
391
392
  .filter(recipient => recipient.role_name !== this.recipient.role_name)
392
393
  .forEach(otherRecipient => {
393
- const otherRoleIndex = getRoleIndex(EnvelopeStore.roleNames, otherRecipient.role_name);
394
+ const otherRoleIndex = getRoleIndex(this.roleNames, otherRecipient.role_name);
394
395
  const recipientFields = otherRecipient.fields.filter(field => field.page === pageInfo.pageNumber);
395
396
  // We don't render other recipients' fields if they've already acted, because those values are now stamped into the document page.
396
397
  // TODO: Do we want to render alternate treatments for recipients who have declined (red boxes?) and/or if the envelope is cancelled?
@@ -421,13 +422,13 @@ export class VerdocsSign {
421
422
  this.checkRecipientFields();
422
423
  }
423
424
  render() {
424
- if (EnvelopeStore.loading || !EnvelopeStore.envelope) {
425
+ if (!this.envelope) {
425
426
  return (h(Host, null, h("verdocs-loader", null)));
426
427
  }
427
428
  if (this.isDone) {
428
- return (h(Host, { class: { agreed: this.agreed }, "data-r": EnvelopeStore.updateCount }, this.isDone ? (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("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); } })), this.errorMessage && h("verdocs-ok-dialog", { heading: "Network Error", message: this.errorMessage, onNext: () => (this.errorMessage = '') })));
429
+ return (h(Host, { class: { agreed: this.agreed } }, this.isDone ? (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("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); } })), this.errorMessage && h("verdocs-ok-dialog", { heading: "Network Error", message: this.errorMessage, onNext: () => (this.errorMessage = '') })));
429
430
  }
430
- return (h(Host, { class: { agreed: this.agreed }, "data-r": EnvelopeStore.updateCount }, !this.finishLater && h("div", { class: "intro" }, "Please review and act on these documents."), h("div", { id: "verdocs-sign-header" }, !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" }, EnvelopeStore.envelope.name), h("div", { style: { flex: '1' } }))), !this.finishLater && h("verdocs-button", { size: "small", label: this.nextButtonLabel, disabled: !this.agreed, onClick: () => this.handleNext() }), h("div", { style: { marginLeft: '10px' } }), h("verdocs-dropdown", { options: !this.isDone && !this.finishLater ? inProgressMenuOptions : doneMenuOptions, onOptionSelected: e => this.handleOptionSelected(e) })), !this.agreed ? h("div", { class: "cover" }) : h("div", { style: { display: 'none' } }), h("div", { class: "document", style: { paddingTop: this.headerTargetId ? '15px' : '70px' } }, (EnvelopeStore.envelope.documents || []).map(envelopeDocument => {
431
+ return (h(Host, { class: { agreed: this.agreed } }, !this.finishLater && h("div", { class: "intro" }, "Please review and act on these documents."), h("div", { id: "verdocs-sign-header" }, !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" }, this.envelope.name), h("div", { style: { flex: '1' } }))), !this.finishLater && h("verdocs-button", { size: "small", label: this.nextButtonLabel, disabled: !this.agreed, onClick: () => this.handleNext() }), h("div", { style: { marginLeft: '10px' } }), h("verdocs-dropdown", { options: !this.isDone && !this.finishLater ? inProgressMenuOptions : doneMenuOptions, onOptionSelected: e => this.handleOptionSelected(e) })), !this.agreed ? h("div", { class: "cover" }) : h("div", { style: { display: 'none' } }), h("div", { class: "document", style: { paddingTop: this.headerTargetId ? '70px' : '15px' } }, (this.envelope.documents || []).map(envelopeDocument => {
431
432
  const pages = [...((envelopeDocument === null || envelopeDocument === void 0 ? void 0 : envelopeDocument.pages) || [])];
432
433
  pages.sort((a, b) => a.sequence - b.sequence);
433
434
  return (h(Fragment, null, pages.map(page => {
@@ -535,6 +536,8 @@ export class VerdocsSign {
535
536
  }
536
537
  static get states() {
537
538
  return {
539
+ "envelope": {},
540
+ "roleNames": {},
538
541
  "recipient": {},
539
542
  "signerToken": {},
540
543
  "hasSignature": {},
@@ -1,10 +1,8 @@
1
1
  import { VerdocsEndpoint } from '@verdocs/js-sdk';
2
- import { cancelEnvelope } from '@verdocs/js-sdk/Envelopes/Envelopes';
2
+ import { cancelEnvelope, throttledGetEnvelope } from '@verdocs/js-sdk/Envelopes/Envelopes';
3
3
  import { userCanCancelEnvelope } from '@verdocs/js-sdk/Envelopes/Permissions';
4
4
  import { h, Host, Fragment } from '@stencil/core';
5
5
  import { saveAttachment, saveCertificate, saveEnvelopesAsZip } from '../../../utils/utils';
6
- import { getEnvelopeById } from '../../../utils/Envelopes';
7
- import EnvelopeStore from '../../../utils/envelopeStore';
8
6
  import { SDKError } from '../../../utils/errors';
9
7
  /**
10
8
  * Render the documents attached to an envelope in read-only (view) mode. All documents are displayed in order.
@@ -15,6 +13,8 @@ export class VerdocsView {
15
13
  this.envelopeId = '';
16
14
  this.headerTargetId = null;
17
15
  this.isProcessing = false;
16
+ this.envelope = null;
17
+ this.roleNames = [];
18
18
  }
19
19
  componentWillLoad() {
20
20
  this.endpoint.loadSession();
@@ -41,8 +41,9 @@ export class VerdocsView {
41
41
  var _a, _b, _c;
42
42
  console.log('[VIEW] Checking for updated envelope');
43
43
  try {
44
- await getEnvelopeById(this.endpoint, this.envelopeId, true);
45
- this.isProcessing = EnvelopeStore.envelope.documents.some(document => document.type === 'attachment' && !document.processed);
44
+ this.envelope = await throttledGetEnvelope(this.endpoint, this.envelopeId);
45
+ this.roleNames = this.envelope.recipients.map(r => r.role_name);
46
+ this.isProcessing = this.envelope.documents.some(document => document.type === 'attachment' && !document.processed);
46
47
  if (this.isProcessing) {
47
48
  setTimeout(() => this.reloadEnvelope(), 3000);
48
49
  }
@@ -62,38 +63,38 @@ export class VerdocsView {
62
63
  // TODO: Better option for inline-flow confirmation and alert dialogs.
63
64
  if (confirm('Are you sure you wish to cancel this envelope? This action cannot be undone.')) {
64
65
  await cancelEnvelope(this.endpoint, this.envelopeId);
65
- (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: EnvelopeStore.envelope, event: 'canceled' });
66
+ (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'canceled' });
66
67
  }
67
68
  break;
68
69
  case 'print':
69
70
  window.print();
70
- (_b = this.envelopeUpdated) === null || _b === void 0 ? void 0 : _b.emit({ endpoint: this.endpoint, envelope: EnvelopeStore.envelope, event: 'printed' });
71
+ (_b = this.envelopeUpdated) === null || _b === void 0 ? void 0 : _b.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'printed' });
71
72
  break;
72
73
  case 'download-attachments':
73
- saveAttachment(this.endpoint, EnvelopeStore.envelope, EnvelopeStore.envelope.envelope_document_id)
74
+ saveAttachment(this.endpoint, this.envelope, this.envelope.envelope_document_id)
74
75
  .then(() => {
75
76
  var _a;
76
- (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: EnvelopeStore.envelope, event: 'downloaded' });
77
+ (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'downloaded' });
77
78
  })
78
79
  .catch(e => {
79
80
  console.log('Error downloading PDF', e);
80
81
  });
81
82
  break;
82
83
  case 'download-certificate':
83
- saveCertificate(this.endpoint, EnvelopeStore.envelope, EnvelopeStore.envelope.certificate_document_id)
84
+ saveCertificate(this.endpoint, this.envelope, this.envelope.certificate_document_id)
84
85
  .then(() => {
85
86
  var _a;
86
- (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: EnvelopeStore.envelope, event: 'downloaded' });
87
+ (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'downloaded' });
87
88
  })
88
89
  .catch(e => {
89
90
  console.log('Error downloading PDF', e);
90
91
  });
91
92
  break;
92
93
  case 'download-all':
93
- saveEnvelopesAsZip(this.endpoint, [EnvelopeStore.envelope])
94
+ saveEnvelopesAsZip(this.endpoint, [this.envelope])
94
95
  .then(() => {
95
96
  var _a;
96
- (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: EnvelopeStore.envelope, event: 'downloaded' });
97
+ (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'downloaded' });
97
98
  })
98
99
  .catch(e => {
99
100
  console.log('Error downloading Zip', e);
@@ -103,19 +104,17 @@ export class VerdocsView {
103
104
  }
104
105
  render() {
105
106
  var _a;
106
- if (EnvelopeStore.loading || !EnvelopeStore.envelope) {
107
+ if (!this.envelope) {
108
+ console.log('rendering, no env');
107
109
  return (h(Host, null, h("verdocs-loader", null)));
108
110
  }
109
- if (EnvelopeStore.error) {
110
- return (h(Host, null, h("div", null, EnvelopeStore.error)));
111
- }
112
111
  const menuOptions = [{ id: 'print', label: 'Print' }];
113
- if (userCanCancelEnvelope(this.endpoint.session, EnvelopeStore.envelope)) {
112
+ if (userCanCancelEnvelope(this.endpoint.session, this.envelope)) {
114
113
  menuOptions.push({ id: 'cancel', label: 'Cancel' });
115
114
  }
116
115
  // Add download options to the menu
117
- const hasAttachments = EnvelopeStore.envelope.documents.length > 0;
118
- const hasCertificate = !!EnvelopeStore.envelope.certificate;
116
+ const hasAttachments = this.envelope.documents.length > 0;
117
+ const hasCertificate = !!this.envelope.certificate;
119
118
  if (hasAttachments || hasCertificate) {
120
119
  menuOptions.push({ label: '' });
121
120
  if (hasAttachments) {
@@ -128,10 +127,11 @@ export class VerdocsView {
128
127
  menuOptions.push({ id: 'download-all', label: 'Download All Files' });
129
128
  }
130
129
  }
131
- return (h(Host, { "data-r": EnvelopeStore.updateCount }, h("div", { id: "verdocs-view-header" }, h(Fragment, null, h("img", { src: "https://verdocs.com/assets/white-logo.svg", alt: "Verdocs Logo", class: "logo" }), h("div", { class: "title" }, EnvelopeStore.envelope.name), h("div", { style: { flex: '1' } }), h("div", { style: { marginLeft: '10px' } }), h("verdocs-dropdown", { options: menuOptions, onOptionSelected: e => this.handleOptionSelected(e) }))), h("div", { class: "document", style: { paddingTop: this.headerTargetId ? '15px' : '70px' } }, (((_a = EnvelopeStore.envelope) === null || _a === void 0 ? void 0 : _a.documents) || [])
130
+ console.log('docs', this.envelope, this.envelope.documents);
131
+ return (h(Host, null, h("div", { id: "verdocs-view-header" }, h(Fragment, null, h("img", { src: "https://verdocs.com/assets/white-logo.svg", alt: "Verdocs Logo", class: "logo" }), h("div", { class: "title" }, this.envelope.name), h("div", { style: { flex: '1' } }), h("div", { style: { marginLeft: '10px' } }), h("verdocs-dropdown", { options: menuOptions, onOptionSelected: e => this.handleOptionSelected(e) }))), h("div", { class: "document", style: { paddingTop: this.headerTargetId ? '70px' : '15px' } }, (((_a = this.envelope) === null || _a === void 0 ? void 0 : _a.documents) || [])
132
132
  .filter(document => document.type !== 'certificate')
133
133
  .map(envelopeDocument => {
134
- console.log('[VIEW] Rendering document', EnvelopeStore.envelope, envelopeDocument);
134
+ console.log('[VIEW] Rendering document', this.envelope, envelopeDocument);
135
135
  const pages = [...((envelopeDocument === null || envelopeDocument === void 0 ? void 0 : envelopeDocument.pages) || [])];
136
136
  pages.sort((a, b) => a.sequence - b.sequence);
137
137
  if (!envelopeDocument.processed) {
@@ -217,7 +217,9 @@ export class VerdocsView {
217
217
  }
218
218
  static get states() {
219
219
  return {
220
- "isProcessing": {}
220
+ "isProcessing": {},
221
+ "envelope": {},
222
+ "roleNames": {}
221
223
  };
222
224
  }
223
225
  static get events() {
@@ -135,5 +135,20 @@ var getFieldAttachment = function (endpoint, envelopeId, fieldName) { return __a
135
135
  var getEnvelopeDocumentPageDisplayUri = function (endpoint, envelopeId, documentId, page) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
136
136
  return [2 /*return*/, endpoint.api.get("/envelopes/".concat(envelopeId, "/envelope_documents/").concat(documentId, "/pages/").concat(page, "/image")).then(function (r) { return r.data; })];
137
137
  }); }); };
138
+ var cachedEnvelopes = {};
139
+ /**
140
+ * Wrapper for `getEnvelope()` that limits queries to one every 2 seconds per template ID.
141
+ * This is intended for use in component hierarchies that all rely on the same template
142
+ * to avoid unnecessary repeat server calls.
143
+ */
144
+ var throttledGetEnvelope = function (endpoint, envelopeId) {
145
+ if (cachedEnvelopes[envelopeId] && cachedEnvelopes[envelopeId].loaded + 2000 < new Date().getTime()) {
146
+ return cachedEnvelopes[envelopeId].envelope;
147
+ }
148
+ return getEnvelope(endpoint, envelopeId, true).then(function (envelope) {
149
+ cachedEnvelopes[envelopeId] = { loaded: new Date().getTime(), envelope: envelope };
150
+ return envelope;
151
+ });
152
+ };
138
153
 
139
- export { updateEnvelopeFieldSignature as a, updateEnvelopeFieldInitials as b, getEnvelopeDocumentPageDisplayUri as c, cancelEnvelope as d, getEnvelopeFile as e, getFieldAttachment as f, getSigningSession as g, getEnvelope as h, updateEnvelopeField as u };
154
+ export { updateEnvelopeFieldSignature as a, updateEnvelopeFieldInitials as b, getEnvelopeDocumentPageDisplayUri as c, cancelEnvelope as d, getEnvelopeFile as e, getFieldAttachment as f, getSigningSession as g, throttledGetEnvelope as t, updateEnvelopeField as u };
@@ -1,6 +1,197 @@
1
- import { c as createStore } from './index3.js';
1
+ import { getRenderingRef, forceUpdate } from '@stencil/core/internal/client';
2
2
  import { i as integerSequence } from './Primitives.js';
3
3
 
4
+ const appendToMap = (map, propName, value) => {
5
+ const items = map.get(propName);
6
+ if (!items) {
7
+ map.set(propName, [value]);
8
+ }
9
+ else if (!items.includes(value)) {
10
+ items.push(value);
11
+ }
12
+ };
13
+ const debounce = (fn, ms) => {
14
+ let timeoutId;
15
+ return (...args) => {
16
+ if (timeoutId) {
17
+ clearTimeout(timeoutId);
18
+ }
19
+ timeoutId = setTimeout(() => {
20
+ timeoutId = 0;
21
+ fn(...args);
22
+ }, ms);
23
+ };
24
+ };
25
+
26
+ /**
27
+ * Check if a possible element isConnected.
28
+ * The property might not be there, so we check for it.
29
+ *
30
+ * We want it to return true if isConnected is not a property,
31
+ * otherwise we would remove these elements and would not update.
32
+ *
33
+ * Better leak in Edge than to be useless.
34
+ */
35
+ const isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;
36
+ const cleanupElements = debounce((map) => {
37
+ for (let key of map.keys()) {
38
+ map.set(key, map.get(key).filter(isConnected));
39
+ }
40
+ }, 2000);
41
+ const stencilSubscription = () => {
42
+ if (typeof getRenderingRef !== 'function') {
43
+ // If we are not in a stencil project, we do nothing.
44
+ // This function is not really exported by @stencil/core.
45
+ return {};
46
+ }
47
+ const elmsToUpdate = new Map();
48
+ return {
49
+ dispose: () => elmsToUpdate.clear(),
50
+ get: (propName) => {
51
+ const elm = getRenderingRef();
52
+ if (elm) {
53
+ appendToMap(elmsToUpdate, propName, elm);
54
+ }
55
+ },
56
+ set: (propName) => {
57
+ const elements = elmsToUpdate.get(propName);
58
+ if (elements) {
59
+ elmsToUpdate.set(propName, elements.filter(forceUpdate));
60
+ }
61
+ cleanupElements(elmsToUpdate);
62
+ },
63
+ reset: () => {
64
+ elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));
65
+ cleanupElements(elmsToUpdate);
66
+ },
67
+ };
68
+ };
69
+
70
+ const unwrap = (val) => (typeof val === 'function' ? val() : val);
71
+ const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {
72
+ const unwrappedState = unwrap(defaultState);
73
+ let states = new Map(Object.entries(unwrappedState !== null && unwrappedState !== void 0 ? unwrappedState : {}));
74
+ const handlers = {
75
+ dispose: [],
76
+ get: [],
77
+ set: [],
78
+ reset: [],
79
+ };
80
+ const reset = () => {
81
+ var _a;
82
+ // When resetting the state, the default state may be a function - unwrap it to invoke it.
83
+ // otherwise, the state won't be properly reset
84
+ states = new Map(Object.entries((_a = unwrap(defaultState)) !== null && _a !== void 0 ? _a : {}));
85
+ handlers.reset.forEach((cb) => cb());
86
+ };
87
+ const dispose = () => {
88
+ // Call first dispose as resetting the state would
89
+ // cause less updates ;)
90
+ handlers.dispose.forEach((cb) => cb());
91
+ reset();
92
+ };
93
+ const get = (propName) => {
94
+ handlers.get.forEach((cb) => cb(propName));
95
+ return states.get(propName);
96
+ };
97
+ const set = (propName, value) => {
98
+ const oldValue = states.get(propName);
99
+ if (shouldUpdate(value, oldValue, propName)) {
100
+ states.set(propName, value);
101
+ handlers.set.forEach((cb) => cb(propName, value, oldValue));
102
+ }
103
+ };
104
+ const state = (typeof Proxy === 'undefined'
105
+ ? {}
106
+ : new Proxy(unwrappedState, {
107
+ get(_, propName) {
108
+ return get(propName);
109
+ },
110
+ ownKeys(_) {
111
+ return Array.from(states.keys());
112
+ },
113
+ getOwnPropertyDescriptor() {
114
+ return {
115
+ enumerable: true,
116
+ configurable: true,
117
+ };
118
+ },
119
+ has(_, propName) {
120
+ return states.has(propName);
121
+ },
122
+ set(_, propName, value) {
123
+ set(propName, value);
124
+ return true;
125
+ },
126
+ }));
127
+ const on = (eventName, callback) => {
128
+ handlers[eventName].push(callback);
129
+ return () => {
130
+ removeFromArray(handlers[eventName], callback);
131
+ };
132
+ };
133
+ const onChange = (propName, cb) => {
134
+ const unSet = on('set', (key, newValue) => {
135
+ if (key === propName) {
136
+ cb(newValue);
137
+ }
138
+ });
139
+ // We need to unwrap the defaultState because it might be a function.
140
+ // Otherwise we might not be sending the right reset value.
141
+ const unReset = on('reset', () => cb(unwrap(defaultState)[propName]));
142
+ return () => {
143
+ unSet();
144
+ unReset();
145
+ };
146
+ };
147
+ const use = (...subscriptions) => {
148
+ const unsubs = subscriptions.reduce((unsubs, subscription) => {
149
+ if (subscription.set) {
150
+ unsubs.push(on('set', subscription.set));
151
+ }
152
+ if (subscription.get) {
153
+ unsubs.push(on('get', subscription.get));
154
+ }
155
+ if (subscription.reset) {
156
+ unsubs.push(on('reset', subscription.reset));
157
+ }
158
+ if (subscription.dispose) {
159
+ unsubs.push(on('dispose', subscription.dispose));
160
+ }
161
+ return unsubs;
162
+ }, []);
163
+ return () => unsubs.forEach((unsub) => unsub());
164
+ };
165
+ const forceUpdate = (key) => {
166
+ const oldValue = states.get(key);
167
+ handlers.set.forEach((cb) => cb(key, oldValue, oldValue));
168
+ };
169
+ return {
170
+ state,
171
+ get,
172
+ set,
173
+ on,
174
+ onChange,
175
+ use,
176
+ dispose,
177
+ reset,
178
+ forceUpdate,
179
+ };
180
+ };
181
+ const removeFromArray = (array, item) => {
182
+ const index = array.indexOf(item);
183
+ if (index >= 0) {
184
+ array[index] = array[array.length - 1];
185
+ array.length--;
186
+ }
187
+ };
188
+
189
+ const createStore = (defaultState, shouldUpdate) => {
190
+ const map = createObservableMap(defaultState, shouldUpdate);
191
+ map.use(stencilSubscription());
192
+ return map;
193
+ };
194
+
4
195
  // NOTE: Do not attempt to convert this to a named-export module. It triggers compilation issues in Rollup that I spent days trying to
5
196
  const { state, onChange } = createStore({
6
197
  templateId: '',