@verdocs/web-sdk 1.10.10 → 1.11.1

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 (239) hide show
  1. package/dist/cjs/{Envelopes-68058bbe.js → Envelopes-7381bd9a.js} +11 -0
  2. package/dist/cjs/{Envelopes-4cc18551.js → Envelopes-9886af0f.js} +4 -1
  3. package/dist/cjs/{interact.min-3e3c03a5.js → interact.min-d223d04b.js} +3 -19
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/utils-f4cfa1fb.js +349 -0
  6. package/dist/cjs/verdocs-checkbox_4.cjs.entry.js +1 -1
  7. package/dist/cjs/verdocs-document-page_2.cjs.entry.js +3 -2
  8. package/dist/cjs/verdocs-dropdown.cjs.entry.js +2 -2
  9. package/dist/cjs/verdocs-envelope-sidebar.cjs.entry.js +6 -3
  10. package/dist/cjs/verdocs-field-checkbox.cjs.entry.js +8 -3
  11. package/dist/cjs/verdocs-field-date.cjs.entry.js +7 -3
  12. package/dist/cjs/verdocs-field-dropdown.cjs.entry.js +3 -2
  13. package/dist/cjs/verdocs-field-initial.cjs.entry.js +8 -3
  14. package/dist/cjs/verdocs-field-payment.cjs.entry.js +3 -2
  15. package/dist/cjs/verdocs-field-radio-button.cjs.entry.js +8 -3
  16. package/dist/cjs/verdocs-field-signature.cjs.entry.js +8 -3
  17. package/dist/cjs/verdocs-field-textarea.cjs.entry.js +8 -3
  18. package/dist/cjs/verdocs-field-textbox.cjs.entry.js +8 -3
  19. package/dist/cjs/verdocs-field-timestamp.cjs.entry.js +7 -3
  20. package/dist/cjs/verdocs-preview.cjs.entry.js +3 -2
  21. package/dist/cjs/verdocs-send.cjs.entry.js +3 -2
  22. package/dist/cjs/verdocs-sign.cjs.entry.js +12 -5
  23. package/dist/cjs/verdocs-template-attachments.cjs.entry.js +3 -0
  24. package/dist/cjs/verdocs-template-create_2.cjs.entry.js +16 -7
  25. package/dist/cjs/verdocs-template-name.cjs.entry.js +3 -4
  26. package/dist/cjs/verdocs-template-recipients.cjs.entry.js +47 -11
  27. package/dist/cjs/verdocs-view.cjs.entry.js +51 -11
  28. package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
  29. package/dist/collection/components/controls/verdocs-dropdown/verdocs-dropdown.css +6 -0
  30. package/dist/collection/components/controls/verdocs-dropdown/verdocs-dropdown.js +4 -2
  31. package/dist/collection/components/controls/verdocs-dropdown/verdocs-dropdown.stories.js +1 -1
  32. package/dist/collection/components/elements/verdocs-component-error/verdocs-component-error.css +2 -0
  33. package/dist/collection/components/elements/verdocs-envelope-sidebar/verdocs-envelope-sidebar.js +27 -1
  34. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js +10 -4
  35. package/dist/collection/components/embeds/verdocs-view/verdocs-view.js +70 -8
  36. package/dist/collection/components/fields/verdocs-field-checkbox/verdocs-field-checkbox.js +5 -1
  37. package/dist/collection/components/fields/verdocs-field-date/verdocs-field-date.js +5 -1
  38. package/dist/collection/components/fields/verdocs-field-initial/verdocs-field-initial.js +5 -1
  39. package/dist/collection/components/fields/verdocs-field-radio-button-group/verdocs-field-radio-button.js +5 -1
  40. package/dist/collection/components/fields/verdocs-field-signature/verdocs-field-signature.js +5 -1
  41. package/dist/collection/components/fields/verdocs-field-textarea/verdocs-field-textarea.js +5 -1
  42. package/dist/collection/components/fields/verdocs-field-textbox/verdocs-field-textbox.js +5 -1
  43. package/dist/collection/components/fields/verdocs-field-timestamp/verdocs-field-timestamp.js +5 -1
  44. package/dist/collection/components/templates/verdocs-template-attachments/verdocs-template-attachments.js +3 -0
  45. package/dist/collection/components/templates/verdocs-template-fields/verdocs-template-fields.js +37 -5
  46. package/dist/collection/components/templates/verdocs-template-name/verdocs-template-name.js +3 -4
  47. package/dist/collection/components/templates/verdocs-template-recipients/verdocs-template-recipients.css +16 -0
  48. package/dist/collection/components/templates/verdocs-template-recipients/verdocs-template-recipients.js +65 -7
  49. package/dist/collection/utils/envelopeStore.js +3 -0
  50. package/dist/collection/utils/utils.js +44 -3
  51. package/dist/components/Envelopes.js +4 -1
  52. package/dist/components/Envelopes2.js +11 -1
  53. package/dist/components/interact.min.js +1 -17
  54. package/dist/components/utils.js +80 -4
  55. package/dist/components/verdocs-component-error2.js +1 -1
  56. package/dist/components/verdocs-dropdown2.js +2 -2
  57. package/dist/components/verdocs-envelope-sidebar.js +4 -1
  58. package/dist/components/verdocs-field-checkbox.js +5 -1
  59. package/dist/components/verdocs-field-date.js +5 -1
  60. package/dist/components/verdocs-field-initial.js +5 -1
  61. package/dist/components/verdocs-field-radio-button.js +5 -1
  62. package/dist/components/verdocs-field-signature.js +5 -1
  63. package/dist/components/verdocs-field-textarea.js +5 -1
  64. package/dist/components/verdocs-field-textbox.js +5 -1
  65. package/dist/components/verdocs-field-timestamp.js +5 -1
  66. package/dist/components/verdocs-sign.js +9 -3
  67. package/dist/components/verdocs-template-attachments.js +10 -1
  68. package/dist/components/verdocs-template-fields2.js +14 -5
  69. package/dist/components/verdocs-template-name.js +11 -6
  70. package/dist/components/verdocs-template-recipients.js +53 -12
  71. package/dist/components/verdocs-view2.js +47 -8
  72. package/dist/docs.json +57 -3
  73. package/dist/esm/{Envelopes-91d7e139.js → Envelopes-b8945309.js} +4 -1
  74. package/dist/esm/{Envelopes-130fd6ea.js → Envelopes-eb3eef02.js} +11 -1
  75. package/dist/esm/{interact.min-32c1c1e4.js → interact.min-e472871a.js} +1 -17
  76. package/dist/esm/loader.js +1 -1
  77. package/dist/esm/utils-8065a62d.js +334 -0
  78. package/dist/esm/verdocs-checkbox_4.entry.js +1 -1
  79. package/dist/esm/verdocs-document-page_2.entry.js +3 -2
  80. package/dist/esm/verdocs-dropdown.entry.js +2 -2
  81. package/dist/esm/verdocs-envelope-sidebar.entry.js +6 -3
  82. package/dist/esm/verdocs-field-checkbox.entry.js +8 -3
  83. package/dist/esm/verdocs-field-date.entry.js +7 -3
  84. package/dist/esm/verdocs-field-dropdown.entry.js +3 -2
  85. package/dist/esm/verdocs-field-initial.entry.js +8 -3
  86. package/dist/esm/verdocs-field-payment.entry.js +3 -2
  87. package/dist/esm/verdocs-field-radio-button.entry.js +8 -3
  88. package/dist/esm/verdocs-field-signature.entry.js +8 -3
  89. package/dist/esm/verdocs-field-textarea.entry.js +8 -3
  90. package/dist/esm/verdocs-field-textbox.entry.js +8 -3
  91. package/dist/esm/verdocs-field-timestamp.entry.js +7 -3
  92. package/dist/esm/verdocs-preview.entry.js +3 -2
  93. package/dist/esm/verdocs-send.entry.js +3 -2
  94. package/dist/esm/verdocs-sign.entry.js +12 -5
  95. package/dist/esm/verdocs-template-attachments.entry.js +3 -0
  96. package/dist/esm/verdocs-template-create_2.entry.js +16 -7
  97. package/dist/esm/verdocs-template-name.entry.js +3 -4
  98. package/dist/esm/verdocs-template-recipients.entry.js +48 -12
  99. package/dist/esm/verdocs-view.entry.js +51 -11
  100. package/dist/esm/verdocs-web-sdk.js +1 -1
  101. package/dist/esm-es5/Envelopes-b8945309.js +1 -0
  102. package/dist/esm-es5/{Envelopes-130fd6ea.js → Envelopes-eb3eef02.js} +1 -1
  103. package/dist/esm-es5/interact.min-e472871a.js +1 -0
  104. package/dist/esm-es5/loader.js +1 -1
  105. package/dist/esm-es5/utils-8065a62d.js +13 -0
  106. package/dist/esm-es5/verdocs-checkbox_4.entry.js +1 -1
  107. package/dist/esm-es5/verdocs-document-page_2.entry.js +1 -1
  108. package/dist/esm-es5/verdocs-dropdown.entry.js +1 -1
  109. package/dist/esm-es5/verdocs-envelope-sidebar.entry.js +1 -1
  110. package/dist/esm-es5/verdocs-field-checkbox.entry.js +1 -1
  111. package/dist/esm-es5/verdocs-field-date.entry.js +1 -1
  112. package/dist/esm-es5/verdocs-field-dropdown.entry.js +1 -1
  113. package/dist/esm-es5/verdocs-field-initial.entry.js +1 -1
  114. package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
  115. package/dist/esm-es5/verdocs-field-radio-button.entry.js +1 -1
  116. package/dist/esm-es5/verdocs-field-signature.entry.js +1 -1
  117. package/dist/esm-es5/verdocs-field-textarea.entry.js +1 -1
  118. package/dist/esm-es5/verdocs-field-textbox.entry.js +1 -1
  119. package/dist/esm-es5/verdocs-field-timestamp.entry.js +1 -1
  120. package/dist/esm-es5/verdocs-preview.entry.js +1 -1
  121. package/dist/esm-es5/verdocs-send.entry.js +1 -1
  122. package/dist/esm-es5/verdocs-sign.entry.js +1 -1
  123. package/dist/esm-es5/verdocs-template-attachments.entry.js +1 -1
  124. package/dist/esm-es5/verdocs-template-create_2.entry.js +1 -1
  125. package/dist/esm-es5/verdocs-template-name.entry.js +1 -1
  126. package/dist/esm-es5/verdocs-template-recipients.entry.js +1 -1
  127. package/dist/esm-es5/verdocs-view.entry.js +1 -1
  128. package/dist/esm-es5/verdocs-web-sdk.js +1 -1
  129. package/dist/types/components/controls/verdocs-dropdown/verdocs-dropdown.d.ts +3 -1
  130. package/dist/types/components/elements/verdocs-envelope-sidebar/verdocs-envelope-sidebar.d.ts +9 -1
  131. package/dist/types/components/embeds/verdocs-sign/verdocs-sign.d.ts +1 -1
  132. package/dist/types/components/embeds/verdocs-view/verdocs-view.d.ts +9 -0
  133. package/dist/types/components/templates/verdocs-template-fields/verdocs-template-fields.d.ts +10 -1
  134. package/dist/types/components/templates/verdocs-template-recipients/verdocs-template-recipients.d.ts +12 -1
  135. package/dist/types/components.d.ts +17 -1
  136. package/dist/types/utils/envelopeStore.d.ts +1 -0
  137. package/dist/types/utils/utils.d.ts +4 -1
  138. package/dist/verdocs-web-sdk/p-085d66a2.entry.js +1 -0
  139. package/dist/verdocs-web-sdk/{p-b39df234.system.entry.js → p-0c393c2b.system.entry.js} +1 -1
  140. package/dist/verdocs-web-sdk/p-0d7db907.system.entry.js +1 -0
  141. package/dist/verdocs-web-sdk/p-113a45d3.entry.js +1 -0
  142. package/dist/verdocs-web-sdk/p-127a569c.system.entry.js +1 -0
  143. package/dist/verdocs-web-sdk/p-19d13aca.system.entry.js +1 -0
  144. package/dist/verdocs-web-sdk/p-1fe9560f.system.entry.js +1 -0
  145. package/dist/verdocs-web-sdk/p-25fa36d7.js +13 -0
  146. package/dist/verdocs-web-sdk/p-28620067.system.entry.js +1 -0
  147. package/dist/verdocs-web-sdk/p-388b771c.js +1 -0
  148. package/dist/verdocs-web-sdk/p-38d00c38.system.js +13 -0
  149. package/dist/verdocs-web-sdk/p-4086a15a.entry.js +1 -0
  150. package/dist/verdocs-web-sdk/{p-b40a50a8.system.entry.js → p-41122f38.system.entry.js} +1 -1
  151. package/dist/verdocs-web-sdk/p-42a82518.entry.js +1 -0
  152. package/dist/verdocs-web-sdk/p-433a7bb3.entry.js +1 -0
  153. package/dist/verdocs-web-sdk/p-56196fad.entry.js +1 -0
  154. package/dist/verdocs-web-sdk/p-5dc58d34.entry.js +1 -0
  155. package/dist/verdocs-web-sdk/p-5fda1fe8.system.entry.js +1 -0
  156. package/dist/verdocs-web-sdk/p-63c55bc3.entry.js +1 -0
  157. package/dist/verdocs-web-sdk/p-6619bc62.js +1 -0
  158. package/dist/verdocs-web-sdk/p-68eb0ad8.entry.js +1 -0
  159. package/dist/verdocs-web-sdk/p-6c231fe6.system.entry.js +1 -0
  160. package/dist/verdocs-web-sdk/p-6c4d28a2.entry.js +1 -0
  161. package/dist/verdocs-web-sdk/p-6e15a51e.system.entry.js +1 -0
  162. package/dist/verdocs-web-sdk/{p-7ac87084.system.js → p-6f53c098.system.js} +1 -1
  163. package/dist/verdocs-web-sdk/p-76bdb162.entry.js +1 -0
  164. package/dist/verdocs-web-sdk/p-79514d21.system.entry.js +1 -0
  165. package/dist/verdocs-web-sdk/p-7d8de5d6.system.entry.js +1 -0
  166. package/dist/verdocs-web-sdk/p-80fe8ac3.system.js +1 -0
  167. package/dist/verdocs-web-sdk/p-8a430554.entry.js +1 -0
  168. package/dist/verdocs-web-sdk/p-8b20b903.system.entry.js +1 -0
  169. package/dist/verdocs-web-sdk/p-8e5065af.entry.js +1 -0
  170. package/dist/verdocs-web-sdk/p-8ff15619.entry.js +1 -0
  171. package/dist/verdocs-web-sdk/p-93b857b6.system.entry.js +1 -0
  172. package/dist/verdocs-web-sdk/p-a892d5b4.js +1 -0
  173. package/dist/verdocs-web-sdk/p-b225dcfb.entry.js +1 -0
  174. package/dist/verdocs-web-sdk/{p-cdff8cba.system.entry.js → p-b430f3d0.system.entry.js} +1 -1
  175. package/dist/verdocs-web-sdk/p-b7740fe7.system.entry.js +1 -0
  176. package/dist/verdocs-web-sdk/{p-d06946ca.entry.js → p-bc24fcdc.entry.js} +1 -1
  177. package/dist/verdocs-web-sdk/p-bde3d383.system.entry.js +1 -0
  178. package/dist/verdocs-web-sdk/p-c08b737c.system.entry.js +1 -0
  179. package/dist/verdocs-web-sdk/p-c16b6ca4.system.js +1 -1
  180. package/dist/verdocs-web-sdk/{p-8c53e0ff.system.entry.js → p-c317702e.system.entry.js} +1 -1
  181. package/dist/verdocs-web-sdk/p-c6406e1d.system.entry.js +1 -0
  182. package/dist/verdocs-web-sdk/p-cf27d3ce.system.entry.js +1 -0
  183. package/dist/verdocs-web-sdk/{p-0eb992eb.entry.js → p-d3e25ad3.entry.js} +1 -1
  184. package/dist/verdocs-web-sdk/p-d5836d39.entry.js +1 -0
  185. package/dist/verdocs-web-sdk/p-d78594bb.entry.js +1 -0
  186. package/dist/verdocs-web-sdk/{p-9345346d.entry.js → p-e079768b.entry.js} +1 -1
  187. package/dist/verdocs-web-sdk/p-e53a7969.entry.js +1 -0
  188. package/dist/verdocs-web-sdk/p-e65ec569.system.entry.js +1 -0
  189. package/dist/verdocs-web-sdk/{p-e0cfad01.system.js → p-e764098e.system.js} +1 -1
  190. package/dist/verdocs-web-sdk/{p-abffbbaf.entry.js → p-ec913a97.entry.js} +1 -1
  191. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  192. package/package.json +3 -2
  193. package/dist/cjs/utils-865fd657.js +0 -269
  194. package/dist/esm/utils-274e2e93.js +0 -258
  195. package/dist/esm-es5/Envelopes-91d7e139.js +0 -1
  196. package/dist/esm-es5/interact.min-32c1c1e4.js +0 -1
  197. package/dist/esm-es5/utils-274e2e93.js +0 -1
  198. package/dist/verdocs-web-sdk/p-00307be5.system.entry.js +0 -1
  199. package/dist/verdocs-web-sdk/p-0214eab8.entry.js +0 -1
  200. package/dist/verdocs-web-sdk/p-07dfda29.entry.js +0 -1
  201. package/dist/verdocs-web-sdk/p-19f6e8c8.system.entry.js +0 -1
  202. package/dist/verdocs-web-sdk/p-1b58f506.entry.js +0 -1
  203. package/dist/verdocs-web-sdk/p-1c92741b.system.entry.js +0 -1
  204. package/dist/verdocs-web-sdk/p-2037252b.entry.js +0 -1
  205. package/dist/verdocs-web-sdk/p-242647c0.system.entry.js +0 -1
  206. package/dist/verdocs-web-sdk/p-25256749.entry.js +0 -1
  207. package/dist/verdocs-web-sdk/p-29df733a.system.entry.js +0 -1
  208. package/dist/verdocs-web-sdk/p-36fd1c28.system.entry.js +0 -1
  209. package/dist/verdocs-web-sdk/p-46cfb904.system.entry.js +0 -1
  210. package/dist/verdocs-web-sdk/p-47dfcf69.system.entry.js +0 -1
  211. package/dist/verdocs-web-sdk/p-4f12a8a7.js +0 -1
  212. package/dist/verdocs-web-sdk/p-50c9771e.js +0 -1
  213. package/dist/verdocs-web-sdk/p-587f4405.entry.js +0 -1
  214. package/dist/verdocs-web-sdk/p-628aef1d.system.entry.js +0 -1
  215. package/dist/verdocs-web-sdk/p-6790f267.system.entry.js +0 -1
  216. package/dist/verdocs-web-sdk/p-72f4b40b.entry.js +0 -1
  217. package/dist/verdocs-web-sdk/p-7a05d4ac.system.entry.js +0 -1
  218. package/dist/verdocs-web-sdk/p-875f9455.system.entry.js +0 -1
  219. package/dist/verdocs-web-sdk/p-880b619d.js +0 -1
  220. package/dist/verdocs-web-sdk/p-996008f6.system.entry.js +0 -1
  221. package/dist/verdocs-web-sdk/p-af65650c.entry.js +0 -1
  222. package/dist/verdocs-web-sdk/p-b22a2c9a.system.entry.js +0 -1
  223. package/dist/verdocs-web-sdk/p-b981d415.entry.js +0 -1
  224. package/dist/verdocs-web-sdk/p-bda7353b.entry.js +0 -1
  225. package/dist/verdocs-web-sdk/p-c11a7c7e.entry.js +0 -1
  226. package/dist/verdocs-web-sdk/p-c73998d3.system.entry.js +0 -1
  227. package/dist/verdocs-web-sdk/p-c86a40a3.system.entry.js +0 -1
  228. package/dist/verdocs-web-sdk/p-c9eb3771.entry.js +0 -1
  229. package/dist/verdocs-web-sdk/p-cd4270a9.system.entry.js +0 -1
  230. package/dist/verdocs-web-sdk/p-d122cadd.system.js +0 -1
  231. package/dist/verdocs-web-sdk/p-d6e07c20.js +0 -1
  232. package/dist/verdocs-web-sdk/p-d88f7d5e.system.entry.js +0 -1
  233. package/dist/verdocs-web-sdk/p-e090d5e1.system.js +0 -1
  234. package/dist/verdocs-web-sdk/p-e1754b47.entry.js +0 -1
  235. package/dist/verdocs-web-sdk/p-e6f3735e.entry.js +0 -1
  236. package/dist/verdocs-web-sdk/p-e845dc2c.entry.js +0 -1
  237. package/dist/verdocs-web-sdk/p-ef4603fd.entry.js +0 -1
  238. package/dist/verdocs-web-sdk/p-f81a559c.entry.js +0 -1
  239. package/dist/verdocs-web-sdk/p-ff2816cf.entry.js +0 -1
