@verdocs/web-sdk 1.12.21 → 1.12.23

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 (268) 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 +7 -7
  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 +5 -6
  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-sign/verdocs-sign.stories.js +6 -6
  39. package/dist/collection/components/embeds/verdocs-view/verdocs-view.js +25 -23
  40. package/dist/collection/components/embeds/verdocs-view/verdocs-view.stories.js +2 -2
  41. package/dist/collection/components/fields/verdocs-field-textbox/verdocs-field-textbox.js +1 -1
  42. package/dist/collection/components/templates/verdocs-template-field-properties/verdocs-template-field-properties.js +23 -4
  43. package/dist/components/Envelopes.js +16 -1
  44. package/dist/components/templateStore.js +192 -1
  45. package/dist/components/verdocs-envelope-sidebar.js +23 -18
  46. package/dist/components/verdocs-field-textbox.js +1 -1
  47. package/dist/components/verdocs-sign.js +25 -21
  48. package/dist/components/verdocs-template-field-properties2.js +6 -4
  49. package/dist/components/verdocs-view2.js +25 -22
  50. package/dist/custom-elements.json +4 -0
  51. package/dist/docs.json +18 -1
  52. package/dist/esm/{Envelopes-16f09341.js → Envelopes-c36c692e.js} +16 -1
  53. package/dist/esm/{Templates-d66ec625.js → Templates-deedf4bd.js} +1 -1
  54. package/dist/esm/{interact.min-1e2f37ab.js → interact.min-da238961.js} +1 -1
  55. package/dist/esm/loader.js +1 -1
  56. package/dist/esm/{index-85f4a40f.js → templateStore-17c872da.js} +45 -1
  57. package/dist/esm/{utils-bca7b101.js → utils-1d934f99.js} +1 -1
  58. package/dist/esm/verdocs-build.entry.js +2 -3
  59. package/dist/esm/verdocs-button-panel_3.entry.js +7 -7
  60. package/dist/esm/verdocs-dropdown_2.entry.js +2 -2
  61. package/dist/esm/verdocs-envelope-sidebar.entry.js +21 -20
  62. package/dist/esm/verdocs-field-attachment.entry.js +1 -2
  63. package/dist/esm/verdocs-field-checkbox.entry.js +3 -4
  64. package/dist/esm/verdocs-field-date.entry.js +3 -4
  65. package/dist/esm/verdocs-field-dropdown.entry.js +3 -4
  66. package/dist/esm/verdocs-field-initial.entry.js +3 -4
  67. package/dist/esm/verdocs-field-payment.entry.js +3 -4
  68. package/dist/esm/verdocs-field-radio-button.entry.js +3 -4
  69. package/dist/esm/verdocs-field-signature.entry.js +3 -4
  70. package/dist/esm/verdocs-field-textarea.entry.js +3 -4
  71. package/dist/esm/verdocs-field-textbox.entry.js +5 -6
  72. package/dist/esm/verdocs-field-timestamp.entry.js +3 -4
  73. package/dist/esm/verdocs-preview.entry.js +4 -5
  74. package/dist/esm/verdocs-send.entry.js +4 -5
  75. package/dist/esm/verdocs-sign.entry.js +24 -23
  76. package/dist/esm/verdocs-template-attachments.entry.js +2 -3
  77. package/dist/esm/verdocs-template-create_2.entry.js +5 -6
  78. package/dist/esm/verdocs-template-document-page.entry.js +2 -2
  79. package/dist/esm/verdocs-template-name.entry.js +2 -3
  80. package/dist/esm/verdocs-template-properties.entry.js +1 -2
  81. package/dist/esm/verdocs-template-reminders.entry.js +2 -3
  82. package/dist/esm/verdocs-template-role-properties_2.entry.js +2 -3
  83. package/dist/esm/verdocs-template-roles.entry.js +5 -6
  84. package/dist/esm/verdocs-template-visibility.entry.js +2 -3
  85. package/dist/esm/verdocs-view.entry.js +23 -23
  86. package/dist/esm/verdocs-web-sdk.js +1 -1
  87. package/dist/esm-es5/{Envelopes-16f09341.js → Envelopes-c36c692e.js} +1 -1
  88. package/dist/esm-es5/{Templates-d66ec625.js → Templates-deedf4bd.js} +1 -1
  89. package/dist/esm-es5/{interact.min-1e2f37ab.js → interact.min-da238961.js} +1 -1
  90. package/dist/esm-es5/loader.js +1 -1
  91. package/dist/esm-es5/templateStore-17c872da.js +1 -0
  92. package/dist/esm-es5/{utils-bca7b101.js → utils-1d934f99.js} +1 -1
  93. package/dist/esm-es5/verdocs-build.entry.js +1 -1
  94. package/dist/esm-es5/verdocs-button-panel_3.entry.js +1 -1
  95. package/dist/esm-es5/verdocs-dropdown_2.entry.js +1 -1
  96. package/dist/esm-es5/verdocs-envelope-sidebar.entry.js +1 -1
  97. package/dist/esm-es5/verdocs-field-attachment.entry.js +1 -1
  98. package/dist/esm-es5/verdocs-field-checkbox.entry.js +1 -1
  99. package/dist/esm-es5/verdocs-field-date.entry.js +1 -1
  100. package/dist/esm-es5/verdocs-field-dropdown.entry.js +1 -1
  101. package/dist/esm-es5/verdocs-field-initial.entry.js +1 -1
  102. package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
  103. package/dist/esm-es5/verdocs-field-radio-button.entry.js +1 -1
  104. package/dist/esm-es5/verdocs-field-signature.entry.js +1 -1
  105. package/dist/esm-es5/verdocs-field-textarea.entry.js +1 -1
  106. package/dist/esm-es5/verdocs-field-textbox.entry.js +1 -1
  107. package/dist/esm-es5/verdocs-field-timestamp.entry.js +1 -1
  108. package/dist/esm-es5/verdocs-preview.entry.js +1 -1
  109. package/dist/esm-es5/verdocs-send.entry.js +1 -1
  110. package/dist/esm-es5/verdocs-sign.entry.js +1 -1
  111. package/dist/esm-es5/verdocs-template-attachments.entry.js +1 -1
  112. package/dist/esm-es5/verdocs-template-create_2.entry.js +1 -1
  113. package/dist/esm-es5/verdocs-template-document-page.entry.js +1 -1
  114. package/dist/esm-es5/verdocs-template-name.entry.js +1 -1
  115. package/dist/esm-es5/verdocs-template-properties.entry.js +1 -1
  116. package/dist/esm-es5/verdocs-template-reminders.entry.js +1 -1
  117. package/dist/esm-es5/verdocs-template-role-properties_2.entry.js +1 -1
  118. package/dist/esm-es5/verdocs-template-roles.entry.js +1 -1
  119. package/dist/esm-es5/verdocs-template-visibility.entry.js +1 -1
  120. package/dist/esm-es5/verdocs-view.entry.js +1 -1
  121. package/dist/esm-es5/verdocs-web-sdk.js +1 -1
  122. package/dist/types/components/elements/verdocs-envelope-sidebar/verdocs-envelope-sidebar.d.ts +4 -2
  123. package/dist/types/components/embeds/verdocs-sign/verdocs-sign.d.ts +2 -0
  124. package/dist/types/components/embeds/verdocs-view/verdocs-view.d.ts +2 -0
  125. package/dist/types/components/templates/verdocs-template-field-properties/verdocs-template-field-properties.d.ts +4 -0
  126. package/dist/types/components.d.ts +8 -0
  127. package/dist/verdocs-web-sdk/p-037fa432.system.entry.js +1 -0
  128. package/dist/verdocs-web-sdk/{p-6a2e16ea.system.js → p-0a000948.system.js} +1 -1
  129. package/dist/verdocs-web-sdk/p-10ea4d8d.entry.js +1 -0
  130. package/dist/verdocs-web-sdk/{p-ceae05e8.system.entry.js → p-152f38f2.system.entry.js} +1 -1
  131. package/dist/verdocs-web-sdk/p-1772de58.system.entry.js +1 -0
  132. package/dist/verdocs-web-sdk/p-1a9437d9.system.entry.js +1 -0
  133. package/dist/verdocs-web-sdk/p-1d60a9e2.system.entry.js +1 -0
  134. package/dist/verdocs-web-sdk/{p-7d73a258.entry.js → p-212ecdc5.entry.js} +1 -1
  135. package/dist/verdocs-web-sdk/p-284f69ec.system.entry.js +1 -0
  136. package/dist/verdocs-web-sdk/p-2af1ec32.entry.js +1 -0
  137. package/dist/verdocs-web-sdk/p-2e2fd9f3.entry.js +1 -0
  138. package/dist/verdocs-web-sdk/p-30decbde.entry.js +1 -0
  139. package/dist/verdocs-web-sdk/p-36ef57a7.system.entry.js +1 -0
  140. package/dist/verdocs-web-sdk/p-370e03f7.entry.js +1 -0
  141. package/dist/verdocs-web-sdk/p-38368af4.system.entry.js +1 -0
  142. package/dist/verdocs-web-sdk/p-386a9c8b.system.entry.js +1 -0
  143. package/dist/verdocs-web-sdk/p-3ec38739.entry.js +1 -0
  144. package/dist/verdocs-web-sdk/p-4161fc87.system.entry.js +1 -0
  145. package/dist/verdocs-web-sdk/p-4271a0bf.entry.js +1 -0
  146. package/dist/verdocs-web-sdk/p-449e8445.system.entry.js +1 -0
  147. package/dist/verdocs-web-sdk/p-4680b94d.entry.js +1 -0
  148. package/dist/verdocs-web-sdk/p-47eec326.system.entry.js +1 -0
  149. package/dist/verdocs-web-sdk/p-48fbc0e0.entry.js +1 -0
  150. package/dist/verdocs-web-sdk/p-4f7dc10b.system.entry.js +1 -0
  151. package/dist/verdocs-web-sdk/p-511ba013.system.entry.js +1 -0
  152. package/dist/verdocs-web-sdk/p-52164a0a.entry.js +1 -0
  153. package/dist/verdocs-web-sdk/p-58cbbdf4.system.entry.js +1 -0
  154. package/dist/verdocs-web-sdk/p-5911bf86.entry.js +1 -0
  155. package/dist/verdocs-web-sdk/p-5e1b2cc7.entry.js +1 -0
  156. package/dist/verdocs-web-sdk/p-62542624.system.entry.js +1 -0
  157. package/dist/verdocs-web-sdk/{p-3d0efcc9.js → p-6324d9f8.js} +1 -1
  158. package/dist/verdocs-web-sdk/p-63789dec.system.entry.js +1 -0
  159. package/dist/verdocs-web-sdk/{p-e5bd3e93.js → p-6685a532.js} +1 -1
  160. package/dist/verdocs-web-sdk/{p-7dc40910.system.entry.js → p-66a21bd1.system.entry.js} +1 -1
  161. package/dist/verdocs-web-sdk/p-6caf1137.system.js +1 -1
  162. package/dist/verdocs-web-sdk/p-6f1501f8.entry.js +1 -0
  163. package/dist/verdocs-web-sdk/p-71b8bb54.system.js +1 -0
  164. package/dist/verdocs-web-sdk/p-7bc337ce.entry.js +1 -0
  165. package/dist/verdocs-web-sdk/p-837894c5.system.entry.js +1 -0
  166. package/dist/verdocs-web-sdk/p-8383c63c.js +1 -0
  167. package/dist/verdocs-web-sdk/p-83ada8f3.system.js +1 -0
  168. package/dist/verdocs-web-sdk/{p-2b335cb4.system.js → p-8ac64953.system.js} +1 -1
  169. package/dist/verdocs-web-sdk/p-8b501a20.system.entry.js +1 -0
  170. package/dist/verdocs-web-sdk/{p-66a673dd.entry.js → p-8b87e539.entry.js} +1 -1
  171. package/dist/verdocs-web-sdk/p-8d567305.system.entry.js +1 -0
  172. package/dist/verdocs-web-sdk/p-92b8c139.entry.js +1 -0
  173. package/dist/verdocs-web-sdk/p-9364c0b0.entry.js +1 -0
  174. package/dist/verdocs-web-sdk/p-971a2acc.entry.js +1 -0
  175. package/dist/verdocs-web-sdk/p-983149af.entry.js +1 -0
  176. package/dist/verdocs-web-sdk/p-98c6210b.system.entry.js +1 -0
  177. package/dist/verdocs-web-sdk/p-9b37434a.entry.js +1 -0
  178. package/dist/verdocs-web-sdk/p-9f44ba0d.entry.js +1 -0
  179. package/dist/verdocs-web-sdk/p-a30da45d.entry.js +1 -0
  180. package/dist/verdocs-web-sdk/p-aac44c0d.system.entry.js +1 -0
  181. package/dist/verdocs-web-sdk/p-b3768d2e.system.entry.js +1 -0
  182. package/dist/verdocs-web-sdk/p-c5d2e145.entry.js +1 -0
  183. package/dist/verdocs-web-sdk/p-c903c4a7.js +1 -0
  184. package/dist/verdocs-web-sdk/p-d181f220.system.entry.js +1 -0
  185. package/dist/verdocs-web-sdk/p-d92494e8.system.entry.js +1 -0
  186. package/dist/verdocs-web-sdk/{p-736cf2bf.js → p-ddbe721b.js} +1 -1
  187. package/dist/verdocs-web-sdk/p-de6dec13.entry.js +1 -0
  188. package/dist/verdocs-web-sdk/p-df529ac2.system.entry.js +1 -0
  189. package/dist/verdocs-web-sdk/p-e02ac695.entry.js +1 -0
  190. package/dist/verdocs-web-sdk/p-e176d75b.entry.js +1 -0
  191. package/dist/verdocs-web-sdk/{p-fdcf756a.system.js → p-e4dc637b.system.js} +1 -1
  192. package/dist/verdocs-web-sdk/p-f7460048.system.entry.js +1 -0
  193. package/dist/verdocs-web-sdk/p-fbda7ba5.entry.js +1 -0
  194. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  195. package/package.json +2 -2
  196. package/dist/cjs/Envelopes-cd0d7be9.js +0 -68
  197. package/dist/cjs/templateStore-b44b1dd5.js +0 -49
  198. package/dist/collection/utils/Envelopes.js +0 -33
  199. package/dist/collection/utils/envelopeStore.js +0 -32
  200. package/dist/components/Envelopes2.js +0 -65
  201. package/dist/components/index3.js +0 -194
  202. package/dist/esm/Envelopes-93e699a5.js +0 -65
  203. package/dist/esm/templateStore-3b087176.js +0 -47
  204. package/dist/esm-es5/Envelopes-93e699a5.js +0 -1
  205. package/dist/esm-es5/index-85f4a40f.js +0 -1
  206. package/dist/esm-es5/templateStore-3b087176.js +0 -1
  207. package/dist/types/utils/Envelopes.d.ts +0 -2
  208. package/dist/types/utils/envelopeStore.d.ts +0 -12
  209. package/dist/verdocs-web-sdk/p-02914dbb.js +0 -1
  210. package/dist/verdocs-web-sdk/p-030318b5.entry.js +0 -1
  211. package/dist/verdocs-web-sdk/p-0c1bd8ab.system.entry.js +0 -1
  212. package/dist/verdocs-web-sdk/p-0eb7f329.entry.js +0 -1
  213. package/dist/verdocs-web-sdk/p-19804b90.system.entry.js +0 -1
  214. package/dist/verdocs-web-sdk/p-28551fd4.entry.js +0 -1
  215. package/dist/verdocs-web-sdk/p-2a8a48c1.system.entry.js +0 -1
  216. package/dist/verdocs-web-sdk/p-2afbcb32.entry.js +0 -1
  217. package/dist/verdocs-web-sdk/p-2e105a9d.system.entry.js +0 -1
  218. package/dist/verdocs-web-sdk/p-2e7aba30.js +0 -1
  219. package/dist/verdocs-web-sdk/p-312b3c6e.entry.js +0 -1
  220. package/dist/verdocs-web-sdk/p-335f01d1.system.entry.js +0 -1
  221. package/dist/verdocs-web-sdk/p-3dbb8b8c.system.entry.js +0 -1
  222. package/dist/verdocs-web-sdk/p-40e96848.entry.js +0 -1
  223. package/dist/verdocs-web-sdk/p-41d6c443.entry.js +0 -1
  224. package/dist/verdocs-web-sdk/p-43c3073f.system.js +0 -1
  225. package/dist/verdocs-web-sdk/p-4a52d3a3.system.js +0 -1
  226. package/dist/verdocs-web-sdk/p-518f1125.entry.js +0 -1
  227. package/dist/verdocs-web-sdk/p-568c5e70.system.entry.js +0 -1
  228. package/dist/verdocs-web-sdk/p-59ac5b50.system.entry.js +0 -1
  229. package/dist/verdocs-web-sdk/p-5a362440.entry.js +0 -1
  230. package/dist/verdocs-web-sdk/p-5a4227f6.system.entry.js +0 -1
  231. package/dist/verdocs-web-sdk/p-5abaf86d.js +0 -1
  232. package/dist/verdocs-web-sdk/p-609f6f1c.system.entry.js +0 -1
  233. package/dist/verdocs-web-sdk/p-6616c85f.system.entry.js +0 -1
  234. package/dist/verdocs-web-sdk/p-671bb0a7.entry.js +0 -1
  235. package/dist/verdocs-web-sdk/p-70fe647e.system.entry.js +0 -1
  236. package/dist/verdocs-web-sdk/p-7295a277.system.js +0 -1
  237. package/dist/verdocs-web-sdk/p-745cab4f.entry.js +0 -1
  238. package/dist/verdocs-web-sdk/p-745f02b1.system.entry.js +0 -1
  239. package/dist/verdocs-web-sdk/p-7494a45d.system.entry.js +0 -1
  240. package/dist/verdocs-web-sdk/p-7ec320f8.system.entry.js +0 -1
  241. package/dist/verdocs-web-sdk/p-7f28d60f.entry.js +0 -1
  242. package/dist/verdocs-web-sdk/p-7fe39c68.js +0 -1
  243. package/dist/verdocs-web-sdk/p-83a2eaee.system.entry.js +0 -1
  244. package/dist/verdocs-web-sdk/p-8e2e32a8.entry.js +0 -1
  245. package/dist/verdocs-web-sdk/p-94d43d18.entry.js +0 -1
  246. package/dist/verdocs-web-sdk/p-96044424.entry.js +0 -1
  247. package/dist/verdocs-web-sdk/p-9e1ed4b6.system.entry.js +0 -1
  248. package/dist/verdocs-web-sdk/p-9ff98c7c.entry.js +0 -1
  249. package/dist/verdocs-web-sdk/p-a82fc8d0.entry.js +0 -1
  250. package/dist/verdocs-web-sdk/p-ad58de61.system.entry.js +0 -1
  251. package/dist/verdocs-web-sdk/p-b4355a5a.system.entry.js +0 -1
  252. package/dist/verdocs-web-sdk/p-b55a37d5.system.entry.js +0 -1
  253. package/dist/verdocs-web-sdk/p-c0edd8eb.system.entry.js +0 -1
  254. package/dist/verdocs-web-sdk/p-c521e212.system.js +0 -1
  255. package/dist/verdocs-web-sdk/p-c877e418.system.entry.js +0 -1
  256. package/dist/verdocs-web-sdk/p-d0afa6df.entry.js +0 -1
  257. package/dist/verdocs-web-sdk/p-d0aff325.entry.js +0 -1
  258. package/dist/verdocs-web-sdk/p-d4d689cd.entry.js +0 -1
  259. package/dist/verdocs-web-sdk/p-d90f70da.system.entry.js +0 -1
  260. package/dist/verdocs-web-sdk/p-df483a68.system.entry.js +0 -1
  261. package/dist/verdocs-web-sdk/p-e457d21a.entry.js +0 -1
  262. package/dist/verdocs-web-sdk/p-e50182b0.system.entry.js +0 -1
  263. package/dist/verdocs-web-sdk/p-e6b7b61d.entry.js +0 -1
  264. package/dist/verdocs-web-sdk/p-eaaf7e3e.entry.js +0 -1
  265. package/dist/verdocs-web-sdk/p-f0847cbd.entry.js +0 -1
  266. package/dist/verdocs-web-sdk/p-f65a851a.entry.js +0 -1
  267. package/dist/verdocs-web-sdk/p-f724400e.entry.js +0 -1
  268. package/dist/verdocs-web-sdk/p-fab4b76c.system.entry.js +0 -1
