@verdocs/web-sdk 5.0.40 → 5.0.42

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 (282) hide show
  1. package/dist/cjs/{Datastore-7c8ad503.js → Datastore-474df289.js} +1 -2
  2. package/dist/cjs/Datastore-474df289.js.map +1 -0
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/verdocs-build.cjs.entry.js +1 -1
  5. package/dist/cjs/verdocs-checkbox_6.cjs.entry.js +7 -3
  6. package/dist/cjs/verdocs-checkbox_6.cjs.entry.js.map +1 -1
  7. package/dist/cjs/verdocs-contact-picker_2.cjs.entry.js +23 -35
  8. package/dist/cjs/verdocs-contact-picker_2.cjs.entry.js.map +1 -1
  9. package/dist/cjs/verdocs-envelope-recipient-link.cjs.entry.js +1 -1
  10. package/dist/cjs/verdocs-envelope-recipient-summary.cjs.entry.js +1 -1
  11. package/dist/cjs/verdocs-envelope-sidebar.cjs.entry.js +1 -1
  12. package/dist/cjs/verdocs-field-attachment_13.cjs.entry.js +1 -3
  13. package/dist/cjs/verdocs-field-attachment_13.cjs.entry.js.map +1 -1
  14. package/dist/cjs/verdocs-field-payment.cjs.entry.js +1 -1
  15. package/dist/cjs/verdocs-kba-dialog_2.cjs.entry.js +1 -1
  16. package/dist/cjs/verdocs-menu-panel_2.cjs.entry.js +1 -1
  17. package/dist/cjs/verdocs-organization-card_2.cjs.entry.js +3 -2
  18. package/dist/cjs/verdocs-organization-card_2.cjs.entry.js.map +1 -1
  19. package/dist/cjs/verdocs-preview_7.cjs.entry.js +1 -3
  20. package/dist/cjs/verdocs-preview_7.cjs.entry.js.map +1 -1
  21. package/dist/cjs/verdocs-sign.cjs.entry.js +115 -91
  22. package/dist/cjs/verdocs-sign.cjs.entry.js.map +1 -1
  23. package/dist/cjs/verdocs-template-document-page_2.cjs.entry.js +1 -1
  24. package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
  25. package/dist/collection/components/controls/verdocs-checkbox/verdocs-checkbox.css +5 -0
  26. package/dist/collection/components/controls/verdocs-checkbox/verdocs-checkbox.js +25 -1
  27. package/dist/collection/components/controls/verdocs-checkbox/verdocs-checkbox.js.map +1 -1
  28. package/dist/collection/components/controls/verdocs-multiselect/verdocs-multiselect.css +7 -0
  29. package/dist/collection/components/controls/verdocs-multiselect/verdocs-multiselect.js +1 -1
  30. package/dist/collection/components/controls/verdocs-multiselect/verdocs-multiselect.js.map +1 -1
  31. package/dist/collection/components/controls/verdocs-portal/verdocs-portal.js +3 -2
  32. package/dist/collection/components/controls/verdocs-portal/verdocs-portal.js.map +1 -1
  33. package/dist/collection/components/embeds/verdocs-send/verdocs-send.js +0 -2
  34. package/dist/collection/components/embeds/verdocs-send/verdocs-send.js.map +1 -1
  35. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js +121 -95
  36. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js.map +1 -1
  37. package/dist/collection/components/envelopes/verdocs-contact-picker/verdocs-contact-picker.css +0 -10
  38. package/dist/collection/components/envelopes/verdocs-contact-picker/verdocs-contact-picker.js +9 -7
  39. package/dist/collection/components/envelopes/verdocs-contact-picker/verdocs-contact-picker.js.map +1 -1
  40. package/dist/collection/components/fields/verdocs-field-date/verdocs-field-date.js +0 -2
  41. package/dist/collection/components/fields/verdocs-field-date/verdocs-field-date.js.map +1 -1
  42. package/dist/collection/utils/Datastore.js +0 -1
  43. package/dist/collection/utils/Datastore.js.map +1 -1
  44. package/dist/components/{p-a4c3e93a.js → p-0e454650.js} +5 -5
  45. package/dist/components/{p-a4c3e93a.js.map → p-0e454650.js.map} +1 -1
  46. package/dist/components/{p-80cad481.js → p-1a83e46c.js} +5 -5
  47. package/dist/components/{p-80cad481.js.map → p-1a83e46c.js.map} +1 -1
  48. package/dist/components/{p-bd2df986.js → p-1c5981db.js} +2 -2
  49. package/dist/components/{p-bd2df986.js.map → p-1c5981db.js.map} +1 -1
  50. package/dist/components/{p-78d650ca.js → p-33300e3a.js} +1 -2
  51. package/dist/components/p-33300e3a.js.map +1 -0
  52. package/dist/components/{p-3e1e59cb.js → p-43b8738f.js} +2 -2
  53. package/dist/components/{p-3e1e59cb.js.map → p-43b8738f.js.map} +1 -1
  54. package/dist/components/{p-d0280735.js → p-444a3bdf.js} +2 -2
  55. package/dist/components/{p-d0280735.js.map → p-444a3bdf.js.map} +1 -1
  56. package/dist/components/{p-e378a0ae.js → p-4a04090c.js} +16 -16
  57. package/dist/components/{p-e378a0ae.js.map → p-4a04090c.js.map} +1 -1
  58. package/dist/components/{p-fd4e0e9b.js → p-4a4bf38c.js} +13 -9
  59. package/dist/components/p-4a4bf38c.js.map +1 -0
  60. package/dist/components/{p-d13f639e.js → p-4ab3413a.js} +5 -5
  61. package/dist/components/{p-d13f639e.js.map → p-4ab3413a.js.map} +1 -1
  62. package/dist/components/{p-6cba6eef.js → p-4dbb9783.js} +3 -3
  63. package/dist/components/{p-6cba6eef.js.map → p-4dbb9783.js.map} +1 -1
  64. package/dist/components/{p-e2f386c6.js → p-55edf913.js} +2 -2
  65. package/dist/components/{p-e2f386c6.js.map → p-55edf913.js.map} +1 -1
  66. package/dist/components/{p-ab71430d.js → p-581128fe.js} +4 -4
  67. package/dist/components/{p-ab71430d.js.map → p-581128fe.js.map} +1 -1
  68. package/dist/components/{p-21fb933f.js → p-5d578b83.js} +3 -3
  69. package/dist/components/{p-21fb933f.js.map → p-5d578b83.js.map} +1 -1
  70. package/dist/components/{p-9acf5a7e.js → p-6a8c32a6.js} +5 -5
  71. package/dist/components/{p-9acf5a7e.js.map → p-6a8c32a6.js.map} +1 -1
  72. package/dist/components/{p-61cc000e.js → p-710ca15d.js} +2 -2
  73. package/dist/components/{p-61cc000e.js.map → p-710ca15d.js.map} +1 -1
  74. package/dist/components/{p-b6d4072e.js → p-73a39d5a.js} +32 -38
  75. package/dist/components/p-73a39d5a.js.map +1 -0
  76. package/dist/components/{p-c4eab8f0.js → p-91eae04c.js} +16 -16
  77. package/dist/components/{p-c4eab8f0.js.map → p-91eae04c.js.map} +1 -1
  78. package/dist/components/{p-044413dc.js → p-92cce3dc.js} +5 -7
  79. package/dist/components/{p-044413dc.js.map → p-92cce3dc.js.map} +1 -1
  80. package/dist/components/{p-f007234d.js → p-96774726.js} +8 -3
  81. package/dist/components/p-96774726.js.map +1 -0
  82. package/dist/components/{p-ca701f0f.js → p-9a24561a.js} +5 -5
  83. package/dist/components/{p-ca701f0f.js.map → p-9a24561a.js.map} +1 -1
  84. package/dist/components/{p-c6d1cdb7.js → p-a50f7982.js} +11 -5
  85. package/dist/components/p-a50f7982.js.map +1 -0
  86. package/dist/components/{p-589c545a.js → p-b474c324.js} +15 -15
  87. package/dist/components/{p-589c545a.js.map → p-b474c324.js.map} +1 -1
  88. package/dist/components/{p-afd663f1.js → p-ca16a8ac.js} +4 -3
  89. package/dist/components/p-ca16a8ac.js.map +1 -0
  90. package/dist/components/{p-4c08e92a.js → p-d89157e9.js} +2 -2
  91. package/dist/components/{p-4c08e92a.js.map → p-d89157e9.js.map} +1 -1
  92. package/dist/components/{p-4f0db584.js → p-df227cfc.js} +5 -5
  93. package/dist/components/{p-4f0db584.js.map → p-df227cfc.js.map} +1 -1
  94. package/dist/components/{p-bed9505d.js → p-e85acbfb.js} +5 -5
  95. package/dist/components/{p-bed9505d.js.map → p-e85acbfb.js.map} +1 -1
  96. package/dist/components/{p-1f5c7534.js → p-eb4bd2d6.js} +5 -5
  97. package/dist/components/{p-1f5c7534.js.map → p-eb4bd2d6.js.map} +1 -1
  98. package/dist/components/{p-e6d9cbc0.js → p-f66d6a07.js} +5 -5
  99. package/dist/components/{p-e6d9cbc0.js.map → p-f66d6a07.js.map} +1 -1
  100. package/dist/components/verdocs-build.js +25 -25
  101. package/dist/components/verdocs-checkbox.js +1 -1
  102. package/dist/components/verdocs-contact-picker.js +1 -1
  103. package/dist/components/verdocs-dropdown.js +1 -1
  104. package/dist/components/verdocs-envelope-recipient-link.js +1 -1
  105. package/dist/components/verdocs-envelope-recipient-summary.js +1 -1
  106. package/dist/components/verdocs-envelope-sidebar.js +4 -4
  107. package/dist/components/verdocs-envelopes-list.js +3 -3
  108. package/dist/components/verdocs-field-attachment.js +1 -1
  109. package/dist/components/verdocs-field-checkbox.js +1 -1
  110. package/dist/components/verdocs-field-date.js +1 -1
  111. package/dist/components/verdocs-field-dropdown.js +1 -1
  112. package/dist/components/verdocs-field-initial.js +1 -1
  113. package/dist/components/verdocs-field-payment.js +4 -4
  114. package/dist/components/verdocs-field-radio.js +1 -1
  115. package/dist/components/verdocs-field-signature.js +1 -1
  116. package/dist/components/verdocs-field-textarea.js +1 -1
  117. package/dist/components/verdocs-field-textbox.js +1 -1
  118. package/dist/components/verdocs-field-timestamp.js +1 -1
  119. package/dist/components/verdocs-multiselect.js +1 -1
  120. package/dist/components/verdocs-organization-card.js +1 -1
  121. package/dist/components/verdocs-portal.js +1 -1
  122. package/dist/components/verdocs-preview.js +1 -1
  123. package/dist/components/verdocs-send.js +1 -1
  124. package/dist/components/verdocs-sign.js +122 -97
  125. package/dist/components/verdocs-sign.js.map +1 -1
  126. package/dist/components/verdocs-template-attachments.js +1 -1
  127. package/dist/components/verdocs-template-build-tabs.js +1 -1
  128. package/dist/components/verdocs-template-document-page.js +1 -1
  129. package/dist/components/verdocs-template-field-properties.js +1 -1
  130. package/dist/components/verdocs-template-fields.js +1 -1
  131. package/dist/components/verdocs-template-role-properties.js +1 -1
  132. package/dist/components/verdocs-template-roles.js +1 -1
  133. package/dist/components/verdocs-template-settings.js +1 -1
  134. package/dist/components/verdocs-templates-list.js +2 -2
  135. package/dist/components/verdocs-view.js +1 -1
  136. package/dist/custom-elements.json +12 -0
  137. package/dist/esm/{Datastore-1db52f58.js → Datastore-974a55a5.js} +1 -2
  138. package/dist/esm/Datastore-974a55a5.js.map +1 -0
  139. package/dist/esm/loader.js +1 -1
  140. package/dist/esm/verdocs-build.entry.js +1 -1
  141. package/dist/esm/verdocs-checkbox_6.entry.js +7 -3
  142. package/dist/esm/verdocs-checkbox_6.entry.js.map +1 -1
  143. package/dist/esm/verdocs-contact-picker_2.entry.js +23 -35
  144. package/dist/esm/verdocs-contact-picker_2.entry.js.map +1 -1
  145. package/dist/esm/verdocs-envelope-recipient-link.entry.js +1 -1
  146. package/dist/esm/verdocs-envelope-recipient-summary.entry.js +1 -1
  147. package/dist/esm/verdocs-envelope-sidebar.entry.js +1 -1
  148. package/dist/esm/verdocs-field-attachment_13.entry.js +1 -3
  149. package/dist/esm/verdocs-field-attachment_13.entry.js.map +1 -1
  150. package/dist/esm/verdocs-field-payment.entry.js +1 -1
  151. package/dist/esm/verdocs-kba-dialog_2.entry.js +1 -1
  152. package/dist/esm/verdocs-menu-panel_2.entry.js +1 -1
  153. package/dist/esm/verdocs-organization-card_2.entry.js +3 -2
  154. package/dist/esm/verdocs-organization-card_2.entry.js.map +1 -1
  155. package/dist/esm/verdocs-preview_7.entry.js +1 -3
  156. package/dist/esm/verdocs-preview_7.entry.js.map +1 -1
  157. package/dist/esm/verdocs-sign.entry.js +116 -92
  158. package/dist/esm/verdocs-sign.entry.js.map +1 -1
  159. package/dist/esm/verdocs-template-document-page_2.entry.js +1 -1
  160. package/dist/esm/verdocs-web-sdk.js +1 -1
  161. package/dist/esm-es5/{Datastore-1db52f58.js → Datastore-974a55a5.js} +2 -2
  162. package/dist/esm-es5/{Datastore-1db52f58.js.map → Datastore-974a55a5.js.map} +1 -1
  163. package/dist/esm-es5/loader.js +1 -1
  164. package/dist/esm-es5/loader.js.map +1 -1
  165. package/dist/esm-es5/verdocs-build.entry.js +1 -1
  166. package/dist/esm-es5/verdocs-checkbox_6.entry.js +1 -1
  167. package/dist/esm-es5/verdocs-checkbox_6.entry.js.map +1 -1
  168. package/dist/esm-es5/verdocs-contact-picker_2.entry.js +1 -1
  169. package/dist/esm-es5/verdocs-contact-picker_2.entry.js.map +1 -1
  170. package/dist/esm-es5/verdocs-envelope-recipient-link.entry.js +1 -1
  171. package/dist/esm-es5/verdocs-envelope-recipient-summary.entry.js +1 -1
  172. package/dist/esm-es5/verdocs-envelope-sidebar.entry.js +1 -1
  173. package/dist/esm-es5/verdocs-field-attachment_13.entry.js +1 -1
  174. package/dist/esm-es5/verdocs-field-attachment_13.entry.js.map +1 -1
  175. package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
  176. package/dist/esm-es5/verdocs-kba-dialog_2.entry.js +1 -1
  177. package/dist/esm-es5/verdocs-menu-panel_2.entry.js +1 -1
  178. package/dist/esm-es5/verdocs-organization-card_2.entry.js +1 -1
  179. package/dist/esm-es5/verdocs-organization-card_2.entry.js.map +1 -1
  180. package/dist/esm-es5/verdocs-preview_7.entry.js +1 -1
  181. package/dist/esm-es5/verdocs-preview_7.entry.js.map +1 -1
  182. package/dist/esm-es5/verdocs-sign.entry.js +1 -1
  183. package/dist/esm-es5/verdocs-sign.entry.js.map +1 -1
  184. package/dist/esm-es5/verdocs-template-document-page_2.entry.js +1 -1
  185. package/dist/esm-es5/verdocs-web-sdk.js +1 -1
  186. package/dist/esm-es5/verdocs-web-sdk.js.map +1 -1
  187. package/dist/types/components/controls/verdocs-checkbox/verdocs-checkbox.d.ts +4 -0
  188. package/dist/types/components/embeds/verdocs-sign/verdocs-sign.d.ts +4 -2
  189. package/dist/types/components.d.ts +8 -0
  190. package/dist/verdocs-web-sdk/p-02e09803.system.entry.js +2 -0
  191. package/dist/verdocs-web-sdk/p-02e09803.system.entry.js.map +1 -0
  192. package/dist/verdocs-web-sdk/{p-796daf3e.system.entry.js → p-06394c15.system.entry.js} +2 -2
  193. package/dist/verdocs-web-sdk/p-06394c15.system.entry.js.map +1 -0
  194. package/dist/verdocs-web-sdk/{p-9e10dd2c.entry.js → p-06775d41.entry.js} +2 -2
  195. package/dist/verdocs-web-sdk/p-0c1898f6.system.js +1 -1
  196. package/dist/verdocs-web-sdk/p-0c1898f6.system.js.map +1 -1
  197. package/dist/verdocs-web-sdk/{p-a9f3549e.system.entry.js → p-0e8bbe05.system.entry.js} +2 -2
  198. package/dist/verdocs-web-sdk/{p-078818a8.entry.js → p-1247fd39.entry.js} +2 -2
  199. package/dist/verdocs-web-sdk/{p-84d305e4.entry.js → p-1f42a7c2.entry.js} +2 -2
  200. package/dist/verdocs-web-sdk/p-33300e3a.js +2 -0
  201. package/dist/verdocs-web-sdk/{p-78d650ca.js.map → p-33300e3a.js.map} +1 -1
  202. package/dist/verdocs-web-sdk/p-46263e7a.system.entry.js +2 -0
  203. package/dist/verdocs-web-sdk/p-46263e7a.system.entry.js.map +1 -0
  204. package/dist/verdocs-web-sdk/p-4d92a71b.entry.js +2 -0
  205. package/dist/verdocs-web-sdk/p-4d92a71b.entry.js.map +1 -0
  206. package/dist/verdocs-web-sdk/{p-7ba1b23c.system.entry.js → p-66438012.system.entry.js} +2 -2
  207. package/dist/verdocs-web-sdk/{p-7bd2fe9f.entry.js → p-66feba8c.entry.js} +2 -2
  208. package/dist/verdocs-web-sdk/{p-add6e890.system.entry.js → p-6cfb51e3.system.entry.js} +2 -2
  209. package/dist/verdocs-web-sdk/p-6cfb51e3.system.entry.js.map +1 -0
  210. package/dist/verdocs-web-sdk/{p-332f01b5.system.entry.js → p-78d9fa52.system.entry.js} +2 -2
  211. package/dist/verdocs-web-sdk/{p-63fe0290.system.entry.js → p-89c69404.system.entry.js} +2 -2
  212. package/dist/verdocs-web-sdk/p-89c69404.system.entry.js.map +1 -0
  213. package/dist/verdocs-web-sdk/{p-e50dae96.system.entry.js → p-9880e3e4.system.entry.js} +2 -2
  214. package/dist/verdocs-web-sdk/{p-41c9aec8.system.entry.js → p-a175597c.system.entry.js} +2 -2
  215. package/dist/verdocs-web-sdk/{p-f5290d34.system.entry.js → p-a508388a.system.entry.js} +2 -2
  216. package/dist/verdocs-web-sdk/{p-af554563.entry.js → p-ab23e446.entry.js} +2 -2
  217. package/dist/verdocs-web-sdk/p-b0606620.entry.js +2 -0
  218. package/dist/verdocs-web-sdk/p-b0606620.entry.js.map +1 -0
  219. package/dist/verdocs-web-sdk/p-b32c8a43.entry.js +2 -0
  220. package/dist/verdocs-web-sdk/p-b32c8a43.entry.js.map +1 -0
  221. package/dist/verdocs-web-sdk/{p-59dbcd64.entry.js → p-c242e25e.entry.js} +2 -2
  222. package/dist/verdocs-web-sdk/{p-48ea99c9.system.entry.js → p-d3dea986.system.entry.js} +2 -2
  223. package/dist/verdocs-web-sdk/p-d47c58de.entry.js +2 -0
  224. package/dist/verdocs-web-sdk/p-d47c58de.entry.js.map +1 -0
  225. package/dist/verdocs-web-sdk/{p-b66db146.system.entry.js → p-d63b3dc0.system.entry.js} +2 -2
  226. package/dist/verdocs-web-sdk/{p-be8afe3e.entry.js → p-dac04f8e.entry.js} +2 -2
  227. package/dist/verdocs-web-sdk/p-e5719bcf.system.entry.js +2 -0
  228. package/dist/verdocs-web-sdk/p-e5719bcf.system.entry.js.map +1 -0
  229. package/dist/verdocs-web-sdk/{p-0baacb99.entry.js → p-e7ca4f15.entry.js} +2 -2
  230. package/dist/verdocs-web-sdk/p-e7ca4f15.entry.js.map +1 -0
  231. package/dist/verdocs-web-sdk/{p-a678a1f5.entry.js → p-e8268ed9.entry.js} +2 -2
  232. package/dist/verdocs-web-sdk/p-e8268ed9.entry.js.map +1 -0
  233. package/dist/verdocs-web-sdk/{p-e4a6b073.system.js → p-ebd42be0.system.js} +2 -2
  234. package/dist/verdocs-web-sdk/{p-e4a6b073.system.js.map → p-ebd42be0.system.js.map} +1 -1
  235. package/dist/verdocs-web-sdk/{p-151e2fb7.entry.js → p-f406e916.entry.js} +2 -2
  236. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  237. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js.map +1 -1
  238. package/package.json +3 -3
  239. package/dist/cjs/Datastore-7c8ad503.js.map +0 -1
  240. package/dist/components/p-78d650ca.js.map +0 -1
  241. package/dist/components/p-afd663f1.js.map +0 -1
  242. package/dist/components/p-b6d4072e.js.map +0 -1
  243. package/dist/components/p-c6d1cdb7.js.map +0 -1
  244. package/dist/components/p-f007234d.js.map +0 -1
  245. package/dist/components/p-fd4e0e9b.js.map +0 -1
  246. package/dist/esm/Datastore-1db52f58.js.map +0 -1
  247. package/dist/verdocs-web-sdk/p-0baacb99.entry.js.map +0 -1
  248. package/dist/verdocs-web-sdk/p-337a452e.entry.js +0 -2
  249. package/dist/verdocs-web-sdk/p-337a452e.entry.js.map +0 -1
  250. package/dist/verdocs-web-sdk/p-4d240e20.entry.js +0 -2
  251. package/dist/verdocs-web-sdk/p-4d240e20.entry.js.map +0 -1
  252. package/dist/verdocs-web-sdk/p-63fe0290.system.entry.js.map +0 -1
  253. package/dist/verdocs-web-sdk/p-78d650ca.js +0 -2
  254. package/dist/verdocs-web-sdk/p-796daf3e.system.entry.js.map +0 -1
  255. package/dist/verdocs-web-sdk/p-8e4b7f0c.system.entry.js +0 -2
  256. package/dist/verdocs-web-sdk/p-8e4b7f0c.system.entry.js.map +0 -1
  257. package/dist/verdocs-web-sdk/p-92d7a42f.system.entry.js +0 -2
  258. package/dist/verdocs-web-sdk/p-92d7a42f.system.entry.js.map +0 -1
  259. package/dist/verdocs-web-sdk/p-94757826.system.entry.js +0 -2
  260. package/dist/verdocs-web-sdk/p-94757826.system.entry.js.map +0 -1
  261. package/dist/verdocs-web-sdk/p-a678a1f5.entry.js.map +0 -1
  262. package/dist/verdocs-web-sdk/p-add6e890.system.entry.js.map +0 -1
  263. package/dist/verdocs-web-sdk/p-b23e0b35.entry.js +0 -2
  264. package/dist/verdocs-web-sdk/p-b23e0b35.entry.js.map +0 -1
  265. package/dist/verdocs-web-sdk/p-ff4f0ace.entry.js +0 -2
  266. package/dist/verdocs-web-sdk/p-ff4f0ace.entry.js.map +0 -1
  267. /package/dist/verdocs-web-sdk/{p-9e10dd2c.entry.js.map → p-06775d41.entry.js.map} +0 -0
  268. /package/dist/verdocs-web-sdk/{p-a9f3549e.system.entry.js.map → p-0e8bbe05.system.entry.js.map} +0 -0
  269. /package/dist/verdocs-web-sdk/{p-078818a8.entry.js.map → p-1247fd39.entry.js.map} +0 -0
  270. /package/dist/verdocs-web-sdk/{p-84d305e4.entry.js.map → p-1f42a7c2.entry.js.map} +0 -0
  271. /package/dist/verdocs-web-sdk/{p-7ba1b23c.system.entry.js.map → p-66438012.system.entry.js.map} +0 -0
  272. /package/dist/verdocs-web-sdk/{p-7bd2fe9f.entry.js.map → p-66feba8c.entry.js.map} +0 -0
  273. /package/dist/verdocs-web-sdk/{p-332f01b5.system.entry.js.map → p-78d9fa52.system.entry.js.map} +0 -0
  274. /package/dist/verdocs-web-sdk/{p-e50dae96.system.entry.js.map → p-9880e3e4.system.entry.js.map} +0 -0
  275. /package/dist/verdocs-web-sdk/{p-41c9aec8.system.entry.js.map → p-a175597c.system.entry.js.map} +0 -0
  276. /package/dist/verdocs-web-sdk/{p-f5290d34.system.entry.js.map → p-a508388a.system.entry.js.map} +0 -0
  277. /package/dist/verdocs-web-sdk/{p-af554563.entry.js.map → p-ab23e446.entry.js.map} +0 -0
  278. /package/dist/verdocs-web-sdk/{p-59dbcd64.entry.js.map → p-c242e25e.entry.js.map} +0 -0
  279. /package/dist/verdocs-web-sdk/{p-48ea99c9.system.entry.js.map → p-d3dea986.system.entry.js.map} +0 -0
  280. /package/dist/verdocs-web-sdk/{p-b66db146.system.entry.js.map → p-d63b3dc0.system.entry.js.map} +0 -0
  281. /package/dist/verdocs-web-sdk/{p-be8afe3e.entry.js.map → p-dac04f8e.entry.js.map} +0 -0
  282. /package/dist/verdocs-web-sdk/{p-151e2fb7.entry.js.map → p-f406e916.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"p-3e1e59cb.js","mappings":";;;;;;;;;;;;AAAA,MAAM,6BAA6B,GAAG,u7FAAu7F,CAAC;AAC99F,yCAAe,6BAA6B;;MCc/B,0BAA0B;IALvC;;;;;;;QAMU,uBAAkB,GAAG,IAAI,CAAC;;;;QAK1B,aAAQ,GAAoB,eAAe,CAAC,UAAU,EAAE,CAAC;;;;QAKzD,eAAU,GAAW,EAAE,CAAC;QAuBvB,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAAG,cAAc,CAAC;QAC/B,oBAAe,GAAG,CAAC,CAAC;QACpB,oBAAe,GAAG,KAAK,CAAC;QACxB,0BAAqB,GAA6B,IAAI,CAAC;QAEvD,YAAO,GAAG,IAAI,CAAC;QACf,aAAQ,GAAqB,IAAI,CAAC;KAwN5C;IAtNC,MAAM,iBAAiB;;QACrB,IAAI;YACF,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAE5B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB,OAAO,CAAC,GAAG,CAAC,wCAAwC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;gBACvE,OAAO;aACR;YAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;gBAC1B,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;gBAC9E,OAAO;aACR;YAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAAE,CAAC,CAAC,CAAC;YAChE,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,MAAA,CAAC,CAAC,QAAQ,0CAAE,MAAM,EAAE,MAAA,CAAC,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC,CAAC;SACpF;KACF;IAED,oBAAoB;QAClB,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,MAAM,gBAAgB;QACpB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,KAAK,CAAC,SAAS,CACb,WAAW,EACX,IAAI,CAAC,UAAU,EACf,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,EACjD,KAAK,EACL,CAAC,QAAmB;YAClB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB,CACF,CAAC;KACH;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACjD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAChC;KACF;IAED,YAAY,CAAC,CAAC;QACZ,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KAClB;IAED,oBAAoB,CAAC,OAAe;QAClC,IAAI,OAAO,IAAI,EAAE,EAAE;YACjB,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC;SACtC;aAAM;YACL,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;SAChC;KACF;IAED,MAAM,YAAY,CAAC,CAAC;;QAClB,CAAC,CAAC,eAAe,EAAE,CAAC;QAEpB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAY,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;QAED,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;QAEhD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,cAAc,CAAC;QAEpC,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1H,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,QAAQ,CAAC,CAAC;;YAG1D,IAAI,CAAC,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC9E,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE7D,MAAA,IAAI,CAAC,eAAe,0CAAE,IAAI,CAAC,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAC,CAAC,CAAC;YAErG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;SAC1B;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,CAAC,CAAC,CAAC;YACxD,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,MAAA,CAAC,CAAC,QAAQ,0CAAE,MAAM,EAAE,MAAA,CAAC,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC,CAAC;YACnF,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;KACF;IAED,UAAU,CAAC,CAAM;;QACf,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACzB,MAAA,IAAI,CAAC,IAAI,0CAAE,IAAI,CAAC,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAC,CAAC,CAAC;KAC5C;IAED,MAAM,aAAa;QACjB,MAAM,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;;QAE5F,IAAI,CAAC,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;KACnC;IAED,MAAM,YAAY,CAAC,QAA2B;;QAC5C,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,SAAS,KAAI,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE;YAC/C,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC;SACvC;aAAM;YACL,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;SAC7B;KACF;IAED,WAAW,CAAC,QAA2B;QACrC,QAAQ,QAAQ,CAAC,IAAI;YACnB,KAAK,iBAAiB;gBACpB,OAAO,OAAO,CAAC;YACjB,KAAK,YAAY;gBACf,OAAO,OAAO,CAAC;YACjB,KAAK,WAAW;gBACd,OAAO,OAAO,CAAC;YACjB,KAAK,oBAAoB,CAAC;YAC1B,KAAK,yEAAyE;gBAC5E,OAAO,OAAO,CAAC;SAClB;QAED,OAAO,QAAQ,CAAC;KACjB;IAED,MAAM;;QACJ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YAC1B,QACE,EAAC,IAAI,QACH,+BAAyB,OAAO,EAAC,+CAA+C,GAAG,CAC9E,EACP;SACH;QAED,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,QACE,EAAC,IAAI,IAAC,KAAK,EAAC,SAAS,IACnB,yBAAkB,CACb,EACP;SACH;;QAGD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC5C,OAAO,EAAC,IAAI,IAAC,KAAK,EAAC,OAAO,GAAG,CAAC;SAC/B;QAED,QACE,EAAC,IAAI,QACH,qCAA6B,EAE7B,WAAK,KAAK,EAAC,aAAa,IACrB,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,SAAS,KAAI,EAAE,EAAE,GAAG,CAAC,QAAQ,KAC5C,WAAK,KAAK,EAAC,YAAY,IACrB,WAAK,KAAK,EAAC,WAAW,EAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAI,EAChE,WAAK,KAAK,EAAC,UAAU,EAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,IACvC,QAAQ,CAAC,IAAI,CACV,EACN,WAAK,KAAK,EAAC,OAAO,IAChB,WAAK,KAAK,EAAC,OAAO,IAAE,QAAQ,CAAC,KAAK,CAAO,EACzC,WAAK,KAAK,EAAC,YAAY,EAAC,SAAS,EAAE,aAAa,GAAI,CAChD,EACN,WAAK,KAAK,EAAC,YAAY,EAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAI,CACxF,CACP,CAAC,CACE,EAEN,sCAA8B,EAE7B,IAAI,CAAC,SAAS,IACb,WAAK,KAAK,EAAC,gBAAgB,IACzB,yBAAkB,EAEjB,IAAI,CAAC,aAAa,KACjB,WAAK,KAAK,EAAC,kBAAkB,IAC3B,4BAAsB,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,GAAI,CACjG,CACP,CACG,KAEN,4BAAsB,cAAc,EAAE,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAI,CACpE,EAED,WAAK,KAAK,EAAC,SAAS,IAClB,sBAAgB,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,GAAI,EAC9H,sBAAgB,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,SAAS,KAAI,EAAE,EAAE,MAAM,IAAI,IAAI,CAAC,SAAS,GAAI,CAChJ,EAEL,IAAI,CAAC,eAAe,KACnB,yBAAmB,OAAO,EAAC,6BAA6B,EAAC,OAAO,EAAC,iDAAiD,EAAC,MAAM,EAAE,OAAO,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,GAAI,CACpK,EAEA,IAAI,CAAC,qBAAqB,KACzB,yBACE,OAAO,EAAC,yBAAyB,EACjC,OAAO,EAAC,yGAAyG,EACjH,MAAM,EAAE,MAAM,IAAI,CAAC,aAAa,EAAE,EAClC,UAAU,EAAE,IAAI,EAChB,MAAM,EAAE;gBACN,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;aACnC,GACD,CACH,CACI,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/templates/verdocs-template-attachments/verdocs-template-attachments.scss?tag=verdocs-template-attachments","src/components/templates/verdocs-template-attachments/verdocs-template-attachments.tsx"],"sourcesContent":["@import '../../../theme.scss';\n\nverdocs-template-attachments {\n font-family: $verdocs-primary-font;\n\n h5 {\n font-size: 16px;\n font-weight: bold;\n margin: 0 0 10px 0;\n color: $verdocs-grey-blue;\n }\n\n .attachments {\n margin: 0 0 40px 0;\n }\n\n .attachment {\n display: flex;\n padding: 5px 0;\n column-gap: 15px;\n align-items: center;\n flex-direction: row;\n color: $label-color;\n\n &:hover {\n .trash-icon {\n display: flex;\n }\n\n .pages {\n display: none;\n }\n }\n }\n\n svg {\n width: 28px;\n height: 28px;\n fill: $verdocs-bg-4;\n margin: 2px 0 0 0;\n }\n\n .file-icon {\n flex: 0;\n }\n\n .pages {\n width: 24px;\n height: 24px;\n flex: 0 0 24px;\n padding-left: 4px;\n position: relative;\n margin: -10px 0 0 0;\n\n .pages-icon {\n top: 0;\n left: 0;\n width: 24px;\n height: 24px;\n position: absolute;\n }\n\n .count {\n top: 11px;\n left: 7px;\n z-index: 1;\n width: 18px;\n font-size: 12px;\n font-weight: 500;\n position: absolute;\n text-align: center;\n letter-spacing: -2px;\n }\n }\n\n .filename {\n flex: 1;\n display: block;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n border-bottom: 1px dotted #cccccc;\n }\n\n .trash-icon {\n flex: 0;\n display: none;\n\n &:hover {\n cursor: pointer;\n }\n }\n\n verdocs-file-chooser {\n margin: 10px 0;\n border: 2px dashed #979797;\n }\n\n .loader-wrapper {\n background-color: $verdocs-grey-4;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n position: relative;\n width: 320px;\n height: 320px;\n text-align: center;\n border: 2px dashed #979797;\n justify-content: flex-end;\n }\n\n .progress-wrapper {\n padding: 20px;\n }\n\n .buttons {\n display: flex;\n column-gap: 8px;\n margin-top: 16px;\n align-items: center;\n flex-direction: row;\n justify-content: flex-end;\n\n .flex-fill {\n flex: 1;\n }\n }\n\n ::placeholder {\n color: $verdocs-bg-2;\n }\n}\n","import {Component, h, Event, EventEmitter, Prop, Host, State} from '@stencil/core';\nimport {createTemplateDocument, deleteTemplateDocument, getTemplate, ITemplate, ITemplateDocument, VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {DocIcon, FileIcon, JpgIcon, PageCountIcon, PdfIcon, PngIcon, TrashIcon} from '../../../utils/Icons';\nimport {SDKError} from '../../../utils/errors';\nimport {Store} from '../../../utils/Datastore';\n\n/**\n * Displays an edit form that allows the user to view, add, or remove a template's attachments.\n * Note that an active session and valid template ID must be supplied.\n */\n@Component({\n tag: 'verdocs-template-attachments',\n styleUrl: 'verdocs-template-attachments.scss',\n shadow: false,\n})\nexport class VerdocsTemplateAttachments {\n private templateListenerId = null;\n\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The template ID to edit.\n */\n @Prop() templateId: string = '';\n\n /**\n * Event fired when the step is cancelled. This is called exit to avoid conflicts with the JS-reserved \"cancel\" event name.\n */\n @Event({composed: true}) exit: EventEmitter;\n\n /**\n * Event fired when the user clicks the next button.\n */\n @Event({composed: true}) next: EventEmitter<{template: ITemplate}>;\n\n /**\n * Event fired when the user updates the template.\n */\n @Event({composed: true}) templateUpdated: EventEmitter<{endpoint: VerdocsEndpoint; template: ITemplate; event: string}>;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n @State() uploading = false;\n @State() progressLabel = 'Uploading...';\n @State() progressPercent = 0;\n @State() showDeleteError = false;\n @State() confirmDeleteDocument: ITemplateDocument | null = null;\n\n @State() loading = true;\n @State() template: ITemplate | null = null;\n\n async componentWillLoad() {\n try {\n this.endpoint.loadSession();\n\n if (!this.templateId) {\n console.log(`[ROLES] Missing required template ID ${this.templateId}`);\n return;\n }\n\n if (!this.endpoint.session) {\n console.log('[ROLES] Unable to start builder session, must be authenticated');\n return;\n }\n\n this.listenToTemplate();\n } catch (e) {\n console.log('[TEMPLATE ATTACHMENTS] Error loading template', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n }\n }\n\n disconnectedCallback() {\n this.unlistenToTemplate();\n }\n\n async listenToTemplate() {\n this.unlistenToTemplate();\n Store.subscribe(\n 'templates',\n this.templateId,\n () => getTemplate(this.endpoint, this.templateId),\n false,\n (template: ITemplate) => {\n this.template = template;\n this.loading = false;\n },\n );\n }\n\n unlistenToTemplate() {\n if (this.templateListenerId) {\n Store.store.delListener(this.templateListenerId);\n this.templateListenerId = null;\n }\n }\n\n handleCancel(e) {\n e.stopPropagation();\n this.exit.emit();\n }\n\n handleUploadProgress(percent: number) {\n if (percent >= 99) {\n this.progressPercent = 100;\n this.progressLabel = 'Processing...';\n } else {\n this.progressPercent = percent;\n }\n }\n\n async handleUpload(e) {\n e.stopPropagation();\n\n const file = e.detail.file as File;\n if (!file) {\n return;\n }\n\n console.log('[ATTACHMENTS] Uploading...', file);\n\n this.uploading = true;\n this.progressLabel = 'Uploading...';\n\n try {\n const template = await createTemplateDocument(this.endpoint, this.templateId, file, this.handleUploadProgress.bind(this));\n console.log('[ATTACHMENTS] Created attachment', template);\n\n // TODO: Just updated it in place.\n this.template = await Store.getTemplate(this.endpoint, this.templateId, true);\n console.log('[ATTACHMENTS] Updated template', this.template);\n\n this.templateUpdated?.emit({endpoint: this.endpoint, template: this.template, event: 'attachments'});\n\n this.uploading = false;\n this.progressLabel = '';\n this.progressPercent = 0;\n } catch (e) {\n console.log('[ATTACHMENTS] Error creating template', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n this.uploading = false;\n }\n }\n\n handleNext(e: any) {\n e.stopPropagation();\n this.uploading = false;\n this.progressLabel = '';\n this.progressPercent = 0;\n this.next?.emit({template: this.template});\n }\n\n async confirmDelete() {\n await deleteTemplateDocument(this.endpoint, this.templateId, this.confirmDeleteDocument.id);\n // TODO: Update it in place\n this.template = await Store.getTemplate(this.endpoint, this.templateId, true);\n console.log('[ATTACHMENTS] New template', this.template);\n this.confirmDeleteDocument = null;\n }\n\n async handleDelete(document: ITemplateDocument) {\n if ((this.template?.documents || []).length > 1) {\n this.confirmDeleteDocument = document;\n } else {\n this.showDeleteError = true;\n }\n }\n\n getFileIcon(document: ITemplateDocument) {\n switch (document.mime) {\n case 'application/pdf':\n return PdfIcon;\n case 'image/jpeg':\n return JpgIcon;\n case 'image/png':\n return PngIcon;\n case 'application/msword':\n case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\n return DocIcon;\n }\n\n return FileIcon;\n }\n\n render() {\n if (!this.endpoint.session) {\n return (\n <Host>\n <verdocs-component-error message=\"You must be authenticated to use this module.\" />\n </Host>\n );\n }\n\n if (this.loading) {\n return (\n <Host class=\"loading\">\n <verdocs-loader />\n </Host>\n );\n }\n\n // This is meant to be a companion for larger visual experiences so we just go blank on errors for now.\n if (!this.endpoint.session || !this.template) {\n return <Host class=\"empty\" />;\n }\n\n return (\n <Host>\n <h5>Existing Attachments</h5>\n\n <div class=\"attachments\">\n {(this.template?.documents || []).map(document => (\n <div class=\"attachment\">\n <div class=\"file-icon\" innerHTML={this.getFileIcon(document)} />\n <div class=\"filename\" title={document.name}>\n {document.name}\n </div>\n <div class=\"pages\">\n <div class=\"count\">{document.pages}</div>\n <div class=\"pages-icon\" innerHTML={PageCountIcon} />\n </div>\n <div class=\"trash-icon\" innerHTML={TrashIcon} onClick={() => this.handleDelete(document)} />\n </div>\n ))}\n </div>\n\n <h5>Attach a New Document</h5>\n\n {this.uploading ? (\n <div class=\"loader-wrapper\">\n <verdocs-loader />\n\n {this.progressLabel && (\n <div class=\"progress-wrapper\">\n <verdocs-progress-bar showPercent={true} percent={this.progressPercent} label={this.progressLabel} />\n </div>\n )}\n </div>\n ) : (\n <verdocs-file-chooser onFileSelected={e => this.handleUpload(e)} />\n )}\n\n <div class=\"buttons\">\n <verdocs-button variant=\"outline\" label=\"Cancel\" size=\"small\" onClick={e => this.handleCancel(e)} disabled={this.uploading} />\n <verdocs-button label=\"Next\" size=\"small\" onClick={e => this.handleNext(e)} disabled={!(this.template?.documents || []).length || this.uploading} />\n </div>\n\n {this.showDeleteError && (\n <verdocs-ok-dialog heading=\"Unable to Delete Attachment\" message=\"Templates must contain at least one attachment.\" onNext={() => (this.showDeleteError = false)} />\n )}\n\n {this.confirmDeleteDocument && (\n <verdocs-ok-dialog\n heading=\"Delete this Attachment?\"\n message=\"This operation cannot be undone. All fields placed<br />on the deleted attachment will also be removed.\"\n onNext={() => this.confirmDelete()}\n showCancel={true}\n onExit={() => {\n this.confirmDeleteDocument = null;\n }}\n />\n )}\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-43b8738f.js","mappings":"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","names":[],"sources":["src/components/templates/verdocs-template-attachments/verdocs-template-attachments.scss?tag=verdocs-template-attachments","src/components/templates/verdocs-template-attachments/verdocs-template-attachments.tsx"],"sourcesContent":["@import '../../../theme.scss';\n\nverdocs-template-attachments {\n font-family: $verdocs-primary-font;\n\n h5 {\n font-size: 16px;\n font-weight: bold;\n margin: 0 0 10px 0;\n color: $verdocs-grey-blue;\n }\n\n .attachments {\n margin: 0 0 40px 0;\n }\n\n .attachment {\n display: flex;\n padding: 5px 0;\n column-gap: 15px;\n align-items: center;\n flex-direction: row;\n color: $label-color;\n\n &:hover {\n .trash-icon {\n display: flex;\n }\n\n .pages {\n display: none;\n }\n }\n }\n\n svg {\n width: 28px;\n height: 28px;\n fill: $verdocs-bg-4;\n margin: 2px 0 0 0;\n }\n\n .file-icon {\n flex: 0;\n }\n\n .pages {\n width: 24px;\n height: 24px;\n flex: 0 0 24px;\n padding-left: 4px;\n position: relative;\n margin: -10px 0 0 0;\n\n .pages-icon {\n top: 0;\n left: 0;\n width: 24px;\n height: 24px;\n position: absolute;\n }\n\n .count {\n top: 11px;\n left: 7px;\n z-index: 1;\n width: 18px;\n font-size: 12px;\n font-weight: 500;\n position: absolute;\n text-align: center;\n letter-spacing: -2px;\n }\n }\n\n .filename {\n flex: 1;\n display: block;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n border-bottom: 1px dotted #cccccc;\n }\n\n .trash-icon {\n flex: 0;\n display: none;\n\n &:hover {\n cursor: pointer;\n }\n }\n\n verdocs-file-chooser {\n margin: 10px 0;\n border: 2px dashed #979797;\n }\n\n .loader-wrapper {\n background-color: $verdocs-grey-4;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n position: relative;\n width: 320px;\n height: 320px;\n text-align: center;\n border: 2px dashed #979797;\n justify-content: flex-end;\n }\n\n .progress-wrapper {\n padding: 20px;\n }\n\n .buttons {\n display: flex;\n column-gap: 8px;\n margin-top: 16px;\n align-items: center;\n flex-direction: row;\n justify-content: flex-end;\n\n .flex-fill {\n flex: 1;\n }\n }\n\n ::placeholder {\n color: $verdocs-bg-2;\n }\n}\n","import {Component, h, Event, EventEmitter, Prop, Host, State} from '@stencil/core';\nimport {createTemplateDocument, deleteTemplateDocument, getTemplate, ITemplate, ITemplateDocument, VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {DocIcon, FileIcon, JpgIcon, PageCountIcon, PdfIcon, PngIcon, TrashIcon} from '../../../utils/Icons';\nimport {SDKError} from '../../../utils/errors';\nimport {Store} from '../../../utils/Datastore';\n\n/**\n * Displays an edit form that allows the user to view, add, or remove a template's attachments.\n * Note that an active session and valid template ID must be supplied.\n */\n@Component({\n tag: 'verdocs-template-attachments',\n styleUrl: 'verdocs-template-attachments.scss',\n shadow: false,\n})\nexport class VerdocsTemplateAttachments {\n private templateListenerId = null;\n\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The template ID to edit.\n */\n @Prop() templateId: string = '';\n\n /**\n * Event fired when the step is cancelled. This is called exit to avoid conflicts with the JS-reserved \"cancel\" event name.\n */\n @Event({composed: true}) exit: EventEmitter;\n\n /**\n * Event fired when the user clicks the next button.\n */\n @Event({composed: true}) next: EventEmitter<{template: ITemplate}>;\n\n /**\n * Event fired when the user updates the template.\n */\n @Event({composed: true}) templateUpdated: EventEmitter<{endpoint: VerdocsEndpoint; template: ITemplate; event: string}>;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n @State() uploading = false;\n @State() progressLabel = 'Uploading...';\n @State() progressPercent = 0;\n @State() showDeleteError = false;\n @State() confirmDeleteDocument: ITemplateDocument | null = null;\n\n @State() loading = true;\n @State() template: ITemplate | null = null;\n\n async componentWillLoad() {\n try {\n this.endpoint.loadSession();\n\n if (!this.templateId) {\n console.log(`[ROLES] Missing required template ID ${this.templateId}`);\n return;\n }\n\n if (!this.endpoint.session) {\n console.log('[ROLES] Unable to start builder session, must be authenticated');\n return;\n }\n\n this.listenToTemplate();\n } catch (e) {\n console.log('[TEMPLATE ATTACHMENTS] Error loading template', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n }\n }\n\n disconnectedCallback() {\n this.unlistenToTemplate();\n }\n\n async listenToTemplate() {\n this.unlistenToTemplate();\n Store.subscribe(\n 'templates',\n this.templateId,\n () => getTemplate(this.endpoint, this.templateId),\n false,\n (template: ITemplate) => {\n this.template = template;\n this.loading = false;\n },\n );\n }\n\n unlistenToTemplate() {\n if (this.templateListenerId) {\n Store.store.delListener(this.templateListenerId);\n this.templateListenerId = null;\n }\n }\n\n handleCancel(e) {\n e.stopPropagation();\n this.exit.emit();\n }\n\n handleUploadProgress(percent: number) {\n if (percent >= 99) {\n this.progressPercent = 100;\n this.progressLabel = 'Processing...';\n } else {\n this.progressPercent = percent;\n }\n }\n\n async handleUpload(e) {\n e.stopPropagation();\n\n const file = e.detail.file as File;\n if (!file) {\n return;\n }\n\n console.log('[ATTACHMENTS] Uploading...', file);\n\n this.uploading = true;\n this.progressLabel = 'Uploading...';\n\n try {\n const template = await createTemplateDocument(this.endpoint, this.templateId, file, this.handleUploadProgress.bind(this));\n console.log('[ATTACHMENTS] Created attachment', template);\n\n // TODO: Just updated it in place.\n this.template = await Store.getTemplate(this.endpoint, this.templateId, true);\n console.log('[ATTACHMENTS] Updated template', this.template);\n\n this.templateUpdated?.emit({endpoint: this.endpoint, template: this.template, event: 'attachments'});\n\n this.uploading = false;\n this.progressLabel = '';\n this.progressPercent = 0;\n } catch (e) {\n console.log('[ATTACHMENTS] Error creating template', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n this.uploading = false;\n }\n }\n\n handleNext(e: any) {\n e.stopPropagation();\n this.uploading = false;\n this.progressLabel = '';\n this.progressPercent = 0;\n this.next?.emit({template: this.template});\n }\n\n async confirmDelete() {\n await deleteTemplateDocument(this.endpoint, this.templateId, this.confirmDeleteDocument.id);\n // TODO: Update it in place\n this.template = await Store.getTemplate(this.endpoint, this.templateId, true);\n console.log('[ATTACHMENTS] New template', this.template);\n this.confirmDeleteDocument = null;\n }\n\n async handleDelete(document: ITemplateDocument) {\n if ((this.template?.documents || []).length > 1) {\n this.confirmDeleteDocument = document;\n } else {\n this.showDeleteError = true;\n }\n }\n\n getFileIcon(document: ITemplateDocument) {\n switch (document.mime) {\n case 'application/pdf':\n return PdfIcon;\n case 'image/jpeg':\n return JpgIcon;\n case 'image/png':\n return PngIcon;\n case 'application/msword':\n case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\n return DocIcon;\n }\n\n return FileIcon;\n }\n\n render() {\n if (!this.endpoint.session) {\n return (\n <Host>\n <verdocs-component-error message=\"You must be authenticated to use this module.\" />\n </Host>\n );\n }\n\n if (this.loading) {\n return (\n <Host class=\"loading\">\n <verdocs-loader />\n </Host>\n );\n }\n\n // This is meant to be a companion for larger visual experiences so we just go blank on errors for now.\n if (!this.endpoint.session || !this.template) {\n return <Host class=\"empty\" />;\n }\n\n return (\n <Host>\n <h5>Existing Attachments</h5>\n\n <div class=\"attachments\">\n {(this.template?.documents || []).map(document => (\n <div class=\"attachment\">\n <div class=\"file-icon\" innerHTML={this.getFileIcon(document)} />\n <div class=\"filename\" title={document.name}>\n {document.name}\n </div>\n <div class=\"pages\">\n <div class=\"count\">{document.pages}</div>\n <div class=\"pages-icon\" innerHTML={PageCountIcon} />\n </div>\n <div class=\"trash-icon\" innerHTML={TrashIcon} onClick={() => this.handleDelete(document)} />\n </div>\n ))}\n </div>\n\n <h5>Attach a New Document</h5>\n\n {this.uploading ? (\n <div class=\"loader-wrapper\">\n <verdocs-loader />\n\n {this.progressLabel && (\n <div class=\"progress-wrapper\">\n <verdocs-progress-bar showPercent={true} percent={this.progressPercent} label={this.progressLabel} />\n </div>\n )}\n </div>\n ) : (\n <verdocs-file-chooser onFileSelected={e => this.handleUpload(e)} />\n )}\n\n <div class=\"buttons\">\n <verdocs-button variant=\"outline\" label=\"Cancel\" size=\"small\" onClick={e => this.handleCancel(e)} disabled={this.uploading} />\n <verdocs-button label=\"Next\" size=\"small\" onClick={e => this.handleNext(e)} disabled={!(this.template?.documents || []).length || this.uploading} />\n </div>\n\n {this.showDeleteError && (\n <verdocs-ok-dialog heading=\"Unable to Delete Attachment\" message=\"Templates must contain at least one attachment.\" onNext={() => (this.showDeleteError = false)} />\n )}\n\n {this.confirmDeleteDocument && (\n <verdocs-ok-dialog\n heading=\"Delete this Attachment?\"\n message=\"This operation cannot be undone. All fields placed<br />on the deleted attachment will also be removed.\"\n onNext={() => this.confirmDelete()}\n showCancel={true}\n onExit={() => {\n this.confirmDeleteDocument = null;\n }}\n />\n )}\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,7 +1,7 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-1f51246d.js';
2
2
  import { VerdocsEndpoint, getTemplate, updateTemplateRole, deleteTemplateRole, isValidEmail } from '@verdocs/js-sdk';
3
3
  import { S as SDKError } from './p-fd97809c.js';
4
- import { S as Store } from './p-78d650ca.js';
4
+ import { S as Store } from './p-33300e3a.js';
5
5
  import { d as defineCustomElement$4 } from './p-f5ccf125.js';
6
6
  import { d as defineCustomElement$3 } from './p-54e4bcee.js';
7
7
  import { d as defineCustomElement$2 } from './p-8af753b4.js';
@@ -240,4 +240,4 @@ function defineCustomElement() {
240
240
 
241
241
  export { VerdocsTemplateRoleProperties as V, defineCustomElement as d };
242
242
 
243
- //# sourceMappingURL=p-d0280735.js.map
243
+ //# sourceMappingURL=p-444a3bdf.js.map
@@ -1 +1 @@
1
- {"file":"p-d0280735.js","mappings":";;;;;;;;;AAAA,MAAM,gCAAgC,GAAG,2kFAA2kF,CAAC;AACrnF,4CAAe,gCAAgC;;ACI/C,MAAM,SAAS,GAAG,ukBAAukB,CAAC;MAS7kB,6BAA6B;IAJ1C;;;;;;QAKU,uBAAkB,GAAG,IAAI,CAAC;;;;QAK1B,aAAQ,GAAoB,eAAe,CAAC,UAAU,EAAE,CAAC;;;;QAKzD,eAAU,GAAW,EAAE,CAAC;;;;QAKxB,aAAQ,GAAW,EAAE,CAAC;QAmBrB,UAAK,GAAG,KAAK,CAAC;QACd,WAAM,GAAG,KAAK,CAAC;QACf,SAAI,GAAG,EAAE,CAAC;QACV,SAAI,GAAmB,QAAQ,CAAC;QAChC,eAAU,GAAG,EAAE,CAAC;QAChB,cAAS,GAAG,EAAE,CAAC;QACf,UAAK,GAAG,EAAE,CAAC;QACX,UAAK,GAAG,EAAE,CAAC;QACX,cAAS,GAAG,KAAK,CAAC;QAElB,YAAO,GAAG,IAAI,CAAC;QACf,aAAQ,GAAqB,IAAI,CAAC;KAmQ5C;IAjQC,MAAM,iBAAiB;;QACrB,IAAI;YACF,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAE5B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB,OAAO,CAAC,GAAG,CAAC,wCAAwC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;gBACvE,OAAO;aACR;YAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;gBAC1B,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;gBAC9E,OAAO;aACR;YAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAC;YACpD,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,MAAA,CAAC,CAAC,QAAQ,0CAAE,MAAM,EAAE,MAAA,CAAC,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC,CAAC;SACpF;KACF;IAED,oBAAoB;QAClB,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,MAAM,gBAAgB;QACpB,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,KAAK,CAAC,SAAS,CACb,WAAW,EACX,IAAI,CAAC,UAAU,EACf,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,EACjD,KAAK,EACL,CAAC,QAAmB;;YAClB,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC;YAClD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YAErB,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,QAAQ,0CAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnF,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;gBAC7B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;gBAC7B,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;gBACzC,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;gBACvC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;gBAC/B,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;gBAC/B,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC;aAClD;SACF,CACF,CAAC;KACH;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACjD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAChC;KACF;IAED,YAAY,CAAC,CAAC;;QACZ,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,QAAQ,0CAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnF,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;YAC7B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;YAC7B,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;YACzC,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;YACvC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;SACxC;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,MAAA,IAAI,CAAC,KAAK,0CAAE,IAAI,EAAE,CAAC;KACpB;IAED,MAAM,UAAU,CAAC,CAAC;QAChB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE;YAChE,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;aACC,IAAI,CAAC,OAAM,CAAC;;YACX,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC9D,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnF,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE;gBAClB,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;aAClC;YACD,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACnD,MAAA,IAAI,CAAC,KAAK,0CAAE,IAAI,EAAE,CAAC;SACpB,CAAC;aACD,KAAK,CAAC,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACrB,CAAC,CAAC;KACN;IAED,MAAM,YAAY,CAAC,CAAC;QAClB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,MAAM,CAAC,OAAO,CAAC,yHAAyH,CAAC,EAAE;YAC7I,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC;iBAC9D,IAAI,CAAC;;gBACJ,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAc,CAAC;gBAC3E,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAClF,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;;gBAExD,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,CAAC,EAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAC,CAAC,CAAC;gBAC1E,MAAA,IAAI,CAAC,KAAK,0CAAE,IAAI,EAAE,CAAC;aACpB,CAAC;iBACD,KAAK,CAAC,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;aACzC,CAAC,CAAC;SACN;KACF;IAED,MAAM;;QACJ,MAAM,SAAS,GAAG,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,KAAI,EAAE,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;;QAGjG,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE5I,QACE,EAAC,IAAI,uDACH,6DAAM,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,EAAE,YAAY,EAAC,KAAK,IAC5F,8DACE,2EACE,EAAE,EAAC,mBAAmB,EACtB,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAE,IAAI,CAAC,IAAI,EAChB,YAAY,EAAC,KAAK,EAClB,QAAQ,EAAE,SAAS,EACnB,WAAW,EAAC,cAAc,EAC1B,OAAO,EAAE,CAAC,CAAM;gBACd,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;aACnB,GACD,EAED,SAAS,IAAI,4DAAK,KAAK,EAAC,cAAc,kEAAkE,CAErG,EAEN,8DACE,4DAAK,KAAK,EAAC,aAAa,YAAY,EACpC,6EACE,KAAK,EAAE,IAAI,CAAC,IAAI,EAChB,OAAO,EAAE;gBACP,EAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAC;gBAClC,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC;gBAC1B,EAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAC;aACvC,EACD,OAAO,EAAE,CAAC,CAAM;gBACd,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;aACnB,GACD,CAKE,EAEN,8DACE,4DAAK,KAAK,EAAC,aAAa,4BAA4B,EAEpD,4DAAK,KAAK,EAAC,YAAY,IACrB,2EACE,EAAE,EAAC,yBAAyB,EAC5B,KAAK,EAAE,IAAI,CAAC,UAAU,EACtB,YAAY,EAAC,KAAK,EAClB,WAAW,EAAC,UAAU,EACtB,OAAO,EAAE,CAAC,CAAM;gBACd,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;aACnB,GACD,EAEF,2EACE,EAAE,EAAC,yBAAyB,EAC5B,KAAK,EAAE,IAAI,CAAC,SAAS,EACrB,YAAY,EAAC,KAAK,EAClB,WAAW,EAAC,SAAS,EACrB,OAAO,EAAE,CAAC,CAAM;gBACd,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;aACnB,GACD,CACE,CACF,EAEN,8DACE,2EACE,EAAE,EAAC,yBAAyB,EAC5B,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,YAAY,EAAC,KAAK,EAClB,WAAW,EAAC,kBAAkB,EAC9B,OAAO,EAAE,CAAC,CAAM;gBACd,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;aACnB,GACD,EAEF,4DAAK,KAAK,EAAE,EAAC,MAAM,EAAE,MAAM,EAAC,GAAI,EAEhC,8DACE,2EACE,EAAE,EAAC,yBAAyB,EAC5B,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,YAAY,EAAC,KAAK;;YAElB,WAAW,EAAC,iBAAiB,EAC7B,OAAO,EAAE,CAAC,CAAM;gBACd,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;aACnB,GACD,CAEE,CACF,EAiBN,4DAAK,KAAK,EAAC,SAAS,IAClB,+DAAQ,KAAK,EAAC,eAAe,EAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,GAAI,EAEhH,4DAAK,KAAK,EAAE,EAAC,IAAI,EAAE,GAAG,EAAC,GAAI,EAG3B,uEAAgB,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAI,CAC7G,CACD,CACF,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/templates/verdocs-template-role-properties/verdocs-template-role-properties.scss?tag=verdocs-template-role-properties","src/components/templates/verdocs-template-role-properties/verdocs-template-role-properties.tsx"],"sourcesContent":["@import '../../../theme.scss';\n\nverdocs-template-role-properties {\n box-sizing: border-box;\n font-family: $primary-font;\n\n div {\n box-sizing: border-box;\n }\n\n .heading {\n display: flex;\n font-size: 20px;\n font-weight: 500;\n flex-direction: row;\n }\n\n .buttons {\n display: flex;\n margin-top: 10px;\n align-items: center;\n flex-direction: row;\n justify-content: space-between;\n\n verdocs-button {\n margin-left: 16px;\n }\n }\n\n form {\n gap: 15px;\n padding: 20px;\n display: flex;\n flex-direction: column;\n\n .instructions {\n margin: 7px 0 0 0;\n font-size: 12px;\n font-style: italic;\n }\n\n .input-label {\n display: block;\n font-size: 14px;\n flex: 0 0 100px;\n font-weight: 700;\n margin: 0 0 4px 0;\n color: $label-color-light;\n }\n\n .first-last {\n gap: 15px;\n display: flex;\n flex-direction: row;\n }\n }\n\n form verdocs-help-icon {\n transform: scale(0.8);\n }\n\n verdocs-select-input {\n //flex: 1;\n //margin: 0;\n\n label {\n display: block;\n }\n }\n\n verdocs-text-input {\n margin: 0;\n\n label {\n display: block;\n }\n\n .input-label {\n flex: 0 0 100px;\n }\n\n input {\n flex: 1;\n display: flex;\n }\n\n verdocs-text-input {\n margin: 0;\n }\n }\n\n .checkbox-wrapper {\n flex: 1;\n display: flex;\n }\n\n .delete-button {\n height: 34px;\n display: flex;\n padding: 0 6px;\n cursor: pointer;\n background: none;\n border-radius: 4px;\n align-items: center;\n border: 1px solid #999;\n justify-content: center;\n\n svg {\n width: 24px;\n height: 24px;\n }\n\n &:active {\n background: #f3f3f3;\n }\n }\n}\n","import {Component, Prop, h, Event, EventEmitter, Host, State} from '@stencil/core';\nimport {deleteTemplateRole, getTemplate, isValidEmail, ITemplate, TRecipientType, updateTemplateRole, VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {SDKError} from '../../../utils/errors';\nimport {Store} from '../../../utils/Datastore';\n\nconst TrashIcon = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"#a50021\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0\" /></svg>`;\n\n/**\n * Present an editing form suitable for adjusting template-role properties.\n */\n@Component({\n tag: 'verdocs-template-role-properties',\n styleUrl: 'verdocs-template-role-properties.scss',\n})\nexport class VerdocsTemplateRoleProperties {\n private templateListenerId = null;\n\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The template ID to edit.\n */\n @Prop() templateId: string = '';\n\n /**\n * The role name to edit.\n */\n @Prop() roleName: string = '';\n\n /**\n * Event fired when the user cancels the dialog.\n */\n @Event({composed: true}) close: EventEmitter;\n\n /**\n * Event fired when the user deletes the role. The parent should update its UI to reflect the removal. When this event is emitted,\n * the role will have already been deleted server-side.\n */\n @Event({composed: true}) delete: EventEmitter<{templateId: string; roleName: string}>;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n @State() dirty = false;\n @State() saving = false;\n @State() name = '';\n @State() type: TRecipientType = 'signer';\n @State() first_name = '';\n @State() last_name = '';\n @State() email = '';\n @State() phone = '';\n @State() delegator = false;\n\n @State() loading = true;\n @State() template: ITemplate | null = null;\n\n async componentWillLoad() {\n try {\n this.endpoint.loadSession();\n\n if (!this.templateId) {\n console.log(`[ROLES] Missing required template ID ${this.templateId}`);\n return;\n }\n\n if (!this.endpoint.session) {\n console.log('[ROLES] Unable to start builder session, must be authenticated');\n return;\n }\n\n this.listenToTemplate();\n } catch (e) {\n console.log('[ROLES Error with preview session', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n }\n }\n\n disconnectedCallback() {\n this.unlistenToTemplate();\n }\n\n async listenToTemplate() {\n console.log('[ROLES] Loading tempate', this.templateId);\n this.unlistenToTemplate();\n Store.subscribe(\n 'templates',\n this.templateId,\n () => getTemplate(this.endpoint, this.templateId),\n false,\n (template: ITemplate) => {\n console.log('[BUILD] Template Updated', template);\n this.template = template;\n this.loading = false;\n\n const editingRole = this.template?.roles.find(role => role.name === this.roleName);\n if (editingRole) {\n this.name = editingRole.name;\n this.type = editingRole.type;\n this.first_name = editingRole.first_name;\n this.last_name = editingRole.last_name;\n this.email = editingRole.email;\n this.phone = editingRole.phone;\n this.delegator = editingRole.delegator;\n console.log('[ROLES] Editing role', editingRole);\n }\n },\n );\n }\n\n unlistenToTemplate() {\n if (this.templateListenerId) {\n Store.store.delListener(this.templateListenerId);\n this.templateListenerId = null;\n }\n }\n\n handleCancel(e) {\n e.stopPropagation();\n const editingRole = this.template?.roles.find(role => role.name === this.roleName);\n if (editingRole) {\n this.name = editingRole.name;\n this.type = editingRole.type;\n this.first_name = editingRole.first_name;\n this.last_name = editingRole.last_name;\n this.email = editingRole.email;\n this.phone = editingRole.phone;\n this.delegator = editingRole.delegator;\n }\n\n this.dirty = false;\n this.close?.emit();\n }\n\n async handleSave(e) {\n e.stopPropagation();\n this.saving = true;\n updateTemplateRole(this.endpoint, this.templateId, this.roleName, {\n name: this.name,\n type: this.type,\n first_name: this.first_name,\n last_name: this.last_name,\n email: this.email,\n phone: this.phone,\n delegator: this.delegator,\n })\n .then(async r => {\n console.log('[ROLES] Update result', r);\n this.saving = false;\n this.dirty = false;\n const newTemplate = JSON.parse(JSON.stringify(this.template));\n const roleIndex = newTemplate.roles.findIndex(role => role.name === this.roleName);\n if (roleIndex > -1) {\n newTemplate.roles[roleIndex] = r;\n }\n Store.updateTemplate(this.templateId, newTemplate);\n this.close?.emit();\n })\n .catch(e => {\n console.log('[ROLES Update error', e);\n this.saving = false;\n });\n }\n\n async handleDelete(e) {\n e.stopPropagation();\n if (window.confirm('Are you sure you wish to remove this role? All associated fields will be removed as well. This action cannot be undone.')) {\n deleteTemplateRole(this.endpoint, this.templateId, this.roleName)\n .then(() => {\n const newTemplate = JSON.parse(JSON.stringify(this.template)) as ITemplate;\n newTemplate.roles = newTemplate.roles.filter(role => role.name !== this.roleName);\n Store.getTemplate(this.endpoint, this.templateId, true);\n // Store.updateTemplate(this.templateId, newTemplate);\n this.delete?.emit({templateId: this.templateId, roleName: this.roleName});\n this.close?.emit();\n })\n .catch(e => {\n console.log('[ROLES Deletion error', e);\n });\n }\n }\n\n render() {\n const hasFields = (this.template?.fields || []).some(field => field.role_name === this.roleName);\n\n // Either all three should be empty, or all three need to be filled\n const isValid = (!this.email && !this.first_name && !this.last_name) || (isValidEmail(this.email) && !!this.first_name && !!this.last_name);\n\n return (\n <Host>\n <form onSubmit={e => e.preventDefault()} onClick={e => e.stopPropagation()} autocomplete=\"off\">\n <div>\n <verdocs-text-input\n id=\"verdocs-role-name\"\n label=\"Role Name (Must be unique)\"\n value={this.name}\n autocomplete=\"off\"\n disabled={hasFields}\n placeholder=\"Role Name...\"\n onInput={(e: any) => {\n this.name = e.target.value;\n this.dirty = true;\n }}\n />\n\n {hasFields && <div class=\"instructions\">This role has fields assigned and can no longer be renamed.</div>}\n {/*<div class=\"instructions\">{hasFields ? 'This role has fields assigned and can no longer be renamed.' : 'A unique name to identify the role in the workflow.'}</div>*/}\n </div>\n\n <div>\n <div class=\"input-label\">Type:</div>\n <verdocs-select-input\n value={this.type}\n options={[\n {label: 'Signer', value: 'signer'},\n {label: 'CC', value: 'cc'},\n {label: 'Approver', value: 'approver'},\n ]}\n onInput={(e: any) => {\n this.type = e.target.value;\n this.dirty = true;\n }}\n />\n {/*<div class=\"instructions\">*/}\n {/* Most participants are Signers. CC roles are notified when documents are signed, but have no other actions. Approvers get notified when signing is completed to perform*/}\n {/* a final review.*/}\n {/*</div>*/}\n </div>\n\n <div>\n <div class=\"input-label\">Default Contact Info:</div>\n\n <div class=\"first-last\">\n <verdocs-text-input\n id=\"verdocs-recipient-first\"\n value={this.first_name}\n autocomplete=\"off\"\n placeholder=\"First...\"\n onInput={(e: any) => {\n this.first_name = e.target.value;\n this.dirty = true;\n }}\n />\n\n <verdocs-text-input\n id=\"verdocs-recipient-first\"\n value={this.last_name}\n autocomplete=\"off\"\n placeholder=\"Last...\"\n onInput={(e: any) => {\n this.last_name = e.target.value;\n this.dirty = true;\n }}\n />\n </div>\n </div>\n\n <div>\n <verdocs-text-input\n id=\"verdocs-recipient-email\"\n value={this.email}\n autocomplete=\"off\"\n placeholder=\"Email Address...\"\n onInput={(e: any) => {\n this.email = e.target.value;\n this.dirty = true;\n }}\n />\n\n <div style={{height: '15px'}} />\n\n <div>\n <verdocs-text-input\n id=\"verdocs-recipient-phone\"\n value={this.phone}\n autocomplete=\"off\"\n // helpText=\"The recipient's phone number, if it will always stay the same. Leave blank to supply this value later, when each new envelope is created from the template.\"\n placeholder=\"Phone Number...\"\n onInput={(e: any) => {\n this.phone = e.target.value;\n this.dirty = true;\n }}\n />\n {/*<div class=\"instructions\">Default name and contact information. This may be changed later when creating and envelope with this template.</div>*/}\n </div>\n </div>\n\n {/*<div class=\"row\">*/}\n {/* <div class=\"input-label\">May Delegate:</div>*/}\n {/* <div class=\"checkbox-wrapper\">*/}\n {/* <verdocs-checkbox*/}\n {/* checked={this.delegator}*/}\n {/* onInput={(e: any) => {*/}\n {/* this.delegator = e.target.checked;*/}\n {/* this.dirty = true;*/}\n {/* }}*/}\n {/* />*/}\n {/* </div>*/}\n\n {/* <verdocs-help-icon text=\"If enabled, this recipient may delegate their actions to another individual.\" />*/}\n {/*</div>*/}\n\n <div class=\"buttons\">\n <button class=\"delete-button\" disabled={this.dirty} onClick={e => this.handleDelete(e)} innerHTML={TrashIcon} />\n\n <div style={{flex: '1'}} />\n\n {/*<verdocs-button size=\"small\" variant=\"outline\" label=\"Cancel\" disabled={!this.dirty} onClick={e => this.handleCancel(e)} />*/}\n <verdocs-button size=\"small\" label=\"Save\" disabled={!this.dirty || !isValid} onClick={e => this.handleSave(e)} />\n </div>\n </form>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-444a3bdf.js","mappings":"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","names":[],"sources":["src/components/templates/verdocs-template-role-properties/verdocs-template-role-properties.scss?tag=verdocs-template-role-properties","src/components/templates/verdocs-template-role-properties/verdocs-template-role-properties.tsx"],"sourcesContent":["@import '../../../theme.scss';\n\nverdocs-template-role-properties {\n box-sizing: border-box;\n font-family: $primary-font;\n\n div {\n box-sizing: border-box;\n }\n\n .heading {\n display: flex;\n font-size: 20px;\n font-weight: 500;\n flex-direction: row;\n }\n\n .buttons {\n display: flex;\n margin-top: 10px;\n align-items: center;\n flex-direction: row;\n justify-content: space-between;\n\n verdocs-button {\n margin-left: 16px;\n }\n }\n\n form {\n gap: 15px;\n padding: 20px;\n display: flex;\n flex-direction: column;\n\n .instructions {\n margin: 7px 0 0 0;\n font-size: 12px;\n font-style: italic;\n }\n\n .input-label {\n display: block;\n font-size: 14px;\n flex: 0 0 100px;\n font-weight: 700;\n margin: 0 0 4px 0;\n color: $label-color-light;\n }\n\n .first-last {\n gap: 15px;\n display: flex;\n flex-direction: row;\n }\n }\n\n form verdocs-help-icon {\n transform: scale(0.8);\n }\n\n verdocs-select-input {\n //flex: 1;\n //margin: 0;\n\n label {\n display: block;\n }\n }\n\n verdocs-text-input {\n margin: 0;\n\n label {\n display: block;\n }\n\n .input-label {\n flex: 0 0 100px;\n }\n\n input {\n flex: 1;\n display: flex;\n }\n\n verdocs-text-input {\n margin: 0;\n }\n }\n\n .checkbox-wrapper {\n flex: 1;\n display: flex;\n }\n\n .delete-button {\n height: 34px;\n display: flex;\n padding: 0 6px;\n cursor: pointer;\n background: none;\n border-radius: 4px;\n align-items: center;\n border: 1px solid #999;\n justify-content: center;\n\n svg {\n width: 24px;\n height: 24px;\n }\n\n &:active {\n background: #f3f3f3;\n }\n }\n}\n","import {Component, Prop, h, Event, EventEmitter, Host, State} from '@stencil/core';\nimport {deleteTemplateRole, getTemplate, isValidEmail, ITemplate, TRecipientType, updateTemplateRole, VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {SDKError} from '../../../utils/errors';\nimport {Store} from '../../../utils/Datastore';\n\nconst TrashIcon = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"#a50021\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0\" /></svg>`;\n\n/**\n * Present an editing form suitable for adjusting template-role properties.\n */\n@Component({\n tag: 'verdocs-template-role-properties',\n styleUrl: 'verdocs-template-role-properties.scss',\n})\nexport class VerdocsTemplateRoleProperties {\n private templateListenerId = null;\n\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The template ID to edit.\n */\n @Prop() templateId: string = '';\n\n /**\n * The role name to edit.\n */\n @Prop() roleName: string = '';\n\n /**\n * Event fired when the user cancels the dialog.\n */\n @Event({composed: true}) close: EventEmitter;\n\n /**\n * Event fired when the user deletes the role. The parent should update its UI to reflect the removal. When this event is emitted,\n * the role will have already been deleted server-side.\n */\n @Event({composed: true}) delete: EventEmitter<{templateId: string; roleName: string}>;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n @State() dirty = false;\n @State() saving = false;\n @State() name = '';\n @State() type: TRecipientType = 'signer';\n @State() first_name = '';\n @State() last_name = '';\n @State() email = '';\n @State() phone = '';\n @State() delegator = false;\n\n @State() loading = true;\n @State() template: ITemplate | null = null;\n\n async componentWillLoad() {\n try {\n this.endpoint.loadSession();\n\n if (!this.templateId) {\n console.log(`[ROLES] Missing required template ID ${this.templateId}`);\n return;\n }\n\n if (!this.endpoint.session) {\n console.log('[ROLES] Unable to start builder session, must be authenticated');\n return;\n }\n\n this.listenToTemplate();\n } catch (e) {\n console.log('[ROLES Error with preview session', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n }\n }\n\n disconnectedCallback() {\n this.unlistenToTemplate();\n }\n\n async listenToTemplate() {\n console.log('[ROLES] Loading tempate', this.templateId);\n this.unlistenToTemplate();\n Store.subscribe(\n 'templates',\n this.templateId,\n () => getTemplate(this.endpoint, this.templateId),\n false,\n (template: ITemplate) => {\n console.log('[BUILD] Template Updated', template);\n this.template = template;\n this.loading = false;\n\n const editingRole = this.template?.roles.find(role => role.name === this.roleName);\n if (editingRole) {\n this.name = editingRole.name;\n this.type = editingRole.type;\n this.first_name = editingRole.first_name;\n this.last_name = editingRole.last_name;\n this.email = editingRole.email;\n this.phone = editingRole.phone;\n this.delegator = editingRole.delegator;\n console.log('[ROLES] Editing role', editingRole);\n }\n },\n );\n }\n\n unlistenToTemplate() {\n if (this.templateListenerId) {\n Store.store.delListener(this.templateListenerId);\n this.templateListenerId = null;\n }\n }\n\n handleCancel(e) {\n e.stopPropagation();\n const editingRole = this.template?.roles.find(role => role.name === this.roleName);\n if (editingRole) {\n this.name = editingRole.name;\n this.type = editingRole.type;\n this.first_name = editingRole.first_name;\n this.last_name = editingRole.last_name;\n this.email = editingRole.email;\n this.phone = editingRole.phone;\n this.delegator = editingRole.delegator;\n }\n\n this.dirty = false;\n this.close?.emit();\n }\n\n async handleSave(e) {\n e.stopPropagation();\n this.saving = true;\n updateTemplateRole(this.endpoint, this.templateId, this.roleName, {\n name: this.name,\n type: this.type,\n first_name: this.first_name,\n last_name: this.last_name,\n email: this.email,\n phone: this.phone,\n delegator: this.delegator,\n })\n .then(async r => {\n console.log('[ROLES] Update result', r);\n this.saving = false;\n this.dirty = false;\n const newTemplate = JSON.parse(JSON.stringify(this.template));\n const roleIndex = newTemplate.roles.findIndex(role => role.name === this.roleName);\n if (roleIndex > -1) {\n newTemplate.roles[roleIndex] = r;\n }\n Store.updateTemplate(this.templateId, newTemplate);\n this.close?.emit();\n })\n .catch(e => {\n console.log('[ROLES Update error', e);\n this.saving = false;\n });\n }\n\n async handleDelete(e) {\n e.stopPropagation();\n if (window.confirm('Are you sure you wish to remove this role? All associated fields will be removed as well. This action cannot be undone.')) {\n deleteTemplateRole(this.endpoint, this.templateId, this.roleName)\n .then(() => {\n const newTemplate = JSON.parse(JSON.stringify(this.template)) as ITemplate;\n newTemplate.roles = newTemplate.roles.filter(role => role.name !== this.roleName);\n Store.getTemplate(this.endpoint, this.templateId, true);\n // Store.updateTemplate(this.templateId, newTemplate);\n this.delete?.emit({templateId: this.templateId, roleName: this.roleName});\n this.close?.emit();\n })\n .catch(e => {\n console.log('[ROLES Deletion error', e);\n });\n }\n }\n\n render() {\n const hasFields = (this.template?.fields || []).some(field => field.role_name === this.roleName);\n\n // Either all three should be empty, or all three need to be filled\n const isValid = (!this.email && !this.first_name && !this.last_name) || (isValidEmail(this.email) && !!this.first_name && !!this.last_name);\n\n return (\n <Host>\n <form onSubmit={e => e.preventDefault()} onClick={e => e.stopPropagation()} autocomplete=\"off\">\n <div>\n <verdocs-text-input\n id=\"verdocs-role-name\"\n label=\"Role Name (Must be unique)\"\n value={this.name}\n autocomplete=\"off\"\n disabled={hasFields}\n placeholder=\"Role Name...\"\n onInput={(e: any) => {\n this.name = e.target.value;\n this.dirty = true;\n }}\n />\n\n {hasFields && <div class=\"instructions\">This role has fields assigned and can no longer be renamed.</div>}\n {/*<div class=\"instructions\">{hasFields ? 'This role has fields assigned and can no longer be renamed.' : 'A unique name to identify the role in the workflow.'}</div>*/}\n </div>\n\n <div>\n <div class=\"input-label\">Type:</div>\n <verdocs-select-input\n value={this.type}\n options={[\n {label: 'Signer', value: 'signer'},\n {label: 'CC', value: 'cc'},\n {label: 'Approver', value: 'approver'},\n ]}\n onInput={(e: any) => {\n this.type = e.target.value;\n this.dirty = true;\n }}\n />\n {/*<div class=\"instructions\">*/}\n {/* Most participants are Signers. CC roles are notified when documents are signed, but have no other actions. Approvers get notified when signing is completed to perform*/}\n {/* a final review.*/}\n {/*</div>*/}\n </div>\n\n <div>\n <div class=\"input-label\">Default Contact Info:</div>\n\n <div class=\"first-last\">\n <verdocs-text-input\n id=\"verdocs-recipient-first\"\n value={this.first_name}\n autocomplete=\"off\"\n placeholder=\"First...\"\n onInput={(e: any) => {\n this.first_name = e.target.value;\n this.dirty = true;\n }}\n />\n\n <verdocs-text-input\n id=\"verdocs-recipient-first\"\n value={this.last_name}\n autocomplete=\"off\"\n placeholder=\"Last...\"\n onInput={(e: any) => {\n this.last_name = e.target.value;\n this.dirty = true;\n }}\n />\n </div>\n </div>\n\n <div>\n <verdocs-text-input\n id=\"verdocs-recipient-email\"\n value={this.email}\n autocomplete=\"off\"\n placeholder=\"Email Address...\"\n onInput={(e: any) => {\n this.email = e.target.value;\n this.dirty = true;\n }}\n />\n\n <div style={{height: '15px'}} />\n\n <div>\n <verdocs-text-input\n id=\"verdocs-recipient-phone\"\n value={this.phone}\n autocomplete=\"off\"\n // helpText=\"The recipient's phone number, if it will always stay the same. Leave blank to supply this value later, when each new envelope is created from the template.\"\n placeholder=\"Phone Number...\"\n onInput={(e: any) => {\n this.phone = e.target.value;\n this.dirty = true;\n }}\n />\n {/*<div class=\"instructions\">Default name and contact information. This may be changed later when creating and envelope with this template.</div>*/}\n </div>\n </div>\n\n {/*<div class=\"row\">*/}\n {/* <div class=\"input-label\">May Delegate:</div>*/}\n {/* <div class=\"checkbox-wrapper\">*/}\n {/* <verdocs-checkbox*/}\n {/* checked={this.delegator}*/}\n {/* onInput={(e: any) => {*/}\n {/* this.delegator = e.target.checked;*/}\n {/* this.dirty = true;*/}\n {/* }}*/}\n {/* />*/}\n {/* </div>*/}\n\n {/* <verdocs-help-icon text=\"If enabled, this recipient may delegate their actions to another individual.\" />*/}\n {/*</div>*/}\n\n <div class=\"buttons\">\n <button class=\"delete-button\" disabled={this.dirty} onClick={e => this.handleDelete(e)} innerHTML={TrashIcon} />\n\n <div style={{flex: '1'}} />\n\n {/*<verdocs-button size=\"small\" variant=\"outline\" label=\"Cancel\" disabled={!this.dirty} onClick={e => this.handleCancel(e)} />*/}\n <verdocs-button size=\"small\" label=\"Save\" disabled={!this.dirty || !isValid} onClick={e => this.handleSave(e)} />\n </div>\n </form>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,29 +1,29 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, d as Host, F as Fragment } from './p-1f51246d.js';
2
2
  import { VerdocsEndpoint, getTemplate, integerSequence } from '@verdocs/js-sdk';
3
3
  import { S as SDKError } from './p-fd97809c.js';
4
- import { S as Store } from './p-78d650ca.js';
4
+ import { S as Store } from './p-33300e3a.js';
5
5
  import { d as defineCustomElement$o } from './p-f5ccf125.js';
6
- import { d as defineCustomElement$n } from './p-f007234d.js';
6
+ import { d as defineCustomElement$n } from './p-96774726.js';
7
7
  import { d as defineCustomElement$m } from './p-39480096.js';
8
- import { d as defineCustomElement$l } from './p-1f5c7534.js';
9
- import { d as defineCustomElement$k } from './p-bed9505d.js';
10
- import { d as defineCustomElement$j } from './p-044413dc.js';
11
- import { d as defineCustomElement$i } from './p-80cad481.js';
12
- import { d as defineCustomElement$h } from './p-e6d9cbc0.js';
13
- import { d as defineCustomElement$g } from './p-ca701f0f.js';
14
- import { d as defineCustomElement$f } from './p-9acf5a7e.js';
15
- import { d as defineCustomElement$e } from './p-d13f639e.js';
16
- import { d as defineCustomElement$d } from './p-a4c3e93a.js';
17
- import { d as defineCustomElement$c } from './p-4f0db584.js';
8
+ import { d as defineCustomElement$l } from './p-eb4bd2d6.js';
9
+ import { d as defineCustomElement$k } from './p-e85acbfb.js';
10
+ import { d as defineCustomElement$j } from './p-92cce3dc.js';
11
+ import { d as defineCustomElement$i } from './p-1a83e46c.js';
12
+ import { d as defineCustomElement$h } from './p-f66d6a07.js';
13
+ import { d as defineCustomElement$g } from './p-9a24561a.js';
14
+ import { d as defineCustomElement$f } from './p-6a8c32a6.js';
15
+ import { d as defineCustomElement$e } from './p-4ab3413a.js';
16
+ import { d as defineCustomElement$d } from './p-0e454650.js';
17
+ import { d as defineCustomElement$c } from './p-df227cfc.js';
18
18
  import { d as defineCustomElement$b } from './p-54e4bcee.js';
19
19
  import { d as defineCustomElement$a } from './p-d20bbc7d.js';
20
20
  import { d as defineCustomElement$9 } from './p-f7dc9e74.js';
21
21
  import { d as defineCustomElement$8 } from './p-081465e0.js';
22
- import { d as defineCustomElement$7 } from './p-afd663f1.js';
22
+ import { d as defineCustomElement$7 } from './p-ca16a8ac.js';
23
23
  import { d as defineCustomElement$6 } from './p-8af753b4.js';
24
24
  import { d as defineCustomElement$5 } from './p-51c8b927.js';
25
- import { d as defineCustomElement$4 } from './p-589c545a.js';
26
- import { d as defineCustomElement$3 } from './p-6cba6eef.js';
25
+ import { d as defineCustomElement$4 } from './p-b474c324.js';
26
+ import { d as defineCustomElement$3 } from './p-4dbb9783.js';
27
27
  import { d as defineCustomElement$2 } from './p-08ddf0b4.js';
28
28
  import { d as defineCustomElement$1 } from './p-f776eeae.js';
29
29
 
@@ -257,4 +257,4 @@ function defineCustomElement() {
257
257
 
258
258
  export { VerdocsPreview as V, defineCustomElement as d };
259
259
 
260
- //# sourceMappingURL=p-e378a0ae.js.map
260
+ //# sourceMappingURL=p-4a04090c.js.map
@@ -1 +1 @@
1
- {"file":"p-e378a0ae.js","mappings":"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","names":[],"sources":["src/components/embeds/verdocs-preview/verdocs-preview.scss?tag=verdocs-preview","src/components/embeds/verdocs-preview/verdocs-preview.tsx"],"sourcesContent":["@import '../../../theme.scss';\n\nverdocs-preview {\n font-family: $verdocs-primary-font;\n display: flex;\n padding: 15px;\n row-gap: 15px;\n min-height: 200px;\n position: relative;\n align-items: center;\n box-sizing: border-box;\n flex-direction: column;\n\n div,\n canvas {\n box-sizing: border-box;\n }\n}\n","import {getTemplate, integerSequence, ITemplate, VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {Event, EventEmitter, Host, Component, Prop, h, State, Fragment, Watch} from '@stencil/core';\nimport {SDKError} from '../../../utils/errors';\nimport {Store} from '../../../utils/Datastore';\n\n/**\n * Display a template preview experience. This will display the template's attached\n * documents with signing fields overlaid on each page. Fields will be color-coded\n * by recipient, and will be read-only (cannot be filled, moved, or altered).\n *\n * ```ts\n * <verdocs-preview\n * templateId={templateId}\n * onSdkError={({ detail }) => { console.log('SDK error', detail) }\n * />\n * ```\n */\n@Component({\n tag: 'verdocs-preview',\n styleUrl: 'verdocs-preview.scss',\n shadow: false,\n})\nexport class VerdocsPreview {\n private templateListenerId = null;\n\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The ID of the template to create the document from.\n */\n @Prop() templateId: string | null = null;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n @State() loading = true;\n @State() template: ITemplate | null = null;\n\n disconnectedCallback() {\n this.unlistenToTemplate();\n }\n\n async listenToTemplate() {\n this.unlistenToTemplate();\n Store.subscribe(\n 'templates',\n this.templateId,\n () => getTemplate(this.endpoint, this.templateId),\n false,\n (template: ITemplate) => {\n this.template = template;\n this.loading = false;\n },\n );\n }\n\n unlistenToTemplate() {\n if (this.templateListenerId) {\n Store.store.delListener(this.templateListenerId);\n this.templateListenerId = null;\n }\n }\n\n @Watch('templateId')\n onTemplateIdChanged(newTemplateId: string) {\n console.log('[PREVIEW] Template ID changed', newTemplateId);\n this.listenToTemplate();\n }\n\n async componentWillLoad() {\n try {\n this.endpoint.loadSession();\n if (!this.endpoint.session) {\n console.log('[PREVIEW] Unable to start builder session, must be authenticated');\n return;\n }\n\n if (!this.templateId) {\n console.log(`[PREVIEW] Missing required template ID ${this.templateId}`);\n return;\n }\n\n this.listenToTemplate();\n } catch (e) {\n console.log('[PREVIEW] Error with preview session', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n }\n }\n\n handlePageRendered(_e: any) {\n // const pageInfo = e.detail as IDocumentPageInfo;\n // const fields = (this.template?.fields || []).filter(field => field.page === pageInfo.pageNumber);\n // console.log('[PREVIEW] Page rendered', pageInfo, fields);\n // fields.forEach(field => renderDocumentField(field, pageInfo, {disabled: true, editable: false, draggable: false}));\n }\n\n render() {\n if (this.loading) {\n return (\n <Host>\n <verdocs-loader />\n </Host>\n );\n }\n\n return (\n <Host>\n {(this.template?.documents || []).map(document => {\n const pageNumbers = integerSequence(1, document.pages);\n return (\n <Fragment>\n {pageNumbers.map(pageNumber => {\n const pageSize = document.page_sizes?.[pageNumber] || {width: 612, height: 792};\n\n return (\n <verdocs-template-document-page\n templateId={document.template_id}\n documentId={document.id}\n pageNumber={pageNumber}\n disabled={true}\n editable={false}\n done={false}\n virtualWidth={pageSize.width}\n virtualHeight={pageSize.height}\n onPageRendered={e => this.handlePageRendered(e)}\n layers={[\n {name: 'page', type: 'canvas'},\n {name: 'controls', type: 'div'},\n ]}\n />\n );\n })}\n </Fragment>\n );\n })}\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-4a04090c.js","mappings":"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","names":[],"sources":["src/components/embeds/verdocs-preview/verdocs-preview.scss?tag=verdocs-preview","src/components/embeds/verdocs-preview/verdocs-preview.tsx"],"sourcesContent":["@import '../../../theme.scss';\n\nverdocs-preview {\n font-family: $verdocs-primary-font;\n display: flex;\n padding: 15px;\n row-gap: 15px;\n min-height: 200px;\n position: relative;\n align-items: center;\n box-sizing: border-box;\n flex-direction: column;\n\n div,\n canvas {\n box-sizing: border-box;\n }\n}\n","import {getTemplate, integerSequence, ITemplate, VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {Event, EventEmitter, Host, Component, Prop, h, State, Fragment, Watch} from '@stencil/core';\nimport {SDKError} from '../../../utils/errors';\nimport {Store} from '../../../utils/Datastore';\n\n/**\n * Display a template preview experience. This will display the template's attached\n * documents with signing fields overlaid on each page. Fields will be color-coded\n * by recipient, and will be read-only (cannot be filled, moved, or altered).\n *\n * ```ts\n * <verdocs-preview\n * templateId={templateId}\n * onSdkError={({ detail }) => { console.log('SDK error', detail) }\n * />\n * ```\n */\n@Component({\n tag: 'verdocs-preview',\n styleUrl: 'verdocs-preview.scss',\n shadow: false,\n})\nexport class VerdocsPreview {\n private templateListenerId = null;\n\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The ID of the template to create the document from.\n */\n @Prop() templateId: string | null = null;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n @State() loading = true;\n @State() template: ITemplate | null = null;\n\n disconnectedCallback() {\n this.unlistenToTemplate();\n }\n\n async listenToTemplate() {\n this.unlistenToTemplate();\n Store.subscribe(\n 'templates',\n this.templateId,\n () => getTemplate(this.endpoint, this.templateId),\n false,\n (template: ITemplate) => {\n this.template = template;\n this.loading = false;\n },\n );\n }\n\n unlistenToTemplate() {\n if (this.templateListenerId) {\n Store.store.delListener(this.templateListenerId);\n this.templateListenerId = null;\n }\n }\n\n @Watch('templateId')\n onTemplateIdChanged(newTemplateId: string) {\n console.log('[PREVIEW] Template ID changed', newTemplateId);\n this.listenToTemplate();\n }\n\n async componentWillLoad() {\n try {\n this.endpoint.loadSession();\n if (!this.endpoint.session) {\n console.log('[PREVIEW] Unable to start builder session, must be authenticated');\n return;\n }\n\n if (!this.templateId) {\n console.log(`[PREVIEW] Missing required template ID ${this.templateId}`);\n return;\n }\n\n this.listenToTemplate();\n } catch (e) {\n console.log('[PREVIEW] Error with preview session', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n }\n }\n\n handlePageRendered(_e: any) {\n // const pageInfo = e.detail as IDocumentPageInfo;\n // const fields = (this.template?.fields || []).filter(field => field.page === pageInfo.pageNumber);\n // console.log('[PREVIEW] Page rendered', pageInfo, fields);\n // fields.forEach(field => renderDocumentField(field, pageInfo, {disabled: true, editable: false, draggable: false}));\n }\n\n render() {\n if (this.loading) {\n return (\n <Host>\n <verdocs-loader />\n </Host>\n );\n }\n\n return (\n <Host>\n {(this.template?.documents || []).map(document => {\n const pageNumbers = integerSequence(1, document.pages);\n return (\n <Fragment>\n {pageNumbers.map(pageNumber => {\n const pageSize = document.page_sizes?.[pageNumber] || {width: 612, height: 792};\n\n return (\n <verdocs-template-document-page\n templateId={document.template_id}\n documentId={document.id}\n pageNumber={pageNumber}\n disabled={true}\n editable={false}\n done={false}\n virtualWidth={pageSize.width}\n virtualHeight={pageSize.height}\n onPageRendered={e => this.handlePageRendered(e)}\n layers={[\n {name: 'page', type: 'canvas'},\n {name: 'controls', type: 'div'},\n ]}\n />\n );\n })}\n </Fragment>\n );\n })}\n </Host>\n );\n }\n}\n"],"version":3}
@@ -2,13 +2,14 @@ import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-
2
2
  import { VerdocsEndpoint, getTemplate, getOrganizationContacts, isValidEmail, createEnvelope, formatFullName, getRGBA } from '@verdocs/js-sdk';
3
3
  import { V as VerdocsToast } from './p-04c07b7b.js';
4
4
  import { S as SDKError } from './p-fd97809c.js';
5
- import { S as Store } from './p-78d650ca.js';
6
- import { d as defineCustomElement$7 } from './p-f5ccf125.js';
5
+ import { S as Store } from './p-33300e3a.js';
6
+ import { d as defineCustomElement$8 } from './p-f5ccf125.js';
7
+ import { d as defineCustomElement$7 } from './p-96774726.js';
7
8
  import { d as defineCustomElement$6 } from './p-39480096.js';
8
- import { d as defineCustomElement$5 } from './p-b6d4072e.js';
9
+ import { d as defineCustomElement$5 } from './p-73a39d5a.js';
9
10
  import { d as defineCustomElement$4 } from './p-f7dc9e74.js';
10
- import { d as defineCustomElement$3 } from './p-c6d1cdb7.js';
11
- import { d as defineCustomElement$2 } from './p-afd663f1.js';
11
+ import { d as defineCustomElement$3 } from './p-a50f7982.js';
12
+ import { d as defineCustomElement$2 } from './p-ca16a8ac.js';
12
13
  import { d as defineCustomElement$1 } from './p-61a2c23a.js';
13
14
 
14
15
  const getRoleNames = (template) => ((template === null || template === void 0 ? void 0 : template.roles) || []).map(role => role.name);
@@ -175,7 +176,6 @@ const VerdocsSend = /*@__PURE__*/ proxyCustomElement(class VerdocsSend extends H
175
176
  }
176
177
  }
177
178
  handleSelectContact(e, role) {
178
- console.log('hsc', e.detail, role);
179
179
  e.preventDefault();
180
180
  this.rolesCompleted[role.id] = { ...role, ...e.detail };
181
181
  this.showPickerForId = '';
@@ -241,7 +241,6 @@ const VerdocsSend = /*@__PURE__*/ proxyCustomElement(class VerdocsSend extends H
241
241
  return (h(Host, { style: { display: 'flex' } }, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
242
242
  }
243
243
  const levels = this.getSequenceNumbers();
244
- console.log('[SEND] Rendering levels', levels);
245
244
  const rolesAssigned = Object.values(this.rolesCompleted).filter(recipient => isValidEmail(recipient.email) && recipient.first_name && recipient.last_name);
246
245
  const allRolesAssigned = rolesAssigned.length >= getRoleNames(this.template).length;
247
246
  return (h(Host, { class: { sendable: (_a = this.template) === null || _a === void 0 ? void 0 : _a.is_sendable } }, h("div", { class: "recipients" }, h("div", { class: "left-line" }), h("div", { class: `level level-start` }, this.getLevelIcon('start'), h("div", { class: "complete" }, "Send Envelope")), levels.map(level => (h("div", { class: `level level-${level}` }, this.getLevelIcon('sequence'), this.getRolesAtLevel(level).map(role => {
@@ -282,7 +281,7 @@ function defineCustomElement() {
282
281
  if (typeof customElements === "undefined") {
283
282
  return;
284
283
  }
285
- const components = ["verdocs-send", "verdocs-button", "verdocs-component-error", "verdocs-contact-picker", "verdocs-loader", "verdocs-multiselect", "verdocs-portal", "verdocs-spinner"];
284
+ const components = ["verdocs-send", "verdocs-button", "verdocs-checkbox", "verdocs-component-error", "verdocs-contact-picker", "verdocs-loader", "verdocs-multiselect", "verdocs-portal", "verdocs-spinner"];
286
285
  components.forEach(tagName => { switch (tagName) {
287
286
  case "verdocs-send":
288
287
  if (!customElements.get(tagName)) {
@@ -290,6 +289,11 @@ function defineCustomElement() {
290
289
  }
291
290
  break;
292
291
  case "verdocs-button":
292
+ if (!customElements.get(tagName)) {
293
+ defineCustomElement$8();
294
+ }
295
+ break;
296
+ case "verdocs-checkbox":
293
297
  if (!customElements.get(tagName)) {
294
298
  defineCustomElement$7();
295
299
  }
@@ -329,4 +333,4 @@ function defineCustomElement() {
329
333
 
330
334
  export { VerdocsSend as V, defineCustomElement as d };
331
335
 
332
- //# sourceMappingURL=p-fd4e0e9b.js.map
336
+ //# sourceMappingURL=p-4a4bf38c.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-4a4bf38c.js","mappings":"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","names":[],"sources":["src/utils/Templates.ts","src/components/embeds/verdocs-send/verdocs-send.scss?tag=verdocs-send","src/components/embeds/verdocs-send/verdocs-send.tsx"],"sourcesContent":["import {ITemplate} from '@verdocs/js-sdk';\n\nexport const getRoleNames = (template: ITemplate | null) => (template?.roles || []).map(role => role.name);\n\nexport const getRoleIndex = (template: ITemplate | null, role_name: string) =>\n Math.max(\n getRoleNames(template).findIndex(name => name === role_name),\n 0,\n );\n","@import '../../../theme.scss';\n\nverdocs-send {\n padding: 10px;\n position: relative;\n background: #ffffff;\n flex-direction: column;\n font-family: $verdocs-primary-font;\n\n &.sendable {\n display: flex;\n }\n\n .recipients {\n position: relative;\n }\n\n // To avoid the need to compute things like heights, this layer is simply displayed \"on top\" of all the level rows. Its\n // background obscures the horizontal lines.\n .left-line {\n top: 32px;\n left: 20px;\n z-index: 1;\n width: 12px;\n bottom: 30px;\n position: absolute;\n background: #ffffff;\n border-left: 3px dotted #9b9b9b;\n }\n\n .level {\n display: flex;\n column-gap: 10px;\n margin-left: 50px;\n position: relative;\n flex-direction: row;\n padding: 8px 0 4px 0;\n border-bottom: 1px solid #97979744;\n\n .level-icon {\n top: 14px;\n z-index: 2;\n left: -40px;\n width: 24px;\n height: 24px;\n position: absolute;\n background: #ffffff;\n\n svg {\n fill: #00000089;\n }\n }\n\n .recipient {\n height: 30px;\n display: flex;\n flex: 0 0 30px;\n color: #000000;\n cursor: pointer;\n font-size: 14px;\n align-items: center;\n border-radius: 30px;\n flex-direction: row;\n background: #dddddd;\n white-space: nowrap;\n border: 2px solid #dddddd;\n padding: 2px 10px 2px 14px;\n\n .icon {\n width: 22px;\n height: 22px;\n flex: 0 0 22px;\n margin: 0 0 0 10px;\n\n svg {\n width: 22px;\n height: 22px;\n fill: #333333;\n outline: none;\n }\n }\n }\n\n .complete {\n flex: 1;\n height: 30px;\n display: flex;\n color: #000000;\n font-size: 14px;\n align-items: center;\n flex-direction: row;\n padding: 3px 10px 3px 2px;\n }\n }\n\n .buttons {\n display: flex;\n margin-top: 10px;\n column-gap: 15px;\n flex-direction: row;\n }\n\n verdocs-contact-picker {\n left: 0;\n top: 41px;\n z-index: 10;\n position: absolute;\n border: 1px solid #dddddd;\n box-shadow: 0 0 6px 3px rgb(0 0 0 / 10%);\n }\n}\n","import {Component, Prop, State, h, Event, EventEmitter, Host, Method, Watch} from '@stencil/core';\nimport {createEnvelope, formatFullName, getTemplate, getOrganizationContacts, getRGBA, isValidEmail, VerdocsEndpoint} from '@verdocs/js-sdk';\nimport type {ICreateEnvelopeFromTemplateRequest, ICreateEnvelopeRecipient, IEnvelope, IRecipient, ITemplate} from '@verdocs/js-sdk';\nimport {IContactSearchEvent} from '../../envelopes/verdocs-contact-picker/verdocs-contact-picker';\nimport {getRoleIndex, getRoleNames} from '../../../utils/Templates';\nimport {VerdocsToast} from '../../../utils/Toast';\nimport {SDKError} from '../../../utils/errors';\nimport {Store} from '../../../utils/Datastore';\n\nconst editIcon =\n '<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" tabindex=\"-1\"><path d=\"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"></path></svg>';\n\nconst startIcon =\n '<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" tabindex=\"-1\"><path d=\"M2 12C2 6.48 6.48 2 12 2s10 4.48 10 10-4.48 10-10 10S2 17.52 2 12zm10 6c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6 2.69 6 6 6z\"></path></svg>';\n\nconst stepIcon =\n '<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" tabindex=\"-1\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z\"></path></svg>';\n\nconst doneIcon =\n '<svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" tabindex=\"-1\"><path d=\"m18 7-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41 6 19l1.41-1.41L1.83 12 .41 13.41z\"></path></svg>';\n\n/**\n * Display a form to send a template to one or more recipients in an envelope for signing.\n * Host applications should ensure the template is \"sendable\" before displaying this component.\n * To be sendable, a template must have at least one document attached, at least one participant\n * defined, and at least one field assigned to every \"signer\" participant. This component will\n * hide itself if the template is not sendable.\n *\n * ```ts\n * <verdocs-send\n * templateId={templateId}\n * onBeforeSend={({ detail })) => { console.log('Sending... Show a spinner...', detail) }\n * onSend={({ detail }) => { console.log('Sent! Hide the spinner...', detail) }\n * onExit={(e) => { console.log('Send cancelled.', detail) }\n * onSdkError={({ detail }) => { console.log('SDK error', detail) }\n * />\n * ```\n */\n@Component({\n tag: 'verdocs-send',\n styleUrl: 'verdocs-send.scss',\n shadow: false,\n})\nexport class VerdocsSend {\n private templateListenerId = null;\n\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The ID of the template to create the document from.\n */\n @Prop({reflect: true}) templateId: string | null = null;\n\n /**\n * The environment the control is being called from, e.g. 'web'. This has an impact on how certain\n * operations such as email communications are handled to ensure users receive the correct URLs for\n * their invitations. Setting this to unknown values may produce unexpected/incorrect behaviors.\n * If environment is not known, do this set this property.\n */\n @Prop() environment: string = '';\n\n /**\n * The user is sending an envelope the form and clicked send.\n */\n @Event({composed: true}) beforeSend: EventEmitter<{recipients: ICreateEnvelopeRecipient[]; name: string; template_id: string; template: ITemplate}>;\n\n /**\n * The user completed the form and clicked send.\n */\n @Event({composed: true}) send: EventEmitter<{recipients: ICreateEnvelopeRecipient[]; name: string; template_id: string; envelope_id: string; envelope: IEnvelope}>;\n\n /**\n * Event fired when the step is cancelled. This is called exit to avoid conflicts with the JS-reserved \"cancel\" event name.\n */\n @Event({composed: true}) exit: EventEmitter;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n /**\n * Event fired when the user enters text in a search field. The parent application may use this to update\n * the `contactSuggestions` property.\n */\n @Event({composed: true}) searchContacts: EventEmitter<IContactSearchEvent>;\n\n @State() containerId = `verdocs-send-${Math.random().toString(36).substring(2, 11)}`;\n @State() showPickerForId = '';\n @State() sessionContacts = [];\n @State() sending = false;\n @State() rolesCompleted: Record<string, Partial<IRecipient>> = {};\n\n @State() loading = true;\n @State() template: ITemplate | null = null;\n\n disconnectedCallback() {\n this.unlistenToTemplate();\n }\n\n async listenToTemplate() {\n console.log('[SEND] Loading template', this.templateId);\n this.unlistenToTemplate();\n Store.subscribe(\n 'templates',\n this.templateId,\n () => getTemplate(this.endpoint, this.templateId),\n true,\n (template: ITemplate) => {\n console.log('[SEND] Got new template', template);\n this.template = template;\n this.loading = false;\n this.rolesCompleted = {};\n this.recomputeRolesCompleted();\n },\n );\n }\n\n unlistenToTemplate() {\n if (this.templateListenerId) {\n Store.store.delListener(this.templateListenerId);\n this.templateListenerId = null;\n }\n }\n\n @Method() async reset() {\n this.rolesCompleted = {};\n }\n\n @Watch('templateId')\n onTemplateIdChanged(newTemplateId: string) {\n console.log('[SEND] Template ID changed', newTemplateId);\n this.listenToTemplate();\n }\n\n async componentWillLoad() {\n try {\n this.endpoint.onSessionChanged((_endpoint, _session, profile) => {\n if (!profile) {\n return;\n }\n\n const me = {\n id: profile.id,\n first_name: profile.first_name,\n last_name: profile.last_name,\n email: profile.email,\n phone: profile.phone,\n };\n\n if (profile) {\n this.sessionContacts = [me];\n\n getOrganizationContacts(this.endpoint)\n .then(contacts => {\n console.log('[SEND] Got contacts', contacts);\n this.sessionContacts = [...contacts, me];\n })\n .catch(e => {\n console.log('[SEND] Error getting contacts', e);\n });\n }\n });\n\n this.endpoint.loadSession();\n\n if (!this.endpoint.session) {\n console.log('[SEND] Unable to start Send operation, must be authenticated');\n return;\n }\n\n if (!this.templateId) {\n console.log(`[SEND] Missing required template ID ${this.templateId}`);\n return;\n }\n\n this.listenToTemplate();\n } catch (e) {\n console.log('[SEND] Error with send session', e);\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n }\n }\n\n recomputeRolesCompleted() {\n this.rolesCompleted = {};\n\n const rolesAtLevel: Record<number, Partial<IRecipient>[]> = {};\n (this.template?.roles || []).forEach(role => {\n const level = role.sequence - 1;\n rolesAtLevel[level] ||= [];\n const id = `r-${level}-${rolesAtLevel[level].length}`;\n rolesAtLevel[level].push({...role, id, role_name: role.name, first_name: role.first_name, last_name: role.last_name});\n\n // if (role.first_name && (isValidEmail(role.email) || isValidPhone(role.phone))) {\n if (role.first_name && isValidEmail(role.email)) {\n this.rolesCompleted[id] = {...role, id, role_name: role.name, first_name: role.first_name, last_name: role.last_name};\n }\n });\n }\n\n getSequenceNumbers() {\n // This is cleaner with a Set but we found a regression in some target environments where\n // this breaks down. Reverting to an older technique while we diagnose it.\n const sequences: Record<number, boolean> = {};\n (this.template?.roles || []).forEach(role => {\n sequences[role.sequence] = true;\n });\n return Object.keys(sequences)\n .map(s => +s)\n .sort((a, b) => a - b);\n }\n\n getRolesAtLevel(level: number) {\n const rolesAtLevel = (this.template?.roles || [])\n .filter(role => role.sequence === level)\n .map((role, index) => ({\n ...role,\n id: `r-${level}-${index}`,\n role_name: role.name,\n first_name: role.first_name,\n last_name: role.last_name,\n }));\n return rolesAtLevel as Partial<IRecipient>[];\n }\n\n getLevelIcon(level: 'start' | 'end' | 'sequence') {\n if (level === 'start') {\n return <div class=\"level-icon\" innerHTML={startIcon} />;\n } else if (level === 'end') {\n return <div class=\"level-icon\" innerHTML={doneIcon} />;\n } else {\n return <div class=\"level-icon\" innerHTML={stepIcon} />;\n }\n }\n\n handleSelectContact(e: any, role: Partial<IRecipient>) {\n e.preventDefault();\n this.rolesCompleted[role.id] = {...role, ...e.detail};\n this.showPickerForId = '';\n }\n\n handleClickRole(e: any, role: Partial<IRecipient>) {\n e.stopPropagation();\n this.showPickerForId = role.id;\n }\n\n handleSend(e: any) {\n if (this.sending) {\n console.log('[SEND] Skipping duplicate send', e);\n return;\n }\n\n console.log('[SEND] Sending', e);\n e.preventDefault();\n e.stopPropagation();\n\n this.sending = true;\n\n const details: ICreateEnvelopeFromTemplateRequest = {\n template_id: this.templateId,\n name: this.template?.name || 'New Envelope',\n environment: this.environment,\n initial_reminder: 0,\n followup_reminders: 0,\n recipients: Object.values(this.rolesCompleted) as ICreateEnvelopeRecipient[],\n // TODO: Pre-filled fields support\n fields: [],\n };\n\n const beforeSendResult = this.beforeSend.emit({...details, name: details.name!, template: this.template});\n if (beforeSendResult.defaultPrevented) {\n console.log('[SEND] Send cancelled by parent', details);\n this.sending = false;\n return;\n }\n\n console.log('[SEND] Creating envelope', details);\n createEnvelope(this.endpoint, details)\n .then(r => {\n console.log('[SEND] Send envelope', r);\n this.reset().catch((e: any) => console.log('Unknown Error', e));\n this.sending = false;\n this.send?.emit({...details, name: details.name!, envelope_id: r.id, envelope: r});\n })\n .catch(e => {\n console.log('[SEND] Send error', e);\n VerdocsToast(e.response?.data?.error || 'Error creating envelope, please try again later.');\n this.sending = false;\n this.sdkError?.emit(e);\n });\n }\n\n handleCancel(e: any) {\n e.stopPropagation();\n this.exit?.emit();\n }\n\n render() {\n if (this.loading) {\n return (\n <Host>\n <verdocs-loader />\n </Host>\n );\n }\n\n if (!this.endpoint.session) {\n return (\n <Host style={{display: 'flex'}}>\n <verdocs-component-error message=\"You must be authenticated to use this module.\" />\n </Host>\n );\n }\n\n const levels = this.getSequenceNumbers();\n const rolesAssigned = Object.values(this.rolesCompleted).filter(recipient => isValidEmail(recipient.email) && recipient.first_name && recipient.last_name);\n const allRolesAssigned = rolesAssigned.length >= getRoleNames(this.template).length;\n\n return (\n <Host class={{sendable: this.template?.is_sendable}}>\n <div class=\"recipients\">\n <div class=\"left-line\" />\n <div class={`level level-start`}>\n {this.getLevelIcon('start')}\n <div class=\"complete\">Send Envelope</div>\n </div>\n\n {levels.map(level => (\n <div class={`level level-${level}`}>\n {this.getLevelIcon('sequence')}\n\n {this.getRolesAtLevel(level).map(role => {\n const unknown = !role.email || !role.first_name || !role.last_name;\n const roleName = this.rolesCompleted[role.id]?.first_name ? formatFullName(this.rolesCompleted[role.id]) : unknown ? role.role_name : formatFullName(role);\n const elId = `verdocs-send-recipient-${role.role_name}`;\n const roleIndex = getRoleIndex(this.template, role.role_name);\n const rgba = getRGBA(roleIndex);\n const completed = rolesAssigned.findIndex(r => r.role_name === role.role_name) > -1;\n\n const style = {\n backgroundColor: rgba,\n border: completed ? '2px solid #55bc81' : '2px solid #dddddd',\n };\n\n return unknown ? (\n <div class=\"recipient\" data-ri={roleIndex} data-rn={role.role_name} style={style} onClick={e => this.handleClickRole(e, role)} id={elId}>\n {roleName}\n <div class=\"icon\" innerHTML={editIcon} />\n {this.showPickerForId === role.id && (\n <verdocs-portal anchor={elId} onClickAway={() => (this.showPickerForId = '')}>\n <verdocs-contact-picker\n onExit={() => (this.showPickerForId = '')}\n onNext={e => this.handleSelectContact(e, role)}\n contactSuggestions={this.sessionContacts}\n templateRole={this.rolesCompleted[role.id] ?? role}\n onSearchContacts={e => this.searchContacts?.emit(e.detail)}\n />\n </verdocs-portal>\n )}\n </div>\n ) : (\n <div class=\"recipient\" data-ri={roleIndex} data-rn={role.role_name} style={style} onClick={e => this.handleClickRole(e, role)} id={elId}>\n {/*<div class=\"recipient\" data-ri={roleIndex} data-rn={role.role_name} style={{borderColor: rgba}} onClick={e => this.handleClickRole(e, role)} id={elId}>*/}\n {roleName}\n <div class=\"icon\" innerHTML={editIcon} />\n {this.showPickerForId === role.id && (\n <verdocs-portal anchor={elId} onClickAway={() => (this.showPickerForId = '')}>\n <verdocs-contact-picker\n onExit={() => (this.showPickerForId = '')}\n onNext={e => this.handleSelectContact(e, role)}\n contactSuggestions={this.sessionContacts}\n templateRole={(this.rolesCompleted[role.id] ?? role) as IRecipient}\n onSearchContacts={e => this.searchContacts?.emit(e.detail)}\n />\n </verdocs-portal>\n )}\n </div>\n );\n })}\n </div>\n ))}\n\n <div class={`level level-done`}>\n {this.getLevelIcon('end')}\n <div class=\"complete\">Signing Complete</div>\n </div>\n </div>\n\n <div class=\"buttons\">\n <verdocs-button label=\"Cancel\" size=\"small\" variant=\"outline\" onClick={e => this.handleCancel(e)} disabled={this.sending} />\n <verdocs-button label=\"Send\" size=\"small\" disabled={!allRolesAssigned || this.sending} onClick={e => this.handleSend(e)} />\n {this.sending && <verdocs-spinner />}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -2,15 +2,15 @@ import { p as proxyCustomElement, H, c as createEvent, h, F as Fragment, d as Ho
2
2
  import { i as interact } from './p-a901dff2.js';
3
3
  import { VerdocsEndpoint, updateField, getRGBA } from '@verdocs/js-sdk';
4
4
  import { S as SettingsIcon } from './p-b0766439.js';
5
- import { S as Store } from './p-78d650ca.js';
5
+ import { S as Store } from './p-33300e3a.js';
6
6
  import { d as defineCustomElement$9 } from './p-f5ccf125.js';
7
- import { d as defineCustomElement$8 } from './p-f007234d.js';
7
+ import { d as defineCustomElement$8 } from './p-96774726.js';
8
8
  import { d as defineCustomElement$7 } from './p-39480096.js';
9
9
  import { d as defineCustomElement$6 } from './p-54e4bcee.js';
10
10
  import { d as defineCustomElement$5 } from './p-f7dc9e74.js';
11
- import { d as defineCustomElement$4 } from './p-afd663f1.js';
11
+ import { d as defineCustomElement$4 } from './p-ca16a8ac.js';
12
12
  import { d as defineCustomElement$3 } from './p-8af753b4.js';
13
- import { d as defineCustomElement$2 } from './p-6cba6eef.js';
13
+ import { d as defineCustomElement$2 } from './p-4dbb9783.js';
14
14
  import { d as defineCustomElement$1 } from './p-08ddf0b4.js';
15
15
 
16
16
  const verdocsFieldTextareaCss = "@-webkit-keyframes verdocs-field-pulse{0%{background-color:rgba(0, 0, 0, 0.35)}50%{background-color:rgba(0, 0, 0, 0)}100%{background-color:rgba(0, 0, 0, 0.35)}}@keyframes verdocs-field-pulse{0%{background-color:rgba(0, 0, 0, 0.35)}50%{background-color:rgba(0, 0, 0, 0)}100%{background-color:rgba(0, 0, 0, 0.35)}}verdocs-field-textarea{width:150px;height:15px;display:block;font-size:11px;position:relative;scroll-margin:20px 0;-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 textarea{cursor:inherit;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.disabled textarea{opacity:0.5}verdocs-field-textarea label{top:-14px;left:-1px;height:14px;color:white;padding:0 4px;font-size:9px;line-height:13px;position:absolute;background:#4a4a99;border-top-left-radius:2px;border-top-right-radius:2px}verdocs-field-textarea.required{border:1px solid rgb(204, 0, 0)}verdocs-field-textarea.focused{-webkit-animation:verdocs-field-pulse 0.4s 1;animation:verdocs-field-pulse 0.4s 1}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}verdocs-field-textarea .settings-icon{position:absolute;top:-3px;left:-20px;display:inline-block;cursor:pointer;opacity:0.3}verdocs-field-textarea .settings-icon svg{fill:#707ae5}verdocs-field-textarea .settings-icon:hover{opacity:1}@keyframes verdocs-field-pulse{0%{background-color:rgba(0, 0, 0, 0.35)}50%{background-color:rgba(0, 0, 0, 0)}100%{background-color:rgba(0, 0, 0, 0.35)}}";
@@ -244,4 +244,4 @@ function defineCustomElement() {
244
244
 
245
245
  export { VerdocsFieldTextarea as V, defineCustomElement as d };
246
246
 
247
- //# sourceMappingURL=p-d13f639e.js.map
247
+ //# sourceMappingURL=p-4ab3413a.js.map
@@ -1 +1 @@
1
- {"file":"p-d13f639e.js","mappings":"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","names":[],"sources":["src/components/fields/verdocs-field-textarea/verdocs-field-textarea.scss?tag=verdocs-field-textarea","src/components/fields/verdocs-field-textarea/verdocs-field-textarea.tsx"],"sourcesContent":["@import '../../../theme.scss';\n\nverdocs-field-textarea {\n width: 150px;\n height: 15px;\n display: block;\n font-size: 11px;\n position: relative;\n scroll-margin: 20px 0;\n box-sizing: border-box;\n background-color: transparent;\n transform-origin: bottom left;\n font-family: $verdocs-primary-font;\n border: 1px solid rgba(0, 0, 0, 0.2);\n\n textarea {\n // This is needed to bring down the cursor from the parent element, which is where interactjs applies it\n cursor: inherit;\n\n width: 100%;\n height: 100%;\n resize: none;\n border: none;\n outline: none;\n padding: 0 3px;\n font-size: 11px;\n background: none;\n font-weight: 500;\n transform-origin: 0 0;\n box-sizing: border-box;\n color: rgba(0, 0, 0, 0.87);\n\n &.hide {\n display: none;\n }\n }\n\n &.disabled textarea {\n opacity: 0.5;\n }\n\n label {\n top: -14px;\n left: -1px;\n height: 14px;\n color: white;\n padding: 0 4px;\n font-size: 9px;\n line-height: 13px;\n position: absolute;\n background: #4a4a99;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n }\n\n &.required {\n border: 1px solid rgb(204, 0, 0);\n }\n\n &.focused {\n animation: verdocs-field-pulse 0.4s 1;\n }\n\n verdocs-button-panel {\n top: -3px;\n left: -2px;\n opacity: 0.5;\n z-index: 1000;\n cursor: pointer;\n position: absolute;\n transform: scale(0.6);\n\n &[data-active],\n &:hover {\n opacity: 1;\n }\n\n .icon {\n svg {\n fill: #333333;\n }\n\n &:hover {\n svg {\n fill: #000000;\n }\n }\n }\n }\n\n .settings-icon {\n position: absolute;\n top: -3px;\n left: -20px;\n display: inline-block;\n cursor: pointer;\n opacity: 0.3;\n\n svg {\n fill: $border-color;\n }\n\n &:hover {\n opacity: 1;\n }\n }\n}\n\n@keyframes verdocs-field-pulse {\n 0% {\n background-color: rgba(0, 0, 0, 0.35);\n }\n 50% {\n background-color: rgba(0, 0, 0, 0);\n }\n 100% {\n background-color: rgba(0, 0, 0, 0.35);\n }\n}\n","import interact from 'interactjs';\nimport {IEnvelopeField, VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {ITemplateField, updateField, getRGBA} from '@verdocs/js-sdk';\nimport {Component, h, Host, Prop, Method, Event, EventEmitter, Element, Fragment, State} from '@stencil/core';\nimport {SettingsIcon} from '../../../utils/Icons';\nimport {Store} from '../../../utils/Datastore';\n\n/**\n * Display a multi-line text input field. Reminder: the \"position\" of the field is specified\n * as the BOTTOM-LEFT corner.\n */\n@Component({\n tag: 'verdocs-field-textarea',\n styleUrl: 'verdocs-field-textarea.scss',\n shadow: false,\n})\nexport class VerdocsFieldTextarea {\n @Element() el: HTMLElement;\n private inputEl: HTMLTextAreaElement;\n\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n * This component self-manages its resize (width) behavior when in edit-template mode, and uses\n * this endpoint to save changes.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * Fields may be attached to templates or envelopes, but only template fields may be edited.\n */\n @Prop({reflect: true}) source: 'template' | 'envelope' = 'template';\n\n /**\n * The source template or envelope ID the field is found in.\n */\n @Prop({reflect: true}) sourceid: string = '';\n\n /**\n * The name of the field to display.\n */\n @Prop({reflect: true}) fieldname: string = '';\n\n /**\n * Override the field's settings. This is intended to be used during signing when fields are being\n * mutated.\n */\n @Prop() field: IEnvelopeField | null | undefined = null;\n\n /**\n * If set, overrides the field's settings object. Primarily used to support \"preview\" modes where all fields are disabled.\n */\n @Prop({reflect: true}) disabled?: boolean = false;\n\n /**\n * If set, a settings icon will be displayed on hover. The settings shown allow the field's recipient and other settings to be\n * changed, so it should typically only be enabled in the Builder.\n */\n @Prop({reflect: true}) editable?: boolean = false;\n\n /**\n * If set, the field may be dragged to a new location. This should only be enabled in the Builder, or for self-placed fields.\n */\n @Prop({reflect: true}) moveable?: boolean = false;\n\n /**\n * If set, the field is considered \"done\" and is drawn in a display-final-value state.\n */\n @Prop({reflect: true}) done?: boolean = false;\n\n /**\n * If set, the field will be be scaled horizontally by this factor.\n */\n @Prop({reflect: true}) xscale?: number = 1;\n\n /**\n * If set, the field will be be scaled vertically by this factor.\n */\n @Prop({reflect: true}) yscale?: number = 1;\n\n /**\n * The page the field is on\n */\n @Prop({reflect: true}) pagenumber?: number = 1;\n\n @Method()\n async focusField() {\n this.inputEl.focus();\n }\n\n /**\n * Event fired when the field's settings are changed.\n */\n @Event({composed: true}) settingsChanged: EventEmitter<{fieldName: string; field: ITemplateField}>;\n\n /**\n * Event fired when the field is deleted.\n */\n @Event({composed: true}) deleted: EventEmitter<{fieldName: string}>;\n\n @State() showingProperties?: boolean = false;\n\n @Method()\n async showSettingsPanel() {\n const settingsPanel = document.getElementById(`verdocs-settings-panel-${this.fieldname}`) as any;\n if (settingsPanel && settingsPanel.showPanel) {\n settingsPanel.showPanel();\n }\n }\n\n @Method()\n async hideSettingsPanel() {\n const settingsPanel = document.getElementById(`verdocs-settings-panel-${this.fieldname}`) as any;\n if (settingsPanel && settingsPanel.hidePanel) {\n settingsPanel.hidePanel();\n }\n }\n\n @State() focused?: boolean = false;\n\n componentDidRender() {\n interact.dynamicDrop(true);\n\n if (this.editable) {\n interact(this.el).resizable({\n edges: {top: true, bottom: true, left: true, right: true},\n listeners: {\n start: this.handleResizeStart.bind(this),\n move: this.handleResize.bind(this),\n end: this.handleResizeEnd.bind(this),\n },\n });\n }\n }\n\n handleResizeStart(e: any) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n handleResize(e: any) {\n let {x = 0, y = 0, h = 0} = e.target.dataset;\n let {width, height} = e.rect;\n\n x = (parseFloat(x) || 0) + e.deltaRect.left;\n y = (parseFloat(y) || 0) + e.deltaRect.top;\n h = (parseFloat(h) || 0) + e.deltaRect.height;\n\n Object.assign(e.target.style, {\n width: `${width}px`,\n height: `${height}px`,\n transform: `translate(${x}px, ${y + h}px)`,\n });\n\n Object.assign(e.target.dataset, {x, y, h});\n }\n\n handleResizeEnd(e: any) {\n const {source, sourceid, fieldname} = this;\n const {field} = Store.getField(source, sourceid, fieldname, this.field);\n if (!field) {\n return;\n }\n\n const [translateX, translateY] = e.target.style.transform.split('(')[1].split(')')[0].split(',').map(parseFloat);\n\n const width = Math.round(parseFloat(e.target.style.width) / this.xscale);\n const height = Math.round(parseFloat(e.target.style.height) / this.yscale);\n const x = Math.round(field.x + translateX / this.xscale);\n const y = Math.round(field.y - translateY / this.yscale);\n\n updateField(this.endpoint, this.sourceid, this.fieldname, {x, y, width, height})\n .then(field => {\n this.settingsChanged?.emit({fieldName: this.fieldname, field});\n Object.assign(e.target.dataset, {x: 0, y: 0, h: 0});\n })\n .catch(e => console.log('Field update failed', e));\n }\n\n render() {\n const {source, sourceid, fieldname, editable = false, done = false, disabled = false, focused, xscale = 1, yscale = 1} = this;\n\n const {index, field} = Store.getField(source, sourceid, fieldname, this.field);\n const {required = false, placeholder = '', value = '', label = ''} = field || {};\n const backgroundColor = getRGBA(index);\n\n if (done) {\n return <Host class={{done}}>{value}</Host>;\n }\n\n return (\n <Host class={{required, disabled, done, focused}} style={{backgroundColor}}>\n {label && <label>{label}</label>}\n\n <textarea\n name={fieldname}\n disabled={disabled}\n required={required}\n placeholder={placeholder}\n ref={el => (this.inputEl = el)}\n onFocus={() => (this.focused = true)}\n onBlur={() => (this.focused = false)}\n >\n {value}\n </textarea>\n\n {editable && (\n <Fragment>\n <div\n id={`verdocs-settings-panel-trigger-${fieldname}`}\n style={{transform: `scale(${Math.floor((1 / xscale) * 1000) / 1000}, ${Math.floor((1 / yscale) * 1000) / 1000})`}}\n class=\"settings-icon\"\n innerHTML={SettingsIcon}\n onClick={(e: any) => {\n e.stopPropagation();\n this.showingProperties = !this.showingProperties;\n }}\n />\n\n {this.showingProperties && (\n <verdocs-portal anchor={`verdocs-settings-panel-trigger-${fieldname}`} onClickAway={() => (this.showingProperties = false)}>\n <verdocs-template-field-properties\n templateId={sourceid}\n fieldName={fieldname}\n onClose={() => (this.showingProperties = false)}\n onDelete={() => {\n this.deleted?.emit({fieldName: fieldname});\n return this.hideSettingsPanel();\n }}\n onSettingsChanged={e => {\n this.settingsChanged?.emit(e.detail);\n return this.hideSettingsPanel();\n }}\n helpText={'Text areas may be used to create multi-line text fields.'}\n />\n </verdocs-portal>\n )}\n </Fragment>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-4ab3413a.js","mappings":"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","names":[],"sources":["src/components/fields/verdocs-field-textarea/verdocs-field-textarea.scss?tag=verdocs-field-textarea","src/components/fields/verdocs-field-textarea/verdocs-field-textarea.tsx"],"sourcesContent":["@import '../../../theme.scss';\n\nverdocs-field-textarea {\n width: 150px;\n height: 15px;\n display: block;\n font-size: 11px;\n position: relative;\n scroll-margin: 20px 0;\n box-sizing: border-box;\n background-color: transparent;\n transform-origin: bottom left;\n font-family: $verdocs-primary-font;\n border: 1px solid rgba(0, 0, 0, 0.2);\n\n textarea {\n // This is needed to bring down the cursor from the parent element, which is where interactjs applies it\n cursor: inherit;\n\n width: 100%;\n height: 100%;\n resize: none;\n border: none;\n outline: none;\n padding: 0 3px;\n font-size: 11px;\n background: none;\n font-weight: 500;\n transform-origin: 0 0;\n box-sizing: border-box;\n color: rgba(0, 0, 0, 0.87);\n\n &.hide {\n display: none;\n }\n }\n\n &.disabled textarea {\n opacity: 0.5;\n }\n\n label {\n top: -14px;\n left: -1px;\n height: 14px;\n color: white;\n padding: 0 4px;\n font-size: 9px;\n line-height: 13px;\n position: absolute;\n background: #4a4a99;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n }\n\n &.required {\n border: 1px solid rgb(204, 0, 0);\n }\n\n &.focused {\n animation: verdocs-field-pulse 0.4s 1;\n }\n\n verdocs-button-panel {\n top: -3px;\n left: -2px;\n opacity: 0.5;\n z-index: 1000;\n cursor: pointer;\n position: absolute;\n transform: scale(0.6);\n\n &[data-active],\n &:hover {\n opacity: 1;\n }\n\n .icon {\n svg {\n fill: #333333;\n }\n\n &:hover {\n svg {\n fill: #000000;\n }\n }\n }\n }\n\n .settings-icon {\n position: absolute;\n top: -3px;\n left: -20px;\n display: inline-block;\n cursor: pointer;\n opacity: 0.3;\n\n svg {\n fill: $border-color;\n }\n\n &:hover {\n opacity: 1;\n }\n }\n}\n\n@keyframes verdocs-field-pulse {\n 0% {\n background-color: rgba(0, 0, 0, 0.35);\n }\n 50% {\n background-color: rgba(0, 0, 0, 0);\n }\n 100% {\n background-color: rgba(0, 0, 0, 0.35);\n }\n}\n","import interact from 'interactjs';\nimport {IEnvelopeField, VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {ITemplateField, updateField, getRGBA} from '@verdocs/js-sdk';\nimport {Component, h, Host, Prop, Method, Event, EventEmitter, Element, Fragment, State} from '@stencil/core';\nimport {SettingsIcon} from '../../../utils/Icons';\nimport {Store} from '../../../utils/Datastore';\n\n/**\n * Display a multi-line text input field. Reminder: the \"position\" of the field is specified\n * as the BOTTOM-LEFT corner.\n */\n@Component({\n tag: 'verdocs-field-textarea',\n styleUrl: 'verdocs-field-textarea.scss',\n shadow: false,\n})\nexport class VerdocsFieldTextarea {\n @Element() el: HTMLElement;\n private inputEl: HTMLTextAreaElement;\n\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n * This component self-manages its resize (width) behavior when in edit-template mode, and uses\n * this endpoint to save changes.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * Fields may be attached to templates or envelopes, but only template fields may be edited.\n */\n @Prop({reflect: true}) source: 'template' | 'envelope' = 'template';\n\n /**\n * The source template or envelope ID the field is found in.\n */\n @Prop({reflect: true}) sourceid: string = '';\n\n /**\n * The name of the field to display.\n */\n @Prop({reflect: true}) fieldname: string = '';\n\n /**\n * Override the field's settings. This is intended to be used during signing when fields are being\n * mutated.\n */\n @Prop() field: IEnvelopeField | null | undefined = null;\n\n /**\n * If set, overrides the field's settings object. Primarily used to support \"preview\" modes where all fields are disabled.\n */\n @Prop({reflect: true}) disabled?: boolean = false;\n\n /**\n * If set, a settings icon will be displayed on hover. The settings shown allow the field's recipient and other settings to be\n * changed, so it should typically only be enabled in the Builder.\n */\n @Prop({reflect: true}) editable?: boolean = false;\n\n /**\n * If set, the field may be dragged to a new location. This should only be enabled in the Builder, or for self-placed fields.\n */\n @Prop({reflect: true}) moveable?: boolean = false;\n\n /**\n * If set, the field is considered \"done\" and is drawn in a display-final-value state.\n */\n @Prop({reflect: true}) done?: boolean = false;\n\n /**\n * If set, the field will be be scaled horizontally by this factor.\n */\n @Prop({reflect: true}) xscale?: number = 1;\n\n /**\n * If set, the field will be be scaled vertically by this factor.\n */\n @Prop({reflect: true}) yscale?: number = 1;\n\n /**\n * The page the field is on\n */\n @Prop({reflect: true}) pagenumber?: number = 1;\n\n @Method()\n async focusField() {\n this.inputEl.focus();\n }\n\n /**\n * Event fired when the field's settings are changed.\n */\n @Event({composed: true}) settingsChanged: EventEmitter<{fieldName: string; field: ITemplateField}>;\n\n /**\n * Event fired when the field is deleted.\n */\n @Event({composed: true}) deleted: EventEmitter<{fieldName: string}>;\n\n @State() showingProperties?: boolean = false;\n\n @Method()\n async showSettingsPanel() {\n const settingsPanel = document.getElementById(`verdocs-settings-panel-${this.fieldname}`) as any;\n if (settingsPanel && settingsPanel.showPanel) {\n settingsPanel.showPanel();\n }\n }\n\n @Method()\n async hideSettingsPanel() {\n const settingsPanel = document.getElementById(`verdocs-settings-panel-${this.fieldname}`) as any;\n if (settingsPanel && settingsPanel.hidePanel) {\n settingsPanel.hidePanel();\n }\n }\n\n @State() focused?: boolean = false;\n\n componentDidRender() {\n interact.dynamicDrop(true);\n\n if (this.editable) {\n interact(this.el).resizable({\n edges: {top: true, bottom: true, left: true, right: true},\n listeners: {\n start: this.handleResizeStart.bind(this),\n move: this.handleResize.bind(this),\n end: this.handleResizeEnd.bind(this),\n },\n });\n }\n }\n\n handleResizeStart(e: any) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n handleResize(e: any) {\n let {x = 0, y = 0, h = 0} = e.target.dataset;\n let {width, height} = e.rect;\n\n x = (parseFloat(x) || 0) + e.deltaRect.left;\n y = (parseFloat(y) || 0) + e.deltaRect.top;\n h = (parseFloat(h) || 0) + e.deltaRect.height;\n\n Object.assign(e.target.style, {\n width: `${width}px`,\n height: `${height}px`,\n transform: `translate(${x}px, ${y + h}px)`,\n });\n\n Object.assign(e.target.dataset, {x, y, h});\n }\n\n handleResizeEnd(e: any) {\n const {source, sourceid, fieldname} = this;\n const {field} = Store.getField(source, sourceid, fieldname, this.field);\n if (!field) {\n return;\n }\n\n const [translateX, translateY] = e.target.style.transform.split('(')[1].split(')')[0].split(',').map(parseFloat);\n\n const width = Math.round(parseFloat(e.target.style.width) / this.xscale);\n const height = Math.round(parseFloat(e.target.style.height) / this.yscale);\n const x = Math.round(field.x + translateX / this.xscale);\n const y = Math.round(field.y - translateY / this.yscale);\n\n updateField(this.endpoint, this.sourceid, this.fieldname, {x, y, width, height})\n .then(field => {\n this.settingsChanged?.emit({fieldName: this.fieldname, field});\n Object.assign(e.target.dataset, {x: 0, y: 0, h: 0});\n })\n .catch(e => console.log('Field update failed', e));\n }\n\n render() {\n const {source, sourceid, fieldname, editable = false, done = false, disabled = false, focused, xscale = 1, yscale = 1} = this;\n\n const {index, field} = Store.getField(source, sourceid, fieldname, this.field);\n const {required = false, placeholder = '', value = '', label = ''} = field || {};\n const backgroundColor = getRGBA(index);\n\n if (done) {\n return <Host class={{done}}>{value}</Host>;\n }\n\n return (\n <Host class={{required, disabled, done, focused}} style={{backgroundColor}}>\n {label && <label>{label}</label>}\n\n <textarea\n name={fieldname}\n disabled={disabled}\n required={required}\n placeholder={placeholder}\n ref={el => (this.inputEl = el)}\n onFocus={() => (this.focused = true)}\n onBlur={() => (this.focused = false)}\n >\n {value}\n </textarea>\n\n {editable && (\n <Fragment>\n <div\n id={`verdocs-settings-panel-trigger-${fieldname}`}\n style={{transform: `scale(${Math.floor((1 / xscale) * 1000) / 1000}, ${Math.floor((1 / yscale) * 1000) / 1000})`}}\n class=\"settings-icon\"\n innerHTML={SettingsIcon}\n onClick={(e: any) => {\n e.stopPropagation();\n this.showingProperties = !this.showingProperties;\n }}\n />\n\n {this.showingProperties && (\n <verdocs-portal anchor={`verdocs-settings-panel-trigger-${fieldname}`} onClickAway={() => (this.showingProperties = false)}>\n <verdocs-template-field-properties\n templateId={sourceid}\n fieldName={fieldname}\n onClose={() => (this.showingProperties = false)}\n onDelete={() => {\n this.deleted?.emit({fieldName: fieldname});\n return this.hideSettingsPanel();\n }}\n onSettingsChanged={e => {\n this.settingsChanged?.emit(e.detail);\n return this.hideSettingsPanel();\n }}\n helpText={'Text areas may be used to create multi-line text fields.'}\n />\n </verdocs-portal>\n )}\n </Fragment>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,9 +1,9 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-1f51246d.js';
2
2
  import { VerdocsEndpoint, getTemplate, updateField, deleteField } from '@verdocs/js-sdk';
3
3
  import { S as SDKError } from './p-fd97809c.js';
4
- import { S as Store } from './p-78d650ca.js';
4
+ import { S as Store } from './p-33300e3a.js';
5
5
  import { d as defineCustomElement$7 } from './p-f5ccf125.js';
6
- import { d as defineCustomElement$6 } from './p-f007234d.js';
6
+ import { d as defineCustomElement$6 } from './p-96774726.js';
7
7
  import { d as defineCustomElement$5 } from './p-39480096.js';
8
8
  import { d as defineCustomElement$4 } from './p-54e4bcee.js';
9
9
  import { d as defineCustomElement$3 } from './p-f7dc9e74.js';
@@ -310,4 +310,4 @@ function defineCustomElement() {
310
310
 
311
311
  export { VerdocsTemplateFieldProperties as V, defineCustomElement as d };
312
312
 
313
- //# sourceMappingURL=p-6cba6eef.js.map
313
+ //# sourceMappingURL=p-4dbb9783.js.map