@verdocs/web-sdk 1.14.8 → 1.14.10

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 (223) hide show
  1. package/dist/cjs/EnvelopeStore-a4231cf7.js +83 -0
  2. package/dist/cjs/{Recipients-2b21fdea.js → Recipients-f3d6cf10.js} +9 -0
  3. package/dist/cjs/{index-6528b430.js → index-7c19ba1d.js} +63 -219
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/{utils-f4efefe3.js → utils-618c13f1.js} +1 -1
  6. package/dist/cjs/verdocs-auth.cjs.entry.js +5 -10
  7. package/dist/cjs/verdocs-checkbox_4.cjs.entry.js +1 -1
  8. package/dist/cjs/verdocs-dropdown_2.cjs.entry.js +2 -2
  9. package/dist/cjs/verdocs-envelope-recipient-summary.cjs.entry.js +15 -91
  10. package/dist/cjs/verdocs-envelope-sidebar.cjs.entry.js +101 -45
  11. package/dist/cjs/verdocs-field-checkbox.cjs.entry.js +2 -2
  12. package/dist/cjs/verdocs-field-date.cjs.entry.js +2 -2
  13. package/dist/cjs/verdocs-field-dropdown.cjs.entry.js +2 -2
  14. package/dist/cjs/verdocs-field-initial.cjs.entry.js +2 -2
  15. package/dist/cjs/verdocs-field-payment.cjs.entry.js +2 -2
  16. package/dist/cjs/verdocs-field-radio-button.cjs.entry.js +2 -2
  17. package/dist/cjs/verdocs-field-signature.cjs.entry.js +2 -2
  18. package/dist/cjs/verdocs-field-textarea.cjs.entry.js +58 -6
  19. package/dist/cjs/verdocs-field-textbox.cjs.entry.js +28 -21
  20. package/dist/cjs/verdocs-field-timestamp.cjs.entry.js +2 -2
  21. package/dist/cjs/verdocs-organization-card.cjs.entry.js +1 -1
  22. package/dist/cjs/verdocs-preview.cjs.entry.js +2 -2
  23. package/dist/cjs/verdocs-send.cjs.entry.js +2 -2
  24. package/dist/cjs/verdocs-sign.cjs.entry.js +3 -3
  25. package/dist/cjs/verdocs-status-indicator.cjs.entry.js +1 -1
  26. package/dist/cjs/verdocs-template-document-page_2.cjs.entry.js +2 -2
  27. package/dist/cjs/verdocs-template-fields_4.cjs.entry.js +2 -2
  28. package/dist/cjs/verdocs-template-reminders.cjs.entry.js +47 -17
  29. package/dist/cjs/verdocs-view.cjs.entry.js +2 -2
  30. package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
  31. package/dist/collection/collection-manifest.json +0 -1
  32. package/dist/collection/components/controls/verdocs-checkbox/verdocs-checkbox.css +3 -4
  33. package/dist/collection/components/embeds/verdocs-auth/verdocs-auth.js +6 -12
  34. package/dist/collection/components/envelopes/verdocs-envelope-sidebar/verdocs-envelope-sidebar.css +8 -0
  35. package/dist/collection/components/envelopes/verdocs-envelope-sidebar/verdocs-envelope-sidebar.js +101 -48
  36. package/dist/collection/components/envelopes/verdocs-envelope-sidebar/verdocs-envelope-sidebar.stories.js +1 -1
  37. package/dist/collection/components/envelopes/verdocs-status-indicator/verdocs-status-indicator.css +2 -3
  38. package/dist/collection/components/fields/verdocs-field-textarea/verdocs-field-textarea.css +13 -8
  39. package/dist/collection/components/fields/verdocs-field-textarea/verdocs-field-textarea.js +111 -2
  40. package/dist/collection/components/fields/verdocs-field-textbox/verdocs-field-textbox.js +62 -19
  41. package/dist/collection/components/templates/verdocs-template-fields/verdocs-template-fields.stories.js +1 -1
  42. package/dist/collection/components/templates/verdocs-template-reminders/verdocs-template-reminders.js +37 -17
  43. package/dist/collection/components/templates/verdocs-template-reminders/verdocs-template-reminders.stories.js +1 -1
  44. package/dist/components/Envelopes.js +1 -1
  45. package/dist/{esm/Recipients-198b2531.js → components/Recipients.js} +9 -1
  46. package/dist/components/Toast.js +1 -74
  47. package/dist/components/index.d.ts +0 -1
  48. package/dist/components/index.js +0 -1
  49. package/dist/components/index2.js +63 -219
  50. package/dist/components/verdocs-auth.js +10 -22
  51. package/dist/components/verdocs-checkbox2.js +1 -1
  52. package/dist/components/verdocs-envelope-document-page2.js +1 -1
  53. package/dist/components/verdocs-envelope-recipient-summary2.js +4 -3
  54. package/dist/components/verdocs-envelope-sidebar.js +112 -54
  55. package/dist/components/verdocs-field-textarea.js +59 -3
  56. package/dist/components/verdocs-field-textbox.js +29 -20
  57. package/dist/components/verdocs-sign.js +2 -1
  58. package/dist/components/verdocs-status-indicator.js +1 -1
  59. package/dist/components/verdocs-template-reminders.js +47 -17
  60. package/dist/components/verdocs-view2.js +1 -1
  61. package/dist/custom-elements.json +16 -13
  62. package/dist/docs.json +96 -129
  63. package/dist/esm/EnvelopeStore-28f5d8f5.js +81 -0
  64. package/dist/esm/{Envelopes-c3d471e5.js → Envelopes-105a4a8f.js} +1 -1
  65. package/dist/esm/Recipients-4ec2138c.js +82 -0
  66. package/dist/esm/{index-d264c496.js → index-914ed6f7.js} +63 -219
  67. package/dist/esm/loader.js +1 -1
  68. package/dist/esm/{utils-9da23ba1.js → utils-60683446.js} +2 -2
  69. package/dist/esm/verdocs-auth.entry.js +5 -10
  70. package/dist/esm/verdocs-checkbox_4.entry.js +1 -1
  71. package/dist/esm/verdocs-dropdown_2.entry.js +3 -3
  72. package/dist/esm/verdocs-envelope-recipient-summary.entry.js +4 -80
  73. package/dist/esm/verdocs-envelope-sidebar.entry.js +102 -46
  74. package/dist/esm/verdocs-field-checkbox.entry.js +3 -3
  75. package/dist/esm/verdocs-field-date.entry.js +3 -3
  76. package/dist/esm/verdocs-field-dropdown.entry.js +3 -3
  77. package/dist/esm/verdocs-field-initial.entry.js +3 -3
  78. package/dist/esm/verdocs-field-payment.entry.js +3 -3
  79. package/dist/esm/verdocs-field-radio-button.entry.js +3 -3
  80. package/dist/esm/verdocs-field-signature.entry.js +3 -3
  81. package/dist/esm/verdocs-field-textarea.entry.js +60 -8
  82. package/dist/esm/verdocs-field-textbox.entry.js +29 -22
  83. package/dist/esm/verdocs-field-timestamp.entry.js +3 -3
  84. package/dist/esm/verdocs-organization-card.entry.js +1 -1
  85. package/dist/esm/verdocs-preview.entry.js +3 -3
  86. package/dist/esm/verdocs-send.entry.js +3 -3
  87. package/dist/esm/verdocs-sign.entry.js +4 -4
  88. package/dist/esm/verdocs-status-indicator.entry.js +1 -1
  89. package/dist/esm/verdocs-template-document-page_2.entry.js +3 -3
  90. package/dist/esm/verdocs-template-fields_4.entry.js +3 -3
  91. package/dist/esm/verdocs-template-reminders.entry.js +47 -17
  92. package/dist/esm/verdocs-view.entry.js +3 -3
  93. package/dist/esm/verdocs-web-sdk.js +1 -1
  94. package/dist/esm-es5/EnvelopeStore-28f5d8f5.js +1 -0
  95. package/dist/esm-es5/{Envelopes-c3d471e5.js → Envelopes-105a4a8f.js} +1 -1
  96. package/dist/esm-es5/Recipients-4ec2138c.js +1 -0
  97. package/dist/esm-es5/index-914ed6f7.js +1 -0
  98. package/dist/esm-es5/loader.js +1 -1
  99. package/dist/esm-es5/{utils-9da23ba1.js → utils-60683446.js} +1 -1
  100. package/dist/esm-es5/verdocs-auth.entry.js +1 -1
  101. package/dist/esm-es5/verdocs-checkbox_4.entry.js +1 -1
  102. package/dist/esm-es5/verdocs-dropdown_2.entry.js +1 -1
  103. package/dist/esm-es5/verdocs-envelope-recipient-summary.entry.js +1 -1
  104. package/dist/esm-es5/verdocs-envelope-sidebar.entry.js +1 -1
  105. package/dist/esm-es5/verdocs-field-checkbox.entry.js +1 -1
  106. package/dist/esm-es5/verdocs-field-date.entry.js +1 -1
  107. package/dist/esm-es5/verdocs-field-dropdown.entry.js +1 -1
  108. package/dist/esm-es5/verdocs-field-initial.entry.js +1 -1
  109. package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
  110. package/dist/esm-es5/verdocs-field-radio-button.entry.js +1 -1
  111. package/dist/esm-es5/verdocs-field-signature.entry.js +1 -1
  112. package/dist/esm-es5/verdocs-field-textarea.entry.js +1 -1
  113. package/dist/esm-es5/verdocs-field-textbox.entry.js +1 -1
  114. package/dist/esm-es5/verdocs-field-timestamp.entry.js +1 -1
  115. package/dist/esm-es5/verdocs-organization-card.entry.js +1 -1
  116. package/dist/esm-es5/verdocs-preview.entry.js +1 -1
  117. package/dist/esm-es5/verdocs-send.entry.js +1 -1
  118. package/dist/esm-es5/verdocs-sign.entry.js +1 -1
  119. package/dist/esm-es5/verdocs-status-indicator.entry.js +1 -1
  120. package/dist/esm-es5/verdocs-template-document-page_2.entry.js +1 -1
  121. package/dist/esm-es5/verdocs-template-fields_4.entry.js +1 -1
  122. package/dist/esm-es5/verdocs-template-reminders.entry.js +1 -1
  123. package/dist/esm-es5/verdocs-view.entry.js +1 -1
  124. package/dist/esm-es5/verdocs-web-sdk.js +1 -1
  125. package/dist/types/components/embeds/verdocs-auth/verdocs-auth.d.ts +0 -2
  126. package/dist/types/components/envelopes/verdocs-envelope-sidebar/verdocs-envelope-sidebar.d.ts +7 -5
  127. package/dist/types/components/fields/verdocs-field-textarea/verdocs-field-textarea.d.ts +23 -3
  128. package/dist/types/components/fields/verdocs-field-textbox/verdocs-field-textbox.d.ts +10 -2
  129. package/dist/types/components.d.ts +40 -45
  130. package/dist/verdocs-web-sdk/{p-4a39c1a4.system.entry.js → p-02a70b8e.system.entry.js} +1 -1
  131. package/dist/verdocs-web-sdk/{p-eb3beb29.system.entry.js → p-095a3eba.system.entry.js} +1 -1
  132. package/dist/verdocs-web-sdk/{p-592e9e12.entry.js → p-0aee25b9.entry.js} +1 -1
  133. package/dist/verdocs-web-sdk/p-0e381c36.entry.js +1 -0
  134. package/dist/verdocs-web-sdk/p-13959c36.system.entry.js +1 -0
  135. package/dist/verdocs-web-sdk/p-18ee4fd5.js +1 -0
  136. package/dist/verdocs-web-sdk/{p-886461cd.system.entry.js → p-1a0cccea.system.entry.js} +1 -1
  137. package/dist/verdocs-web-sdk/p-1cf38cea.system.js +1 -1
  138. package/dist/verdocs-web-sdk/{p-2cf70fcd.entry.js → p-1f561c42.entry.js} +1 -1
  139. package/dist/verdocs-web-sdk/{p-be729608.system.entry.js → p-2a5b951c.system.entry.js} +1 -1
  140. package/dist/verdocs-web-sdk/{p-afe91637.system.entry.js → p-2c0d7838.system.entry.js} +1 -1
  141. package/dist/verdocs-web-sdk/{p-74dd0569.entry.js → p-33640d84.entry.js} +1 -1
  142. package/dist/verdocs-web-sdk/{p-7b215f9d.system.entry.js → p-380efff2.system.entry.js} +1 -1
  143. package/dist/verdocs-web-sdk/p-3cd894ff.js +1 -0
  144. package/dist/verdocs-web-sdk/{p-aebd2d02.system.entry.js → p-3fe24d0c.system.entry.js} +1 -1
  145. package/dist/verdocs-web-sdk/p-44ec0583.entry.js +1 -0
  146. package/dist/verdocs-web-sdk/{p-2631bdd9.entry.js → p-49b3ac56.entry.js} +1 -1
  147. package/dist/verdocs-web-sdk/p-4a3b037b.system.entry.js +1 -0
  148. package/dist/verdocs-web-sdk/{p-3601cc11.entry.js → p-59243dec.entry.js} +1 -1
  149. package/dist/verdocs-web-sdk/p-5cff98bd.entry.js +1 -0
  150. package/dist/verdocs-web-sdk/{p-1402ff01.system.entry.js → p-6a44fb56.system.entry.js} +1 -1
  151. package/dist/verdocs-web-sdk/{p-cfec9914.entry.js → p-717c9fe1.entry.js} +1 -1
  152. package/dist/verdocs-web-sdk/{p-e7da2f5c.entry.js → p-73ea1ea3.entry.js} +1 -1
  153. package/dist/verdocs-web-sdk/{p-b898c99b.system.entry.js → p-7850f739.system.entry.js} +1 -1
  154. package/dist/verdocs-web-sdk/p-7a23c2c8.system.js +1 -0
  155. package/dist/verdocs-web-sdk/{p-7baf2c02.system.entry.js → p-813c2fae.system.entry.js} +1 -1
  156. package/dist/verdocs-web-sdk/p-8aba7c0a.entry.js +1 -0
  157. package/dist/verdocs-web-sdk/{p-8e181e8c.entry.js → p-8b85f402.entry.js} +1 -1
  158. package/dist/verdocs-web-sdk/{p-00f8400e.system.entry.js → p-8c5ffa7b.system.entry.js} +1 -1
  159. package/dist/verdocs-web-sdk/{p-38ac3807.entry.js → p-8e386265.entry.js} +1 -1
  160. package/dist/verdocs-web-sdk/{p-973ebb54.system.js → p-8fd812f4.system.js} +1 -1
  161. package/dist/verdocs-web-sdk/p-94365585.entry.js +1 -0
  162. package/dist/verdocs-web-sdk/{p-b8d94f4c.system.entry.js → p-9c87f6f8.system.entry.js} +1 -1
  163. package/dist/verdocs-web-sdk/p-9d7fa51d.system.entry.js +1 -0
  164. package/dist/verdocs-web-sdk/p-a3c06b62.entry.js +1 -0
  165. package/dist/verdocs-web-sdk/{p-10fe89ab.entry.js → p-a4cbba4a.entry.js} +1 -1
  166. package/dist/verdocs-web-sdk/{p-ee53ee29.system.entry.js → p-afa1f20b.system.entry.js} +1 -1
  167. package/dist/verdocs-web-sdk/p-b18c293a.system.entry.js +1 -0
  168. package/dist/verdocs-web-sdk/p-b772cdb5.entry.js +1 -0
  169. package/dist/verdocs-web-sdk/{p-b00a49aa.entry.js → p-be6d3848.entry.js} +1 -1
  170. package/dist/verdocs-web-sdk/p-c220af42.js +1 -0
  171. package/dist/verdocs-web-sdk/{p-c0b1ace5.entry.js → p-c3ef7b4f.entry.js} +1 -1
  172. package/dist/verdocs-web-sdk/{p-10444734.system.entry.js → p-c59f1a0a.system.entry.js} +1 -1
  173. package/dist/verdocs-web-sdk/p-c841a530.system.entry.js +1 -0
  174. package/dist/verdocs-web-sdk/{p-9b73909f.js → p-cf790f4f.js} +1 -1
  175. package/dist/verdocs-web-sdk/{p-7dda316b.entry.js → p-d4c8f358.entry.js} +1 -1
  176. package/dist/verdocs-web-sdk/p-dc9c4361.system.js +1 -0
  177. package/dist/verdocs-web-sdk/{p-64897a63.entry.js → p-decf6a56.entry.js} +1 -1
  178. package/dist/verdocs-web-sdk/p-e2635788.system.entry.js +1 -0
  179. package/dist/verdocs-web-sdk/{p-f1940c85.system.entry.js → p-e727af9c.system.entry.js} +1 -1
  180. package/dist/verdocs-web-sdk/{p-d146b48e.entry.js → p-e72c075e.entry.js} +1 -1
  181. package/dist/verdocs-web-sdk/p-eaf0b189.system.js +1 -0
  182. package/dist/verdocs-web-sdk/p-ebca6188.entry.js +1 -0
  183. package/dist/verdocs-web-sdk/{p-ca2ed07e.system.entry.js → p-f0db17e6.system.entry.js} +1 -1
  184. package/dist/verdocs-web-sdk/p-f37f1ebc.system.entry.js +1 -0
  185. package/dist/verdocs-web-sdk/{p-73155c52.js → p-f9bea98a.js} +1 -1
  186. package/dist/verdocs-web-sdk/{p-da31f940.system.js → p-fa6b1145.system.js} +1 -1
  187. package/dist/verdocs-web-sdk/{p-05fc6555.system.entry.js → p-fcfd3193.system.entry.js} +1 -1
  188. package/dist/verdocs-web-sdk/{p-4dec0879.entry.js → p-fdda1309.entry.js} +1 -1
  189. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  190. package/package.json +5 -5
  191. package/dist/cjs/verdocs-template-properties.cjs.entry.js +0 -75
  192. package/dist/collection/components/templates/verdocs-template-properties/verdocs-template-properties.css +0 -102
  193. package/dist/collection/components/templates/verdocs-template-properties/verdocs-template-properties.js +0 -177
  194. package/dist/collection/components/templates/verdocs-template-properties/verdocs-template-properties.stories.js +0 -13
  195. package/dist/components/verdocs-template-properties.d.ts +0 -11
  196. package/dist/components/verdocs-template-properties.js +0 -131
  197. package/dist/esm/verdocs-template-properties.entry.js +0 -71
  198. package/dist/esm-es5/Recipients-198b2531.js +0 -1
  199. package/dist/esm-es5/index-d264c496.js +0 -1
  200. package/dist/esm-es5/verdocs-template-properties.entry.js +0 -1
  201. package/dist/types/components/templates/verdocs-template-properties/verdocs-template-properties.d.ts +0 -45
  202. package/dist/types/components/templates/verdocs-template-properties/verdocs-template-properties.stories.d.ts +0 -8
  203. package/dist/verdocs-web-sdk/p-0e4fe8f9.entry.js +0 -1
  204. package/dist/verdocs-web-sdk/p-10ec9a96.entry.js +0 -1
  205. package/dist/verdocs-web-sdk/p-12e54f39.js +0 -1
  206. package/dist/verdocs-web-sdk/p-1d14ae9c.entry.js +0 -1
  207. package/dist/verdocs-web-sdk/p-23292d40.system.entry.js +0 -1
  208. package/dist/verdocs-web-sdk/p-381f2a5f.entry.js +0 -1
  209. package/dist/verdocs-web-sdk/p-4157aa74.entry.js +0 -1
  210. package/dist/verdocs-web-sdk/p-494d4276.system.js +0 -1
  211. package/dist/verdocs-web-sdk/p-4a9a3134.system.entry.js +0 -1
  212. package/dist/verdocs-web-sdk/p-4d1f3ddb.entry.js +0 -1
  213. package/dist/verdocs-web-sdk/p-51a3ea62.system.js +0 -1
  214. package/dist/verdocs-web-sdk/p-71976828.entry.js +0 -1
  215. package/dist/verdocs-web-sdk/p-73717726.system.entry.js +0 -1
  216. package/dist/verdocs-web-sdk/p-77cd3ac5.system.entry.js +0 -1
  217. package/dist/verdocs-web-sdk/p-7bd5422e.system.entry.js +0 -1
  218. package/dist/verdocs-web-sdk/p-9c87a748.system.entry.js +0 -1
  219. package/dist/verdocs-web-sdk/p-ab01f71e.js +0 -1
  220. package/dist/verdocs-web-sdk/p-b3a8928b.entry.js +0 -1
  221. package/dist/verdocs-web-sdk/p-b6016e12.entry.js +0 -1
  222. package/dist/verdocs-web-sdk/p-d2bcbce0.system.entry.js +0 -1
  223. package/dist/verdocs-web-sdk/p-e7058963.system.entry.js +0 -1