@@ -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: '',
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
+ import { t as throttledGetEnvelope } from './Envelopes.js';
2
3
  import './Types.js';
3
4
  import { V as VerdocsEndpoint } from './VerdocsEndpoint.js';
4
- import { g as getEnvelopeById, s as state } from './Envelopes2.js';
5
5
  import { S as SDKError } from './errors.js';
6
6
  import { d as defineCustomElement$2 } from './verdocs-dropdown2.js';
7
7
  import { f as format } from './index2.js';
@@ -40,6 +40,8 @@ const VerdocsEnvelopeSidebar$1 = /*@__PURE__*/ proxyCustomElement(class extends
40
40
  this.envelopeUpdated = createEvent(this, "envelopeUpdated", 7);
41
41
  this.endpoint = VerdocsEndpoint.getDefault();
42
42
  this.envelopeId = '';
43
+ this.envelope = null;
44
+ this.roleNames = [];
43
45
  this.activeTab = 1;
44
46
  this.panelOpen = false;
45
47
  }
@@ -48,14 +50,15 @@ const VerdocsEnvelopeSidebar$1 = /*@__PURE__*/ proxyCustomElement(class extends
48
50
  }
49
51
  // TODO: Handling signing vs preview-as-user cases
50
52
  // TODO: Handle anonymous case and failure to load due to not being logged in