@@ -3,7 +3,7 @@ import { g as getSigningSession, u as updateEnvelopeField, a as updateEnvelopeFi
3
3
  import { V as VerdocsEndpoint } from './VerdocsEndpoint.js';
4
4
  import { a as isValidPhone, i as isValidEmail } from './Validators.js';
5
5
  import { f as fullNameToInitials } from './Primitives.js';
6
- import { s as savePDF, u as updateDocumentFieldValue, a as getRoleIndex, r as renderDocumentField, b as getFieldId } from './utils.js';
6
+ import { s as saveAttachment, u as updateDocumentFieldValue, a as getRoleIndex, r as renderDocumentField, b as getFieldId } from './utils.js';
7
7
  import { g as getEnvelopeById, s as state } from './Envelopes.js';
8
8
  import { S as SDKError } from './errors.js';
9
9
  import { d as defineCustomElement$8 } from './verdocs-button2.js';
@@ -217,29 +217,35 @@ const VerdocsSign$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
217
217
  });
218
218
  }
219
219
  async handleOptionSelected(e) {
220
+ var _a, _b, _c, _d, _e;
220
221
  switch (e.detail.id) {
221
222
  case 'later':
222
223
  this.finishLater = true;
223
224
  this.showFinishLater = true;
225
+ (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'later' });
224
226
  // this.router.navigate([`view/sign/${this.envelopeId}/role/${this.roleName}/saved`]);
225
227
  break;
226
228
  case 'claim':
227
229
  window.alert('This feature will be available in an upcoming release.');
230
+ (_b = this.envelopeUpdated) === null || _b === void 0 ? void 0 : _b.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'claimed' });
228
231
  break;