@@ -1,10 +1,10 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
2
  import { V as VerdocsEndpoint } from './VerdocsEndpoint.js';
3
3
  import './Types.js';
4
+ import { V as VerdocsToast } from './Toast.js';
4
5
  import { S as SDKError } from './errors.js';
5
- import { d as defineCustomElement$5 } from './verdocs-button2.js';
6
- import { d as defineCustomElement$4 } from './verdocs-help-icon2.js';
7
- import { d as defineCustomElement$3 } from './verdocs-ok-dialog2.js';
6
+ import { d as defineCustomElement$4 } from './verdocs-button2.js';
7
+ import { d as defineCustomElement$3 } from './verdocs-help-icon2.js';
8
8
  import { d as defineCustomElement$2 } from './verdocs-text-input2.js';
9
9
 
10
10
  /**
@@ -41,7 +41,6 @@ const VerdocsAuth$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
41
41
  this.password = '';
42
42
  this.loggingIn = false;
43
43
  this.activeSession = null;
44
- this.loginError = null;
45
44
  }
46
45
  componentWillLoad() {
47
46
  var _a, _b;
@@ -69,15 +68,13 @@ const VerdocsAuth$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
69
68
  (_a = this.authenticated) === null || _a === void 0 ? void 0 : _a.emit({ authenticated: true, session: this.endpoint.session });
70
69
  })
71
70
  .catch(e => {
72
- var _a, _b, _c, _d, _e;
71
+ var _a, _b, _c, _d;
73
72
  console.log('[AUTH] Authentication error', e.response, JSON.stringify(e));
74
73
  this.loggingIn = false;
75
74
  this.activeSession = null;
76
75
  (_a = this.authenticated) === null || _a === void 0 ? void 0 : _a.emit({ authenticated: false, session: null });
77
76
  (_b = this.sdkError) === null || _b === void 0 ? void 0 : _b.emit(new SDKError(e.message, (_c = e.response) === null || _c === void 0 ? void 0 : _c.status, (_d = e.response) === null || _d === void 0 ? void 0 : _d.data));
78
- if (((_e = e === null || e === void 0 ? void 0 : e.response) === null || _e === void 0 ? void 0 : _e.status) === 403) {
79
- this.loginError = 'Please check your username and password and try again.';
80
- }
77
+ VerdocsToast('Login failed. Please check your username and password and try again.', { style: 'error' });
81
78
  });
82
79
  }
83
80
  handleLogout() {
@@ -86,20 +83,17 @@ const VerdocsAuth$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
86
83
  this.isAuthenticated = false;
87
84
  (_a = this.authenticated) === null || _a === void 0 ? void 0 : _a.emit({ authenticated: false, session: null });
88
85
  }
89
- handleClearError() {
90
- this.loginError = null;
91
- }
92
86
  render() {
93
87
  if (!this.visible) {
94
88
  return h("div", { style: { display: 'none' } }, "Authenticated");
95
89
  }
96
90
  if (this.isAuthenticated) {
97
- return h("div", { class: "status-result" }, "Authenticated");
91
+ return (h("verdocs-button", { label: "Sign Out", disabled: this.loggingIn, onClick: () => this.handleLogout(), style: { display: 'flex', justifyContent: 'center', margin: '30px auto 0' } }));
98
92
  }
99
93
  if (this.displayMode === 'signup') {
100
94
  return (h("div", { class: "signup-form" }, h("img", { src: this.logo, alt: "Verdocs Logo", class: "logo" }), h("h3", null, "Sign up for an account"), h("h4", null, "Already have an account?", h("verdocs-button", { label: "Log In", variant: "text", onClick: () => (this.displayMode = 'login'), disabled: this.loggingIn })), h("form", { onSubmit: () => this.handleLogin() }, h("verdocs-text-input", { label: "Email", autocomplete: "username", value: this.username, onInput: (e) => (this.username = e.target.value), disabled: this.loggingIn }), h("verdocs-text-input", { label: "Password", type: "password", autocomplete: "current-password", value: this.password, onInput: (e) => (this.password = e.target.value), disabled: this.loggingIn }), h("verdocs-button", { label: "Signup", disabled: this.loggingIn, onClick: () => this.handleLogin(), style: { display: 'flex', justifyContent: 'center', margin: '30px auto 0' } }))));
101
95
  }
102
- return (h("div", { class: "login-form" }, h("img", { src: this.logo, alt: "Verdocs Logo", class: "logo" }), h("h3", null, "Log in to your account"), h("h4", null, "Don't have an account?", h("verdocs-button", { label: "Sign Up", variant: "text", onClick: () => (this.displayMode = 'signup'), disabled: this.loggingIn })), h("form", { onSubmit: () => this.handleLogin() }, h("verdocs-text-input", { label: "Email", autocomplete: "username", value: this.username, onInput: (e) => (this.username = e.target.value), disabled: this.loggingIn }), h("verdocs-text-input", { label: "Password", type: "password", autocomplete: "current-password", value: this.password, onInput: (e) => (this.password = e.target.value), disabled: this.loggingIn }), h("verdocs-button", { label: "Forgot Your Password?", variant: "text", onClick: () => (this.displayMode = 'signup'), disabled: this.loggingIn, style: { display: 'flex', justifyContent: 'center', margin: '10px auto 20px' } }), h("verdocs-button", { label: "Login", disabled: this.loggingIn, onClick: () => this.handleLogin(), style: { display: 'flex', justifyContent: 'center', margin: '10px auto 0' } })), this.loginError ? h("verdocs-ok-dialog", { heading: "Login Error", message: this.loginError, onNext: () => this.handleClearError() }) : h("div", null)));
96
+ return (h("div", { class: "login-form" }, h("img", { src: this.logo, alt: "Verdocs Logo", class: "logo" }), h("h3", null, "Log in to your account"), h("h4", null, "Don't have an account?", h("verdocs-button", { label: "Sign Up", variant: "text", onClick: () => (this.displayMode = 'signup'), disabled: this.loggingIn })), h("form", { onSubmit: () => this.handleLogin() }, h("verdocs-text-input", { label: "Email", autocomplete: "username", value: this.username, onInput: (e) => (this.username = e.target.value), disabled: this.loggingIn }), h("verdocs-text-input", { label: "Password", type: "password", autocomplete: "current-password", value: this.password, onInput: (e) => (this.password = e.target.value), disabled: this.loggingIn }), h("verdocs-button", { label: "Forgot Your Password?", variant: "text", onClick: () => (this.displayMode = 'signup'), disabled: this.loggingIn, style: { display: 'flex', justifyContent: 'center', margin: '10px auto 20px' } }), h("verdocs-button", { label: "Login", disabled: this.loggingIn, onClick: () => this.handleLogin(), style: { display: 'flex', justifyContent: 'center', margin: '10px auto 0' } }))));
103
97
  }
104
98
  static get style() { return verdocsAuthCss; }
105
99
  }, [0, "verdocs-auth", {
@@ -111,14 +105,13 @@ const VerdocsAuth$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
111
105
  "username": [32],
112
106
  "password": [32],
113
107
  "loggingIn": [32],
114
- "activeSession": [32],
115
- "loginError": [32]
108
+ "activeSession": [32]
116
109
  }]);
117
110
  function defineCustomElement$1() {
118
111
  if (typeof customElements === "undefined") {
119
112
  return;
120
113
  }
121
- const components = ["verdocs-auth", "verdocs-button", "verdocs-help-icon", "verdocs-ok-dialog", "verdocs-text-input"];
114
+ const components = ["verdocs-auth", "verdocs-button", "verdocs-help-icon", "verdocs-text-input"];
122
115
  components.forEach(tagName => { switch (tagName) {
123
116
  case "verdocs-auth":
124
117
  if (!customElements.get(tagName)) {
@@ -126,16 +119,11 @@ function defineCustomElement$1() {
126
119
  }
127
120
  break;
128
121
  case "verdocs-button":
129
- if (!customElements.get(tagName)) {
130
- defineCustomElement$5();
131
- }
132
- break;
133
- case "verdocs-help-icon":
134
122
  if (!customElements.get(tagName)) {
135
123
  defineCustomElement$4();
136
124
  }
137
125
  break;
138
- case "verdocs-ok-dialog":
126
+ case "verdocs-help-icon":
139
127
  if (!customElements.get(tagName)) {
140
128
  defineCustomElement$3();
141
129
  }
@@ -1,6 +1,6 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
2
 
3
- const verdocsCheckboxCss = "@charset \"UTF-8\";verdocs-checkbox{line-height:18px;font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif}verdocs-checkbox label>input[type=checkbox]{display:none}verdocs-checkbox label>input[type=checkbox]+*::before{content:\"\";width:1rem;height:1rem;-ms-flex-negative:0;flex-shrink:0;line-height:18px;border-radius:2px;border-style:solid;margin-right:0.5rem;border-width:0.1rem;display:inline-block;vertical-align:bottom;border-color:#aeb4bf}verdocs-checkbox label>input[type=checkbox]:checked+*{color:#55bc81}verdocs-checkbox label>input[type=checkbox]:checked+*::before{content:\"✓\";color:white;text-align:center;background:#55bc81;border-color:#55bc81}verdocs-checkbox.dark label>input[type=checkbox]+*::before{border-color:#ffffff}verdocs-checkbox.dark label>input[type=checkbox]:checked+*::before{background:#55bc81;border-color:#55bc81}";
3
+ const verdocsCheckboxCss = "@charset \"UTF-8\";verdocs-checkbox{line-height:18px;font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif}verdocs-checkbox label>input[type=checkbox]{display:none}verdocs-checkbox label>input[type=checkbox]+*::before{content:\"\";width:20px;height:20px;-ms-flex-negative:0;flex-shrink:0;line-height:20px;border-radius:2px;border-style:solid;border-width:0.1rem;display:inline-block;vertical-align:bottom;border-color:#aeb4bf}verdocs-checkbox label>input[type=checkbox]:checked+*{color:#55bc81}verdocs-checkbox label>input[type=checkbox]:checked+*::before{content:\"✓\";color:white;text-align:center;background:#55bc81;border-color:#55bc81}verdocs-checkbox.dark label>input[type=checkbox]+*::before{border-color:#ffffff}verdocs-checkbox.dark label>input[type=checkbox]:checked+*::before{background:#55bc81;border-color:#55bc81}";
4
4
 
5
5
  const VerdocsCheckbox = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
6
6
  constructor() {
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { c as getEnvelopeDocumentPageDisplayUri } from './Envelopes.js';
2
+ import { d as getEnvelopeDocumentPageDisplayUri } from './Envelopes.js';
3
3
  import './Types.js';
4
4
  import { V as VerdocsEndpoint } from './VerdocsEndpoint.js';
5
5
  import { t as throttle } from './utils.js';
@@ -1,10 +1,11 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { g as getRecipientsWithActions, r as recipientCanAct } from './Permissions.js';
3
- import { V as VerdocsToast, g as getInPersonLink } from './Toast.js';
3
+ import { g as getInPersonLink } from './Recipients.js';
4
4
  import './Types.js';
5
5
  import { V as VerdocsEndpoint } from './VerdocsEndpoint.js';
6
6
  import { c as createStore } from './index3.js';
7
- import { d as getEnvelope } from './Envelopes.js';
7
+ import { e as getEnvelope } from './Envelopes.js';
8
+ import { V as VerdocsToast } from './Toast.js';
8
9
  import { S as SDKError } from './errors.js';
9
10
  import { d as defineCustomElement$1 } from './verdocs-button2.js';
10
11
 
@@ -222,4 +223,4 @@ function defineCustomElement() {
222
223
  }
223
224
  defineCustomElement();
224
225
 
225
- export { VerdocsEnvelopeRecipientSummary as V, defineCustomElement as d };
226
+ export { VerdocsEnvelopeRecipientSummary as V, defineCustomElement as d, getEnvelopeStore as g };
@@ -1,17 +1,19 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { t as throttledGetEnvelope } from './Envelopes.js';
2
+ import { c as cancelEnvelope } from './Envelopes.js';
3
3
  import { u as userIsEnvelopeOwner } from './Permissions.js';
4
+ import { g as getInPersonLink, r as resendInvitation } from './Recipients.js';
4
5
  import './Types.js';
5
6
  import { V as VerdocsEndpoint } from './VerdocsEndpoint.js';
7
+ import { g as getEnvelopeStore, d as defineCustomElement$3 } from './verdocs-envelope-recipient-summary2.js';
6
8
  import { F as FORMAT_TIMESTAMP } from './Types2.js';
7
9
  import { V as VerdocsToast } from './Toast.js';
8
10
  import { S as SDKError } from './errors.js';
9
- import { d as defineCustomElement$4 } from './verdocs-button2.js';
10
- import { d as defineCustomElement$3 } from './verdocs-dropdown2.js';
11
- import { d as defineCustomElement$2 } from './verdocs-envelope-recipient-summary2.js';
11
+ import { d as defineCustomElement$5 } from './verdocs-button2.js';
12
+ import { d as defineCustomElement$4 } from './verdocs-dropdown2.js';
13
+ import { d as defineCustomElement$2 } from './verdocs-ok-dialog2.js';
12
14
  import { f as format } from './index2.js';
13
15
 
14
- const verdocsEnvelopeSidebarCss = "verdocs-envelope-sidebar{font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif;-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;-ms-flex:0 0 56px;flex:0 0 56px;width:56px;min-height:400px;height:100%;background:#41435e;-webkit-transition:0.5s cubic-bezier(0.35, 0, 0.25, 1);transition:0.5s cubic-bezier(0.35, 0, 0.25, 1)}verdocs-envelope-sidebar.open{-ms-flex:0 0 400px;flex:0 0 400px;width:400px}verdocs-envelope-sidebar .side-buttons{-ms-flex-direction:column;flex-direction:column;-ms-flex:0 0 56px;flex:0 0 56px;display:-ms-flexbox;display:flex}verdocs-envelope-sidebar .side-buttons button{height:50px;outline:none;border:none;border-left:2px solid transparent;background:none;width:100%}verdocs-envelope-sidebar .side-buttons button.active{border-left:2px solid #50bd80}verdocs-envelope-sidebar .side-buttons button svg{color:white;width:24px;height:24px}verdocs-envelope-sidebar .content{-ms-flex:1;flex:1;display:none;color:white;-ms-flex-direction:column;flex-direction:column;padding:12px 16px 16px}verdocs-envelope-sidebar.open .content{display:-ms-flexbox;display:flex;overflow-y:scroll}verdocs-envelope-sidebar .title{margin-bottom:12px;font-size:16px;line-height:24px;font-weight:400;-ms-flex:0;flex:0}verdocs-envelope-sidebar .label{font-size:12px;line-height:16px;color:rgba(255, 255, 255, 0.54);-ms-flex:0;flex:0}verdocs-envelope-sidebar .value{margin-bottom:14px;font-size:14px;font-weight:500;line-height:16px;color:#fff;-ms-flex:0;flex:0}verdocs-envelope-sidebar .manage-recipients-button{-ms-flex-item-align:center;align-self:center;white-space:nowrap}verdocs-envelope-sidebar .manage-recipients-button .label{color:#ffffff;font-size:14px}verdocs-envelope-sidebar .recipient-detail{-ms-flex:0;flex:0;padding:8px;position:relative;-ms-flex-direction:column;flex-direction:column;border:solid 1px #979797;margin-bottom:16px}verdocs-envelope-sidebar .recipient-header{-ms-flex-direction:row;flex-direction:row;-webkit-box-sizing:border-box;box-sizing:border-box;display:-ms-flexbox;display:flex;place-content:center space-between;-ms-flex-align:center;align-items:center;margin-bottom:4px}verdocs-envelope-sidebar .recipient-number{width:24px;height:24px;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;border-radius:24px;font-size:14px;font-weight:500;margin-right:10px;border:solid 1px #979797}verdocs-envelope-sidebar .recipient-type{-ms-flex:1 1 88px;flex:1 1 88px;-webkit-box-sizing:border-box;box-sizing:border-box;max-width:88px;min-width:88px;text-transform:capitalize}verdocs-envelope-sidebar .recipient-status{-ms-flex:1 1 100px;flex:1 1 100px;border-radius:5px;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;max-width:100px;min-width:100px;background-color:#616161;text-transform:capitalize;font-size:14px;padding:3px 0}verdocs-envelope-sidebar .recipient-status.invited{background-color:#ff8f00}verdocs-envelope-sidebar .recipient-status.opened{background-color:#616161}verdocs-envelope-sidebar .recipient-status.signed,verdocs-envelope-sidebar .recipient-status.submitted{background-color:#2e7d32}verdocs-envelope-sidebar .recipient-status.pending{background-color:#0277bd}verdocs-envelope-sidebar .recipient-status.canceled,verdocs-envelope-sidebar .recipient-status.declined{background-color:#c62828}verdocs-envelope-sidebar .recipient-content{-ms-flex-direction:column;flex-direction:column}verdocs-envelope-sidebar .history-entry{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-direction:row;flex-direction:row;padding:8px 0 0;margin:8px 0 0;border-top:1px solid #dddddd}verdocs-envelope-sidebar .history-entry .activity-icon{margin-right:14px}verdocs-envelope-sidebar .history-entry .activity-icon svg{width:24px;height:24px;fill:#ffffff}verdocs-envelope-sidebar .history-entry .activity-text{font-size:14px;line-height:16px;margin-bottom:4px}verdocs-envelope-sidebar .history-entry .activity-date{font-size:12px;line-height:16px;color:rgba(255, 255, 255, 0.54)}verdocs-envelope-sidebar .content .history-entry:first-of-type{border-top:none}";
16
+ const verdocsEnvelopeSidebarCss = "verdocs-envelope-sidebar{font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif;-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;-ms-flex:0 0 56px;flex:0 0 56px;width:56px;min-height:400px;height:100%;background:#41435e;-webkit-transition:0.5s cubic-bezier(0.35, 0, 0.25, 1);transition:0.5s cubic-bezier(0.35, 0, 0.25, 1)}verdocs-envelope-sidebar.open{-ms-flex:0 0 400px;flex:0 0 400px;width:400px}verdocs-envelope-sidebar .side-buttons{-ms-flex-direction:column;flex-direction:column;-ms-flex:0 0 56px;flex:0 0 56px;display:-ms-flexbox;display:flex}verdocs-envelope-sidebar .side-buttons button{height:50px;outline:none;border:none;border-left:2px solid transparent;background:none;width:100%}verdocs-envelope-sidebar .side-buttons button.active{border-left:2px solid #50bd80}verdocs-envelope-sidebar .side-buttons button svg{color:white;width:24px;height:24px}verdocs-envelope-sidebar .content{-ms-flex:1;flex:1;display:none;color:white;-ms-flex-direction:column;flex-direction:column;padding:12px 16px 16px}verdocs-envelope-sidebar.open .content{display:-ms-flexbox;display:flex;overflow-y:scroll}verdocs-envelope-sidebar verdocs-ok-dialog .content{color:black}verdocs-envelope-sidebar .title{margin-bottom:12px;font-size:16px;line-height:24px;font-weight:400;-ms-flex:0;flex:0}verdocs-envelope-sidebar .label{font-size:12px;line-height:16px;color:rgba(255, 255, 255, 0.54);-ms-flex:0;flex:0}verdocs-envelope-sidebar .value{margin-bottom:14px;font-size:14px;font-weight:500;line-height:16px;color:#fff;-ms-flex:0;flex:0}verdocs-envelope-sidebar .manage-recipients-button{-ms-flex-item-align:center;align-self:center;white-space:nowrap;width:100%;margin:0 0 10px 0}verdocs-envelope-sidebar .manage-recipients-button .label{color:#ffffff;font-size:14px}verdocs-envelope-sidebar .manage-recipients-button button{width:100%}verdocs-envelope-sidebar .recipient-detail{-ms-flex:0;flex:0;padding:8px;position:relative;-ms-flex-direction:column;flex-direction:column;border:solid 1px #979797;margin-bottom:16px}verdocs-envelope-sidebar .recipient-header{-ms-flex-direction:row;flex-direction:row;-webkit-box-sizing:border-box;box-sizing:border-box;display:-ms-flexbox;display:flex;place-content:center space-between;-ms-flex-align:center;align-items:center;margin-bottom:4px}verdocs-envelope-sidebar .recipient-number{width:24px;height:24px;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;border-radius:24px;font-size:14px;font-weight:500;margin-right:10px;border:solid 1px #979797}verdocs-envelope-sidebar .recipient-type{-ms-flex:1 1 88px;flex:1 1 88px;-webkit-box-sizing:border-box;box-sizing:border-box;max-width:88px;min-width:88px;text-transform:capitalize}verdocs-envelope-sidebar .recipient-status{-ms-flex:1 1 100px;flex:1 1 100px;border-radius:5px;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;max-width:100px;min-width:100px;background-color:#616161;text-transform:capitalize;font-size:14px;padding:3px 0}verdocs-envelope-sidebar .recipient-status.invited{background-color:#ff8f00}verdocs-envelope-sidebar .recipient-status.opened{background-color:#616161}verdocs-envelope-sidebar .recipient-status.signed,verdocs-envelope-sidebar .recipient-status.submitted{background-color:#2e7d32}verdocs-envelope-sidebar .recipient-status.pending{background-color:#0277bd}verdocs-envelope-sidebar .recipient-status.canceled,verdocs-envelope-sidebar .recipient-status.declined{background-color:#c62828}verdocs-envelope-sidebar .recipient-content{-ms-flex-direction:column;flex-direction:column}verdocs-envelope-sidebar .history-entry{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-direction:row;flex-direction:row;padding:8px 0 0;margin:8px 0 0;border-top:1px solid #dddddd}verdocs-envelope-sidebar .history-entry .activity-icon{margin-right:14px}verdocs-envelope-sidebar .history-entry .activity-icon svg{width:24px;height:24px;fill:#ffffff}verdocs-envelope-sidebar .history-entry .activity-text{font-size:14px;line-height:16px;margin-bottom:4px}verdocs-envelope-sidebar .history-entry .activity-date{font-size:12px;line-height:16px;color:rgba(255, 255, 255, 0.54)}verdocs-envelope-sidebar .content .history-entry:first-of-type{border-top:none}";
15
17
 
16
18
  const InformationCircle = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="#ffffff"><path stroke-linecap="round" stroke-linejoin="round" d="M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z" /></svg>`;
17
19
  const Users = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="#ffffff"><path stroke-linecap="round" stroke-linejoin="round" d="M15 19.128a9.38 9.38 0 002.625.372 9.337 9.337 0 004.121-.952 4.125 4.125 0 00-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 018.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0111.964-3.07M12 6.375a3.375 3.375 0 11-6.75 0 3.375 3.375 0 016.75 0zm8.25 2.25a2.625 2.625 0 11-5.25 0 2.625 2.625 0 015.25 0z" /></svg>`;
@@ -45,40 +47,42 @@ const VerdocsEnvelopeSidebar$1 = /*@__PURE__*/ proxyCustomElement(class extends
45
47
  this.envelopeUpdated = createEvent(this, "envelopeUpdated", 7);
46
48
  this.toggle = createEvent(this, "toggle", 7);
47
49
  this.another = createEvent(this, "another", 7);
50
+ this.store = null;
48
51
  this.endpoint = VerdocsEndpoint.getDefault();
49
52
  this.envelopeId = '';
50
- this.envelope = null;
51
- this.sortedRecipients = [];
52
- this.roleNames = [];
53
53
  this.activeTab = 1;
54
54
  this.panelOpen = false;
55
55
  this.showManageDialog = false;
56
+ this.showCancelDialog = false;
56
57
  this.loading = true;
57
58
  }