51
- async componentDidLoad() {
53
+ async componentWillRender() {
52
54
  var _a, _b, _c;
53
55
  if (!this.envelopeId) {
54
56
  console.error(`[SIDEBAR] Missing required envelopeId`);
55
57
  return;
56
58
  }
57
59
  try {
58
- await getEnvelopeById(this.endpoint, this.envelopeId);
60
+ this.envelope = await throttledGetEnvelope(this.endpoint, this.envelopeId);
61
+ this.roleNames = this.envelope.recipients.map(r => r.role_name);
59
62
  }
60
63
  catch (e) {
61
64
  (_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));
@@ -68,31 +71,31 @@ const VerdocsEnvelopeSidebar$1 = /*@__PURE__*/ proxyCustomElement(class extends
68
71
  // TODO: Refactor to a common library?
69
72
  canResendRecipient(recipient) {
70
73
  return (!['pending', 'declined', 'submitted', 'canceled'].includes(recipient.status) && //
71
- !['complete', 'declined', 'canceled'].includes(state.envelope.status));
74
+ !['complete', 'declined', 'canceled'].includes(this.envelope.status));
72
75
  }
73
76
  canModifyRecipient(recipient) {
74
77
  return (!recipient.claimed && //
75
78
  !['declined', 'signed', 'submitted', 'canceled'].includes(recipient.status) &&
76
- !['complete', 'declined', 'canceled'].includes(state.envelope.status));
79
+ !['complete', 'declined', 'canceled'].includes(this.envelope.status));
77
80
  }
78
81
  handleRecipientAction(recipient, id) {
79
82
  var _a;
80
83
  console.log('recipient action', id, recipient);
81
- (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: state.envelope, event: id });
84
+ (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: this.envelope, event: id });
82
85
  }