229
232
  case 'decline':
230
233
  {
231
234
  const declineResult = await envelopeRecipientDecline(this.endpoint, this.envelopeId, this.roleId);
232
235
  console.log('Decline result', declineResult);
236
+ (_c = this.envelopeUpdated) === null || _c === void 0 ? void 0 : _c.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'declined' });
233
237
  this.isDone = true;
234
238
  }
235
239
  break;
236
240
  case 'print':
237
241
  window.print();
242
+ (_d = this.envelopeUpdated) === null || _d === void 0 ? void 0 : _d.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'printed' });
238
243
  break;
239
244
  case 'download':
240
- savePDF(this.endpoint, state.envelope, state.envelope.envelope_document_id).catch(e => {
245
+ saveAttachment(this.endpoint, state.envelope, state.envelope.envelope_document_id).catch(e => {
241
246
  console.log('Error downloading PDF', e);
242
247
  });
248
+ (_e = this.envelopeUpdated) === null || _e === void 0 ? void 0 : _e.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'downloaded' });
243
249
  break;
244
250
  }
245
251
  }
@@ -495,7 +501,7 @@ const VerdocsSign$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
495
501
  if (state.loading || !state.envelope) {
496
502
  return (h(Host, null, h("verdocs-loader", null)));
497
503
  }