58
- componentWillLoad() {
59
- this.endpoint.loadSession();
60
- }
61
- // TODO: Handling signing vs preview-as-user cases
62
- // TODO: Handle anonymous case and failure to load due to not being logged in
63
- async componentWillRender() {
59
+ async componentWillLoad() {
64
60
  var _a, _b, _c;
65
- if (!this.envelopeId) {
66
- console.error(`[SIDEBAR] Missing required envelopeId`);
67
- return;
68
- }
69
61
  try {
70
- this.envelope = await throttledGetEnvelope(this.endpoint, this.envelopeId);
71
- this.sortedRecipients = [...this.envelope.recipients];
72
- this.sortedRecipients.sort((a, b) => {
73
- return a.sequence === b.sequence ? a.order - b.order : a.sequence - b.sequence;
74
- });
75
- this.roleNames = this.sortedRecipients.map(r => r.role_name);
62
+ this.endpoint.loadSession();
63
+ if (!this.envelopeId) {
64
+ console.log(`[SIDEBAR] Missing required envelope ID ${this.envelopeId}`);
65
+ return;
66
+ }
67
+ if (!this.endpoint.session) {
68
+ console.log('[SIDEBAR] Unable to start session, must be authenticated');
69
+ return;
70
+ }
71
+ this.store = await getEnvelopeStore(this.endpoint, this.envelopeId, true);
72
+ this.sortEnvelopeRecipients();
76
73
  this.loading = false;
77
74
  }
78
75
  catch (e) {
76
+ console.log('[SIDEBAR] Error loading envelope', e);
79
77
  (_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));
80
78
  }
81
79
  }