83
86
  prepareHistoryEntries() {
84
87
  const entries = [];
85
- const histories = state.envelope.histories || [];
86
- entries.push({ icon: 'pencil', message: 'Envelope created.', date: new Date(state.envelope.created_at) });
87
- if (state.envelope.status === 'complete') {
88
- entries.push({ icon: 'pencil', message: 'Envelope completed.', date: new Date(state.envelope.updated_at) });
88
+ const histories = this.envelope.histories || [];
89
+ entries.push({ icon: 'pencil', message: 'Envelope created.', date: new Date(this.envelope.created_at) });
90
+ if (this.envelope.status === 'complete') {
91
+ entries.push({ icon: 'pencil', message: 'Envelope completed.', date: new Date(this.envelope.updated_at) });
89
92
  }
90
93
  const ownerCanceled = histories.some(history => history.event === 'owner:canceled');
91
- if (state.envelope.status === 'canceled' && !ownerCanceled) {
92
- entries.push({ icon: 'pencil', message: 'Envelope Cancelled.', date: new Date(state.envelope.canceled_at) });
94
+ if (this.envelope.status === 'canceled' && !ownerCanceled) {
95
+ entries.push({ icon: 'pencil', message: 'Envelope Cancelled.', date: new Date(this.envelope.canceled_at) });
93
96
  }
94
97
  histories.forEach(history => {
95
- const user = state.envelope.recipients.find(recipient => recipient.role_name === history.role_name);
98
+ const user = this.envelope.recipients.find(recipient => recipient.role_name === history.role_name);
96
99
  const name = (user === null || user === void 0 ? void 0 : user.full_name) || '';
97
100
  switch (history.event.toLowerCase()) {
98
101
  case 'recipient:signed':
@@ -196,15 +199,15 @@ const VerdocsEnvelopeSidebar$1 = /*@__PURE__*/ proxyCustomElement(class extends
196
199
  }
197
200
  render() {
198
201
  var _a, _b, _c;
199
- if (!state.envelope) {
202
+ if (!this.envelope) {
200
203
  return h(Host, null);
201
204
  }
202
205
  const session = this.endpoint.getSession();
203
- const isEnvelopeOwner = session.profile_id === state.envelope.profile_id; // TODO: What about org admins?
206
+ const isEnvelopeOwner = session.profile_id === this.envelope.profile_id; // TODO: What about org admins?
204
207
  const historyEntries = this.prepareHistoryEntries();
205
- return (h(Host, { class: this.panelOpen ? 'open' : '', "data-r": state.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" }, state.envelope.id), h("div", { class: "label" }, "Date Created"), h("div", { class: "value" }, format(new Date(state.envelope.created_at), 'PP pp')), h("div", { class: "label" }, "Last Modified"), h("div", { class: "value" }, format(new Date(state.envelope.updated_at), 'PP pp')), h("div", { class: "label" }, "Status"), h("div", { class: "value" }, state.envelope.status), h("div", { class: "label" }, "Verdoc Owner ID"), h("div", { class: "value" }, state.envelope.profile_id), h("div", { class: "label" }, "Verdoc Owner Name"), h("div", { class: "value" }, (_a = state.envelope.profile) === null || _a === void 0 ? void 0 :
206
- _a.first_name, " ", (_b = state.envelope.profile) === null || _b === void 0 ? void 0 :
207
- _b.last_name), h("div", { class: "label" }, "Verdoc Owner Email"), h("div", { class: "value" }, (_c = state.envelope.profile) === null || _c === void 0 ? void 0 : _c.email))), this.activeTab === 2 && (h("div", { class: "content" }, h("div", { class: "title" }, "Recipients"), state.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: [
208
+ 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 :
209
+ _a.first_name, " ", (_b = this.envelope.profile) === null || _b === void 0 ? void 0 :
210
+ _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: [
208
211
  { id: 'reminder', label: 'Send Reminder', disabled: !this.canResendRecipient(recipient) },
209
212
  { id: 'modify', label: 'Modify Recipient', disabled: !this.canModifyRecipient(recipient) },
210
213
  { id: 'inperson', label: 'Get In-Person Link', disabled: !this.canModifyRecipient(recipient) || !['invited', 'opened'].includes(recipient.status) },
@@ -216,6 +219,8 @@ const VerdocsEnvelopeSidebar$1 = /*@__PURE__*/ proxyCustomElement(class extends
216
219
  }, [0, "verdocs-envelope-sidebar", {
217
220
  "endpoint": [16],
218
221
  "envelopeId": [1, "envelope-id"],
222
+ "envelope": [32],
223
+ "roleNames": [32],
219
224
  "activeTab": [32],
220
225
  "panelOpen": [32]
221
226
  }]);
@@ -90,7 +90,7 @@ const VerdocsFieldTextbox$1 = /*@__PURE__*/ proxyCustomElement(class extends HTM
90
90
  var _a;
91
91
  (_a = this.settingsChanged) === null || _a === void 0 ? void 0 : _a.emit(e.detail);
92
92
  return this.hideSettingsPanel();
93
- } })))));
93
+ }, helpText: 'Text boxes may be used to capture simple text input. Participant-entered values will be stored for later retrieval via the "name" field.<br /><br />If marked required, the participant must complete the field before proceeding.' })))));
94
94
  }