498
- return (h(Host, { class: { agreed: this.agreed } }, !this.isDone && !this.finishLater && h("div", { class: "intro" }, "Please review and act on these documents."), !this.isDone && (h("div", { class: "header" }, !this.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.isDone && !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.isDone && !this.agreed ? h("div", { class: "cover" }) : h("div", { style: { display: 'none' } }), this.isDone ? (
504
+ return (h(Host, { class: { agreed: this.agreed }, "data-r": state.updateCount }, !this.isDone && !this.finishLater && h("div", { class: "intro" }, "Please review and act on these documents."), !this.isDone && (h("div", { class: "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.isDone && !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.isDone && !this.agreed ? h("div", { class: "cover" }) : h("div", { style: { display: 'none' } }), this.isDone ? (
499
505
  // <div>test</div>
500
506
  h("verdocs-view", { endpoint: this.endpoint, envelopeId: this.envelopeId, onSdkError: e => { var _a; return (_a = this.sdkError) === null || _a === void 0 ? void 0 : _a.emit(e.detail); } })) : (h("div", { class: "document" }, (state.envelope.documents || []).map(envelopeDocument => {
501
507
  const pages = [...((envelopeDocument === null || envelopeDocument === void 0 ? void 0 : envelopeDocument.pages) || [])];
@@ -3,6 +3,7 @@ import { V as VerdocsEndpoint } from './VerdocsEndpoint.js';
3
3
  import { s as state } from './templateStore.js';
4
4
  import { l as loadTemplate } from './Templates.js';
5
5
  import { S as SDKError } from './errors.js';
6
+ import { d as defineCustomElement$3 } from './verdocs-component-error2.js';
6
7
  import { d as defineCustomElement$2 } from './verdocs-loader2.js';
7
8
 
8
9
  const verdocsTemplateAttachmentsCss = "verdocs-template-attachments{font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif}verdocs-template-attachments h5{font-size:16px;font-weight:bold;margin:0 0 10px 0;color:#4c56cb}verdocs-template-attachments .attachment{display:-ms-flexbox;display:flex;padding:5px 10px;-ms-flex-align:center;align-items:center;-ms-flex-direction:row;flex-direction:row;color:#33364b;border:1px solid #cccccc}verdocs-template-attachments svg{width:24px;height:24px;fill:#5c6575;margin:2px 10px 0 0}";
@@ -32,6 +33,9 @@ const VerdocsTemplateAttachments$1 = /*@__PURE__*/ proxyCustomElement(class exte
32
33
  }
33
34
  }
34
35
  render() {
36
+ if (!this.endpoint.session) {
37
+ return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
38
+ }
35
39
  if (this.loading) {
36
40
  return (h(Host, { class: "loading" }, h("verdocs-loader", null)));
37
41
  }
@@ -51,13 +55,18 @@ function defineCustomElement$1() {
51
55
  if (typeof customElements === "undefined") {
52
56
  return;
53
57
  }
54
- const components = ["verdocs-template-attachments", "verdocs-loader"];
58
+ const components = ["verdocs-template-attachments", "verdocs-component-error", "verdocs-loader"];
55
59
  components.forEach(tagName => { switch (tagName) {
56
60
  case "verdocs-template-attachments":
57
61
  if (!customElements.get(tagName)) {
58
62
  customElements.define(tagName, VerdocsTemplateAttachments$1);
59
63
  }
60
64
  break;
65
+ case "verdocs-component-error":
66
+ if (!customElements.get(tagName)) {
67
+ defineCustomElement$3();
68
+ }
69
+ break;
61
70
  case "verdocs-loader":
62
71
  if (!customElements.get(tagName)) {
63
72
  defineCustomElement$2();
@@ -22,12 +22,12 @@ const iconDatepicker = '<svg xmlns="http://www.w3.org/2000/svg" height="24" widt
22
22
  const iconSignature = '<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"><path d="m9.225 21.225 4.65-4.65h8.45v4.65Zm-5.35-2.2H5.05l8.5-8.5-1.175-1.175-8.5 8.5Zm14.25-9.95L13.8 4.8l1.325-1.325q.625-.65 1.525-.663.9-.012 1.6.663l1.225 1.175q.675.675.663 1.562-.013.888-.663 1.513ZM16.7 10.55 6 21.225H1.675V16.9L12.35 6.225Zm-3.725-.625-.6-.575 1.175 1.175Z"/></svg>';
23
23
  const iconInitial = '<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"><path d="M6.225 20.775V7h-5V3.225H15V7h-5v13.775Zm9.775 0v-8h-3V9h9.775v3.775h-3v8Z"/></svg>';
24
24
  const menuOptions = [
25
- { id: 'attachment', tooltip: 'Attachment', icon: 'A' },
25
+ // {id: 'attachment', tooltip: 'Attachment', icon: 'A'},
26
26
  { id: 'checkbox', tooltip: 'Check Box', icon: iconCheck },
27
27
  { id: 'date', tooltip: 'Date', icon: iconDatepicker },
28
28
  { id: 'dropdown', tooltip: 'Dropdown', icon: 'O' },
29
29
  { id: 'initial', tooltip: 'Initials', icon: iconInitial },
30
- { id: 'payment', tooltip: 'Payment', icon: 'P' },
30
+ // {id: 'payment', tooltip: 'Payment', icon: 'P'},
31
31
  { id: 'radio', tooltip: 'Radio Button', icon: iconRadio },
32
32
  { id: 'signature', tooltip: 'Signature', icon: iconSignature },
33
33
  { id: 'textarea', tooltip: 'Text Area', icon: iconMultiline },
@@ -41,12 +41,14 @@ const VerdocsTemplateFields = /*@__PURE__*/ proxyCustomElement(class extends HTM
41
41
  this.next = createEvent(this, "next", 7);
42
42
  this.cancel = createEvent(this, "cancel", 7);
43
43
  this.sdkError = createEvent(this, "sdkError", 7);
44
+ this.templateUpdated = createEvent(this, "templateUpdated", 7);
44
45
  this.pageHeights = {};
45
46
  this.cachedPageInfo = {};
46
47
  this.endpoint = VerdocsEndpoint.getDefault();
47
48
  this.templateId = null;
48
49
  this.placing = null;
49
50
  this.selectedRoleName = '';
51
+ this.rerender = 1;
50
52
  }
51
53
  async componentWillLoad() {
52
54
  var _a, _b, _c, _d, _e, _f;
@@ -81,11 +83,16 @@ const VerdocsTemplateFields = /*@__PURE__*/ proxyCustomElement(class extends HTM
81
83
  }
82
84
  async handleFieldChange(field, e, optionId) {
83
85
  console.log('[FIELDS] handleFieldChange', field, e, optionId);
86
+ this.rerender++;
84
87
  }
85
88
  attachFieldAttributes(pageInfo, field, roleIndex, el) {
86
89
  el.addEventListener('input', e => this.handleFieldChange(field, e));
87
90
  el.addEventListener('settingsChanged', () => {
91
+ var _a;
92
+ console.log('settings changed', this, field);
88
93
  el.setAttribute('roleindex', getRoleIndex(state.roleNames, field.role_name));
94
+ this.rerender++;
95
+ (_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: state.template, event: 'updated-field' });
89
96
  });
90
97
  el.setAttribute('roleindex', roleIndex);
91
98
  el.setAttribute('pageNumber', pageInfo.pageNumber);
@@ -169,6 +176,7 @@ const VerdocsTemplateFields = /*@__PURE__*/ proxyCustomElement(class extends HTM
169
176
  return { x, y };
170
177
  }
171
178
  async handleClickPage(e, page) {
179
+ var _a;
172
180
  if (this.placing) {
173
181
  const pageNumber = page.sequence;
174
182
  const clickedX = e.offsetX;
@@ -227,11 +235,11 @@ const VerdocsTemplateFields = /*@__PURE__*/ proxyCustomElement(class extends HTM
227
235
  console.log('Saved field', saved);
228
236
  state.fields.push(saved);
229
237
  this.placing = null;
238
+ (_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: state.template, event: 'added-field' });
230
239
  this.handlePageRendered({ detail: this.cachedPageInfo[pageNumber] });
231
240
  }
232
241
  }
233
242
  render() {
234
- console.log('rendering', state.updateCount);
235
243
  if (!this.endpoint.session) {
236
244
  return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
237
245
  }
@@ -241,7 +249,7 @@ const VerdocsTemplateFields = /*@__PURE__*/ proxyCustomElement(class extends HTM
241
249
  }
242
250
  const pages = [...state.template.pages];
243
251
  pages.sort((a, b) => a.sequence - b.sequence);
244
- return (h(Host, { class: this.placing ? { [`placing-${this.placing}`]: true } : {}, "data-updated": state.updateCount, onSubmit: () => {
252
+ return (h(Host, { class: this.placing ? { [`placing-${this.placing}`]: true } : {}, "data-r": this.rerender, onSubmit: () => {
245
253
  console.log('onSubmit');
246
254
  } }, h("div", { class: "pages" }, pages.map(page => {
247
255
  // console.log('rendering page', page);
@@ -258,7 +266,8 @@ const VerdocsTemplateFields = /*@__PURE__*/ proxyCustomElement(class extends HTM
258
266
  "endpoint": [16],
259
267
  "templateId": [1, "template-id"],
260
268
  "placing": [32],
261
- "selectedRoleName": [32]
269
+ "selectedRoleName": [32],
270
+ "rerender": [32]
262
271
  }]);
263
272
  function defineCustomElement() {
264
273
  if (typeof customElements === "undefined") {
@@ -4,7 +4,8 @@ import { V as VerdocsEndpoint } from './VerdocsEndpoint.js';
4
4
  import { s as state } from './templateStore.js';
5
5
  import { l as loadTemplate } from './Templates.js';
6
6
  import { S as SDKError } from './errors.js';
7
- import { d as defineCustomElement$5 } from './verdocs-button2.js';
7
+ import { d as defineCustomElement$6 } from './verdocs-button2.js';
8
+ import { d as defineCustomElement$5 } from './verdocs-component-error2.js';
8
9
  import { d as defineCustomElement$4 } from './verdocs-help-icon2.js';
9
10
  import { d as defineCustomElement$3 } from './verdocs-loader2.js';
10
11
  import { d as defineCustomElement$2 } from './verdocs-text-input2.js';
@@ -54,13 +55,12 @@ const VerdocsTemplateName$1 = /*@__PURE__*/ proxyCustomElement(class extends HTM
54
55
  (_a = this.close) === null || _a === void 0 ? void 0 : _a.emit();
55
56
  }
56
57
  render() {
58
+ if (!this.endpoint.session) {
59
+ return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
60
+ }
57
61
  if (this.loading) {
58
62
  return (h(Host, { class: "loading" }, h("verdocs-loader", null)));
59
63
  }
60
- // This is meant to be a companion for larger visual experiences so we just go blank on errors for now.
61
- if (!this.endpoint.session || !state.template) {
62
- return h(Host, { class: "empty" });
63
- }
64
64
  return (h(Host, null, h("form", { onSubmit: e => e.preventDefault(), onClick: e => e.stopPropagation(), autocomplete: "off" }, h("label", { htmlFor: "verdocs-template-name" }, "Template Name"), h("verdocs-text-input", { id: "verdocs-template-name", value: this.name, autocomplete: "off", placeholder: "Template Name...", onInput: (e) => {
65
65
  this.name = e.target.value;
66
66
  this.dirty = this.name !== state.template.name;
@@ -78,7 +78,7 @@ function defineCustomElement$1() {
78
78
  if (typeof customElements === "undefined") {
79
79
  return;
80
80
  }
81
- const components = ["verdocs-template-name", "verdocs-button", "verdocs-help-icon", "verdocs-loader", "verdocs-text-input"];
81
+ const components = ["verdocs-template-name", "verdocs-button", "verdocs-component-error", "verdocs-help-icon", "verdocs-loader", "verdocs-text-input"];
82
82
  components.forEach(tagName => { switch (tagName) {
83
83
  case "verdocs-template-name":
84
84
  if (!customElements.get(tagName)) {
@@ -86,6 +86,11 @@ function defineCustomElement$1() {
86
86
  }
87
87
  break;
88
88
  case "verdocs-button":
89
+ if (!customElements.get(tagName)) {
90
+ defineCustomElement$6();
91
+ }
92
+ break;
93
+ case "verdocs-component-error":
89
94
  if (!customElements.get(tagName)) {
90
95
  defineCustomElement$5();
91
96
  }
@@ -7,15 +7,16 @@ import { s as state } from './templateStore.js';
7
7
  import { l as loadTemplate } from './Templates.js';
8
8
  import { a as getRoleIndex } from './utils.js';
9
9
  import { S as SDKError } from './errors.js';
10
- import { d as defineCustomElement$9 } from './verdocs-button2.js';
11
- import { d as defineCustomElement$8 } from './verdocs-checkbox2.js';
10
+ import { d as defineCustomElement$a } from './verdocs-button2.js';
11
+ import { d as defineCustomElement$9 } from './verdocs-checkbox2.js';
12
+ import { d as defineCustomElement$8 } from './verdocs-component-error2.js';
12
13
  import { d as defineCustomElement$7 } from './verdocs-help-icon2.js';
13
14
  import { d as defineCustomElement$6 } from './verdocs-radio-button2.js';
14
15
  import { d as defineCustomElement$5 } from './verdocs-select-input2.js';
15
16
  import { d as defineCustomElement$3 } from './verdocs-template-sender2.js';
16
17
  import { d as defineCustomElement$2 } from './verdocs-text-input2.js';
17
18
 
18
- const verdocsTemplateRecipientsCss = "verdocs-template-recipients{display:block;min-width:400px;font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif}verdocs-template-recipients>form{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;background-color:#ffffff;padding:12px}verdocs-template-recipients>form h5{font-size:16px;font-weight:bold;color:#4c56cb;margin:0 0 10px 0}verdocs-template-recipients>form .participants{position:relative}verdocs-template-recipients>form .left-line{top:32px;left:11px;z-index:1;width:12px;bottom:30px;position:absolute;background:#ffffff;border-left:3px dotted #9b9b9b}verdocs-template-recipients>form .row{display:-ms-flexbox;display:flex;-webkit-column-gap:0;-moz-column-gap:0;column-gap:0;margin-left:40px;position:relative;-ms-flex-direction:row;flex-direction:row;padding:6px 0 4px 0}verdocs-template-recipients>form .row .row-recipients{-ms-flex:1;flex:1;display:-ms-flexbox;display:flex;-webkit-column-gap:10px;-moz-column-gap:10px;column-gap:10px;-ms-flex-direction:row;flex-direction:row}verdocs-template-recipients>form .row .icon{top:14px;z-index:2;left:-40px;width:24px;height:24px;position:absolute;background:#ffffff}verdocs-template-recipients>form .row .sender{height:30px;display:-ms-flexbox;display:flex;font-size:14px;padding:0 5px 0 15px;line-height:30px;-ms-flex-direction:row;flex-direction:row;border-radius:30px;border:1px solid #c6c9cc;background-color:#f5f5fa}verdocs-template-recipients>form .row .complete{height:30px;display:-ms-flexbox;display:flex;font-size:14px;padding:0 15px;line-height:30px;-ms-flex-direction:row;flex-direction:row;border-radius:30px;background-color:#f5f5fa;border:1px solid #aeb4bf}verdocs-template-recipients>form .row .label{font-weight:bold;margin-right:6px;color:#33364b}verdocs-template-recipients>form .row .settings-button{margin:4px 0 0 9px;cursor:pointer}verdocs-template-recipients>form .row .recipient{height:30px;display:-ms-flexbox;display:flex;font-size:14px;line-height:30px;border-radius:30px;-ms-flex-direction:row;flex-direction:row;padding:0 5px 0 6px;white-space:nowrap;border:1px solid #aeb4bf}verdocs-template-recipients>form .row .recipient .type-icon{width:24px;height:24px;-webkit-transform:scale(0.8);transform:scale(0.8);opacity:0.6;margin:4px 12px 0 0}verdocs-template-recipients>form .row .recipient.dragging{position:absolute}verdocs-template-recipients>form .row .recipient.dragging+.dropzone{display:none !important}verdocs-template-recipients>form .row .dropzone{width:14px;height:30px;display:none}verdocs-template-recipients>form .row .dropzone svg{fill:#cccccc}verdocs-template-recipients>form .row .dropzone.visible{margin:0 7px;display:-ms-flexbox;display:flex;-ms-flex:0 0 14px;flex:0 0 14px}verdocs-template-recipients>form .row .dropzone.active{-ms-flex:0 0 120px;flex:0 0 120px;border-radius:30px;background:#654dcb7f;border:1px dashed #654dcb}verdocs-template-recipients>form label{display:block;font-size:14px;font-weight:500;margin:0 0 4px 0;color:#5c6575}verdocs-template-recipients>form input{border:none;font-size:18px;padding:3px 6px 3px 0;background:transparent;border-bottom:1px solid #33364b}verdocs-template-recipients>form input:focus{outline:none}verdocs-template-recipients .row.add-sequence{display:none}verdocs-template-recipients .add-role{margin:0;padding:0;border:none;opacity:0.5;cursor:pointer;background:none}verdocs-template-recipients .add-role:hover{opacity:1}verdocs-template-recipients .add-role svg{width:32px;height:32px}verdocs-template-recipients.dragging .add-role{display:none}verdocs-template-recipients.dragging form .row .recipient+.dropzone{display:-ms-flexbox;display:flex}verdocs-template-recipients.dragging .row.add-sequence{display:-ms-flexbox;display:flex}verdocs-template-recipients.dragging .row.add-sequence .dropzone{opacity:0.5;-ms-flex:0 0 120px;flex:0 0 120px;border-radius:30px;-ms-flex-align:center;align-items:center;background:#654dcb7f;-ms-flex-pack:center;justify-content:center;border:1px dashed #654dcb}verdocs-template-recipients.dragging .row.add-sequence .dropzone.active{opacity:1}verdocs-template-recipients .buttons{display:-ms-flexbox;display:flex;-webkit-column-gap:8px;-moz-column-gap:8px;column-gap:8px;margin-top:16px;-ms-flex-direction:row;flex-direction:row}verdocs-template-recipients .empty{font-size:13px;margin-top:15px;margin-bottom:5px}verdocs-template-recipients .empty svg{width:20px;height:20px;stroke:#666666;margin-bottom:-5px}verdocs-template-recipients ::-webkit-input-placeholder{color:#aaaaaa}verdocs-template-recipients ::-moz-placeholder{color:#aaaaaa}verdocs-template-recipients :-ms-input-placeholder{color:#aaaaaa}verdocs-template-recipients ::-ms-input-placeholder{color:#aaaaaa}verdocs-template-recipients ::placeholder{color:#aaaaaa}";
19
+ const verdocsTemplateRecipientsCss = "verdocs-template-recipients{display:block;min-width:400px;font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif}verdocs-template-recipients>form{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;background-color:#ffffff;padding:12px}verdocs-template-recipients>form h5{font-size:16px;font-weight:bold;color:#4c56cb;margin:0 0 10px 0}verdocs-template-recipients>form .participants{position:relative}verdocs-template-recipients>form .left-line{top:32px;left:11px;z-index:1;width:12px;bottom:30px;position:absolute;background:#ffffff;border-left:3px dotted #9b9b9b}verdocs-template-recipients>form .row{display:-ms-flexbox;display:flex;-webkit-column-gap:0;-moz-column-gap:0;column-gap:0;min-height:35px;margin-left:40px;position:relative;-ms-flex-direction:row;flex-direction:row;padding:6px 0 4px 0}verdocs-template-recipients>form .row .row-recipients{-ms-flex:1;flex:1;display:-ms-flexbox;display:flex;-webkit-column-gap:10px;-moz-column-gap:10px;column-gap:10px;-ms-flex-direction:row;flex-direction:row}verdocs-template-recipients>form .row .icon{top:14px;z-index:2;left:-40px;width:24px;height:24px;position:absolute;background:#ffffff}verdocs-template-recipients>form .row .sender{height:30px;display:-ms-flexbox;display:flex;font-size:14px;padding:0 5px 0 15px;line-height:30px;-ms-flex-direction:row;flex-direction:row;border-radius:30px;border:1px solid #c6c9cc;background-color:#f5f5fa}verdocs-template-recipients>form .row .complete{height:30px;display:-ms-flexbox;display:flex;font-size:14px;padding:0 15px;line-height:30px;-ms-flex-direction:row;flex-direction:row;border-radius:30px;background-color:#f5f5fa;border:1px solid #aeb4bf}verdocs-template-recipients>form .row .label{font-weight:bold;margin-right:6px;color:#33364b}verdocs-template-recipients>form .row .settings-button{margin:4px 0 0 9px;cursor:pointer}verdocs-template-recipients>form .row .recipient{height:30px;display:-ms-flexbox;display:flex;font-size:14px;line-height:30px;border-radius:30px;-ms-flex-direction:row;flex-direction:row;padding:0 5px 0 6px;white-space:nowrap;border:1px solid #aeb4bf}verdocs-template-recipients>form .row .recipient .type-icon{width:24px;height:24px;-webkit-transform:scale(0.8);transform:scale(0.8);opacity:0.6;margin:4px 12px 0 0}verdocs-template-recipients>form .row .recipient.dragging{position:absolute}verdocs-template-recipients>form .row .recipient.dragging+.dropzone{display:none !important}verdocs-template-recipients>form .row .dropzone{width:14px;height:30px;display:none}verdocs-template-recipients>form .row .dropzone svg{fill:#cccccc}verdocs-template-recipients>form .row .dropzone.visible{margin:0 7px;display:-ms-flexbox;display:flex;-ms-flex:0 0 14px;flex:0 0 14px}verdocs-template-recipients>form .row .dropzone.active{-ms-flex:0 0 120px;flex:0 0 120px;border-radius:30px;background:#654dcb7f;border:1px dashed #654dcb}verdocs-template-recipients>form label{display:block;font-size:14px;font-weight:500;margin:0 0 4px 0;color:#5c6575}verdocs-template-recipients>form input{border:none;font-size:18px;padding:3px 6px 3px 0;background:transparent;border-bottom:1px solid #33364b}verdocs-template-recipients>form input:focus{outline:none}verdocs-template-recipients .row.add-sequence{display:none}verdocs-template-recipients .add-role{margin:0;padding:0;border:none;opacity:0.5;cursor:pointer;background:none}verdocs-template-recipients .add-role:hover{opacity:1}verdocs-template-recipients .add-role svg{width:32px;height:32px}verdocs-template-recipients .add-step{margin:0;padding:0;border:none;opacity:0.5;cursor:pointer;background:none}verdocs-template-recipients .add-step:hover{opacity:1}verdocs-template-recipients .add-step svg{width:32px;height:32px}verdocs-template-recipients.dragging .add-role{display:none}verdocs-template-recipients.dragging form .row .recipient+.dropzone{display:-ms-flexbox;display:flex}verdocs-template-recipients.dragging .row.add-sequence{display:-ms-flexbox;display:flex}verdocs-template-recipients.dragging .row.add-sequence .dropzone{opacity:0.5;-ms-flex:0 0 120px;flex:0 0 120px;border-radius:30px;-ms-flex-align:center;align-items:center;background:#654dcb7f;-ms-flex-pack:center;justify-content:center;border:1px dashed #654dcb}verdocs-template-recipients.dragging .row.add-sequence .dropzone.active{opacity:1}verdocs-template-recipients .buttons{display:-ms-flexbox;display:flex;-webkit-column-gap:8px;-moz-column-gap:8px;column-gap:8px;margin-top:16px;-ms-flex-direction:row;flex-direction:row}verdocs-template-recipients .empty{font-size:13px;margin-top:15px;margin-bottom:5px}verdocs-template-recipients .empty svg{width:20px;height:20px;stroke:#666666;margin-bottom:-5px}verdocs-template-recipients ::-webkit-input-placeholder{color:#aaaaaa}verdocs-template-recipients ::-moz-placeholder{color:#aaaaaa}verdocs-template-recipients :-ms-input-placeholder{color:#aaaaaa}verdocs-template-recipients ::-ms-input-placeholder{color:#aaaaaa}verdocs-template-recipients ::placeholder{color:#aaaaaa}";
19
20
 
20
21
  const senderLabels = {
21
22
  [TemplateSenderTypes.EVERYONE]: 'Everyone',
@@ -39,6 +40,7 @@ const VerdocsTemplateRecipients$1 = /*@__PURE__*/ proxyCustomElement(class exten
39
40
  this.next = createEvent(this, "next", 7);
40
41
  this.cancel = createEvent(this, "cancel", 7);
41
42
  this.sdkError = createEvent(this, "sdkError", 7);
43
+ this.templateUpdated = createEvent(this, "templateUpdated", 7);
42
44
  this.sequences = [];
43
45
  this.endpoint = VerdocsEndpoint.getDefault();
44
46
  this.templateId = '';
@@ -196,17 +198,47 @@ const VerdocsTemplateRecipients$1 = /*@__PURE__*/ proxyCustomElement(class exten
196
198
  // Now re-extract them to get our final result e.g. [1, 2, 3]
197
199
  this.extractSequenceNumbers();
198
200
  }
199
- handleAddRole(e, sequence) {
200
- e.stopPropagation();
201
- // We don't need to look for a unique order number because we're already working with a sorted/renumbered set by now.
202
- const order = state.template.roles.filter(role => role.sequence === sequence).length + 1;
203
- // We do need to look for name conflicts because they're UGC and can be anything, regardless of order.
201
+ // Look for name conflicts, because they're UGC and can be anything, regardless of order.
202
+ getNextRecipientName() {
204
203
  let name = '';
205
204
  let nextNumber = state.template.roles.length;
206
205
  do {
207
206
  nextNumber++;
208
207
  name = `Recipient ${nextNumber}`;
209
208
  } while (!name || state.template.roles.some(role => role.name === name));
209
+ return name;
210
+ }
211
+ handleAddRole(e, sequence) {
212
+ e.stopPropagation();
213
+ // We don't need to look for a unique order number because we're already working with a sorted/renumbered set by now.
214
+ const order = state.template.roles.filter(role => role.sequence === sequence).length + 1;
215
+ const name = this.getNextRecipientName();
216
+ console.log('Will create', name, sequence, order);
217
+ createRole(this.endpoint, this.templateId, {
218
+ template_id: this.templateId,
219
+ name,
220
+ full_name: '',
221
+ email: '',
222
+ phone: '',
223
+ sequence,
224
+ order,
225
+ type: 'signer',
226
+ delegator: false,
227
+ })
228
+ .then(r => {
229
+ console.log('Created role', r);
230
+ state.template.roles.push(r);
231
+ this.renumberTemplateRoles();
232
+ this.forceRerender++;
233
+ })
234
+ .catch(e => {
235
+ console.log('Error creating role', e);
236
+ });
237
+ }
238
+ handleAddStep(e, sequence) {
239
+ e.stopPropagation();
240
+ const order = 1;
241
+ const name = this.getNextRecipientName();
210
242
  console.log('Will create', name, sequence, order);
211
243
  createRole(this.endpoint, this.templateId, {
212
244
  template_id: this.templateId,
@@ -230,12 +262,16 @@ const VerdocsTemplateRecipients$1 = /*@__PURE__*/ proxyCustomElement(class exten
230
262
  });
231
263
  }
232
264
  render() {
233
- const roleNames = state.template.roles.map(role => role.name);
265
+ var _a;
266
+ if (!this.endpoint.session) {
267
+ return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
268
+ }
269
+ const roleNames = (((_a = state.template) === null || _a === void 0 ? void 0 : _a.roles) || []).map(role => role.name);
234
270
  return (h(Host, null, h("form", { onSubmit: e => e.preventDefault(), onClick: e => e.stopPropagation(), autocomplete: "off", "data-r": this.forceRerender }, h("h5", null, "Roles"), h("div", { class: "participants" }, h("div", { class: "left-line" }), h("div", { class: "row" }, h("div", { class: "icon", innerHTML: startIcon }), h("div", { class: "row-recipients" }, h("div", { class: "sender" }, h("span", { class: "label" }, "Sender:"), " ", senderLabels[state.template.sender], ' ', h("div", { class: "settings-button", innerHTML: settingsIcon, onClick: () => (this.showingSenderDialog = true), "aria-role": "button" })))), h("div", { class: "row add-sequence", "data-sequence": 0 }, h("div", { class: "icon", innerHTML: plusIcon }), h("div", { class: "row-recipients" }, h("div", { class: "dropzone", "data-sequence": 0, "data-order": 1 }, "Add Step"))), this.sequences.map(sequence => (h(Fragment, null, h("div", { class: "row" }, h("div", { class: "icon", innerHTML: stepIcon }), h("div", { class: "row-recipients" }, h("div", { class: "dropzone", "data-order": 0.5, "data-sequence": sequence }), state.template.roles
235
271
  .filter(role => role.sequence === sequence)
236
272
  .map(role => {
237
273
  return (h(Fragment, null, h("div", { class: "recipient", style: { backgroundColor: getRGBA(getRoleIndex(roleNames, role.name)) }, "data-rolename": role.name }, h("span", { class: "type-icon", innerHTML: role.type === 'signer' ? iconSigner : role.type === 'cc' ? iconCC : iconApprover }), role.name, " ", h("div", { class: "settings-button", innerHTML: settingsIcon, onClick: () => (this.showingRoleDialog = role.name), "aria-role": "button" })), h("div", { class: "dropzone", "data-order": role.order + 0.5, "data-sequence": sequence })));
238
- }), h("button", { class: "add-role", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, sequence) }))), h("div", { class: "row add-sequence", "data-sequence": sequence }, h("div", { class: "row-recipients" }, h("div", { class: "icon", innerHTML: plusIcon }), h("div", { class: "dropzone", "data-sequence": sequence + 1, "data-order": 1 }, "Add Step")))))), this.sequences.length < 1 && (h(Fragment, null, h("div", { class: "row" }, h("div", { class: "icon", innerHTML: stepIcon }), h("div", { class: "row-recipients" }, h("button", { class: "add-role", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, 1) }))))), h("div", { class: "row" }, h("div", { class: "icon", innerHTML: doneIcon }), h("div", { class: "row-recipients" }, h("div", { class: "complete" }, "Document Complete")))), roleNames.length < 1 && (h("div", { class: "empty" }, "You must add at least one Role before proceeding.", h("br", null), " Click the ", h("span", { innerHTML: plusIcon }), " Add button above to get started.")), h("div", { class: "buttons" }, h("div", { class: "flex-fill" }), h("verdocs-button", { variant: "outline", label: "Cancel", size: "small", onClick: e => this.handleCancel(e) }), h("verdocs-button", { label: "OK", size: "small", onClick: e => this.handleSubmit(e), disabled: roleNames.length < 1 }))), this.showingRoleDialog && (h("verdocs-template-role-properties", { endpoint: this.endpoint, templateId: this.templateId, roleName: this.showingRoleDialog, onClose: () => {
274
+ }), h("button", { class: "add-role", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, sequence) }))), h("div", { class: "row add-sequence", "data-sequence": sequence }, h("div", { class: "row-recipients" }, h("div", { class: "icon", innerHTML: plusIcon }), h("div", { class: "dropzone", "data-sequence": sequence + 1, "data-order": 1 }, "Add Step")))))), h("div", { class: "row", "data-sequence": this.sequences.length + 1 }, h("div", { class: "row-recipients" }, h("div", { class: "icon", innerHTML: plusIcon }), h("button", { class: "add-step", innerHTML: plusIcon, onClick: e => this.handleAddStep(e, this.sequences.length + 1) }))), this.sequences.length < 1 && (h(Fragment, null, h("div", { class: "row" }, h("div", { class: "icon", innerHTML: stepIcon }), h("div", { class: "row-recipients" }, h("button", { class: "add-role", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, 1) }))))), h("div", { class: "row" }, h("div", { class: "icon", innerHTML: doneIcon }), h("div", { class: "row-recipients" }, h("div", { class: "complete" }, "Document Complete")))), roleNames.length < 1 && (h("div", { class: "empty" }, "You must add at least one Role before proceeding.", h("br", null), " Click the ", h("span", { innerHTML: plusIcon }), " Add button above to get started.")), h("div", { class: "buttons" }, h("div", { class: "flex-fill" }), h("verdocs-button", { variant: "outline", label: "Cancel", size: "small", onClick: e => this.handleCancel(e) }), h("verdocs-button", { label: "OK", size: "small", onClick: e => this.handleSubmit(e), disabled: roleNames.length < 1 }))), this.showingRoleDialog && (h("verdocs-template-role-properties", { endpoint: this.endpoint, templateId: this.templateId, roleName: this.showingRoleDialog, onClose: () => {
239
275
  this.showingRoleDialog = null;
240
276
  this.forceRerender++;
241
277
  }, onDelete: e => {
@@ -259,7 +295,7 @@ function defineCustomElement$1() {
259
295
  if (typeof customElements === "undefined") {
260
296
  return;
261
297
  }
262
- const components = ["verdocs-template-recipients", "verdocs-button", "verdocs-checkbox", "verdocs-help-icon", "verdocs-radio-button", "verdocs-select-input", "verdocs-template-role-properties", "verdocs-template-sender", "verdocs-text-input"];
298
+ const components = ["verdocs-template-recipients", "verdocs-button", "verdocs-checkbox", "verdocs-component-error", "verdocs-help-icon", "verdocs-radio-button", "verdocs-select-input", "verdocs-template-role-properties", "verdocs-template-sender", "verdocs-text-input"];
263
299
  components.forEach(tagName => { switch (tagName) {
264
300
  case "verdocs-template-recipients":
265
301
  if (!customElements.get(tagName)) {
@@ -268,10 +304,15 @@ function defineCustomElement$1() {
268
304
  break;
269
305
  case "verdocs-button":
270
306
  if (!customElements.get(tagName)) {
271
- defineCustomElement$9();
307
+ defineCustomElement$a();
272
308
  }
273
309
  break;
274
310
  case "verdocs-checkbox":
311
+ if (!customElements.get(tagName)) {
312
+ defineCustomElement$9();
313
+ }
314
+ break;
315
+ case "verdocs-component-error":
275
316
  if (!customElements.get(tagName)) {
276
317
  defineCustomElement$8();
277
318
  }
@@ -1,23 +1,20 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host, Fragment } from '@stencil/core/internal/client';
2
2
  import { V as VerdocsEndpoint } from './VerdocsEndpoint.js';
3
+ import { f as saveEnvelopesAsZip, h as saveCertificate, s as saveAttachment } from './utils.js';
3
4
  import { g as getEnvelopeById, s as state } from './Envelopes.js';
4
5
  import { S as SDKError } from './errors.js';
5
- import { s as savePDF } from './utils.js';
6
6
  import { d as defineCustomElement$3 } from './verdocs-document-page2.js';
7
7
  import { d as defineCustomElement$2 } from './verdocs-dropdown2.js';
8
8
  import { d as defineCustomElement$1 } from './verdocs-loader2.js';
9
9
 
10
10
  const verdocsViewCss = "verdocs-view{display:-ms-flexbox;display:flex;overflow:hidden;position:relative;min-height:600px;-ms-flex-direction:column;flex-direction:column;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif}verdocs-view div,verdocs-view canvas{-webkit-box-sizing:border-box;box-sizing:border-box}verdocs-view .header{color:#fff;display:-ms-flexbox;display:flex;z-index:1000;-ms-flex:0 0 56px;flex:0 0 56px;padding:0 15px;font-size:12px;-ms-flex-align:center;align-items:center;-ms-flex-direction:row;flex-direction:row;-webkit-transition:all 0.25s;transition:all 0.25s;background-color:#33354c;-webkit-box-shadow:0 4px 4px 0 rgba(0, 0, 0, 0.24), 0 0 4px 0 rgba(0, 0, 0, 0.12);box-shadow:0 4px 4px 0 rgba(0, 0, 0, 0.24), 0 0 4px 0 rgba(0, 0, 0, 0.12)}verdocs-view .header .logo{width:80px;display:none;margin:-6px 0 0 10px}verdocs-view .header .title{padding-left:16px;font-size:18px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}verdocs-view .document{-ms-flex:1;flex:1;height:100%;display:-ms-flexbox;display:flex;padding:15px;row-gap:15px;min-height:200px;position:relative;overflow-y:scroll;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}verdocs-view .document .inner{width:100%;max-width:1028px}";
11
11
 
12
- const menuOptions = [
13
- { id: 'print', label: 'Print' },
14
- { id: 'download', label: 'Download' },
15
- ];
16
12
  const VerdocsView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
17
13
  constructor() {
18
14
  super();
19
15
  this.__registerHost();
20
16
  this.sdkError = createEvent(this, "sdkError", 7);
17
+ this.envelopeUpdated = createEvent(this, "envelopeUpdated", 7);
21
18
  this.endpoint = VerdocsEndpoint.getDefault();
22
19
  this.envelopeId = '';
23
20
  }
@@ -59,15 +56,42 @@ const VerdocsView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
59
56
  // });
60
57
  }
61
58
  async handleOptionSelected(e) {
59
+ var _a;
62
60
  switch (e.detail.id) {
63
61
  case 'print':
64
62
  window.print();
63
+ (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'printed' });
65
64
  break;
66
- case 'download':
67
- savePDF(this.endpoint, state.envelope, state.envelope.envelope_document_id).catch(e => {
65
+ case 'download-attachments':
66
+ saveAttachment(this.endpoint, state.envelope, state.envelope.envelope_document_id)
67
+ .then(() => {
68
+ var _a;
69
+ (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'downloaded' });
70
+ })
71
+ .catch(e => {
68
72
  console.log('Error downloading PDF', e);
69
73
  });
70
74
  break;
75
+ case 'download-certificate':
76
+ saveCertificate(this.endpoint, state.envelope, state.envelope.certificate_document_id)
77
+ .then(() => {
78
+ var _a;
79
+ (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'downloaded' });
80
+ })
81
+ .catch(e => {
82
+ console.log('Error downloading PDF', e);
83
+ });
84
+ break;
85
+ case 'download-all':
86
+ saveEnvelopesAsZip(this.endpoint, [state.envelope])
87
+ .then(() => {
88
+ var _a;
89
+ (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: state.envelope, event: 'downloaded' });
90
+ })
91
+ .catch(e => {
92
+ console.log('Error downloading Zip', e);
93
+ });
94
+ break;
71
95
  }
72
96
  }
73
97
  render() {
@@ -79,7 +103,22 @@ const VerdocsView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
79
103
  if (state.error) {
80
104
  return (h(Host, null, h("div", null, state.error)));
81
105
  }
82
- return (h(Host, null, h("div", { class: "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" }, (((_a = state.envelope) === null || _a === void 0 ? void 0 : _a.documents) || [])
106
+ const menuOptions = [{ id: 'print', label: 'Print' }];
107
+ const hasAttachments = state.envelope.documents.length > 0;
108
+ const hasCertificate = !!state.envelope.certificate;
109
+ if (hasAttachments || hasCertificate) {
110
+ menuOptions.push({ label: '' });
111
+ }
112
+ if (hasAttachments) {
113
+ menuOptions.push({ id: 'download-attachments', label: 'Download Documents(s)' });
114
+ }
115
+ if (hasCertificate) {
116
+ menuOptions.push({ id: 'download-certificate', label: 'Download Certificate' });
117
+ }
118
+ if (hasAttachments && hasCertificate) {
119
+ menuOptions.push({ id: 'download-all', label: 'Download All Files' });
120
+ }
121
+ return (h(Host, { "data-r": state.updateCount }, h("div", { class: "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" }, (((_a = state.envelope) === null || _a === void 0 ? void 0 : _a.documents) || [])
83
122
  .filter(document => document.type !== 'certificate')
84
123
  .map(envelopeDocument => {
85
124
  const pages = [...((envelopeDocument === null || envelopeDocument === void 0 ? void 0 : envelopeDocument.pages) || [])];