80
+ sortEnvelopeRecipients() {
81
+ var _a, _b;
82
+ (_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.recipients.sort((a, b) => {
83
+ return a.sequence === b.sequence ? a.order - b.order : a.sequence - b.sequence;
84
+ });
85
+ }
82
86
  setTab(tab) {
83
87
  var _a;
84
88
  this.panelOpen = tab !== this.activeTab || !this.panelOpen;
@@ -87,20 +91,38 @@ const VerdocsEnvelopeSidebar$1 = /*@__PURE__*/ proxyCustomElement(class extends
87
91
  }
88
92
  // TODO: Refactor to a common library?
89
93
  canResendRecipient(recipient) {
94
+ var _a, _b;
90
95
  return (!['pending', 'declined', 'submitted', 'canceled'].includes(recipient.status) && //
91
- !['complete', 'declined', 'canceled'].includes(this.envelope.status));
96
+ !['complete', 'declined', 'canceled'].includes((_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.status));
92
97
  }
93
98
  canModifyRecipient(recipient) {
99
+ var _a, _b;
94
100
  return (!recipient.claimed && //
95
101
  !['declined', 'signed', 'submitted', 'canceled'].includes(recipient.status) &&
96
- !['complete', 'declined', 'canceled'].includes(this.envelope.status));
102
+ !['complete', 'declined', 'canceled'].includes((_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.status));
97
103
  }
98
104
  handleRecipientAction(recipient, id) {
99
- var _a;
105
+ var _a, _b;
100
106
  console.log('[SIDEBAR] Recipient action', id, recipient);
101
107
  switch (id) {
102
108
  case 'reminder':
103
- VerdocsToast('This feature will be enabled in a future release. Please try again later.', { style: 'info' });
109
+ resendInvitation(this.endpoint, this.envelopeId, recipient.role_name)
110
+ .then(() => {
111
+ VerdocsToast('Reminder Sent', { style: 'success' });
112
+ })
113
+ .catch(e => {
114
+ console.log('[SIDEBAR] Error resending invitation', e);
115
+ VerdocsToast('Error resending invitation: ' + e.message, { style: 'error' });
116
+ });
117
+ break;
118
+ case 'inperson':
119
+ getInPersonLink(this.endpoint, recipient.envelope_id, recipient.role_name)
120
+ .then(({ link }) => navigator.clipboard.writeText(link))
121
+ .then(() => VerdocsToast('Link copied to clipboard.', { style: 'success', duration: 2000 }))
122
+ .catch(e => {
123
+ console.log('[RECIPIENTS] Error getting link', e);
124
+ VerdocsToast('Unable to get link: ' + e.message, { style: 'error' });
125
+ });
104
126
  break;
105
127
  case 'modify':
106
128
  VerdocsToast('This feature will be enabled in a future release. Please try again later.', { style: 'info' });
@@ -109,21 +131,38 @@ const VerdocsEnvelopeSidebar$1 = /*@__PURE__*/ proxyCustomElement(class extends
109
131
  VerdocsToast('This feature will be enabled in a future release. Please try again later.', { style: 'info' });
110
132
  break;
111
133
  }
112
- (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: this.envelope, event: id });
134
+ (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: (_b = this.store) === null || _b === void 0 ? void 0 : _b.state, event: id });
135
+ }
136
+ cancelEnvelope() {
137
+ cancelEnvelope(this.endpoint, this.envelopeId)
138
+ .then(async (r) => {
139
+ var _a, _b;
140
+ console.log('[SIDEBAR] Envelope canceled', r);
141
+ VerdocsToast('Envelope canceled', { style: 'success' });
142
+ this.store = await getEnvelopeStore(this.endpoint, this.envelopeId, true);
143
+ this.sortEnvelopeRecipients();
144
+ (_a = this.envelopeUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, envelope: (_b = this.store) === null || _b === void 0 ? void 0 : _b.state, event: 'canceled' });
145
+ })
146
+ .catch(e => {
147
+ console.log('[SIDEBAR] Error canceling envelope', e);
148
+ VerdocsToast('Error canceling envelope: ' + e.message, { style: 'error' });
149
+ });
113
150
  }