95
95
  get el() { return this; }
96
96
  static get style() { return verdocsFieldTextboxCss; }
@@ -1,11 +1,10 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host, Fragment } from '@stencil/core/internal/client';
2
- import { g as getSigningSession, u as updateEnvelopeField, a as updateEnvelopeFieldSignature, b as updateEnvelopeFieldInitials } from './Envelopes.js';
2
+ import { g as getSigningSession, t as throttledGetEnvelope, u as updateEnvelopeField, a as updateEnvelopeFieldSignature, b as updateEnvelopeFieldInitials } from './Envelopes.js';
3
3
  import './Types.js';
4
4
  import { V as VerdocsEndpoint } from './VerdocsEndpoint.js';
5
5
  import { a as isValidPhone, i as isValidEmail } from './Validators.js';
6
6
  import { f as fullNameToInitials } from './Primitives.js';
7
7
  import { s as saveAttachment, u as updateDocumentFieldValue, a as getRoleIndex, r as renderDocumentField, b as getFieldId } from './utils.js';
8
- import { g as getEnvelopeById, s as state } from './Envelopes2.js';
9
8
  import { S as SDKError } from './errors.js';
10
9
  import { d as defineCustomElement$8 } from './verdocs-button2.js';
11
10
  import { d as defineCustomElement$7 } from './verdocs-checkbox2.js';
@@ -134,6 +133,8 @@ const VerdocsSign$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
134
133
  this.roleId = null;
135
134
  this.inviteCode = null;
136
135
  this.headerTargetId = null;
136
+ this.envelope = null;
137
+ this.roleNames = [];
137
138
  this.recipient = null;
138
139
  this.signerToken = null;
139
140
  this.hasSignature = false;
@@ -180,24 +181,25 @@ const VerdocsSign$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
180
181
  if (this.agreed) {
181
182
  this.nextButtonLabel = 'Next';
182
183
  }
183
- await getEnvelopeById(this.endpoint, this.envelopeId, true);
184
- if (state.envelope.documents.length > 0) {
184
+ this.envelope = await throttledGetEnvelope(this.endpoint, this.envelopeId);
185
+ this.roleNames = this.envelope.recipients.map(r => r.role_name);
186
+ if (this.envelope.documents.length > 0) {
185
187
  this.documentsSingularPlural = 'document(s)';
186
188
  }
187
- this.recipientIndex = state.envelope.recipients.findIndex(recipient => recipient.role_name == this.roleId);
189
+ this.recipientIndex = this.envelope.recipients.findIndex(recipient => recipient.role_name == this.roleId);
188
190
  if (this.recipientIndex > -1) {
189
- this.recipient = state.envelope.recipients[this.recipientIndex];
191
+ this.recipient = this.envelope.recipients[this.recipientIndex];
190
192
  this.agreed = this.recipient.agreed;
191
193
  console.log('[SIGN] Found our recipient in the envelope', this.recipientIndex, this.recipient);
192
194
  }
193
195
  else {
194
- console.log('[SIGN] Could not find our recipient record', this.roleId, state.envelope.recipients);
196
+ console.log('[SIGN] Could not find our recipient record', this.roleId, this.envelope.recipients);
195
197
  }
196
198
  this.isDone = ['submitted', 'canceled', 'declined'].includes(this.recipient.status);
197
199
  // TODO: Fix service to allow this?
198
200
  // const sigs = await getSignatures();
199
201
  // console.log('sigs', sigs);
200
- (_d = this.envelopeLoaded) === null || _d === void 0 ? void 0 : _d.emit({ endpoint: this.endpoint, envelope: state.envelope });
202
+ (_d = this.envelopeLoaded) === null || _d === void 0 ? void 0 : _d.emit({ endpoint: this.endpoint, envelope: this.envelope });
201
203
  }
202
204
  catch (e) {
203
205
  console.log('Error with signing session', e);
@@ -219,7 +221,7 @@ const VerdocsSign$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
219
221
  var _a;
220
222
  this.nextButtonLabel = 'Next';
221
223
  this.agreed = true; // The server returns a recipient object but it's not "deep" so we track this locally
222
- (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'agreed' });
224
+ (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'agreed' });
223
225
  })
224
226
  .catch(e => {
225
227
  var _a, _b, _c;
@@ -233,29 +235,29 @@ const VerdocsSign$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
233
235
  case 'later':
234
236
  this.finishLater = true;
235
237
  this.showFinishLater = true;
236
- (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'later' });
238
+ (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'later' });
237
239
  break;
238
240
  case 'claim':
239
241
  window.alert('This feature will be available in an upcoming release.');
240
- (_b = this.envelopeUpdated) === null || _b === void 0 ? void 0 : _b.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'claimed' });
242
+ (_b = this.envelopeUpdated) === null || _b === void 0 ? void 0 : _b.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'claimed' });
241
243
  break;
242
244
  case 'decline':
243
245
  {
244
246
  const declineResult = await envelopeRecipientDecline(this.endpoint, this.envelopeId, this.roleId);
245
247
  console.log('Decline result', declineResult);
246
- (_c = this.envelopeUpdated) === null || _c === void 0 ? void 0 : _c.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'declined' });
248
+ (_c = this.envelopeUpdated) === null || _c === void 0 ? void 0 : _c.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'declined' });
247
249
  this.isDone = true;
248
250
  }
249
251
  break;
250
252
  case 'print':
251
253
  window.print();
252
- (_d = this.envelopeUpdated) === null || _d === void 0 ? void 0 : _d.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'printed' });
254
+ (_d = this.envelopeUpdated) === null || _d === void 0 ? void 0 : _d.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'printed' });
253
255
  break;
254
256
  case 'download':
255
- saveAttachment(this.endpoint, state.envelope, state.envelope.envelope_document_id).catch(e => {
257
+ saveAttachment(this.endpoint, this.envelope, this.envelope.envelope_document_id).catch(e => {
256
258
  console.log('Error downloading PDF', e);
257
259
  });
258
- (_e = this.envelopeUpdated) === null || _e === void 0 ? void 0 : _e.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'downloaded' });
260
+ (_e = this.envelopeUpdated) === null || _e === void 0 ? void 0 : _e.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'downloaded' });
259
261
  break;
260
262
  }
261
263
  }
@@ -434,7 +436,7 @@ const VerdocsSign$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
434
436
  }
435
437
  handlePageRendered(e) {
436
438
  const pageInfo = e.detail;
437
- const roleIndex = getRoleIndex(state.roleNames, this.recipient.role_name);
439
+ const roleIndex = getRoleIndex(this.roleNames, this.recipient.role_name);
438
440
  const recipientFields = this.recipient.fields.filter(field => field.page === pageInfo.pageNumber);
439
441
  console.log('[SIGN] Page rendered, updating fields', { pageInfo, roleIndex, recipientFields });
440
442
  recipientFields.forEach(field => {
@@ -474,10 +476,10 @@ const VerdocsSign$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
474
476
  // });
475
477
  });
476
478
  // Render fields for "the other" recipients
477
- state.envelope.recipients
479
+ this.envelope.recipients
478
480
  .filter(recipient => recipient.role_name !== this.recipient.role_name)
479
481
  .forEach(otherRecipient => {
480
- const otherRoleIndex = getRoleIndex(state.roleNames, otherRecipient.role_name);
482
+ const otherRoleIndex = getRoleIndex(this.roleNames, otherRecipient.role_name);
481
483
  const recipientFields = otherRecipient.fields.filter(field => field.page === pageInfo.pageNumber);
482
484
  // We don't render other recipients' fields if they've already acted, because those values are now stamped into the document page.
483
485
  // TODO: Do we want to render alternate treatments for recipients who have declined (red boxes?) and/or if the envelope is cancelled?
@@ -508,13 +510,13 @@ const VerdocsSign$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
508
510
  this.checkRecipientFields();
509
511
  }
510
512
  render() {
511
- if (state.loading || !state.envelope) {
513
+ if (!this.envelope) {
512
514
  return (h(Host, null, h("verdocs-loader", null)));
513
515
  }
514
516
  if (this.isDone) {
515
- return (h(Host, { class: { agreed: this.agreed }, "data-r": state.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 = '') })));
517
+ 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 = '') })));
516
518
  }