114
151
  prepareHistoryEntries() {
152
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
115
153
  const entries = [];
116
- const histories = this.envelope.histories || [];
117
- entries.push({ icon: 'pencil', message: 'Envelope created.', date: new Date(this.envelope.created_at) });
118
- if (this.envelope.status === 'complete') {
119
- entries.push({ icon: 'pencil', message: 'Envelope completed.', date: new Date(this.envelope.updated_at) });
154
+ const histories = ((_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.histories) || [];
155
+ entries.push({ icon: 'pencil', message: 'Envelope created.', date: new Date((_d = (_c = this.store) === null || _c === void 0 ? void 0 : _c.state) === null || _d === void 0 ? void 0 : _d.created_at) });
156
+ if (((_f = (_e = this.store) === null || _e === void 0 ? void 0 : _e.state) === null || _f === void 0 ? void 0 : _f.status) === 'complete') {
157
+ entries.push({ icon: 'pencil', message: 'Envelope completed.', date: new Date((_h = (_g = this.store) === null || _g === void 0 ? void 0 : _g.state) === null || _h === void 0 ? void 0 : _h.updated_at) });
120
158
  }
121
159
  const ownerCanceled = histories.some(history => history.event === 'owner:canceled');
122
- if (this.envelope.status === 'canceled' && !ownerCanceled) {
123
- entries.push({ icon: 'pencil', message: 'Envelope Cancelled.', date: new Date(this.envelope.canceled_at) });
160
+ if (((_k = (_j = this.store) === null || _j === void 0 ? void 0 : _j.state) === null || _k === void 0 ? void 0 : _k.status) === 'canceled' && !ownerCanceled) {
161
+ entries.push({ icon: 'pencil', message: 'Envelope Cancelled.', date: new Date((_m = (_l = this.store) === null || _l === void 0 ? void 0 : _l.state) === null || _m === void 0 ? void 0 : _m.canceled_at) });
124
162
  }
125
163
  histories.forEach(history => {
126
- const user = this.sortedRecipients.find(recipient => recipient.role_name === history.role_name);
164
+ var _a;
165
+ const user = (_a = this.store.state) === null || _a === void 0 ? void 0 : _a.recipients.find(recipient => recipient.role_name === history.role_name);
127
166
  const name = (user === null || user === void 0 ? void 0 : user.full_name) || '';
128
167
  switch (history.event.toLowerCase()) {
129
168
  case 'recipient:signed':
@@ -225,46 +264,60 @@ const VerdocsEnvelopeSidebar$1 = /*@__PURE__*/ proxyCustomElement(class extends
225
264
  entries.sort((a, b) => b.date.getTime() - a.date.getTime());
226
265
  return entries;
227
266
  }
267
+ canModify(recipient) {
268
+ var _a, _b;
269
+ const invalidRecipientStatus = ['declined', 'signed', 'submitted', 'canceled'];
270
+ const invalidEnvelopeStatus = ['complete', 'declined', 'canceled'];
271
+ return recipient.claimed !== true && invalidRecipientStatus.indexOf(recipient.status) === -1 && invalidEnvelopeStatus.indexOf((_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.status) === -1;
272
+ }
228
273
  render() {
229
- var _a, _b, _c;
230
- if (!this.envelope || this.loading) {
274
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
275
+ if (!this.store.state) {
231
276
  return h(Host, null);
232
277
  }
233
278
  const session = this.endpoint.getSession();
234
- const isEnvelopeOwner = userIsEnvelopeOwner(session, this.envelope);
279
+ const isEnvelopeOwner = userIsEnvelopeOwner(session, this.store.state);
235
280
  const historyEntries = this.prepareHistoryEntries();
236
- return (h(Host, { class: this.panelOpen ? 'open' : '' }, h("div", { class: "side-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), FORMAT_TIMESTAMP)), h("div", { class: "label" }, "Last Modified"), h("div", { class: "value" }, format(new Date(this.envelope.updated_at), FORMAT_TIMESTAMP)), 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 :
237
- _a.first_name, " ", (_b = this.envelope.profile) === null || _b === void 0 ? void 0 :
238
- _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.sortedRecipients.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.role_name), h("div", { class: { 'recipient-status': true, [recipient.status]: true } }, recipient.status), isEnvelopeOwner && (h("verdocs-dropdown", { onOptionSelected: item => this.handleRecipientAction(recipient, item.detail.id), options: [
239
- { id: 'reminder', label: 'Send Reminder', disabled: !this.canResendRecipient(recipient) },
240
- { id: 'modify', label: 'Modify Recipient', disabled: !this.canModifyRecipient(recipient) },
241
- // TODO: Details dialog
242
- // {id:'details',label: 'View Details'},
243
- ] }))), h("dic", { class: "recipient-content" }, h("div", { class: "recipient-name" }, recipient.full_name), h("div", { class: "recipient-name" }, recipient.email), h("div", { class: "recipient-name" }, recipient.phone))))), isEnvelopeOwner && h("verdocs-button", { class: "manage-recipients-button", variant: "standard", label: "Manage Recipients", onClick: () => (this.showManageDialog = true) }))), this.activeTab === 3 && (h("div", { class: "content" }, h("div", { class: "title" }, "History"), historyEntries.map(entry => (h("div", { class: "history-entry" }, h("div", { class: "activity-icon", innerHTML: ActivityIcons[entry.icon] || entry.icon }), h("div", { class: "activity-details" }, h("div", { class: "activity-text" }, entry.message), h("div", { class: "activity-date" }, format(entry.date, FORMAT_TIMESTAMP)))))))), this.showManageDialog && (h("verdocs-envelope-recipient-summary", { envelopeId: this.envelopeId, canView: false, onAnother: () => {
281
+ const functionsDisabled = ((_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.status) !== 'pending' && ((_d = (_c = this.store) === null || _c === void 0 ? void 0 : _c.state) === null || _d === void 0 ? void 0 : _d.status) !== 'in progress';
282
+ return (h(Host, { class: this.panelOpen ? 'open' : '' }, h("div", { class: "side-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" }, (_f = (_e = this.store) === null || _e === void 0 ? void 0 : _e.state) === null || _f === void 0 ? void 0 : _f.id), h("div", { class: "label" }, "Date Created"), h("div", { class: "value" }, format(new Date((_h = (_g = this.store) === null || _g === void 0 ? void 0 : _g.state) === null || _h === void 0 ? void 0 : _h.created_at), FORMAT_TIMESTAMP)), h("div", { class: "label" }, "Last Modified"), h("div", { class: "value" }, format(new Date((_k = (_j = this.store) === null || _j === void 0 ? void 0 : _j.state) === null || _k === void 0 ? void 0 : _k.updated_at), FORMAT_TIMESTAMP)), h("div", { class: "label" }, "Status"), h("div", { class: "value" }, (_m = (_l = this.store) === null || _l === void 0 ? void 0 : _l.state) === null || _m === void 0 ? void 0 : _m.status), h("div", { class: "label" }, "Verdoc Owner ID"), h("div", { class: "value" }, (_p = (_o = this.store) === null || _o === void 0 ? void 0 : _o.state) === null || _p === void 0 ? void 0 : _p.profile_id), h("div", { class: "label" }, "Verdoc Owner Name"), h("div", { class: "value" }, (_s = (_r = (_q = this.store) === null || _q === void 0 ? void 0 : _q.state) === null || _r === void 0 ? void 0 : _r.profile) === null || _s === void 0 ? void 0 :
283
+ _s.first_name, " ", (_v = (_u = (_t = this.store) === null || _t === void 0 ? void 0 : _t.state) === null || _u === void 0 ? void 0 : _u.profile) === null || _v === void 0 ? void 0 :
284
+ _v.last_name), h("div", { class: "label" }, "Verdoc Owner Email"), h("div", { class: "value" }, (_y = (_x = (_w = this.store) === null || _w === void 0 ? void 0 : _w.state) === null || _x === void 0 ? void 0 : _x.profile) === null || _y === void 0 ? void 0 : _y.email))), this.activeTab === 2 && (h("div", { class: "content" }, h("div", { class: "title" }, "Recipients"), (_0 = (_z = this.store) === null || _z === void 0 ? void 0 : _z.state) === null || _0 === void 0 ? void 0 :
285
+ _0.recipients.map((recipient, index) => {
286
+ const canGetInPersonLink = !this.canModify(recipient) || (recipient.status !== 'invited' && recipient.status !== 'opened');
287
+ const canSendReminder = this.canResendRecipient(recipient);
288
+ return (h("div", { class: "recipient-detail" }, h("div", { class: "recipient-header" }, h("div", { class: "recipient-number" }, index + 1), h("div", { class: "recipient-type" }, recipient.role_name), h("div", { class: { 'recipient-status': true, [recipient.status]: true } }, recipient.status), isEnvelopeOwner && !functionsDisabled && (h("verdocs-dropdown", { onOptionSelected: item => this.handleRecipientAction(recipient, item.detail.id), options: [
289
+ { id: 'reminder', label: 'Send Reminder', disabled: !canSendReminder },
290
+ { id: 'inperson', label: 'Get In-Person Link', disabled: !canGetInPersonLink },
291
+ // {id: 'modify', label: 'Modify Recipient', disabled: !this.canModifyRecipient(recipient)},
292
+ // TODO: Details dialog
293
+ // {id:'details',label: 'View Details'},
294
+ ] }))), h("dic", { class: "recipient-content" }, h("div", { class: "recipient-name" }, recipient.full_name), h("div", { class: "recipient-name" }, recipient.email), h("div", { class: "recipient-name" }, recipient.phone))));
295
+ }), isEnvelopeOwner && (h("verdocs-button", { class: "manage-recipients-button", variant: "standard", label: "Turn On Reminders", onClick: () => (this.showManageDialog = !functionsDisabled), disabled: functionsDisabled })), isEnvelopeOwner && (h("verdocs-button", { class: "manage-recipients-button", variant: "standard", label: "Cancel Verdoc", onClick: () => (this.showCancelDialog = !functionsDisabled), disabled: functionsDisabled })))), this.activeTab === 3 && (h("div", { class: "content" }, h("div", { class: "title" }, "History"), historyEntries.map(entry => (h("div", { class: "history-entry" }, h("div", { class: "activity-icon", innerHTML: ActivityIcons[entry.icon] || entry.icon }), h("div", { class: "activity-details" }, h("div", { class: "activity-text" }, entry.message), h("div", { class: "activity-date" }, format(entry.date, FORMAT_TIMESTAMP)))))))), this.showManageDialog && (h("verdocs-envelope-recipient-summary", { envelopeId: this.envelopeId, canView: false, onAnother: () => {
244
296
  var _a;
245
297
  this.showManageDialog = false;
246
- (_a = this.another) === null || _a === void 0 ? void 0 : _a.emit({ envelope: this.envelope });
298
+ (_a = this.another) === null || _a === void 0 ? void 0 : _a.emit({ envelope: this.store.state });
247
299
  }, onNext: () => {
248
300
  this.showManageDialog = false;
301
+ } })), this.showCancelDialog && (h("verdocs-ok-dialog", { heading: "Cancel Envelope?", message: 'Are you sure you want to cancel this Envelope? This action cannot be undone.', onNext: () => {
302
+ this.showCancelDialog = false;
303
+ this.cancelEnvelope();
249
304
  } }))));
250
305
  }
251
306
  static get style() { return verdocsEnvelopeSidebarCss; }
252
307
  }, [0, "verdocs-envelope-sidebar", {
253
308
  "endpoint": [16],
254
309
  "envelopeId": [1, "envelope-id"],
255
- "envelope": [32],
256
- "sortedRecipients": [32],
257
- "roleNames": [32],
258
310
  "activeTab": [32],
259
311
  "panelOpen": [32],
260
312
  "showManageDialog": [32],
313
+ "showCancelDialog": [32],
261
314
  "loading": [32]
262
315
  }]);
263
316
  function defineCustomElement$1() {
264
317
  if (typeof customElements === "undefined") {
265
318
  return;
266
319
  }
267
- const components = ["verdocs-envelope-sidebar", "verdocs-button", "verdocs-dropdown", "verdocs-envelope-recipient-summary"];
320
+ const components = ["verdocs-envelope-sidebar", "verdocs-button", "verdocs-dropdown", "verdocs-envelope-recipient-summary", "verdocs-ok-dialog"];
268
321
  components.forEach(tagName => { switch (tagName) {
269
322
  case "verdocs-envelope-sidebar":
270
323
  if (!customElements.get(tagName)) {
@@ -273,15 +326,20 @@ function defineCustomElement$1() {
273
326
  break;
274
327
  case "verdocs-button":
275
328
  if (!customElements.get(tagName)) {
276
- defineCustomElement$4();
329
+ defineCustomElement$5();
277
330
  }
278
331
  break;
279
332
  case "verdocs-dropdown":
280
333
  if (!customElements.get(tagName)) {
281
- defineCustomElement$3();
334
+ defineCustomElement$4();
282
335
  }
283
336
  break;
284
337
  case "verdocs-envelope-recipient-summary":
338
+ if (!customElements.get(tagName)) {
339
+ defineCustomElement$3();
340
+ }
341
+ break;
342
+ case "verdocs-ok-dialog":
285
343
  if (!customElements.get(tagName)) {
286
344
  defineCustomElement$2();
287
345
  }
@@ -1,4 +1,8 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
+ import { i as interact } from './interact.min.js';
3
+ import './Types.js';
4
+ import { u as updateField } from './Fields.js';
5
+ import { V as VerdocsEndpoint } from './VerdocsEndpoint.js';
2
6
  import { g as getRGBA } from './Colors.js';
3
7
  import { g as getFieldSettings } from './utils.js';
4
8
  import { d as defineCustomElement$9 } from './verdocs-button2.js';
@@ -10,7 +14,7 @@ import { d as defineCustomElement$4 } from './verdocs-select-input2.js';
10
14
  import { d as defineCustomElement$3 } from './verdocs-template-field-properties2.js';
11
15
  import { d as defineCustomElement$2 } from './verdocs-text-input2.js';
12
16
 
13
- const verdocsFieldTextareaCss = "verdocs-field-textarea{font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif;width:150px;height:15px;display:block;font-size:11px;position:relative;background-color:transparent;-webkit-transform-origin:bottom left;transform-origin:bottom left}verdocs-field-textarea.disabled{opacity:0.5}verdocs-field-textarea textarea{-webkit-box-sizing:border-box;box-sizing:border-box;color:rgba(0, 0, 0, 0.87);font-weight:500;-webkit-transform-origin:0 0;transform-origin:0 0;height:100%;width:100%;background:none;font-size:11px;border:1px solid rgba(0, 0, 0, 0.2)}verdocs-field-textarea textarea.hide{display:none}verdocs-field-textarea.required{border:1px solid #cc0000}verdocs-field-textarea.focused{-webkit-animation:verdocs-field-pulse 0.75s 2;animation:verdocs-field-pulse 0.75s 2}verdocs-field-textarea verdocs-button-panel{top:-3px;left:-2px;opacity:0.5;z-index:1000;cursor:pointer;position:absolute;-webkit-transform:scale(0.6);transform:scale(0.6)}verdocs-field-textarea verdocs-button-panel[data-active],verdocs-field-textarea verdocs-button-panel:hover{opacity:1}verdocs-field-textarea verdocs-button-panel .icon svg{fill:#333333}verdocs-field-textarea verdocs-button-panel .icon:hover svg{fill:#000000}";
17
+ const verdocsFieldTextareaCss = "verdocs-field-textarea{width:150px;height:15px;display:block;font-size:11px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:transparent;-webkit-transform-origin:bottom left;transform-origin:bottom left;font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif;border:1px solid rgba(0, 0, 0, 0.2)}verdocs-field-textarea.disabled{opacity:0.5}verdocs-field-textarea textarea{width:100%;height:100%;resize:none;border:none;outline:none;padding:0 3px;font-size:11px;background:none;font-weight:500;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-box-sizing:border-box;box-sizing:border-box;color:rgba(0, 0, 0, 0.87)}verdocs-field-textarea textarea.hide{display:none}verdocs-field-textarea.required{border:1px solid #cc0000}verdocs-field-textarea.focused{-webkit-animation:verdocs-field-pulse 0.75s 2;animation:verdocs-field-pulse 0.75s 2}verdocs-field-textarea verdocs-button-panel{top:-3px;left:-2px;opacity:0.5;z-index:1000;cursor:pointer;position:absolute;-webkit-transform:scale(0.6);transform:scale(0.6)}verdocs-field-textarea verdocs-button-panel[data-active],verdocs-field-textarea verdocs-button-panel:hover{opacity:1}verdocs-field-textarea verdocs-button-panel .icon svg{fill:#333333}verdocs-field-textarea verdocs-button-panel .icon:hover svg{fill:#000000}";
14
18
 
15
19
  const settingsIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20"><path d="m7.5 18.5-.312-2.667q-.188-.125-.396-.25-.209-.125-.396-.229l-2.479 1.063-2.521-4.334 2.125-1.625q.021-.104.021-.229v-.458q0-.125-.021-.229L1.396 7.917l2.521-4.313 2.5 1.042q.166-.104.375-.229.208-.125.396-.229L7.5 1.5h5l.312 2.688q.188.104.396.229.209.125.396.229l2.479-1.042 2.521 4.313-2.125 1.625v.916l2.125 1.625-2.521 4.334-2.5-1.063q-.166.104-.375.229-.208.125-.396.25L12.5 18.5Zm2.479-5.521q1.229 0 2.104-.875T12.958 10q0-1.229-.875-2.104t-2.104-.875q-1.208 0-2.094.875Q7 8.771 7 10t.885 2.104q.886.875 2.094.875Zm0-1.75q-.5 0-.864-.364Q8.75 10.5 8.75 10t.365-.865q.364-.364.864-.364t.865.364q.364.365.364.865t-.364.865q-.365.364-.865.364ZM10.021 10Zm-.792 6.521h1.542l.25-2.146q.625-.167 1.198-.51.573-.344 1.031-.823l2.021.854.771-1.271-1.771-1.354q.104-.292.156-.615.052-.323.052-.656 0-.292-.052-.604-.052-.313-.135-.646l1.77-1.375-.77-1.271-2.021.875q-.479-.5-1.042-.833-.562-.334-1.187-.5l-.271-2.167H9.208l-.25 2.167q-.625.166-1.187.5-.563.333-1.042.812l-2-.854-.771 1.271 1.73 1.354q-.084.333-.136.656Q5.5 9.708 5.5 10t.052.604q.052.313.136.667l-1.73 1.354.771 1.271 2-.834q.479.459 1.042.792.562.334 1.187.5Z"/></svg>';
16
20
  const VerdocsFieldTextarea$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
@@ -19,6 +23,7 @@ const VerdocsFieldTextarea$1 = /*@__PURE__*/ proxyCustomElement(class extends HT
19
23
  this.__registerHost();
20
24
  this.settingsChanged = createEvent(this, "settingsChanged", 7);
21
25
  this.deleted = createEvent(this, "deleted", 7);
26
+ this.endpoint = VerdocsEndpoint.getDefault();
22
27
  this.templateid = '';
23
28
  this.field = null;
24
29
  this.disabled = false;
@@ -26,10 +31,12 @@ const VerdocsFieldTextarea$1 = /*@__PURE__*/ proxyCustomElement(class extends HT
26
31
  this.moveable = false;
27
32
  this.done = false;
28
33
  this.roleindex = 0;
34
+ this.xscale = 1;
35
+ this.yscale = 1;
29
36
  this.rerender = 0;
30
37
  }
31
38
  async focusField() {
32
- this.el.focus();
39
+ this.inputEl.focus();
33
40
  }
34
41
  async showSettingsPanel() {
35
42
  const settingsPanel = document.getElementById(`verdocs-settings-panel-${this.field.name}`);
@@ -44,6 +51,51 @@ const VerdocsFieldTextarea$1 = /*@__PURE__*/ proxyCustomElement(class extends HT
44
51
  }
45
52
  // TemplateStore.updateCount++;
46
53
  }
54
+ componentDidRender() {
55
+ interact.dynamicDrop(true);
56
+ if (this.editable) {
57
+ interact(this.el).resizable({
58
+ edges: { top: true, bottom: true, left: true, right: true },
59
+ listeners: {
60
+ start: this.handleResizeStart.bind(this),
61
+ move: this.handleResize.bind(this),
62
+ end: this.handleResizeEnd.bind(this),
63
+ },
64
+ });
65
+ }
66
+ }
67
+ handleResizeStart(e) {
68
+ e.preventDefault();
69
+ e.stopPropagation();
70
+ }
71
+ handleResize(e) {
72
+ let { x = 0, y = 0, h = 0 } = e.target.dataset;
73
+ let { width, height } = e.rect;
74
+ x = (parseFloat(x) || 0) + e.deltaRect.left;
75
+ y = (parseFloat(y) || 0) + e.deltaRect.top;
76
+ h = (parseFloat(h) || 0) + e.deltaRect.height;
77
+ Object.assign(e.target.style, {
78
+ width: `${width}px`,
79
+ height: `${height}px`,
80
+ transform: `translate(${x}px, ${y + h}px)`,
81
+ });
82
+ Object.assign(e.target.dataset, { x, y, h });
83
+ }
84
+ handleResizeEnd(e) {
85
+ const newSettings = { ...getFieldSettings(this.field) };
86
+ const [translateX, translateY] = e.target.style.transform.split('(')[1].split(')')[0].split(',').map(parseFloat);
87
+ newSettings.width = Math.round(parseFloat(e.target.style.width) / this.xscale);
88
+ newSettings.height = Math.round(parseFloat(e.target.style.height) / this.yscale);
89
+ newSettings.x = Math.round(newSettings.x + translateX / this.xscale);
90
+ newSettings.y = Math.round(newSettings.y - translateY / this.yscale);
91
+ updateField(this.endpoint, this.templateid, this.field.name, { setting: newSettings })
92
+ .then(() => {
93
+ var _a;
94
+ (_a = this.settingsChanged) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.field.name, settings: newSettings });
95
+ Object.assign(e.target.dataset, { x: 0, y: 0, h: 0 });
96
+ })
97
+ .catch(e => console.log('Field update failed', e));
98
+ }
47
99
  render() {
48
100
  var _a, _b;
49
101
  const settings = getFieldSettings(this.field);
@@ -52,7 +104,7 @@ const VerdocsFieldTextarea$1 = /*@__PURE__*/ proxyCustomElement(class extends HT
52
104
  if (this.done) {
53
105
  return h(Host, { class: { done: this.done } }, settings.value);
54
106
  }
55
- return (h(Host, { class: { required: settings.required, disabled }, style: { backgroundColor } }, h("textarea", { placeholder: settings.placeholder || '', tabIndex: settings.order, value: settings.value, disabled: disabled, name: this.field.name, required: settings.required, ref: el => (this.el = el) }), this.editable && (h("verdocs-button-panel", { icon: settingsIcon, id: `verdocs-settings-panel-${this.field.name}` }, h("verdocs-template-field-properties", { templateId: this.templateid, fieldName: this.field.name, onClose: () => this.hideSettingsPanel(), onDelete: () => {
107
+ return (h(Host, { class: { required: settings.required, disabled }, style: { backgroundColor } }, h("textarea", { placeholder: settings.placeholder || '', tabIndex: settings.order, value: settings.value, disabled: disabled, name: this.field.name, required: settings.required, ref: el => (this.inputEl = el) }), this.editable && (h("verdocs-button-panel", { icon: settingsIcon, id: `verdocs-settings-panel-${this.field.name}` }, h("verdocs-template-field-properties", { templateId: this.templateid, fieldName: this.field.name, onClose: () => this.hideSettingsPanel(), onDelete: () => {
56
108
  var _a;
57
109
  (_a = this.deleted) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.field.name });
58
110
  return this.hideSettingsPanel();
@@ -62,8 +114,10 @@ const VerdocsFieldTextarea$1 = /*@__PURE__*/ proxyCustomElement(class extends HT
62
114
  return this.hideSettingsPanel();
63
115
  } })))));
64
116
  }
117
+ get el() { return this; }
65
118
  static get style() { return verdocsFieldTextareaCss; }
66
119
  }, [0, "verdocs-field-textarea", {
120
+ "endpoint": [16],
67
121
  "templateid": [1],
68
122
  "field": [16],
69
123
  "disabled": [4],
@@ -71,6 +125,8 @@ const VerdocsFieldTextarea$1 = /*@__PURE__*/ proxyCustomElement(class extends HT
71
125
  "moveable": [4],
72
126
  "done": [4],
73
127
  "roleindex": [2],
128
+ "xscale": [2],
129
+ "yscale": [2],
74
130
  "rerender": [2],
75
131
  "focusField": [64],
76
132
  "showSettingsPanel": [64],