517
- return (h(Host, { class: { agreed: this.agreed }, "data-r": state.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" }, state.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' } }, (state.envelope.documents || []).map(envelopeDocument => {
519
+ 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 => {
518
520
  const pages = [...((envelopeDocument === null || envelopeDocument === void 0 ? void 0 : envelopeDocument.pages) || [])];
519
521
  pages.sort((a, b) => a.sequence - b.sequence);
520
522
  return (h(Fragment, null, pages.map(page => {
@@ -539,6 +541,8 @@ const VerdocsSign$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
539
541
  "roleId": [1, "role-id"],
540
542
  "inviteCode": [1, "invite-code"],
541
543
  "headerTargetId": [1, "header-target-id"],
544
+ "envelope": [32],
545
+ "roleNames": [32],
542
546
  "recipient": [32],
543
547
  "signerToken": [32],
544
548
  "hasSignature": [32],
@@ -28,6 +28,7 @@ const VerdocsTemplateFieldProperties = /*@__PURE__*/ proxyCustomElement(class ex
28
28
  this.endpoint = VerdocsEndpoint.getDefault();
29
29
  this.templateId = '';
30
30
  this.fieldName = '';
31
+ this.helpText = '';
31
32
  this.dirty = false;
32
33
  this.loading = true;
33
34
  this.type = 'signature';
@@ -39,7 +40,7 @@ const VerdocsTemplateFieldProperties = /*@__PURE__*/ proxyCustomElement(class ex
39
40
  this.options = [];
40
41
  this.placeholder = '';
41
42
  this.defaultValue = '';
42
- this.showingHelp = true;
43
+ this.showingHelp = false;
43
44
  }
44
45
  async componentWillLoad() {
45
46
  var _a, _b, _c, _d, _e;
@@ -159,10 +160,10 @@ const VerdocsTemplateFieldProperties = /*@__PURE__*/ proxyCustomElement(class ex
159
160
  if (!this.endpoint.session || !state.template) {
160
161
  return h(Host, { class: "empty" });
161
162
  }
162
- if (this.showingHelp) {
163
- return (h(Host, null, h("h6", null, capitalize(this.fieldType), " Settings ", h("div", { style: { flex: '1' } }), h("div", { class: "help-icon", innerHTML: HelpIcon, onClick: () => (this.showingHelp = false) })), h("p", { class: "instructions" }, "Text boxes may be used to capture simple text input. Participant-entered values will be stored for later retrieval via the \"name\" field."), h("p", { class: "instructions" }, "If marked required, the participant must complete the field before proceeding..")));
163
+ if (this.helpText && this.showingHelp) {
164
+ return (h(Host, null, h("h6", null, capitalize(this.fieldType), " Settings ", h("div", { style: { flex: '1' } }), h("div", { class: "help-icon", innerHTML: HelpIcon, onClick: () => (this.showingHelp = false) })), h("p", { class: "instructions", innerHTML: this.helpText })));
164
165
  }
165
- return (h(Host, null, h("h6", null, capitalize(this.fieldType), " Settings ", h("div", { style: { flex: '1' } }), h("div", { class: "help-icon", innerHTML: HelpIcon, onClick: () => (this.showingHelp = true) })), h("form", { onSubmit: e => e.preventDefault(), onClick: e => e.stopPropagation(), autocomplete: "off" }, h("div", { class: "row" }, h("verdocs-text-input", { id: "verdocs-field-name", label: "Field Name", value: this.name, autocomplete: "off",
166
+ return (h(Host, null, h("h6", null, capitalize(this.fieldType), " Settings ", h("div", { style: { flex: '1' } }), this.helpText && h("div", { class: "help-icon", innerHTML: HelpIcon, onClick: () => (this.showingHelp = true) })), h("form", { onSubmit: e => e.preventDefault(), onClick: e => e.stopPropagation(), autocomplete: "off" }, h("div", { class: "row" }, h("verdocs-text-input", { id: "verdocs-field-name", label: "Field Name", value: this.name, autocomplete: "off",
166
167
  // helpText="The internal name of the field. Must be unique, and contain only letters, numbers, and dashes. After an envelope is completed, the value entered by the signer will be tagged with this key."
167
168
  placeholder: "Field Name...", onInput: (e) => {
168
169
  this.name = e.target.value;
@@ -208,6 +209,7 @@ const VerdocsTemplateFieldProperties = /*@__PURE__*/ proxyCustomElement(class ex
208
209
  "endpoint": [16],
209
210
  "templateId": [1, "template-id"],
210
211
  "fieldName": [1, "field-name"],
212
+ "helpText": [1, "help-text"],
211
213
  "dirty": [32],
212
214
  "loading": [32],
213
215
  "type": [32],
@@ -1,9 +1,8 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host, Fragment } from '@stencil/core/internal/client';
2
- import { d as cancelEnvelope } from './Envelopes.js';
2
+ import { t as throttledGetEnvelope, d as cancelEnvelope } from './Envelopes.js';
3
3
  import { E as EnvelopeStates } from './Types.js';
4
4
  import { V as VerdocsEndpoint } from './VerdocsEndpoint.js';
5
5
  import { f as saveEnvelopesAsZip, h as saveCertificate, s as saveAttachment } from './utils.js';
6
- import { g as getEnvelopeById, s as state } from './Envelopes2.js';
7
6
  import { S as SDKError } from './errors.js';
8
7
  import { d as defineCustomElement$3 } from './verdocs-dropdown2.js';
9
8
  import { d as defineCustomElement$2 } from './verdocs-envelope-document-page2.js';
@@ -40,6 +39,8 @@ const VerdocsView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
40
39
  this.envelopeId = '';
41
40
  this.headerTargetId = null;
42
41
  this.isProcessing = false;
42
+ this.envelope = null;
43
+ this.roleNames = [];
43
44
  }
44
45
  componentWillLoad() {
45
46
  this.endpoint.loadSession();
@@ -66,8 +67,9 @@ const VerdocsView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
66
67
  var _a, _b, _c;
67
68
  console.log('[VIEW] Checking for updated envelope');
68
69
  try {
69
- await getEnvelopeById(this.endpoint, this.envelopeId, true);
70
- this.isProcessing = state.envelope.documents.some(document => document.type === 'attachment' && !document.processed);
70
+ this.envelope = await throttledGetEnvelope(this.endpoint, this.envelopeId);
71
+ this.roleNames = this.envelope.recipients.map(r => r.role_name);
72
+ this.isProcessing = this.envelope.documents.some(document => document.type === 'attachment' && !document.processed);
71
73
  if (this.isProcessing) {
72
74
  setTimeout(() => this.reloadEnvelope(), 3000);
73
75
  }
@@ -87,38 +89,38 @@ const VerdocsView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
87
89
  // TODO: Better option for inline-flow confirmation and alert dialogs.
88
90
  if (confirm('Are you sure you wish to cancel this envelope? This action cannot be undone.')) {
89
91
  await cancelEnvelope(this.endpoint, this.envelopeId);
90
- (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'canceled' });
92
+ (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'canceled' });
91
93
  }
92
94
  break;
93
95
  case 'print':
94
96
  window.print();
95
- (_b = this.envelopeUpdated) === null || _b === void 0 ? void 0 : _b.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'printed' });
97
+ (_b = this.envelopeUpdated) === null || _b === void 0 ? void 0 : _b.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'printed' });
96
98
  break;
97
99
  case 'download-attachments':
98
- saveAttachment(this.endpoint, state.envelope, state.envelope.envelope_document_id)
100
+ saveAttachment(this.endpoint, this.envelope, this.envelope.envelope_document_id)
99
101
  .then(() => {
100
102
  var _a;
101
- (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'downloaded' });
103
+ (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'downloaded' });
102
104
  })
103
105
  .catch(e => {
104
106
  console.log('Error downloading PDF', e);
105
107
  });
106
108
  break;
107
109
  case 'download-certificate':
108
- saveCertificate(this.endpoint, state.envelope, state.envelope.certificate_document_id)
110
+ saveCertificate(this.endpoint, this.envelope, this.envelope.certificate_document_id)
109
111
  .then(() => {
110
112
  var _a;
111
- (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'downloaded' });
113
+ (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'downloaded' });
112
114
  })
113
115
  .catch(e => {
114
116
  console.log('Error downloading PDF', e);
115
117
  });
116
118
  break;
117
119
  case 'download-all':
118
- saveEnvelopesAsZip(this.endpoint, [state.envelope])
120
+ saveEnvelopesAsZip(this.endpoint, [this.envelope])
119
121
  .then(() => {
120
122
  var _a;
121
- (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'downloaded' });
123
+ (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: this.envelope, event: 'downloaded' });
122
124
  })
123
125
  .catch(e => {
124
126
  console.log('Error downloading Zip', e);
@@ -128,19 +130,17 @@ const VerdocsView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
128
130
  }
129
131
  render() {
130
132
  var _a;
131
- if (state.loading || !state.envelope) {
133
+ if (!this.envelope) {
134
+ console.log('rendering, no env');
132
135
  return (h(Host, null, h("verdocs-loader", null)));
133
136
  }
134
- if (state.error) {
135
- return (h(Host, null, h("div", null, state.error)));
136
- }
137
137
  const menuOptions = [{ id: 'print', label: 'Print' }];
138
- if (userCanCancelEnvelope(this.endpoint.session, state.envelope)) {
138
+ if (userCanCancelEnvelope(this.endpoint.session, this.envelope)) {
139
139
  menuOptions.push({ id: 'cancel', label: 'Cancel' });
140
140
  }
141
141
  // Add download options to the menu
142
- const hasAttachments = state.envelope.documents.length > 0;
143
- const hasCertificate = !!state.envelope.certificate;
142
+ const hasAttachments = this.envelope.documents.length > 0;
143
+ const hasCertificate = !!this.envelope.certificate;
144
144
  if (hasAttachments || hasCertificate) {
145
145
  menuOptions.push({ label: '' });
146
146
  if (hasAttachments) {
@@ -153,10 +153,11 @@ const VerdocsView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
153
153
  menuOptions.push({ id: 'download-all', label: 'Download All Files' });
154
154
  }
155
155
  }
156
- return (h(Host, { "data-r": state.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" }, state.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 = state.envelope) === null || _a === void 0 ? void 0 : _a.documents) || [])
156
+ console.log('docs', this.envelope, this.envelope.documents);
157
+ 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) || [])
157
158
  .filter(document => document.type !== 'certificate')
158
159
  .map(envelopeDocument => {
159
- console.log('[VIEW] Rendering document', state.envelope, envelopeDocument);
160
+ console.log('[VIEW] Rendering document', this.envelope, envelopeDocument);
160
161
  const pages = [...((envelopeDocument === null || envelopeDocument === void 0 ? void 0 : envelopeDocument.pages) || [])];
161
162
  pages.sort((a, b) => a.sequence - b.sequence);
162
163
  if (!envelopeDocument.processed) {
@@ -174,7 +175,9 @@ const VerdocsView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
174
175
  "endpoint": [16],
175
176
  "envelopeId": [1, "envelope-id"],
176
177
  "headerTargetId": [1, "header-target-id"],
177
- "isProcessing": [32]
178
+ "isProcessing": [32],
179
+ "envelope": [32],
180
+ "roleNames": [32]
178
181
  }]);
179
182
  function defineCustomElement() {
180
183
  if (typeof customElements === "undefined") {