@verdocs/web-sdk 4.2.157 → 5.0.0

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 (514) hide show
  1. package/dist/cjs/Datastore-b1742da2.js +1783 -0
  2. package/dist/cjs/Icons-02a47df1.js +7 -0
  3. package/dist/cjs/{index-2589e4d1.js → index-ccac8641.js} +19 -31
  4. package/dist/cjs/loader.cjs.js +2 -2
  5. package/dist/cjs/{utils-5accd019.js → utils-ba1e95e0.js} +4 -2
  6. package/dist/cjs/verdocs-auth.cjs.entry.js +1 -1
  7. package/dist/cjs/verdocs-build.cjs.entry.js +22 -13
  8. package/dist/cjs/verdocs-button-panel_2.cjs.entry.js +1 -1
  9. package/dist/cjs/{verdocs-button_3.cjs.entry.js → verdocs-button_2.cjs.entry.js} +1 -56
  10. package/dist/cjs/{verdocs-checkbox_4.cjs.entry.js → verdocs-checkbox_6.cjs.entry.js} +115 -24
  11. package/dist/cjs/verdocs-contact-picker_2.cjs.entry.js +2 -2
  12. package/dist/cjs/verdocs-dialog.cjs.entry.js +1 -1
  13. package/dist/cjs/verdocs-dropdown.cjs.entry.js +1 -1
  14. package/dist/cjs/verdocs-envelope-document-page.cjs.entry.js +2 -2
  15. package/dist/cjs/verdocs-envelope-recipient-link_2.cjs.entry.js +30 -15
  16. package/dist/cjs/verdocs-envelope-recipient-summary.cjs.entry.js +32 -17
  17. package/dist/cjs/verdocs-envelope-sidebar.cjs.entry.js +64 -45
  18. package/dist/cjs/verdocs-envelopes-list.cjs.entry.js +2 -2
  19. package/dist/cjs/verdocs-field-attachment_13.cjs.entry.js +105 -156
  20. package/dist/cjs/verdocs-field-payment.cjs.entry.js +38 -25
  21. package/dist/cjs/{verdocs-file-chooser_2.cjs.entry.js → verdocs-file-chooser.cjs.entry.js} +2 -21
  22. package/dist/cjs/verdocs-kba-dialog_2.cjs.entry.js +27 -5
  23. package/dist/cjs/verdocs-ok-dialog.cjs.entry.js +1 -1
  24. package/dist/cjs/verdocs-organization-card_2.cjs.entry.js +1 -1
  25. package/dist/cjs/verdocs-pagination_2.cjs.entry.js +2 -2
  26. package/dist/cjs/{verdocs-preview_9.cjs.entry.js → verdocs-preview_5.cjs.entry.js} +220 -593
  27. package/dist/cjs/verdocs-progress-bar.cjs.entry.js +25 -0
  28. package/dist/cjs/verdocs-quick-functions.cjs.entry.js +1 -1
  29. package/dist/cjs/verdocs-radio-button.cjs.entry.js +1 -1
  30. package/dist/cjs/verdocs-search-box.cjs.entry.js +1 -1
  31. package/dist/cjs/verdocs-search-tabs.cjs.entry.js +1 -1
  32. package/dist/cjs/verdocs-sign.cjs.entry.js +11 -12
  33. package/dist/cjs/verdocs-spinner.cjs.entry.js +1 -1
  34. package/dist/cjs/verdocs-status-indicator.cjs.entry.js +1 -1
  35. package/dist/cjs/verdocs-table.cjs.entry.js +1 -1
  36. package/dist/cjs/verdocs-template-card.cjs.entry.js +1 -1
  37. package/dist/cjs/verdocs-template-create.cjs.entry.js +108 -0
  38. package/dist/cjs/verdocs-template-document-page_2.cjs.entry.js +78 -63
  39. package/dist/cjs/verdocs-template-role-properties.cjs.entry.js +58 -37
  40. package/dist/cjs/verdocs-template-star.cjs.entry.js +2 -2
  41. package/dist/cjs/verdocs-template-tags.cjs.entry.js +2 -2
  42. package/dist/cjs/verdocs-templates-list.cjs.entry.js +1 -1
  43. package/dist/cjs/verdocs-toggle.cjs.entry.js +1 -1
  44. package/dist/cjs/verdocs-web-sdk.cjs.js +3 -3
  45. package/dist/collection/collection-manifest.json +2 -5
  46. package/dist/collection/components/controls/verdocs-text-input/verdocs-text-input.js +5 -21
  47. package/dist/collection/components/embeds/verdocs-build/verdocs-build.js +27 -40
  48. package/dist/collection/components/embeds/verdocs-preview/verdocs-preview.js +27 -28
  49. package/dist/collection/components/embeds/verdocs-send/verdocs-send.js +45 -44
  50. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js +12 -11
  51. package/dist/collection/components/embeds/verdocs-view/verdocs-view.js +28 -28
  52. package/dist/collection/components/envelopes/verdocs-envelope-recipient-link/verdocs-envelope-recipient-link.js +34 -15
  53. package/dist/collection/components/envelopes/verdocs-envelope-recipient-summary/verdocs-envelope-recipient-summary.js +35 -17
  54. package/dist/collection/components/envelopes/verdocs-envelope-sidebar/verdocs-envelope-sidebar.js +67 -45
  55. package/dist/collection/components/fields/verdocs-field-attachment/verdocs-field-attachment.js +29 -18
  56. package/dist/collection/components/fields/verdocs-field-checkbox/verdocs-field-checkbox.js +30 -20
  57. package/dist/collection/components/fields/verdocs-field-date/verdocs-field-date.js +30 -22
  58. package/dist/collection/components/fields/verdocs-field-dropdown/verdocs-field-dropdown.js +29 -17
  59. package/dist/collection/components/fields/verdocs-field-initial/verdocs-field-initial.js +30 -18
  60. package/dist/collection/components/fields/verdocs-field-payment/verdocs-field-payment.js +192 -139
  61. package/dist/collection/components/fields/verdocs-field-radio/verdocs-field-radio.js +30 -20
  62. package/dist/collection/components/fields/verdocs-field-signature/verdocs-field-signature.js +30 -18
  63. package/dist/collection/components/fields/verdocs-field-textarea/verdocs-field-textarea.js +31 -19
  64. package/dist/collection/components/fields/verdocs-field-textbox/verdocs-field-textbox.css +31 -0
  65. package/dist/collection/components/fields/verdocs-field-textbox/verdocs-field-textbox.js +44 -44
  66. package/dist/collection/components/fields/verdocs-field-timestamp/verdocs-field-timestamp.js +29 -17
  67. package/dist/collection/components/templates/verdocs-template-build-tabs/verdocs-template-build-tabs.js +37 -32
  68. package/dist/collection/components/templates/verdocs-template-create/verdocs-template-create.js +7 -15
  69. package/dist/collection/components/templates/verdocs-template-document-page/verdocs-template-document-page.css +6 -0
  70. package/dist/collection/components/templates/verdocs-template-document-page/verdocs-template-document-page.js +79 -61
  71. package/dist/collection/components/templates/verdocs-template-field-properties/verdocs-template-field-properties.js +48 -24
  72. package/dist/collection/components/templates/verdocs-template-fields/verdocs-template-fields.js +65 -64
  73. package/dist/collection/components/templates/verdocs-template-role-properties/verdocs-template-role-properties.js +61 -36
  74. package/dist/collection/components/templates/verdocs-template-roles/verdocs-template-roles.js +63 -46
  75. package/dist/collection/components/templates/verdocs-template-star/verdocs-template-star.js +1 -1
  76. package/dist/collection/components/templates/verdocs-template-tags/verdocs-template-tags.js +1 -1
  77. package/dist/collection/utils/Datastore.js +141 -0
  78. package/dist/collection/utils/Templates.js +2 -0
  79. package/dist/collection/utils/utils.js +3 -2
  80. package/dist/components/index.js +1 -7
  81. package/dist/components/{p-3044c9cb.js → p-070bebd7.js} +1 -1
  82. package/dist/components/{p-69881420.js → p-0ca7012b.js} +1 -1
  83. package/dist/components/{p-b2bf338f.js → p-0d063bf9.js} +65 -35
  84. package/dist/components/{p-ac7578f6.js → p-0e332769.js} +1 -1
  85. package/dist/components/{p-12594438.js → p-1030e0b1.js} +32 -32
  86. package/dist/components/{p-b11eb119.js → p-15d530b8.js} +6 -6
  87. package/dist/components/{p-71dd305b.js → p-18999830.js} +2 -2
  88. package/dist/components/{p-90540412.js → p-1ae5d7e0.js} +1 -1
  89. package/dist/components/{p-4d2f2954.js → p-1e2e8b1c.js} +1 -1
  90. package/dist/components/{p-c7a21595.js → p-1e67ebdf.js} +67 -42
  91. package/dist/components/{p-72e959a7.js → p-1fc15f94.js} +31 -32
  92. package/dist/components/{p-85ef4d07.js → p-2548f3f0.js} +49 -38
  93. package/dist/components/{p-9a85b700.js → p-258c3c53.js} +125 -101
  94. package/dist/components/{p-263dc67d.js → p-315d6592.js} +1 -1
  95. package/dist/components/{p-4dc4418a.js → p-3201d529.js} +1 -1
  96. package/dist/components/{p-7786799a.js → p-324ed895.js} +8 -4
  97. package/dist/components/{p-4c8548d4.js → p-4bc5ac82.js} +4 -3
  98. package/dist/components/{p-ffe8b41d.js → p-4dd750e9.js} +1 -1
  99. package/dist/components/{p-b679d760.js → p-4e08dcdd.js} +33 -32
  100. package/dist/components/{p-82fb3284.js → p-58c2bd5d.js} +1 -1
  101. package/dist/components/{p-d3170dcd.js → p-5a9cea40.js} +4 -4
  102. package/dist/components/{p-76282bf0.js → p-5d1dec61.js} +52 -53
  103. package/dist/components/{p-8b27ce22.js → p-5d4bbcd0.js} +1 -1
  104. package/dist/components/{p-8cd2e08d.js → p-5d82a9f3.js} +64 -57
  105. package/dist/components/{p-877eaf65.js → p-5eb45a4f.js} +1 -1
  106. package/dist/components/{p-cbb20d7a.js → p-6400f542.js} +36 -14
  107. package/dist/components/{p-6e8c00bc.js → p-642af221.js} +32 -31
  108. package/dist/components/{p-03660739.js → p-649a2ae7.js} +31 -32
  109. package/dist/components/{p-e4ac6259.js → p-6fcd99d1.js} +2 -2
  110. package/dist/components/p-7e9c499e.js +4 -0
  111. package/dist/components/{p-cdf871dd.js → p-81794664.js} +30 -29
  112. package/dist/components/{p-1b60debe.js → p-82a3f92e.js} +30 -29
  113. package/dist/components/{p-921297ba.js → p-84ae0283.js} +1 -1
  114. package/dist/components/{p-fbc69665.js → p-8d3c0b4c.js} +2 -2
  115. package/dist/components/{p-83a2fa2f.js → p-8fbc64e9.js} +72 -55
  116. package/dist/components/{p-761eefa9.js → p-94065def.js} +91 -90
  117. package/dist/components/{p-0e64ccc3.js → p-9bb47a5a.js} +1 -1
  118. package/dist/components/{p-df4ac086.js → p-a3e12c74.js} +2 -2
  119. package/dist/components/{p-6b369b14.js → p-b16c202a.js} +1 -1
  120. package/dist/components/{p-3518350d.js → p-b9034018.js} +4 -4
  121. package/dist/components/{p-b8cd75c0.js → p-b9a18099.js} +56 -46
  122. package/dist/components/{p-8f942993.js → p-bdc03b91.js} +32 -31
  123. package/dist/components/{p-4535a9fd.js → p-c7b00ce6.js} +36 -17
  124. package/dist/components/{p-e4a852b5.js → p-c8fedb4e.js} +7 -6
  125. package/dist/components/{p-0162bdd3.js → p-caa41754.js} +31 -34
  126. package/dist/components/{p-83245875.js → p-cf6ea837.js} +2 -2
  127. package/dist/components/p-da4d4eed.js +1781 -0
  128. package/dist/components/p-ea5954bd.js +4 -0
  129. package/dist/components/{p-1e63fb14.js → p-ec894daf.js} +2 -2
  130. package/dist/components/{p-556596e4.js → p-f72b9c45.js} +1 -1
  131. package/dist/components/{p-a7bbe96b.js → p-f990140a.js} +3 -3
  132. package/dist/components/{p-db4a15fd.js → p-fcad60f5.js} +1 -1
  133. package/dist/components/verdocs-auth.js +4 -4
  134. package/dist/components/verdocs-build.js +93 -115
  135. package/dist/components/verdocs-button-panel.js +1 -1
  136. package/dist/components/verdocs-button.js +1 -1
  137. package/dist/components/verdocs-checkbox.js +1 -1
  138. package/dist/components/verdocs-component-error.js +1 -1
  139. package/dist/components/verdocs-contact-picker.js +1 -1
  140. package/dist/components/verdocs-dialog.js +1 -1
  141. package/dist/components/verdocs-dropdown.js +1 -1
  142. package/dist/components/verdocs-envelope-document-page.js +1 -1
  143. package/dist/components/verdocs-envelope-recipient-link.js +1 -1
  144. package/dist/components/verdocs-envelope-recipient-summary.js +37 -19
  145. package/dist/components/verdocs-envelope-sidebar.js +76 -54
  146. package/dist/components/verdocs-envelopes-list.js +12 -12
  147. package/dist/components/verdocs-field-attachment.js +1 -1
  148. package/dist/components/verdocs-field-checkbox.js +1 -1
  149. package/dist/components/verdocs-field-date.js +1 -1
  150. package/dist/components/verdocs-field-dropdown.js +1 -1
  151. package/dist/components/verdocs-field-initial.js +1 -1
  152. package/dist/components/verdocs-field-payment.js +106 -33
  153. package/dist/components/verdocs-field-radio.js +1 -1
  154. package/dist/components/verdocs-field-signature.js +1 -1
  155. package/dist/components/verdocs-field-textarea.js +1 -1
  156. package/dist/components/verdocs-field-textbox.js +1 -1
  157. package/dist/components/verdocs-field-timestamp.js +1 -1
  158. package/dist/components/verdocs-file-chooser.js +56 -1
  159. package/dist/components/verdocs-help-icon.js +1 -1
  160. package/dist/components/verdocs-initial-dialog.js +1 -1
  161. package/dist/components/verdocs-kba-dialog.js +1 -1
  162. package/dist/components/verdocs-loader.js +1 -1
  163. package/dist/components/verdocs-ok-dialog.js +1 -1
  164. package/dist/components/verdocs-organization-card.js +2 -2
  165. package/dist/components/verdocs-pagination.js +1 -1
  166. package/dist/components/verdocs-portal.js +1 -1
  167. package/dist/components/verdocs-preview.js +1 -1
  168. package/dist/components/verdocs-progress-bar.js +1 -1
  169. package/dist/components/verdocs-quick-filter.js +1 -1
  170. package/dist/components/verdocs-quick-functions.js +1 -1
  171. package/dist/components/verdocs-radio-button.js +1 -1
  172. package/dist/components/verdocs-search-box.js +1 -1
  173. package/dist/components/verdocs-search-tabs.js +1 -1
  174. package/dist/components/verdocs-select-input.js +1 -1
  175. package/dist/components/verdocs-send.js +1 -1
  176. package/dist/components/verdocs-sign.js +24 -23
  177. package/dist/components/verdocs-signature-dialog.js +1 -1
  178. package/dist/components/verdocs-spinner.js +1 -1
  179. package/dist/components/verdocs-status-indicator.js +1 -1
  180. package/dist/components/verdocs-switch.js +1 -1
  181. package/dist/components/verdocs-table.js +1 -1
  182. package/dist/components/verdocs-tabs.js +1 -1
  183. package/dist/components/verdocs-template-build-tabs.js +1 -1
  184. package/dist/components/verdocs-template-card.js +1 -1
  185. package/dist/components/verdocs-template-create.js +148 -1
  186. package/dist/components/verdocs-template-document-page.js +1 -1
  187. package/dist/components/verdocs-template-field-properties.js +1 -1
  188. package/dist/components/verdocs-template-fields.js +1 -1
  189. package/dist/components/verdocs-template-role-properties.js +1 -1
  190. package/dist/components/verdocs-template-roles.js +1 -1
  191. package/dist/components/verdocs-template-star.js +1 -1
  192. package/dist/components/verdocs-template-tags.js +2 -2
  193. package/dist/components/verdocs-templates-list.js +11 -11
  194. package/dist/components/verdocs-text-input.js +1 -1
  195. package/dist/components/verdocs-toggle-button.js +1 -1
  196. package/dist/components/verdocs-toggle.js +1 -1
  197. package/dist/components/verdocs-toolbar-icon.js +1 -1
  198. package/dist/components/verdocs-upload-dialog.js +1 -1
  199. package/dist/components/verdocs-view.js +1 -1
  200. package/dist/custom-elements.json +2114 -0
  201. package/dist/esm/Datastore-52fcbac6.js +1781 -0
  202. package/dist/esm/Icons-190fd11d.js +4 -0
  203. package/dist/esm/{index-c8587076.js → index-272d51a4.js} +20 -30
  204. package/dist/esm/loader.js +3 -3
  205. package/dist/esm/{utils-6ecd6558.js → utils-47de6f79.js} +4 -3
  206. package/dist/esm/verdocs-auth.entry.js +1 -1
  207. package/dist/esm/verdocs-build.entry.js +23 -14
  208. package/dist/esm/verdocs-button-panel_2.entry.js +1 -1
  209. package/dist/esm/{verdocs-button_3.entry.js → verdocs-button_2.entry.js} +2 -56
  210. package/dist/esm/{verdocs-checkbox_4.entry.js → verdocs-checkbox_6.entry.js} +115 -26
  211. package/dist/esm/verdocs-contact-picker_2.entry.js +2 -2
  212. package/dist/esm/verdocs-dialog.entry.js +1 -1
  213. package/dist/esm/verdocs-dropdown.entry.js +1 -1
  214. package/dist/esm/verdocs-envelope-document-page.entry.js +2 -2
  215. package/dist/esm/verdocs-envelope-recipient-link_2.entry.js +31 -16
  216. package/dist/esm/verdocs-envelope-recipient-summary.entry.js +33 -18
  217. package/dist/esm/verdocs-envelope-sidebar.entry.js +65 -46
  218. package/dist/esm/verdocs-envelopes-list.entry.js +2 -2
  219. package/dist/esm/verdocs-field-attachment_13.entry.js +105 -156
  220. package/dist/esm/verdocs-field-payment.entry.js +38 -25
  221. package/dist/{components/p-fe2dca8c.js → esm/verdocs-file-chooser.entry.js} +8 -31
  222. package/dist/esm/verdocs-kba-dialog_2.entry.js +27 -5
  223. package/dist/esm/verdocs-ok-dialog.entry.js +1 -1
  224. package/dist/esm/verdocs-organization-card_2.entry.js +1 -1
  225. package/dist/esm/verdocs-pagination_2.entry.js +2 -2
  226. package/dist/esm/{verdocs-preview_9.entry.js → verdocs-preview_5.entry.js} +222 -591
  227. package/dist/esm/verdocs-progress-bar.entry.js +21 -0
  228. package/dist/esm/verdocs-quick-functions.entry.js +1 -1
  229. package/dist/esm/verdocs-radio-button.entry.js +1 -1
  230. package/dist/esm/verdocs-search-box.entry.js +1 -1
  231. package/dist/esm/verdocs-search-tabs.entry.js +1 -1
  232. package/dist/esm/verdocs-sign.entry.js +11 -12
  233. package/dist/esm/verdocs-spinner.entry.js +1 -1
  234. package/dist/esm/verdocs-status-indicator.entry.js +1 -1
  235. package/dist/esm/verdocs-table.entry.js +1 -1
  236. package/dist/esm/verdocs-template-card.entry.js +1 -1
  237. package/dist/{components/p-f9cc62a7.js → esm/verdocs-template-create.entry.js} +15 -69
  238. package/dist/esm/verdocs-template-document-page_2.entry.js +79 -64
  239. package/dist/esm/verdocs-template-role-properties.entry.js +59 -38
  240. package/dist/esm/verdocs-template-star.entry.js +2 -2
  241. package/dist/esm/verdocs-template-tags.entry.js +2 -2
  242. package/dist/esm/verdocs-templates-list.entry.js +1 -1
  243. package/dist/esm/verdocs-toggle.entry.js +1 -1
  244. package/dist/esm/verdocs-web-sdk.js +4 -4
  245. package/dist/esm-es5/Datastore-52fcbac6.js +1 -0
  246. package/dist/esm-es5/Icons-190fd11d.js +1 -0
  247. package/dist/esm-es5/index-272d51a4.js +1 -0
  248. package/dist/esm-es5/loader.js +1 -1
  249. package/dist/esm-es5/{utils-6ecd6558.js → utils-47de6f79.js} +1 -1
  250. package/dist/esm-es5/verdocs-auth.entry.js +1 -1
  251. package/dist/esm-es5/verdocs-build.entry.js +1 -1
  252. package/dist/esm-es5/verdocs-button-panel_2.entry.js +1 -1
  253. package/dist/esm-es5/verdocs-button_2.entry.js +1 -0
  254. package/dist/esm-es5/verdocs-checkbox_6.entry.js +1 -0
  255. package/dist/esm-es5/verdocs-contact-picker_2.entry.js +1 -1
  256. package/dist/esm-es5/verdocs-dialog.entry.js +1 -1
  257. package/dist/esm-es5/verdocs-dropdown.entry.js +1 -1
  258. package/dist/esm-es5/verdocs-envelope-document-page.entry.js +1 -1
  259. package/dist/esm-es5/verdocs-envelope-recipient-link_2.entry.js +1 -1
  260. package/dist/esm-es5/verdocs-envelope-recipient-summary.entry.js +1 -1
  261. package/dist/esm-es5/verdocs-envelope-sidebar.entry.js +1 -1
  262. package/dist/esm-es5/verdocs-envelopes-list.entry.js +1 -1
  263. package/dist/esm-es5/verdocs-field-attachment_13.entry.js +1 -1
  264. package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
  265. package/dist/esm-es5/verdocs-file-chooser.entry.js +1 -0
  266. package/dist/esm-es5/verdocs-kba-dialog_2.entry.js +1 -1
  267. package/dist/esm-es5/verdocs-ok-dialog.entry.js +1 -1
  268. package/dist/esm-es5/verdocs-organization-card_2.entry.js +1 -1
  269. package/dist/esm-es5/verdocs-pagination_2.entry.js +1 -1
  270. package/dist/esm-es5/verdocs-preview_5.entry.js +1 -0
  271. package/dist/esm-es5/verdocs-progress-bar.entry.js +1 -0
  272. package/dist/esm-es5/verdocs-quick-functions.entry.js +1 -1
  273. package/dist/esm-es5/verdocs-radio-button.entry.js +1 -1
  274. package/dist/esm-es5/verdocs-search-box.entry.js +1 -1
  275. package/dist/esm-es5/verdocs-search-tabs.entry.js +1 -1
  276. package/dist/esm-es5/verdocs-sign.entry.js +1 -1
  277. package/dist/esm-es5/verdocs-spinner.entry.js +1 -1
  278. package/dist/esm-es5/verdocs-status-indicator.entry.js +1 -1
  279. package/dist/esm-es5/verdocs-table.entry.js +1 -1
  280. package/dist/esm-es5/verdocs-template-card.entry.js +1 -1
  281. package/dist/esm-es5/verdocs-template-create.entry.js +1 -0
  282. package/dist/esm-es5/verdocs-template-document-page_2.entry.js +1 -1
  283. package/dist/esm-es5/verdocs-template-role-properties.entry.js +1 -1
  284. package/dist/esm-es5/verdocs-template-star.entry.js +1 -1
  285. package/dist/esm-es5/verdocs-template-tags.entry.js +1 -1
  286. package/dist/esm-es5/verdocs-templates-list.entry.js +1 -1
  287. package/dist/esm-es5/verdocs-toggle.entry.js +1 -1
  288. package/dist/esm-es5/verdocs-web-sdk.js +1 -1
  289. package/dist/types/components/controls/verdocs-text-input/verdocs-text-input.d.ts +0 -2
  290. package/dist/types/components/embeds/verdocs-build/verdocs-build.d.ts +8 -32
  291. package/dist/types/components/embeds/verdocs-preview/verdocs-preview.d.ts +6 -8
  292. package/dist/types/components/embeds/verdocs-send/verdocs-send.d.ts +7 -6
  293. package/dist/types/components/embeds/verdocs-sign/verdocs-sign.d.ts +3 -3
  294. package/dist/types/components/embeds/verdocs-view/verdocs-view.d.ts +6 -5
  295. package/dist/types/components/envelopes/verdocs-envelope-recipient-link/verdocs-envelope-recipient-link.d.ts +6 -3
  296. package/dist/types/components/envelopes/verdocs-envelope-recipient-summary/verdocs-envelope-recipient-summary.d.ts +6 -3
  297. package/dist/types/components/envelopes/verdocs-envelope-sidebar/verdocs-envelope-sidebar.d.ts +8 -4
  298. package/dist/types/components/fields/verdocs-field-attachment/verdocs-field-attachment.d.ts +6 -7
  299. package/dist/types/components/fields/verdocs-field-checkbox/verdocs-field-checkbox.d.ts +6 -7
  300. package/dist/types/components/fields/verdocs-field-date/verdocs-field-date.d.ts +6 -7
  301. package/dist/types/components/fields/verdocs-field-dropdown/verdocs-field-dropdown.d.ts +6 -7
  302. package/dist/types/components/fields/verdocs-field-initial/verdocs-field-initial.d.ts +6 -7
  303. package/dist/types/components/fields/verdocs-field-payment/verdocs-field-payment.d.ts +44 -30
  304. package/dist/types/components/fields/verdocs-field-radio/verdocs-field-radio.d.ts +6 -7
  305. package/dist/types/components/fields/verdocs-field-signature/verdocs-field-signature.d.ts +6 -7
  306. package/dist/types/components/fields/verdocs-field-textarea/verdocs-field-textarea.d.ts +6 -7
  307. package/dist/types/components/fields/verdocs-field-textbox/verdocs-field-textbox.d.ts +5 -12
  308. package/dist/types/components/fields/verdocs-field-timestamp/verdocs-field-timestamp.d.ts +6 -7
  309. package/dist/types/components/templates/verdocs-template-build-tabs/verdocs-template-build-tabs.d.ts +7 -4
  310. package/dist/types/components/templates/verdocs-template-document-page/verdocs-template-document-page.d.ts +7 -4
  311. package/dist/types/components/templates/verdocs-template-field-properties/verdocs-template-field-properties.d.ts +7 -8
  312. package/dist/types/components/templates/verdocs-template-fields/verdocs-template-fields.d.ts +6 -8
  313. package/dist/types/components/templates/verdocs-template-role-properties/verdocs-template-role-properties.d.ts +7 -7
  314. package/dist/types/components/templates/verdocs-template-roles/verdocs-template-roles.d.ts +7 -6
  315. package/dist/types/components.d.ts +176 -409
  316. package/dist/types/utils/Datastore.d.ts +24 -0
  317. package/dist/types/utils/Templates.d.ts +3 -0
  318. package/dist/types/utils/utils.d.ts +1 -1
  319. package/dist/verdocs-web-sdk/{p-efcbb3cf.entry.js → p-0ca1e87c.entry.js} +1 -1
  320. package/dist/verdocs-web-sdk/{p-dc271457.entry.js → p-167e3d7e.entry.js} +1 -1
  321. package/dist/verdocs-web-sdk/p-1efce6e0.entry.js +1 -0
  322. package/dist/verdocs-web-sdk/{p-7bd37bca.entry.js → p-2a1287ec.entry.js} +1 -1
  323. package/dist/verdocs-web-sdk/{p-5381847c.system.js → p-2be751c4.system.js} +1 -1
  324. package/dist/verdocs-web-sdk/{p-cb30f11e.entry.js → p-2f73c9de.entry.js} +1 -1
  325. package/dist/verdocs-web-sdk/p-3364cc13.system.entry.js +1 -0
  326. package/dist/verdocs-web-sdk/{p-03d40eb5.system.entry.js → p-37d747fb.system.entry.js} +1 -1
  327. package/dist/verdocs-web-sdk/p-386d789c.system.entry.js +1 -0
  328. package/dist/verdocs-web-sdk/p-3a1fa556.system.entry.js +1 -0
  329. package/dist/verdocs-web-sdk/{p-0fd57194.entry.js → p-41cbf650.entry.js} +1 -1
  330. package/dist/verdocs-web-sdk/{p-26715b8b.entry.js → p-4b36ca30.entry.js} +1 -1
  331. package/dist/verdocs-web-sdk/{p-98501408.system.entry.js → p-4e9e154f.system.entry.js} +1 -1
  332. package/dist/verdocs-web-sdk/{p-a3778013.system.entry.js → p-511a4ecc.system.entry.js} +1 -1
  333. package/dist/verdocs-web-sdk/{p-65a4e01e.entry.js → p-524f37a0.entry.js} +1 -1
  334. package/dist/verdocs-web-sdk/{p-13fe8650.system.entry.js → p-53f4c7c3.system.entry.js} +1 -1
  335. package/dist/verdocs-web-sdk/p-54f085d1.entry.js +1 -0
  336. package/dist/verdocs-web-sdk/{p-d1e64207.entry.js → p-584113d1.entry.js} +1 -1
  337. package/dist/verdocs-web-sdk/{p-f8cad58e.entry.js → p-5f1a000c.entry.js} +1 -1
  338. package/dist/verdocs-web-sdk/{p-256f07fd.system.entry.js → p-62f15675.system.entry.js} +1 -1
  339. package/dist/verdocs-web-sdk/{p-fae63f89.js → p-650697bd.js} +1 -1
  340. package/dist/verdocs-web-sdk/{p-c06d2604.entry.js → p-65c5398e.entry.js} +1 -1
  341. package/dist/verdocs-web-sdk/p-6a95ce12.system.entry.js +1 -0
  342. package/dist/verdocs-web-sdk/{p-0446030b.entry.js → p-6ced37ed.entry.js} +1 -1
  343. package/dist/verdocs-web-sdk/{p-16619383.entry.js → p-7464b84f.entry.js} +1 -1
  344. package/dist/verdocs-web-sdk/{p-6e3fa0c4.system.entry.js → p-761f6656.system.entry.js} +1 -1
  345. package/dist/verdocs-web-sdk/{p-30bc5986.entry.js → p-76cc40fe.entry.js} +1 -1
  346. package/dist/verdocs-web-sdk/{p-c45dc777.entry.js → p-771c2f92.entry.js} +1 -1
  347. package/dist/verdocs-web-sdk/p-78191329.system.entry.js +1 -0
  348. package/dist/verdocs-web-sdk/p-79f842b4.system.entry.js +1 -0
  349. package/dist/verdocs-web-sdk/{p-f3c995d8.system.entry.js → p-7c8938e7.system.entry.js} +1 -1
  350. package/dist/verdocs-web-sdk/p-7e9c499e.js +1 -0
  351. package/dist/verdocs-web-sdk/p-8221a48f.entry.js +1 -0
  352. package/dist/verdocs-web-sdk/p-860b9f94.system.entry.js +1 -0
  353. package/dist/verdocs-web-sdk/p-89cdecac.system.entry.js +1 -0
  354. package/dist/verdocs-web-sdk/p-8a2ff048.entry.js +1 -0
  355. package/dist/verdocs-web-sdk/{p-921b56fd.system.entry.js → p-914e131c.system.entry.js} +1 -1
  356. package/dist/verdocs-web-sdk/{p-5737f0ae.system.js → p-9186f42e.system.js} +1 -1
  357. package/dist/verdocs-web-sdk/{p-8e233a6b.system.entry.js → p-9227d400.system.entry.js} +1 -1
  358. package/dist/verdocs-web-sdk/p-92ce6180.entry.js +1 -0
  359. package/dist/verdocs-web-sdk/p-9567cb7d.system.entry.js +1 -0
  360. package/dist/verdocs-web-sdk/p-9812e99d.system.entry.js +1 -0
  361. package/dist/verdocs-web-sdk/{p-4b4801ad.system.entry.js → p-982f1b36.system.entry.js} +1 -1
  362. package/dist/verdocs-web-sdk/{p-ed6a5478.system.entry.js → p-9d0b0e36.system.entry.js} +1 -1
  363. package/dist/verdocs-web-sdk/{p-4266e717.system.entry.js → p-a08886c1.system.entry.js} +1 -1
  364. package/dist/verdocs-web-sdk/{p-e25e1dcf.entry.js → p-a165607e.entry.js} +1 -1
  365. package/dist/verdocs-web-sdk/p-a242aa80.system.entry.js +1 -0
  366. package/dist/verdocs-web-sdk/p-a7db9f1f.system.entry.js +1 -0
  367. package/dist/verdocs-web-sdk/{p-5d6a2fda.system.entry.js → p-a9635106.system.entry.js} +1 -1
  368. package/dist/verdocs-web-sdk/p-aebb0cd9.system.entry.js +1 -0
  369. package/dist/verdocs-web-sdk/p-b00ef194.system.entry.js +1 -0
  370. package/dist/verdocs-web-sdk/p-b0b958a0.entry.js +1 -0
  371. package/dist/verdocs-web-sdk/p-b8737f7b.entry.js +1 -0
  372. package/dist/verdocs-web-sdk/{p-49988769.js → p-b9654a5e.js} +2 -2
  373. package/dist/verdocs-web-sdk/p-bb0effe1.entry.js +1 -0
  374. package/dist/verdocs-web-sdk/p-bcc23811.entry.js +1 -0
  375. package/dist/verdocs-web-sdk/{p-281e63e5.entry.js → p-bd7406ae.entry.js} +1 -1
  376. package/dist/verdocs-web-sdk/{p-e8d91957.entry.js → p-bdd7b3d3.entry.js} +1 -1
  377. package/dist/verdocs-web-sdk/{p-c5818330.entry.js → p-c1728f5c.entry.js} +1 -1
  378. package/dist/verdocs-web-sdk/p-c18c718f.system.js +1 -0
  379. package/dist/verdocs-web-sdk/{p-731066de.system.entry.js → p-c6fd3e53.system.entry.js} +1 -1
  380. package/dist/verdocs-web-sdk/p-c7cd6843.entry.js +1 -0
  381. package/dist/verdocs-web-sdk/{p-4f7c72f9.system.entry.js → p-c9f40726.system.entry.js} +1 -1
  382. package/dist/verdocs-web-sdk/p-ca712f40.system.entry.js +1 -0
  383. package/dist/verdocs-web-sdk/p-cbb75c5e.system.entry.js +1 -0
  384. package/dist/verdocs-web-sdk/{p-751b0280.entry.js → p-d475fff3.entry.js} +1 -1
  385. package/dist/verdocs-web-sdk/{p-91c4298b.system.entry.js → p-d5870e33.system.entry.js} +1 -1
  386. package/dist/verdocs-web-sdk/{p-e5126f26.system.entry.js → p-d8dae4e9.system.entry.js} +1 -1
  387. package/dist/verdocs-web-sdk/p-d93c7661.entry.js +1 -0
  388. package/dist/verdocs-web-sdk/{p-93093a7a.system.entry.js → p-d98cbd0f.system.entry.js} +1 -1
  389. package/dist/verdocs-web-sdk/p-da4d4eed.js +1 -0
  390. package/dist/verdocs-web-sdk/{p-2298c22e.entry.js → p-ddb17b3e.entry.js} +1 -1
  391. package/dist/verdocs-web-sdk/p-df04f0ca.entry.js +1 -0
  392. package/dist/verdocs-web-sdk/p-e2b70dfb.system.js +1 -0
  393. package/dist/verdocs-web-sdk/{p-2aea0c7b.system.entry.js → p-e438bd02.system.entry.js} +1 -1
  394. package/dist/verdocs-web-sdk/p-e5044463.entry.js +1 -0
  395. package/dist/verdocs-web-sdk/{p-b066c4f2.system.entry.js → p-e5d291f3.system.entry.js} +1 -1
  396. package/dist/verdocs-web-sdk/{p-7f1e0c5e.entry.js → p-e6dbb0f7.entry.js} +1 -1
  397. package/dist/verdocs-web-sdk/{p-c4d61c66.entry.js → p-e83cd333.entry.js} +1 -1
  398. package/dist/verdocs-web-sdk/p-efd8149f.system.js +1 -0
  399. package/dist/verdocs-web-sdk/p-f4fcf7a5.entry.js +1 -0
  400. package/dist/verdocs-web-sdk/{p-97b951e6.system.entry.js → p-f5d01982.system.entry.js} +1 -1
  401. package/dist/verdocs-web-sdk/p-f65a9b03.entry.js +1 -0
  402. package/dist/verdocs-web-sdk/p-f7abe6e2.entry.js +1 -0
  403. package/dist/verdocs-web-sdk/{p-6e55af26.system.entry.js → p-f9b37af2.system.entry.js} +1 -1
  404. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  405. package/dist/verdocs-web-sdk/verdocs-web-sdk.js +1 -1
  406. package/package.json +3 -3
  407. package/dist/cjs/EnvelopeStore-f1cd9bd3.js +0 -96
  408. package/dist/cjs/Icons-9a6f2f7c.js +0 -86
  409. package/dist/cjs/TemplateFieldStore-7bcc0f7a.js +0 -44
  410. package/dist/cjs/TemplateRoleStore-e8bb00ec.js +0 -51
  411. package/dist/cjs/TemplateStore-db21be4d.js +0 -99
  412. package/dist/cjs/index-2a189d85.js +0 -3721
  413. package/dist/cjs/index-76d03a35.js +0 -196
  414. package/dist/cjs/verdocs-loader.cjs.entry.js +0 -20
  415. package/dist/collection/components/templates/verdocs-template-attachments/verdocs-template-attachments.css +0 -120
  416. package/dist/collection/components/templates/verdocs-template-attachments/verdocs-template-attachments.js +0 -284
  417. package/dist/collection/components/templates/verdocs-template-name/verdocs-template-name.css +0 -0
  418. package/dist/collection/components/templates/verdocs-template-name/verdocs-template-name.js +0 -196
  419. package/dist/collection/components/templates/verdocs-template-visibillity/verdocs-template-visibility.css +0 -86
  420. package/dist/collection/components/templates/verdocs-template-visibillity/verdocs-template-visibility.js +0 -203
  421. package/dist/collection/utils/EnvelopeStore.js +0 -90
  422. package/dist/collection/utils/TemplateFieldStore.js +0 -36
  423. package/dist/collection/utils/TemplateRoleStore.js +0 -41
  424. package/dist/collection/utils/TemplateStore.js +0 -94
  425. package/dist/components/p-00d39dca.js +0 -39
  426. package/dist/components/p-0933fb2d.js +0 -127
  427. package/dist/components/p-09d28afd.js +0 -97
  428. package/dist/components/p-3555cef1.js +0 -122
  429. package/dist/components/p-474b6663.js +0 -1314
  430. package/dist/components/p-821f2345.js +0 -93
  431. package/dist/components/p-9b5a4f9e.js +0 -44
  432. package/dist/components/p-a706bac9.js +0 -3719
  433. package/dist/components/p-b0766439.js +0 -76
  434. package/dist/components/p-ed9a1a21.js +0 -200
  435. package/dist/components/verdocs-template-attachments.d.ts +0 -11
  436. package/dist/components/verdocs-template-attachments.js +0 -6
  437. package/dist/components/verdocs-template-name.d.ts +0 -11
  438. package/dist/components/verdocs-template-name.js +0 -6
  439. package/dist/components/verdocs-template-visibility.d.ts +0 -11
  440. package/dist/components/verdocs-template-visibility.js +0 -6
  441. package/dist/esm/EnvelopeStore-4599b7d3.js +0 -93
  442. package/dist/esm/Icons-faf0377f.js +0 -76
  443. package/dist/esm/TemplateFieldStore-909147d8.js +0 -39
  444. package/dist/esm/TemplateRoleStore-2fef1fdb.js +0 -44
  445. package/dist/esm/TemplateStore-ace14a8b.js +0 -97
  446. package/dist/esm/index-24d8ae6a.js +0 -194
  447. package/dist/esm/index-7588a071.js +0 -3719
  448. package/dist/esm/verdocs-file-chooser_2.entry.js +0 -53
  449. package/dist/esm/verdocs-loader.entry.js +0 -16
  450. package/dist/esm-es5/EnvelopeStore-4599b7d3.js +0 -1
  451. package/dist/esm-es5/Icons-faf0377f.js +0 -1
  452. package/dist/esm-es5/TemplateFieldStore-909147d8.js +0 -1
  453. package/dist/esm-es5/TemplateRoleStore-2fef1fdb.js +0 -1
  454. package/dist/esm-es5/TemplateStore-ace14a8b.js +0 -1
  455. package/dist/esm-es5/index-24d8ae6a.js +0 -1
  456. package/dist/esm-es5/index-7588a071.js +0 -1
  457. package/dist/esm-es5/index-c8587076.js +0 -1
  458. package/dist/esm-es5/verdocs-button_3.entry.js +0 -1
  459. package/dist/esm-es5/verdocs-checkbox_4.entry.js +0 -1
  460. package/dist/esm-es5/verdocs-file-chooser_2.entry.js +0 -1
  461. package/dist/esm-es5/verdocs-loader.entry.js +0 -1
  462. package/dist/esm-es5/verdocs-preview_9.entry.js +0 -1
  463. package/dist/types/components/templates/verdocs-template-attachments/verdocs-template-attachments.d.ts +0 -56
  464. package/dist/types/components/templates/verdocs-template-name/verdocs-template-name.d.ts +0 -41
  465. package/dist/types/components/templates/verdocs-template-visibillity/verdocs-template-visibility.d.ts +0 -42
  466. package/dist/types/utils/EnvelopeStore.d.ts +0 -12
  467. package/dist/types/utils/TemplateFieldStore.d.ts +0 -9
  468. package/dist/types/utils/TemplateRoleStore.d.ts +0 -11
  469. package/dist/types/utils/TemplateStore.d.ts +0 -16
  470. package/dist/verdocs-web-sdk/p-0c51c5be.entry.js +0 -1
  471. package/dist/verdocs-web-sdk/p-194f9f4d.entry.js +0 -1
  472. package/dist/verdocs-web-sdk/p-1ce2f724.system.entry.js +0 -1
  473. package/dist/verdocs-web-sdk/p-2211234d.system.js +0 -1
  474. package/dist/verdocs-web-sdk/p-2305c1e8.system.entry.js +0 -1
  475. package/dist/verdocs-web-sdk/p-261d5b4a.system.entry.js +0 -1
  476. package/dist/verdocs-web-sdk/p-341d540f.system.entry.js +0 -1
  477. package/dist/verdocs-web-sdk/p-368a36ea.system.js +0 -1
  478. package/dist/verdocs-web-sdk/p-36b5d46e.entry.js +0 -1
  479. package/dist/verdocs-web-sdk/p-569434fb.system.js +0 -1
  480. package/dist/verdocs-web-sdk/p-56c1ebd6.entry.js +0 -1
  481. package/dist/verdocs-web-sdk/p-5bf2910c.system.entry.js +0 -1
  482. package/dist/verdocs-web-sdk/p-6bc1b9f4.entry.js +0 -1
  483. package/dist/verdocs-web-sdk/p-6fda3817.js +0 -1
  484. package/dist/verdocs-web-sdk/p-77ec43a3.system.entry.js +0 -1
  485. package/dist/verdocs-web-sdk/p-79e222f8.entry.js +0 -1
  486. package/dist/verdocs-web-sdk/p-7a5b80f8.entry.js +0 -1
  487. package/dist/verdocs-web-sdk/p-7d18cb23.system.entry.js +0 -1
  488. package/dist/verdocs-web-sdk/p-7d593603.system.js +0 -1
  489. package/dist/verdocs-web-sdk/p-9fabdbb1.system.entry.js +0 -1
  490. package/dist/verdocs-web-sdk/p-9ff1be63.entry.js +0 -1
  491. package/dist/verdocs-web-sdk/p-a04aac80.entry.js +0 -1
  492. package/dist/verdocs-web-sdk/p-a1a2c13b.entry.js +0 -1
  493. package/dist/verdocs-web-sdk/p-a706bac9.js +0 -1
  494. package/dist/verdocs-web-sdk/p-b0766439.js +0 -1
  495. package/dist/verdocs-web-sdk/p-b0bc8c15.system.entry.js +0 -1
  496. package/dist/verdocs-web-sdk/p-b17843d9.system.js +0 -1
  497. package/dist/verdocs-web-sdk/p-b1fcc883.entry.js +0 -1
  498. package/dist/verdocs-web-sdk/p-b56793c4.entry.js +0 -1
  499. package/dist/verdocs-web-sdk/p-b84d1a25.system.entry.js +0 -1
  500. package/dist/verdocs-web-sdk/p-bb253149.js +0 -1
  501. package/dist/verdocs-web-sdk/p-bd642df2.js +0 -1
  502. package/dist/verdocs-web-sdk/p-c7115b35.system.entry.js +0 -1
  503. package/dist/verdocs-web-sdk/p-cd546dbe.system.js +0 -1
  504. package/dist/verdocs-web-sdk/p-cde4c155.js +0 -1
  505. package/dist/verdocs-web-sdk/p-d3ddc7c8.system.entry.js +0 -1
  506. package/dist/verdocs-web-sdk/p-d86c8c1a.entry.js +0 -1
  507. package/dist/verdocs-web-sdk/p-dbddb752.system.entry.js +0 -1
  508. package/dist/verdocs-web-sdk/p-dcd3eb1b.js +0 -1
  509. package/dist/verdocs-web-sdk/p-e123f19c.entry.js +0 -1
  510. package/dist/verdocs-web-sdk/p-e294b6c2.system.entry.js +0 -1
  511. package/dist/verdocs-web-sdk/p-e48b387d.system.entry.js +0 -1
  512. package/dist/verdocs-web-sdk/p-e83a163d.entry.js +0 -1
  513. package/dist/verdocs-web-sdk/p-f5064e0c.system.js +0 -1
  514. package/dist/verdocs-web-sdk/p-f79b8537.system.js +0 -1
@@ -1,16 +1,11 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, F as Fragment, g as getElement } from './index-c8587076.js';
2
- import { VerdocsEndpoint, integerSequence, getOrganizationContacts, isValidEmail, createEnvelope, getRGBA, formatFullName, createTemplateDocument, deleteTemplateDocument, createTemplate, updateField, createField, updateTemplate, updateTemplateRole, createTemplateRole } from '@verdocs/js-sdk';
3
- import { g as getTemplateFieldStore, u as updateStoreField } from './TemplateFieldStore-909147d8.js';
4
- import { g as getTemplateRoleStore, b as getRoleNames, a as getRoleIndex, u as updateStoreRole } from './TemplateRoleStore-2fef1fdb.js';
5
- import { g as getTemplateStore } from './TemplateStore-ace14a8b.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, F as Fragment, g as getElement } from './index-272d51a4.js';
2
+ import { VerdocsEndpoint, getTemplate, integerSequence, getOrganizationContacts, isValidEmail, createEnvelope, getRGBA, formatFullName, updateField, createField, updateTemplateRole, createTemplateRole } from '@verdocs/js-sdk';
6
3
  import { S as SDKError } from './errors-887f1e88.js';
4
+ import { S as Store } from './Datastore-52fcbac6.js';
7
5
  import { V as VerdocsToast } from './Toast-c4843828.js';
8
- import { D as DocIcon, P as PngIcon, J as JpgIcon, a as PdfIcon, F as FileIcon$1, b as PageCountIcon, T as TrashIcon } from './Icons-faf0377f.js';
9
6
  import { f as format } from './format-b8602175.js';
10
7
  import { i as interact } from './interact.min-a71beb3d.js';
11
- import { b as updateCssTransform, c as removeCssTransform, g as getFieldId, d as defaultWidth, e as defaultHeight } from './utils-6ecd6558.js';
12
- import './index-24d8ae6a.js';
13
- import './index-7588a071.js';
8
+ import { b as updateCssTransform, c as removeCssTransform, d as setControlStyles, g as getFieldId, e as defaultWidth, f as defaultHeight } from './utils-47de6f79.js';
14
9
  import './_commonjsHelpers-bdec4bbd.js';
15
10
  import './Types-95d86a44.js';
16
11
 
@@ -21,16 +16,31 @@ const VerdocsPreview = class {
21
16
  constructor(hostRef) {
22
17
  registerInstance(this, hostRef);
23
18
  this.sdkError = createEvent(this, "sdkError", 7);
24
- this.templateStore = null;
25
- this.fieldStore = null;
26
- this.roleStore = null;
19
+ this.templateListenerId = null;
27
20
  this.endpoint = VerdocsEndpoint.getDefault();
28
21
  this.templateId = null;
29
22
  this.loading = true;
23
+ this.template = null;
24
+ }
25
+ disconnectedCallback() {
26
+ this.unlistenToTemplate();
27
+ }
28
+ async listenToTemplate() {
29
+ this.unlistenToTemplate();
30
+ Store.subscribe('templates', this.templateId, () => getTemplate(this.endpoint, this.templateId), false, (template) => {
31
+ this.template = template;
32
+ this.loading = false;
33
+ });
34
+ }
35
+ unlistenToTemplate() {
36
+ if (this.templateListenerId) {
37
+ Store.store.delListener(this.templateListenerId);
38
+ this.templateListenerId = null;
39
+ }
30
40
  }
31
41
  onTemplateIdChanged(newTemplateId) {
32
42
  console.log('[PREVIEW] Template ID changed', newTemplateId);
33
- this.loadTemplate(newTemplateId).catch((e) => console.log('Unknown Error', e));
43
+ this.listenToTemplate();
34
44
  }
35
45
  async componentWillLoad() {
36
46
  var _a, _b, _c;
@@ -44,40 +54,25 @@ const VerdocsPreview = class {
44
54
  console.log(`[PREVIEW] Missing required template ID ${this.templateId}`);
45
55
  return;
46
56
  }
47
- return this.loadTemplate(this.templateId);
57
+ this.listenToTemplate();
48
58
  }
49
59
  catch (e) {
50
60
  console.log('[PREVIEW] Error with preview session', e);
51
61
  (_a = this.sdkError) === null || _a === void 0 ? void 0 : _a.emit(new SDKError(e.message, (_b = e.response) === null || _b === void 0 ? void 0 : _b.status, (_c = e.response) === null || _c === void 0 ? void 0 : _c.data));
52
62
  }
53
63
  }
54
- async loadTemplate(templateId) {
55
- if (templateId) {
56
- getTemplateStore(this.endpoint, templateId, false)
57
- .then(ts => {
58
- this.templateStore = ts;
59
- this.fieldStore = getTemplateFieldStore(this.templateId);
60
- this.roleStore = getTemplateRoleStore(this.templateId);
61
- this.loading = false;
62
- })
63
- .catch(e => {
64
- console.log('Unable to load template', e);
65
- throw e;
66
- });
67
- }
68
- }
69
64
  handlePageRendered(_e) {
70
65
  // const pageInfo = e.detail as IDocumentPageInfo;
71
- // const fields = this.templateStore?.state?.fields.filter(field => field.page === pageInfo.pageNumber);
66
+ // const fields = (this.template?.fields || []).filter(field => field.page === pageInfo.pageNumber);
72
67
  // console.log('[PREVIEW] Page rendered', pageInfo, fields);
73
68
  // fields.forEach(field => renderDocumentField(field, pageInfo, {disabled: true, editable: false, draggable: false}));
74
69
  }
75
70
  render() {
76
- var _a, _b;
71
+ var _a;
77
72
  if (this.loading) {
78
73
  return (h(Host, null, h("verdocs-loader", null)));
79
74
  }
80
- return (h(Host, null, (((_b = (_a = this.templateStore) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.documents) || []).map(document => {
75
+ return (h(Host, null, (((_a = this.template) === null || _a === void 0 ? void 0 : _a.documents) || []).map(document => {
81
76
  const pageNumbers = integerSequence(1, document.pages);
82
77
  return (h(Fragment, null, pageNumbers.map(pageNumber => {
83
78
  var _a;
@@ -95,6 +90,9 @@ const VerdocsPreview = class {
95
90
  };
96
91
  VerdocsPreview.style = VerdocsPreviewStyle0;
97
92
 
93
+ const getRoleNames = (template) => ((template === null || template === void 0 ? void 0 : template.roles) || []).map(role => role.name);
94
+ const getRoleIndex = (template, role_name) => Math.max(getRoleNames(template).findIndex(name => name === role_name), 0);
95
+
98
96
  const verdocsSendCss = "@-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-send{padding:10px;position:relative;background:#ffffff;-ms-flex-direction:column;flex-direction:column;font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif}verdocs-send.sendable{display:-ms-flexbox;display:flex}verdocs-send .recipients{position:relative}verdocs-send .left-line{top:32px;left:20px;z-index:1;width:12px;bottom:30px;position:absolute;background:#ffffff;border-left:3px dotted #9b9b9b}verdocs-send .level{display:-ms-flexbox;display:flex;-webkit-column-gap:10px;-moz-column-gap:10px;column-gap:10px;margin-left:50px;position:relative;-ms-flex-direction:row;flex-direction:row;padding:8px 0 4px 0;border-bottom:1px solid rgba(151, 151, 151, 0.2666666667)}verdocs-send .level .level-icon{top:14px;z-index:2;left:-40px;width:24px;height:24px;position:absolute;background:#ffffff}verdocs-send .level .level-icon svg{fill:rgba(0, 0, 0, 0.537254902)}verdocs-send .level .recipient{height:30px;display:-ms-flexbox;display:flex;-ms-flex:0 0 30px;flex:0 0 30px;color:#000000;cursor:pointer;font-size:14px;-ms-flex-align:center;align-items:center;border-radius:30px;-ms-flex-direction:row;flex-direction:row;background:#dddddd;white-space:nowrap;border:2px solid #dddddd;padding:2px 10px 2px 14px}verdocs-send .level .recipient .icon{width:22px;height:22px;-ms-flex:0 0 22px;flex:0 0 22px;margin:0 0 0 10px}verdocs-send .level .recipient .icon svg{width:22px;height:22px;fill:#333333;outline:none}verdocs-send .level .complete{-ms-flex:1;flex:1;height:30px;display:-ms-flexbox;display:flex;color:#000000;font-size:14px;-ms-flex-align:center;align-items:center;-ms-flex-direction:row;flex-direction:row;padding:3px 10px 3px 2px}verdocs-send .buttons{display:-ms-flexbox;display:flex;margin-top:10px;-webkit-column-gap:15px;-moz-column-gap:15px;column-gap:15px;-ms-flex-direction:row;flex-direction:row}verdocs-send verdocs-contact-picker{left:0;top:41px;z-index:10;position:absolute;border:1px solid #dddddd;-webkit-box-shadow:0 0 6px 3px rgba(0, 0, 0, 0.1);box-shadow:0 0 6px 3px rgba(0, 0, 0, 0.1)}";
99
97
  const VerdocsSendStyle0 = verdocsSendCss;
100
98
 
@@ -110,6 +108,7 @@ const VerdocsSend = class {
110
108
  this.exit = createEvent(this, "exit", 7);
111
109
  this.sdkError = createEvent(this, "sdkError", 7);
112
110
  this.searchContacts = createEvent(this, "searchContacts", 7);
111
+ this.templateListenerId = null;
113
112
  this.endpoint = VerdocsEndpoint.getDefault();
114
113
  this.templateId = null;
115
114
  this.environment = '';
@@ -118,15 +117,33 @@ const VerdocsSend = class {
118
117
  this.sessionContacts = [];
119
118
  this.sending = false;
120
119
  this.rolesCompleted = {};
121
- this.templateStore = null;
122
- this.roleStore = null;
120
+ this.loading = true;
121
+ this.template = null;
122
+ }
123
+ disconnectedCallback() {
124
+ this.unlistenToTemplate();
125
+ }
126
+ async listenToTemplate() {
127
+ console.log('[SEND] Loading template', this.templateId);
128
+ this.unlistenToTemplate();
129
+ Store.subscribe('templates', this.templateId, () => getTemplate(this.endpoint, this.templateId), false, (template) => {
130
+ this.template = template;
131
+ this.loading = false;
132
+ this.rolesCompleted = {};
133
+ });
134
+ }
135
+ unlistenToTemplate() {
136
+ if (this.templateListenerId) {
137
+ Store.store.delListener(this.templateListenerId);
138
+ this.templateListenerId = null;
139
+ }
123
140
  }
124
141
  async reset() {
125
142
  this.rolesCompleted = {};
126
143
  }
127
144
  onTemplateIdChanged(newTemplateId) {
128
145
  console.log('[SEND] Template ID changed', newTemplateId);
129
- this.loadTemplate(newTemplateId).catch((e) => console.log('Unknown Error', e));
146
+ this.listenToTemplate();
130
147
  }
131
148
  async componentWillLoad() {
132
149
  var _a, _b, _c;
@@ -163,37 +180,18 @@ const VerdocsSend = class {
163
180
  console.log(`[SEND] Missing required template ID ${this.templateId}`);
164
181
  return;
165
182
  }
166
- return this.loadTemplate(this.templateId);
183
+ this.listenToTemplate();
167
184
  }
168
185
  catch (e) {
169
186
  console.log('[SEND] Error with send session', e);
170
187
  (_a = this.sdkError) === null || _a === void 0 ? void 0 : _a.emit(new SDKError(e.message, (_b = e.response) === null || _b === void 0 ? void 0 : _b.status, (_c = e.response) === null || _c === void 0 ? void 0 : _c.data));
171
188
  }
172
189
  }
173
- async loadTemplate(templateId) {
174
- var _a, _b, _c, _d, _e;
175
- if (!templateId) {
176
- return;
177
- }
178
- try {
179
- this.templateStore = await getTemplateStore(this.endpoint, templateId, false);
180
- this.roleStore = getTemplateRoleStore(templateId);
181
- this.recomputeRolesCompleted();
182
- if (!((_b = (_a = this.templateStore) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.is_sendable)) {
183
- console.warn(`[SEND] Template is not sendable`, templateId);
184
- }
185
- }
186
- catch (e) {
187
- console.log('[SEND] Error with preview session', e);
188
- (_c = this.sdkError) === null || _c === void 0 ? void 0 : _c.emit(new SDKError(e.message, (_d = e.response) === null || _d === void 0 ? void 0 : _d.status, (_e = e.response) === null || _e === void 0 ? void 0 : _e.data));
189
- }
190
- }
191
190
  recomputeRolesCompleted() {
192
191
  var _a;
193
- const roles = ((_a = this.roleStore) === null || _a === void 0 ? void 0 : _a.get('roles')) || [];
194
- const rolesAtLevel = {};
195
192
  this.rolesCompleted = {};
196
- roles.forEach(role => {
193
+ const rolesAtLevel = {};
194
+ (((_a = this.template) === null || _a === void 0 ? void 0 : _a.roles) || []).forEach(role => {
197
195
  const level = role.sequence - 1;
198
196
  rolesAtLevel[level] || (rolesAtLevel[level] = []);
199
197
  const id = `r-${level}-${rolesAtLevel[level].length}`;
@@ -207,15 +205,13 @@ const VerdocsSend = class {
207
205
  }
208
206
  getLevels() {
209
207
  var _a;
210
- const roles = ((_a = this.roleStore) === null || _a === void 0 ? void 0 : _a.get('roles')) || [];
211
- const levels = [...new Set(roles.map(role => role.sequence - 1))];
208
+ const levels = [...new Set((((_a = this.template) === null || _a === void 0 ? void 0 : _a.roles) || []).map(role => role.sequence - 1))];
212
209
  levels.sort((a, b) => a - b);
213
210
  return levels;
214
211
  }
215
212
  getRolesAtLevel(level) {
216
213
  var _a;
217
- const roles = ((_a = this.roleStore) === null || _a === void 0 ? void 0 : _a.get('roles')) || [];
218
- const rolesAtLevel = roles
214
+ const rolesAtLevel = (((_a = this.template) === null || _a === void 0 ? void 0 : _a.roles) || [])
219
215
  .filter(role => role.sequence - 1 === level)
220
216
  .map((role, index) => ({
221
217
  ...role,
@@ -248,7 +244,7 @@ const VerdocsSend = class {
248
244
  this.showPickerForId = role.id;
249
245
  }
250
246
  handleSend(e) {
251
- var _a, _b, _c;
247
+ var _a, _b;
252
248
  if (this.sending) {
253
249
  console.log('[SEND] Skipping duplicate send', e);
254
250
  return;
@@ -260,7 +256,7 @@ const VerdocsSend = class {
260
256
  (_a = this.sendingEnvelope) === null || _a === void 0 ? void 0 : _a.emit({ sending: true });
261
257
  const details = {
262
258
  template_id: this.templateId,
263
- name: ((_c = (_b = this.templateStore) === null || _b === void 0 ? void 0 : _b.state) === null || _c === void 0 ? void 0 : _c.name) || '',
259
+ name: ((_b = this.template) === null || _b === void 0 ? void 0 : _b.name) || 'New Envelope',
264
260
  environment: this.environment,
265
261
  initial_reminder: 0,
266
262
  followup_reminders: 0,
@@ -271,12 +267,12 @@ const VerdocsSend = class {
271
267
  console.log('[SEND] Creating envelope', details);
272
268
  createEnvelope(this.endpoint, details)
273
269
  .then(r => {
274
- var _a, _b, _c, _d;
270
+ var _a, _b;
275
271
  console.log('[SEND] Send envelope', r);
276
272
  this.reset().catch((e) => console.log('Unknown Error', e));
277
273
  this.sending = false;
278
274
  (_a = this.sendingEnvelope) === null || _a === void 0 ? void 0 : _a.emit({ sending: false });
279
- (_b = this.send) === null || _b === void 0 ? void 0 : _b.emit({ ...details, name: ((_d = (_c = this.templateStore) === null || _c === void 0 ? void 0 : _c.state) === null || _d === void 0 ? void 0 : _d.name) || 'New Envelope', envelope_id: r.id, envelope: r });
275
+ (_b = this.send) === null || _b === void 0 ? void 0 : _b.emit({ ...details, name: details.name, envelope_id: r.id, envelope: r });
280
276
  })
281
277
  .catch(e => {
282
278
  var _a, _b, _c;
@@ -292,22 +288,25 @@ const VerdocsSend = class {
292
288
  (_a = this.exit) === null || _a === void 0 ? void 0 : _a.emit();
293
289
  }
294
290
  render() {
295
- var _a, _b;
291
+ var _a;
292
+ if (this.loading) {
293
+ return (h(Host, null, h("verdocs-loader", null)));
294
+ }
296
295
  if (!this.endpoint.session) {
297
296
  return (h(Host, { style: { display: 'flex' } }, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
298
297
  }
299
298
  const levels = this.getLevels();
300
- const roleNames = getRoleNames(this.roleStore);
301
299
  const rolesAssigned = Object.values(this.rolesCompleted).filter(recipient => isValidEmail(recipient.email));
302
300
  // TODO: Reactivate once SMS is re-enabled
303
301
  // const rolesAssigned = Object.values(this.rolesCompleted).filter(recipient => isValidEmail(recipient.email) || isValidPhone(recipient.phone));
304
- const allRolesAssigned = rolesAssigned.length >= roleNames.length;
305
- // console.log('[SEND] Roles completed', this.rolesCompleted);
306
- return (h(Host, { class: { sendable: (_b = (_a = this.templateStore) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.is_sendable } }, h("div", { class: "recipients" }, h("div", { class: "left-line" }), h("div", { class: `level level-start` }, this.getLevelIcon(-1), h("div", { class: "complete" }, "Send Envelope")), levels.map(level => (h("div", { class: `level level-${level}` }, this.getLevelIcon(level), this.getRolesAtLevel(level).map(role => {
302
+ const allRolesAssigned = rolesAssigned.length >= getRoleNames(this.template).length;
303
+ 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(-1), h("div", { class: "complete" }, "Send Envelope")), levels.map(level => (h("div", { class: `level level-${level}` }, this.getLevelIcon(level), this.getRolesAtLevel(level).map(role => {
307
304
  var _a, _b, _c, _d;
308
305
  const unknown = !role.email;
309
306
  const elId = `verdocs-send-recipient-${role.role_name}`;
310
- return unknown ? (h("div", { class: "recipient", "data-ri": getRoleIndex(this.roleStore, role.role_name), "data-rn": role.role_name, style: { backgroundColor: getRGBA(getRoleIndex(this.roleStore, role.role_name)) }, onClick: e => this.handleClickRole(e, role), id: elId }, ((_a = this.rolesCompleted[role.id]) === null || _a === void 0 ? void 0 : _a.first_name) ? formatFullName(this.rolesCompleted[role.id]) : role.role_name, h("div", { class: "icon", innerHTML: editIcon }), this.showPickerForId === role.id && (h("verdocs-portal", { anchor: elId, onClickAway: () => (this.showPickerForId = '') }, h("verdocs-contact-picker", { onExit: () => (this.showPickerForId = ''), onNext: e => this.handleSelectContact(e, role), contactSuggestions: this.sessionContacts, templateRole: (_b = this.rolesCompleted[role.id]) !== null && _b !== void 0 ? _b : role, onSearchContacts: e => { var _a; return (_a = this.searchContacts) === null || _a === void 0 ? void 0 : _a.emit(e.detail); } }))))) : (h("div", { class: "recipient", style: { borderColor: getRGBA(getRoleIndex(this.roleStore, role.role_name)) }, onClick: e => this.handleClickRole(e, role), id: elId }, ((_c = this.rolesCompleted[role.id]) === null || _c === void 0 ? void 0 : _c.first_name) ? formatFullName(this.rolesCompleted[role.id]) : role.role_name, h("div", { class: "icon", innerHTML: editIcon }), this.showPickerForId === role.id && (h("verdocs-portal", { anchor: elId, onClickAway: () => (this.showPickerForId = '') }, h("verdocs-contact-picker", { onExit: () => (this.showPickerForId = ''), onNext: e => this.handleSelectContact(e, role), contactSuggestions: this.sessionContacts, templateRole: ((_d = this.rolesCompleted[role.id]) !== null && _d !== void 0 ? _d : role), onSearchContacts: e => { var _a; return (_a = this.searchContacts) === null || _a === void 0 ? void 0 : _a.emit(e.detail); } })))));
307
+ const roleIndex = getRoleIndex(this.template, role.role_name);
308
+ const rgba = getRGBA(roleIndex);
309
+ return unknown ? (h("div", { class: "recipient", "data-ri": roleIndex, "data-rn": role.role_name, style: { backgroundColor: rgba }, onClick: e => this.handleClickRole(e, role), id: elId }, ((_a = this.rolesCompleted[role.id]) === null || _a === void 0 ? void 0 : _a.first_name) ? formatFullName(this.rolesCompleted[role.id]) : role.role_name, h("div", { class: "icon", innerHTML: editIcon }), this.showPickerForId === role.id && (h("verdocs-portal", { anchor: elId, onClickAway: () => (this.showPickerForId = '') }, h("verdocs-contact-picker", { onExit: () => (this.showPickerForId = ''), onNext: e => this.handleSelectContact(e, role), contactSuggestions: this.sessionContacts, templateRole: (_b = this.rolesCompleted[role.id]) !== null && _b !== void 0 ? _b : role, onSearchContacts: e => { var _a; return (_a = this.searchContacts) === null || _a === void 0 ? void 0 : _a.emit(e.detail); } }))))) : (h("div", { class: "recipient", style: { borderColor: rgba }, onClick: e => this.handleClickRole(e, role), id: elId }, ((_c = this.rolesCompleted[role.id]) === null || _c === void 0 ? void 0 : _c.first_name) ? formatFullName(this.rolesCompleted[role.id]) : role.role_name, h("div", { class: "icon", innerHTML: editIcon }), this.showPickerForId === role.id && (h("verdocs-portal", { anchor: elId, onClickAway: () => (this.showPickerForId = '') }, h("verdocs-contact-picker", { onExit: () => (this.showPickerForId = ''), onNext: e => this.handleSelectContact(e, role), contactSuggestions: this.sessionContacts, templateRole: ((_d = this.rolesCompleted[role.id]) !== null && _d !== void 0 ? _d : role), onSearchContacts: e => { var _a; return (_a = this.searchContacts) === null || _a === void 0 ? void 0 : _a.emit(e.detail); } })))));
311
310
  })))), h("div", { class: `level level-done` }, this.getLevelIcon(levels.length), h("div", { class: "complete" }, "Signing Complete"))), h("div", { class: "buttons" }, h("verdocs-button", { label: "Cancel", size: "small", variant: "outline", onClick: e => this.handleCancel(e), disabled: this.sending }), h("verdocs-button", { label: "Send", size: "small", disabled: !allRolesAssigned || this.sending, onClick: e => this.handleSend(e) }), this.sending && h("verdocs-spinner", null))));
312
311
  }
313
312
  static get watchers() { return {
@@ -316,140 +315,6 @@ const VerdocsSend = class {
316
315
  };
317
316
  VerdocsSend.style = VerdocsSendStyle0;
318
317
 
319
- const verdocsTemplateAttachmentsCss = "@-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-template-attachments{font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif}verdocs-template-attachments h5{font-size:16px;font-weight:bold;margin:0 0 10px 0;color:#46497d}verdocs-template-attachments .attachments{margin:0 0 40px 0}verdocs-template-attachments .attachment{display:-ms-flexbox;display:flex;padding:5px 0;-webkit-column-gap:15px;-moz-column-gap:15px;column-gap:15px;-ms-flex-align:center;align-items:center;-ms-flex-direction:row;flex-direction:row;color:#33364b}verdocs-template-attachments .attachment:hover .trash-icon{display:-ms-flexbox;display:flex}verdocs-template-attachments .attachment:hover .pages{display:none}verdocs-template-attachments svg{width:28px;height:28px;fill:#5c6575;margin:2px 0 0 0}verdocs-template-attachments .file-icon{-ms-flex:0;flex:0}verdocs-template-attachments .pages{width:24px;height:24px;-ms-flex:0 0 24px;flex:0 0 24px;padding-left:4px;position:relative;margin:-10px 0 0 0}verdocs-template-attachments .pages .pages-icon{top:0;left:0;width:24px;height:24px;position:absolute}verdocs-template-attachments .pages .count{top:11px;left:7px;z-index:1;width:18px;font-size:12px;font-weight:500;position:absolute;text-align:center;letter-spacing:-2px}verdocs-template-attachments .filename{-ms-flex:1;flex:1;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px dotted #cccccc}verdocs-template-attachments .trash-icon{-ms-flex:0;flex:0;display:none}verdocs-template-attachments .trash-icon:hover{cursor:pointer}verdocs-template-attachments verdocs-file-chooser{margin:10px 0;border:2px dashed #979797}verdocs-template-attachments .loader-wrapper{background-color:#ffffff;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;width:320px;height:320px;text-align:center;border:2px dashed #979797;-ms-flex-pack:end;justify-content:flex-end}verdocs-template-attachments .progress-wrapper{padding:20px}verdocs-template-attachments .buttons{display:-ms-flexbox;display:flex;-webkit-column-gap:8px;-moz-column-gap:8px;column-gap:8px;margin-top:16px;-ms-flex-align:center;align-items:center;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:end;justify-content:flex-end}verdocs-template-attachments .buttons .flex-fill{-ms-flex:1;flex:1}verdocs-template-attachments ::-webkit-input-placeholder{color:#aaaaaa}verdocs-template-attachments ::-moz-placeholder{color:#aaaaaa}verdocs-template-attachments :-ms-input-placeholder{color:#aaaaaa}verdocs-template-attachments ::-ms-input-placeholder{color:#aaaaaa}verdocs-template-attachments ::placeholder{color:#aaaaaa}";
320
- const VerdocsTemplateAttachmentsStyle0 = verdocsTemplateAttachmentsCss;
321
-
322
- const VerdocsTemplateAttachments = class {
323
- constructor(hostRef) {
324
- registerInstance(this, hostRef);
325
- this.exit = createEvent(this, "exit", 7);
326
- this.next = createEvent(this, "next", 7);
327
- this.templateUpdated = createEvent(this, "templateUpdated", 7);
328
- this.sdkError = createEvent(this, "sdkError", 7);
329
- this.endpoint = VerdocsEndpoint.getDefault();
330
- this.templateId = '';
331
- this.uploading = false;
332
- this.progressLabel = 'Uploading...';
333
- this.progressPercent = 0;
334
- this.showDeleteError = false;
335
- this.confirmDeleteDocument = null;
336
- this.store = null;
337
- }
338
- async componentWillLoad() {
339
- var _a, _b, _c;
340
- try {
341
- this.endpoint.loadSession();
342
- if (!this.templateId) {
343
- console.log(`[ROLES] Missing required template ID ${this.templateId}`);
344
- return;
345
- }
346
- if (!this.endpoint.session) {
347
- console.log('[ROLES] Unable to start builder session, must be authenticated');
348
- return;
349
- }
350
- this.store = await getTemplateStore(this.endpoint, this.templateId, false);
351
- }
352
- catch (e) {
353
- console.log('[TEMPLATE ATTACHMENTS] Error loading template', e);
354
- (_a = this.sdkError) === null || _a === void 0 ? void 0 : _a.emit(new SDKError(e.message, (_b = e.response) === null || _b === void 0 ? void 0 : _b.status, (_c = e.response) === null || _c === void 0 ? void 0 : _c.data));
355
- }
356
- }
357
- handleCancel(e) {
358
- e.stopPropagation();
359
- this.exit.emit();
360
- }
361
- handleUploadProgress(percent) {
362
- if (percent >= 99) {
363
- this.progressPercent = 100;
364
- this.progressLabel = 'Processing...';
365
- }
366
- else {
367
- this.progressPercent = percent;
368
- }
369
- }
370
- async handleUpload(e) {
371
- var _a, _b, _c, _d;
372
- e.stopPropagation();
373
- const file = e.detail.file;
374
- if (!file) {
375
- return;
376
- }
377
- console.log('[ATTACHMENTS] Uploading...', file);
378
- this.uploading = true;
379
- this.progressLabel = 'Uploading...';
380
- try {
381
- const template = await createTemplateDocument(this.endpoint, this.templateId, file, this.handleUploadProgress.bind(this));
382
- console.log('[ATTACHMENTS] Created attachment', template);
383
- this.store = await getTemplateStore(this.endpoint, this.templateId, false);
384
- console.log('[ATTACHMENTS] Updated template', this.store.state);
385
- (_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: this.store.state, event: 'attachments' });
386
- this.uploading = false;
387
- this.progressLabel = '';
388
- this.progressPercent = 0;
389
- }
390
- catch (e) {
391
- console.log('[ATTACHMENTS] Error creating template', e);
392
- (_b = this.sdkError) === null || _b === void 0 ? void 0 : _b.emit(new SDKError(e.message, (_c = e.response) === null || _c === void 0 ? void 0 : _c.status, (_d = e.response) === null || _d === void 0 ? void 0 : _d.data));
393
- this.uploading = false;
394
- }
395
- }
396
- handleNext(e) {
397
- var _a;
398
- e.stopPropagation();
399
- this.uploading = false;
400
- this.progressLabel = '';
401
- this.progressPercent = 0;
402
- (_a = this.next) === null || _a === void 0 ? void 0 : _a.emit({ template: this.store.state });
403
- }
404
- async confirmDelete() {
405
- await deleteTemplateDocument(this.endpoint, this.templateId, this.confirmDeleteDocument.id);
406
- this.store = await getTemplateStore(this.endpoint, this.templateId, false);
407
- console.log('[ATTACHMENTS] New template', this.store.state);
408
- this.confirmDeleteDocument = null;
409
- }
410
- async handleDelete(document) {
411
- var _a;
412
- if (((_a = this.store.state) === null || _a === void 0 ? void 0 : _a.documents.length) > 1) {
413
- this.confirmDeleteDocument = document;
414
- }
415
- else {
416
- this.showDeleteError = true;
417
- }
418
- }
419
- getFileIcon(document) {
420
- switch (document.mime) {
421
- case 'application/pdf':
422
- return PdfIcon;
423
- case 'image/jpeg':
424
- return JpgIcon;
425
- case 'image/png':
426
- return PngIcon;
427
- case 'application/msword':
428
- case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':
429
- return DocIcon;
430
- }
431
- return FileIcon$1;
432
- }
433
- render() {
434
- var _a, _b, _c;
435
- if (!this.endpoint.session) {
436
- return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
437
- }
438
- const templateState = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state;
439
- if (!templateState.isLoaded) {
440
- return (h(Host, { class: "loading" }, h("verdocs-loader", null)));
441
- }
442
- // This is meant to be a companion for larger visual experiences so we just go blank on errors for now.
443
- if (!this.endpoint.session || !templateState.profile_id) {
444
- return h(Host, { class: "empty" });
445
- }
446
- return (h(Host, null, h("h5", null, "Existing Attachments"), h("div", { class: "attachments" }, (_b = this.store) === null || _b === void 0 ? void 0 : _b.state.documents.map(document => (h("div", { class: "attachment" }, h("div", { class: "file-icon", innerHTML: this.getFileIcon(document) }), h("div", { class: "filename", title: document.name }, document.name), h("div", { class: "pages" }, h("div", { class: "count" }, document.pages), h("div", { class: "pages-icon", innerHTML: PageCountIcon })), h("div", { class: "trash-icon", innerHTML: TrashIcon, onClick: () => this.handleDelete(document) }))))), h("h5", null, "Attach a New Document"), this.uploading ? (h("div", { class: "loader-wrapper" }, h("verdocs-loader", null), this.progressLabel && (h("div", { class: "progress-wrapper" }, h("verdocs-progress-bar", { showPercent: true, percent: this.progressPercent, label: this.progressLabel }))))) : (h("verdocs-file-chooser", { onFileSelected: e => this.handleUpload(e) })), h("div", { class: "buttons" }, h("verdocs-button", { variant: "outline", label: "Cancel", size: "small", onClick: e => this.handleCancel(e), disabled: this.uploading }), h("verdocs-button", { label: "Next", size: "small", onClick: e => this.handleNext(e), disabled: !((_c = this.store) === null || _c === void 0 ? void 0 : _c.state.documents.length) || this.uploading })), this.showDeleteError && (h("verdocs-ok-dialog", { heading: "Unable to Delete Attachment", message: "Templates must contain at least one attachment.", onNext: () => (this.showDeleteError = false) })), this.confirmDeleteDocument && (h("verdocs-ok-dialog", { heading: "Delete this Attachment?", message: "This operation cannot be undone. All fields placed<br />on the deleted attachment will also be removed.", onNext: () => this.confirmDelete(), showCancel: true, onExit: () => {
447
- this.confirmDeleteDocument = null;
448
- } }))));
449
- }
450
- };
451
- VerdocsTemplateAttachments.style = VerdocsTemplateAttachmentsStyle0;
452
-
453
318
  const verdocsTemplateBuildTabsCss = "@-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-template-build-tabs{-ms-flex:1;flex:1;gap:15px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-direction:row;flex-direction:row;font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif}verdocs-template-build-tabs verdocs-button-panel svg{-webkit-transform:scale(0.8);transform:scale(0.8)}verdocs-template-build-tabs verdocs-template-attachments,verdocs-template-build-tabs verdocs-template-roles{margin:20px}verdocs-template-build-tabs verdocs-template-fields{border-top:1px solid #777777}verdocs-template-build-tabs verdocs-template-attachments{padding:20px;background:#ffffff}verdocs-template-build-tabs verdocs-template-fields{width:100%}verdocs-template-build-tabs verdocs-preview{-ms-flex:1;flex:1}.template-details-panel .row{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;gap:8px;margin:10px 0}.template-details-panel label{-ms-flex:0 0 70px;flex:0 0 70px}.template-details-panel .value{-ms-flex:1;flex:1;font-weight:300;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-details-panel .icon-button{cursor:pointer;opacity:0.8;-ms-flex:0;flex:0;width:18px;height:18px}.template-details-panel .icon-button svg{stroke:#000000;width:18px;height:18px}.template-details-panel .icon-button:hover{opacity:1}";
454
319
  const VerdocsTemplateBuildTabsStyle0 = verdocsTemplateBuildTabsCss;
455
320
 
@@ -461,21 +326,38 @@ const VerdocsTemplateBuildTabs = class {
461
326
  registerInstance(this, hostRef);
462
327
  this.sdkError = createEvent(this, "sdkError", 7);
463
328
  this.stepChanged = createEvent(this, "stepChanged", 7);
329
+ this.templateListenerId = null;
464
330
  this.endpoint = VerdocsEndpoint.getDefault();
465
331
  this.templateId = null;
466
332
  this.step = 'preview';
467
- this.templateStore = null;
333
+ this.loading = true;
334
+ this.template = null;
335
+ }
336
+ disconnectedCallback() {
337
+ this.unlistenToTemplate();
338
+ }
339
+ async listenToTemplate() {
340
+ this.unlistenToTemplate();
341
+ Store.subscribe('templates', this.templateId, () => getTemplate(this.endpoint, this.templateId), false, (template) => {
342
+ this.template = template;
343
+ this.loading = false;
344
+ });
345
+ }
346
+ unlistenToTemplate() {
347
+ if (this.templateListenerId) {
348
+ Store.store.delListener(this.templateListenerId);
349
+ this.templateListenerId = null;
350
+ }
468
351
  }
469
352
  onTemplateIdChanged(newTemplateId) {
470
353
  console.log('[BUILD_TABS] Template ID changed', newTemplateId);
471
- this.loadTemplate(newTemplateId).catch((e) => console.log('Unknown Error', e));
354
+ this.listenToTemplate();
472
355
  }
473
356
  onStepChanged(newStep) {
474
357
  console.log('[BUILD_TABS] Step changed', newStep);
475
- this.loadTemplate(this.templateId).catch((e) => console.log('Unknown Error', e));
476
358
  }
477
359
  async componentWillLoad() {
478
- var _a, _b, _c, _d, _e, _f;
360
+ var _a, _b, _c;
479
361
  try {
480
362
  this.endpoint.loadSession();
481
363
  if (!this.endpoint.session) {
@@ -487,27 +369,16 @@ const VerdocsTemplateBuildTabs = class {
487
369
  console.log('[BUILD_TABS] Missing required template ID, forcing view to attachments');
488
370
  return;
489
371
  }
490
- try {
491
- this.templateStore = await getTemplateStore(this.endpoint, this.templateId, false);
492
- }
493
- catch (e) {
494
- console.log('[BUILD_TABS] Error loading template', e);
495
- (_a = this.sdkError) === null || _a === void 0 ? void 0 : _a.emit(new SDKError(e.message, (_b = e.response) === null || _b === void 0 ? void 0 : _b.status, (_c = e.response) === null || _c === void 0 ? void 0 : _c.data));
496
- }
372
+ this.listenToTemplate();
497
373
  }
498
374
  catch (e) {
499
375
  console.log('[BUILD_TABS] Error loading template', e);
500
- (_d = this.sdkError) === null || _d === void 0 ? void 0 : _d.emit(new SDKError(e.message, (_e = e.response) === null || _e === void 0 ? void 0 : _e.status, (_f = e.response) === null || _f === void 0 ? void 0 : _f.data));
501
- }
502
- }
503
- async loadTemplate(templateId) {
504
- if (templateId) {
505
- this.templateStore = await getTemplateStore(this.endpoint, templateId, false);
376
+ (_a = this.sdkError) === null || _a === void 0 ? void 0 : _a.emit(new SDKError(e.message, (_b = e.response) === null || _b === void 0 ? void 0 : _b.status, (_c = e.response) === null || _c === void 0 ? void 0 : _c.data));
506
377
  }
507
378
  }
508
379
  setStep(e) {
509
380
  var _a;
510
- console.log('Selected step', e.detail.tab.id);
381
+ console.log('[BUILD_TABS] Selected step', e.detail.tab.id);
511
382
  e.stopPropagation();
512
383
  e.preventDefault();
513
384
  this.step = e.detail.tab.id;
@@ -526,18 +397,16 @@ const VerdocsTemplateBuildTabs = class {
526
397
  });
527
398
  }
528
399
  render() {
529
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
400
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
401
+ if (this.loading) {
402
+ return (h(Host, null, h("verdocs-loader", null)));
403
+ }
530
404
  if (!this.endpoint.session) {
531
405
  return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
532
406
  }
533
- let canPreview = false;
534
- let canEditFields = false;
535
- let canEditRoles = false;
536
- if (this.templateId && this.templateStore && this.templateStore.state) {
537
- canEditRoles = ((_c = (_b = (_a = this.templateStore) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.documents) === null || _c === void 0 ? void 0 : _c.length) > 0;
538
- canEditFields = canEditRoles && ((_f = (_e = (_d = this.templateStore) === null || _d === void 0 ? void 0 : _d.state) === null || _e === void 0 ? void 0 : _e.roles) === null || _f === void 0 ? void 0 : _f.length) > 0;
539
- canPreview = canEditFields && ((_j = (_h = (_g = this.templateStore) === null || _g === void 0 ? void 0 : _g.state) === null || _h === void 0 ? void 0 : _h.fields) === null || _j === void 0 ? void 0 : _j.length) > 0;
540
- }
407
+ const canEditRoles = (((_a = this.template) === null || _a === void 0 ? void 0 : _a.documents) || []).length > 0;
408
+ let canEditFields = canEditRoles && (((_b = this.template) === null || _b === void 0 ? void 0 : _b.roles) || []).length > 0;
409
+ const canPreview = canEditFields && (((_c = this.template) === null || _c === void 0 ? void 0 : _c.fields) || []).length > 0;
541
410
  let selectedStepIndex = Math.max(STEPS.indexOf(this.step), 0);
542
411
  if (!canPreview && selectedStepIndex >= 4) {
543
412
  selectedStepIndex = 3;
@@ -554,8 +423,8 @@ const VerdocsTemplateBuildTabs = class {
554
423
  { id: 'settings', disabled: !canEditFields, label: 'Settings' },
555
424
  { id: 'fields', disabled: !canEditFields, label: 'Fields' },
556
425
  { id: 'preview', disabled: !canPreview, label: 'Preview/Send' },
557
- ] }), this.templateId && (h("div", { class: "info" }, h("verdocs-button-panel", { icon: HelpIcon }, h("div", { class: "template-details-panel" }, h("h6", null, "Template Details"), h("div", { class: "row" }, h("label", null, "ID:"), h("div", { class: "value" }, this.templateId), h("div", { class: "icon-button", innerHTML: CopyIcon, onClick: () => this.copyTemplateId() })), h("div", { class: "row" }, h("label", null, "Name:"), h("div", { class: "value" }, (_l = (_k = this.templateStore) === null || _k === void 0 ? void 0 : _k.state) === null || _l === void 0 ? void 0 : _l.name)), h("div", { class: "row" }, h("label", null, "Visibility:"), h("div", { class: "value" }, ((_o = (_m = this.templateStore) === null || _m === void 0 ? void 0 : _m.state) === null || _o === void 0 ? void 0 : _o.is_public) ? 'Public' : ((_q = (_p = this.templateStore) === null || _p === void 0 ? void 0 : _p.state) === null || _q === void 0 ? void 0 : _q.is_personal) ? 'Private' : 'Shared')), h("div", { class: "row" }, h("label", null, "Created:"), h("div", { class: "value" }, ((_s = (_r = this.templateStore) === null || _r === void 0 ? void 0 : _r.state) === null || _s === void 0 ? void 0 : _s.counter) ? format(new Date((_u = (_t = this.templateStore) === null || _t === void 0 ? void 0 : _t.state) === null || _u === void 0 ? void 0 : _u.created_at), 'P p') : '')), h("div", { class: "row" }, h("label", null, "Used:"), h("div", { class: "value" }, (_w = (_v = this.templateStore) === null || _v === void 0 ? void 0 : _v.state) === null || _w === void 0 ? void 0 :
558
- _w.counter, " time(s)"))))))));
426
+ ] }), this.templateId && (h("div", { class: "info" }, h("verdocs-button-panel", { icon: HelpIcon }, h("div", { class: "template-details-panel" }, h("h6", null, "Template Details"), h("div", { class: "row" }, h("label", null, "ID:"), h("div", { class: "value" }, this.templateId), h("div", { class: "icon-button", innerHTML: CopyIcon, onClick: () => this.copyTemplateId() })), h("div", { class: "row" }, h("label", null, "Name:"), h("div", { class: "value" }, (_d = this.template) === null || _d === void 0 ? void 0 : _d.name)), h("div", { class: "row" }, h("label", null, "Visibility:"), h("div", { class: "value" }, ((_e = this.template) === null || _e === void 0 ? void 0 : _e.is_public) ? 'Public' : ((_f = this.template) === null || _f === void 0 ? void 0 : _f.is_personal) ? 'Private' : 'Shared')), h("div", { class: "row" }, h("label", null, "Created:"), h("div", { class: "value" }, ((_g = this.template) === null || _g === void 0 ? void 0 : _g.counter) ? format(new Date((_h = this.template) === null || _h === void 0 ? void 0 : _h.created_at), 'P p') : '')), h("div", { class: "row" }, h("label", null, "Used:"), h("div", { class: "value" }, (_j = this.template) === null || _j === void 0 ? void 0 :
427
+ _j.counter, " time(s)"))))))));
559
428
  }
560
429
  static get watchers() { return {
561
430
  "templateId": ["onTemplateIdChanged"],
@@ -564,112 +433,6 @@ const VerdocsTemplateBuildTabs = class {
564
433
  };
565
434
  VerdocsTemplateBuildTabs.style = VerdocsTemplateBuildTabsStyle0;
566
435
 
567
- const verdocsTemplateCreateCss = "@-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-template-create{font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif}verdocs-template-create form{background-color:#ffffff;padding:12px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}verdocs-template-create form .upload-box{-webkit-box-sizing:border-box;box-sizing:border-box;width:320px;text-align:center;padding:44px 18px 66px;border:2px dashed #979797;color:rgba(0, 0, 0, 0.54)}verdocs-template-create form .upload-box.drag-over{border:2px solid #4c56cb}verdocs-template-create form .upload-box svg{width:64px;fill:#5c6575}verdocs-template-create p{color:#33364b;margin-top:20px;font-size:18px;font-weight:500;overflow-wrap:anywhere}verdocs-template-create p.subscript{color:#5c6575;font-size:14px;margin:20px}verdocs-template-create .loader-wrapper{background-color:#ffffff;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;width:320px;height:320px;text-align:center;border:2px dashed #979797;-ms-flex-pack:end;justify-content:flex-end}verdocs-template-create .progress-wrapper{padding:20px}verdocs-template-create .buttons{display:-ms-flexbox;display:flex;-webkit-column-gap:8px;-moz-column-gap:8px;column-gap:8px;margin-top:16px;-ms-flex-align:center;align-items:center;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:end;justify-content:flex-end}verdocs-template-create .buttons .flex-fill{-ms-flex:1;flex:1}verdocs-template-create ::-webkit-input-placeholder{color:#aaaaaa}verdocs-template-create ::-moz-placeholder{color:#aaaaaa}verdocs-template-create :-ms-input-placeholder{color:#aaaaaa}verdocs-template-create ::-ms-input-placeholder{color:#aaaaaa}verdocs-template-create ::placeholder{color:#aaaaaa}verdocs-template-create .error{margin:20px 0;color:#cc0000}";
568
- const VerdocsTemplateCreateStyle0 = verdocsTemplateCreateCss;
569
-
570
- const FileIcon = '<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24"><path d="M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6H6zm7 7V3.5L18.5 9H13z"></path></svg>';
571
- const VerdocsTemplateCreate = class {
572
- constructor(hostRef) {
573
- registerInstance(this, hostRef);
574
- this.exit = createEvent(this, "exit", 7);
575
- this.next = createEvent(this, "next", 7);
576
- this.sdkError = createEvent(this, "sdkError", 7);
577
- this.templateCreated = createEvent(this, "templateCreated", 7);
578
- this.endpoint = VerdocsEndpoint.getDefault();
579
- this.maxSize = 20.5 * 1024 * 1024;
580
- this.file = undefined;
581
- this.creating = false;
582
- this.progressLabel = 'Uploading...';
583
- this.progressPercent = 0;
584
- this.errorMessage = '';
585
- }
586
- componentWillLoad() {
587
- this.endpoint.setTimeout(30000);
588
- this.endpoint.loadSession();
589
- }
590
- handleFileChanged(e) {
591
- var _a;
592
- this.errorMessage = '';
593
- this.file = ((_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0]) || null;
594
- console.log('[CREATE] Selected file', this.file);
595
- const totalSize = this.file.size;
596
- if (totalSize > this.maxSize) {
597
- this.errorMessage = 'Total file size must not exceed 20MB.';
598
- }
599
- }
600
- handleUpload(e) {
601
- e.stopPropagation();
602
- const fileElem = document.getElementById('verdocs-template-create-file');
603
- fileElem.click();
604
- }
605
- handleCancel(e) {
606
- e.stopPropagation();
607
- this.exit.emit();
608
- }
609
- async handleSubmit(e) {
610
- var _a, _b, _c;
611
- e.stopPropagation();
612
- // Should be true if we're here because onClick is only enabled then. We're just guarding this for Typescript.
613
- if (!this.file) {
614
- return;
615
- }
616
- this.creating = true;
617
- this.progressLabel = 'Uploading...';
618
- try {
619
- const template = await createTemplate(this.endpoint, {
620
- name: this.file.name,
621
- // TODO: Make optional in the SDK
622
- initial_reminder: 0,
623
- followup_reminders: 0,
624
- documents: [this.file],
625
- }, percent => {
626
- if (percent >= 99) {
627
- this.progressLabel = 'Processing...';
628
- this.progressPercent = 100;
629
- }
630
- else {
631
- this.progressPercent = percent;
632
- }
633
- });
634
- console.log('[CREATE] Created template', template);
635
- getTemplateStore(this.endpoint, template.id, true)
636
- .then(() => {
637
- var _a, _b;
638
- (_a = this.templateCreated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template, templateId: template.id });
639
- (_b = this.next) === null || _b === void 0 ? void 0 : _b.emit(template);
640
- this.creating = false;
641
- this.progressLabel = '';
642
- this.progressPercent = 0;
643
- })
644
- .catch(e => {
645
- console.log(e);
646
- });
647
- }
648
- catch (e) {
649
- console.log('[CREATE] Error creating template', e);
650
- (_a = this.sdkError) === null || _a === void 0 ? void 0 : _a.emit(new SDKError(e.message, (_b = e.response) === null || _b === void 0 ? void 0 : _b.status, (_c = e.response) === null || _c === void 0 ? void 0 : _c.data));
651
- this.creating = false;
652
- }
653
- }
654
- render() {
655
- if (!this.endpoint.session) {
656
- return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
657
- }
658
- return (h(Host, null, h("form", { onSubmit: e => e.preventDefault(), onClick: e => e.stopPropagation(), autocomplete: "off" }, h("input", { type: "file", id: "verdocs-template-create-file", multiple: true, accept: ".pdf,application/pdf,.doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document", style: { display: 'none' }, onChange: e => this.handleFileChanged(e) }), this.creating ? (h("div", { class: "loader-wrapper" }, h("verdocs-loader", null), this.progressLabel && (h("div", { class: "progress-wrapper" }, h("verdocs-progress-bar", { showPercent: true, percent: this.progressPercent, label: this.progressLabel }))))) : (h("div", { class: "upload-box", onDrop: (e) => {
659
- e.preventDefault();
660
- e.target.classList.remove('drag-over');
661
- this.file = e.dataTransfer.files[0];
662
- if (this.file.size > this.maxSize) {
663
- this.errorMessage = 'Total file size must not exceed 20MB.';
664
- }
665
- }, onDragOver: (e) => {
666
- e.preventDefault();
667
- e.dataTransfer.dropEffect = 'copy';
668
- }, onDragEnter: (e) => e.target.classList.add('drag-over'), onDragLeave: (e) => e.target.classList.remove('drag-over') }, h("span", { innerHTML: FileIcon, style: { display: 'flex', justifyContent: 'center' } }), h("p", null, this.file ? this.file.name : 'Drag and drop your files here'), h("p", { class: "subscript" }, "Supported files: PDF, Word"), h("verdocs-button", { label: this.file ? 'Select a different file' : 'Select a file from your computer', size: "small", onClick: e => this.handleUpload(e) }))), !!this.errorMessage && h("div", { class: "error" }, this.errorMessage), h("div", { class: "buttons" }, h("verdocs-button", { variant: "outline", label: "Cancel", size: "small", onClick: e => this.handleCancel(e), disabled: this.creating }), h("verdocs-button", { label: "Next", size: "small", onClick: e => this.handleSubmit(e), disabled: !this.file || this.creating || !!this.errorMessage })))));
669
- }
670
- };
671
- VerdocsTemplateCreate.style = VerdocsTemplateCreateStyle0;
672
-
673
436
  const verdocsTemplateFieldsCss = "@-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-template-fields{font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif;position:relative;display:block;min-height:600px}verdocs-template-fields .page-0{padding:65px 15px 0 15px;-webkit-box-sizing:border-box;box-sizing:border-box}verdocs-template-fields .page-0 .user-placed-fields{height:100px;position:relative;background:#ffffff;-webkit-box-shadow:0 0 10px 5px rgba(0, 0, 0, 0.0588235294);box-shadow:0 0 10px 5px rgba(0, 0, 0, 0.0588235294)}verdocs-template-fields .page-0 .user-placed-fields .title{top:0;left:0;color:#ffffff;font-size:12px;padding:3px 6px;font-weight:bold;position:absolute;background:#46497d}verdocs-template-fields .pages{display:-ms-flexbox;display:flex;padding:15px;row-gap:15px;min-height:200px;position:relative;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-direction:column;flex-direction:column}verdocs-template-fields .pages div,verdocs-template-fields .pages canvas{-webkit-box-sizing:border-box;box-sizing:border-box}verdocs-template-fields #verdocs-template-fields-toolbar{height:50px;display:-ms-flexbox;display:flex;-webkit-column-gap:15px;-moz-column-gap:15px;column-gap:15px;font-weight:700;padding:0 20px 0 0;-ms-flex-align:center;align-items:center;-ms-flex-direction:row;flex-direction:row;color:#f5f5fa;-ms-flex-pack:center;justify-content:center;background:#46497d}verdocs-template-fields #verdocs-template-fields-toolbar>verdocs-select-input{margin:0}verdocs-template-fields #verdocs-template-fields-toolbar svg{width:24px;height:24px}verdocs-template-fields #verdocs-template-fields-toolbar .add-for{margin:0;font-weight:500;color:#f5f5fa}verdocs-template-fields #verdocs-template-fields-toolbar verdocs-select-input{margin:0 20px 0 0}@media all and (max-width: 1000px){verdocs-template-fields #verdocs-template-fields-toolbar{-webkit-column-gap:8px;-moz-column-gap:8px;column-gap:8px;padding:0 10px 0 0}verdocs-template-fields #verdocs-template-fields-toolbar svg{-webkit-transform:scale(0.8);transform:scale(0.8)}verdocs-template-fields #verdocs-template-fields-toolbar .add-for,verdocs-template-fields #verdocs-template-fields-toolbar verdocs-select-input{display:none}}@media all and (max-width: 600px){verdocs-template-fields #verdocs-template-fields-toolbar{-webkit-column-gap:6px;-moz-column-gap:6px;column-gap:6px}verdocs-template-fields #verdocs-template-fields-toolbar svg{-webkit-transform:scale(0.6);transform:scale(0.6)}verdocs-template-fields #verdocs-template-fields-toolbar .separator,verdocs-template-fields #verdocs-template-fields-toolbar .add-for,verdocs-template-fields #verdocs-template-fields-toolbar verdocs-select-input{display:none}}verdocs-template-fields.placing-attachment{cursor:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath d='m10.55 16.55 7.275-7.275L16.05 7.5l-5.5 5.45-2.675-2.65L6.1 12.075Zm-5.375 4.925q-1.125 0-1.887-.763-.763-.762-.763-1.887V5.175q0-1.125.763-1.888.762-.762 1.887-.762h13.65q1.125 0 1.888.762.762.763.762 1.888v13.65q0 1.125-.762 1.887-.763.763-1.888.763Zm0-2.65h13.65V5.175H5.175v13.65Zm0-13.65v13.65-13.65Z'/%3E%3C/svg%3E\") 16 16, pointer}verdocs-template-fields.placing-checkbox{cursor:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath d='m10.55 16.55 7.275-7.275L16.05 7.5l-5.5 5.45-2.675-2.65L6.1 12.075Zm-5.375 4.925q-1.125 0-1.887-.763-.763-.762-.763-1.887V5.175q0-1.125.763-1.888.762-.762 1.887-.762h13.65q1.125 0 1.888.762.762.763.762 1.888v13.65q0 1.125-.762 1.887-.763.763-1.888.763Zm0-2.65h13.65V5.175H5.175v13.65Zm0-13.65v13.65-13.65Z'/%3E%3C/svg%3E\") 16 16, pointer}verdocs-template-fields.placing-date{cursor:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath fill='%23000000' d='M7.6 13.925q-.55 0-.925-.375t-.375-.925q0-.55.375-.937.375-.388.925-.388t.925.388q.375.387.375.937t-.375.925q-.375.375-.925.375Zm4.4 0q-.55 0-.925-.375t-.375-.925q0-.55.375-.937.375-.388.925-.388t.925.388q.375.387.375.937t-.375.925q-.375.375-.925.375Zm4.4 0q-.55 0-.925-.375t-.375-.925q0-.55.375-.937.375-.388.925-.388t.925.388q.375.387.375.937t-.375.925q-.375.375-.925.375ZM5.3 22.85q-1.325 0-2.238-.912-.912-.913-.912-2.238V6.3q0-1.325.912-2.238.913-.912 2.238-.912H6v-2h2.575v2h6.85v-2H18v2h.7q1.325 0 2.238.912.912.913.912 2.238v13.4q0 1.325-.912 2.238-.913.912-2.238.912Zm0-3.15h13.4V10H5.3v9.7ZM5.3 8h13.4V6.3H5.3Zm0 0V6.3 8Z'/%3E%3C/svg%3E\") 16 16, pointer}verdocs-template-fields.placing-dropdown{cursor:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24' stroke-width='1.5' stroke='currentColor'%3E%3Cpath stroke='%23000000' stroke-linecap='round' stroke-linejoin='round' d='M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0l-3.75-3.75M17.25 21L21 17.25' /%3E%3C/svg%3E\") 16 16, pointer}verdocs-template-fields.placing-initial{cursor:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath d='M6.225 20.775V7h-5V3.225H15V7h-5v13.775Zm9.775 0v-8h-3V9h9.775v3.775h-3v8Z'/%3E%3C/svg%3E\") 16 16, pointer}verdocs-template-fields.placing-payment{cursor:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath d='m10.55 16.55 7.275-7.275L16.05 7.5l-5.5 5.45-2.675-2.65L6.1 12.075Zm-5.375 4.925q-1.125 0-1.887-.763-.763-.762-.763-1.887V5.175q0-1.125.763-1.888.762-.762 1.887-.762h13.65q1.125 0 1.888.762.762.763.762 1.888v13.65q0 1.125-.762 1.887-.763.763-1.888.763Zm0-2.65h13.65V5.175H5.175v13.65Zm0-13.65v13.65-13.65Z'/%3E%3C/svg%3E\") 16 16, pointer}verdocs-template-fields.placing-radio{cursor:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath d='M12 17q2.075 0 3.538-1.463Q17 14.075 17 12t-1.462-3.538Q14.075 7 12 7 9.925 7 8.463 8.462 7 9.925 7 12q0 2.075 1.463 3.537Q9.925 17 12 17Zm0 5.85q-2.275 0-4.25-.85t-3.438-2.312Q2.85 18.225 2 16.25q-.85-1.975-.85-4.25T2 7.75q.85-1.975 2.312-3.438Q5.775 2.85 7.75 2q1.975-.85 4.25-.85t4.25.85q1.975.85 3.438 2.312Q21.15 5.775 22 7.75q.85 1.975.85 4.25T22 16.25q-.85 1.975-2.312 3.438Q18.225 21.15 16.25 22q-1.975.85-4.25.85Zm0-3.15q3.25 0 5.475-2.225Q19.7 15.25 19.7 12q0-3.25-2.225-5.475Q15.25 4.3 12 4.3q-3.25 0-5.475 2.225Q4.3 8.75 4.3 12q0 3.25 2.225 5.475Q8.75 19.7 12 19.7Zm0-7.7Z'/%3E%3C/svg%3E\") 16 16, pointer}verdocs-template-fields.placing-signature{cursor:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath d='m9.225 21.225 4.65-4.65h8.45v4.65Zm-5.35-2.2H5.05l8.5-8.5-1.175-1.175-8.5 8.5Zm14.25-9.95L13.8 4.8l1.325-1.325q.625-.65 1.525-.663.9-.012 1.6.663l1.225 1.175q.675.675.663 1.562-.013.888-.663 1.513ZM16.7 10.55 6 21.225H1.675V16.9L12.35 6.225Zm-3.725-.625-.6-.575 1.175 1.175Z'/%3E%3C/svg%3E\") 16 16, pointer}verdocs-template-fields.placing-textarea{cursor:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath d='M3.225 20.725v-3.15h11.55v3.15Zm0-4.775V12.8h17.55v3.15Zm0-4.75V8.05h17.55v3.15Zm0-4.775v-3.15h17.55v3.15Z'/%3E%3C/svg%3E\") 16 16, pointer}verdocs-template-fields.placing-textbox{cursor:url(\"data:image/svg+xml,%3Csvg width='32' height='15' viewBox='0 0 32 15' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cmask id='path-1-inside-1_1401_24' fill='white'%3E%3Cpath d='M0 0H32V15H0V0Z'/%3E%3C/mask%3E%3Cpath d='M0 0H32V15H0V0Z' fill='%234C56CB' fill-opacity='0.1'/%3E%3Cpath d='M0 0V-1H-1V0H0ZM0 15H-1V16H0V15ZM0 1H32V-1H0V1ZM32 14H0V16H32V14ZM1 15V0H-1V15H1Z' fill='%234C56CB' mask='url(%23path-1-inside-1_1401_24)'/%3E%3Cpath d='M3 11.8V8.65H14.15V11.8H3ZM3 6.65V3.5H20.15V6.65H3Z' fill='%234C56CB'/%3E%3Cline x1='31.5' y1='1' x2='31.5' y2='14' stroke='%234C56CB' stroke-opacity='0.32' stroke-dasharray='1 1'/%3E%3C/svg%3E%0A\") 0 14, pointer}verdocs-template-fields.placing-timestamp{cursor:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' width='24'%3E%3Cpath fill='%23000000' d='M9 1h6v2H9zm10.03 6.39 1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42C16.07 4.74 14.12 4 12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9 9-4.03 9-9c0-2.12-.74-4.07-1.97-5.61zM13 14h-2V8h2v6z'%3E%3C/path%3E%3C/svg%3E\") 16 16, pointer}";
674
437
  const VerdocsTemplateFieldsStyle0 = verdocsTemplateFieldsCss;
675
438
 
@@ -704,10 +467,8 @@ const VerdocsTemplateFields = class {
704
467
  this.sdkError = createEvent(this, "sdkError", 7);
705
468
  this.templateUpdated = createEvent(this, "templateUpdated", 7);
706
469
  this.fieldsUpdated = createEvent(this, "fieldsUpdated", 7);
470
+ this.templateListenerId = null;
707
471
  this.pageHeights = {};
708
- this.templateStore = null;
709
- this.fieldStore = null;
710
- this.roleStore = null;
711
472
  this.cachedPageInfo = {};
712
473
  this.endpoint = VerdocsEndpoint.getDefault();
713
474
  this.templateId = null;
@@ -716,9 +477,10 @@ const VerdocsTemplateFields = class {
716
477
  this.showMustSelectRole = false;
717
478
  this.selectedRoleName = '';
718
479
  this.loading = true;
480
+ this.template = null;
719
481
  }
720
- onTemplateIdChanged(newTemplateId) {
721
- this.loadTemplate(newTemplateId).catch((e) => console.log('Unknown Error', e));
482
+ onTemplateIdChanged() {
483
+ this.listenToTemplate();
722
484
  }
723
485
  // Stop field-placement mode if ESC is pressed
724
486
  handleKeyDown(ev) {
@@ -727,7 +489,7 @@ const VerdocsTemplateFields = class {
727
489
  }
728
490
  }
729
491
  async componentWillLoad() {
730
- var _a, _b, _c, _d, _e, _f;
492
+ var _a, _b, _c;
731
493
  try {
732
494
  this.endpoint.loadSession();
733
495
  if (!this.templateId) {
@@ -738,17 +500,11 @@ const VerdocsTemplateFields = class {
738
500
  console.log('[FIELDS] Unable to start builder session, must be authenticated');
739
501
  return;
740
502
  }
741
- try {
742
- this.loadTemplate(this.templateId).catch(e => console.log('[BUILD] Unable to load template', e));
743
- }
744
- catch (e) {
745
- console.log('[FIELDS] Error loading template', e);
746
- (_a = this.sdkError) === null || _a === void 0 ? void 0 : _a.emit(new SDKError(e.message, (_b = e.response) === null || _b === void 0 ? void 0 : _b.status, (_c = e.response) === null || _c === void 0 ? void 0 : _c.data));
747
- }
503
+ this.listenToTemplate();
748
504
  }
749
505
  catch (e) {
750
506
  console.log('[FIELDS] Error with fields session', e);
751
- (_d = this.sdkError) === null || _d === void 0 ? void 0 : _d.emit(new SDKError(e.message, (_e = e.response) === null || _e === void 0 ? void 0 : _e.status, (_f = e.response) === null || _f === void 0 ? void 0 : _f.data));
507
+ (_a = this.sdkError) === null || _a === void 0 ? void 0 : _a.emit(new SDKError(e.message, (_b = e.response) === null || _b === void 0 ? void 0 : _b.status, (_c = e.response) === null || _c === void 0 ? void 0 : _c.data));
752
508
  }
753
509
  }
754
510
  componentDidRender() {
@@ -764,35 +520,40 @@ const VerdocsTemplateFields = class {
764
520
  componentWillUpdate() {
765
521
  var _a, _b;
766
522
  // If a new role was added and there were none yet so far, or the "selected" role was deleted, reset our selection
767
- const roles = ((_a = this.roleStore) === null || _a === void 0 ? void 0 : _a.get('roles')) || [];
523
+ const roles = ((_a = this.template) === null || _a === void 0 ? void 0 : _a.roles) || [];
768
524
  if (!this.selectedRoleName || !roles.find(role => role && role.name === this.selectedRoleName)) {
769
525
  this.selectedRoleName = ((_b = roles[0]) === null || _b === void 0 ? void 0 : _b.name) || '';
770
526
  console.log('[FIELDS] Selected new role', this.selectedRoleName);
771
527
  }
772
528
  }
773
- async loadTemplate(templateId) {
774
- var _a, _b;
775
- if (templateId) {
776
- this.loading = true;
777
- this.templateStore = await getTemplateStore(this.endpoint, templateId, false);
778
- this.roleStore = getTemplateRoleStore(this.templateId);
779
- this.fieldStore = getTemplateFieldStore(this.templateId);
780
- this.selectedRoleName = ((_b = (_a = this.roleStore.get('roles')) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.name) || '';
529
+ disconnectedCallback() {
530
+ this.unlistenToTemplate();
531
+ }
532
+ async listenToTemplate() {
533
+ this.unlistenToTemplate();
534
+ Store.subscribe('templates', this.templateId, () => getTemplate(this.endpoint, this.templateId), false, (template) => {
535
+ var _a, _b;
536
+ this.template = template;
781
537
  this.loading = false;
782
- // TODO: Necessary?
783
- // this.fieldsUpdated?.emit({event: 'updated', endpoint: this.endpoint, templateId: this.templateId, fields});
538
+ this.selectedRoleName = ((_b = (_a = template.roles) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.name) || '';
539
+ });
540
+ }
541
+ unlistenToTemplate() {
542
+ if (this.templateListenerId) {
543
+ Store.store.delListener(this.templateListenerId);
544
+ this.templateListenerId = null;
784
545
  }
785
546
  }
786
547
  attachFieldAttributes(pageInfo, field, el) {
787
548
  // el.addEventListener('input', e => this.handleFieldChange(field, e));
788
549
  el.addEventListener('settingsChanged', () => {
789
- var _a, _b;
790
- (_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: (_b = this.templateStore) === null || _b === void 0 ? void 0 : _b.state, event: 'added-field' });
550
+ var _a;
551
+ (_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: this.template, event: 'added-field' });
791
552
  });
792
553
  el.addEventListener('deleted', () => {
793
- var _a, _b;
554
+ var _a;
794
555
  el.remove();
795
- (_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: (_b = this.templateStore) === null || _b === void 0 ? void 0 : _b.state, event: 'updated-field' });
556
+ (_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: this.template, event: 'updated-field' });
796
557
  });
797
558
  el.setAttribute('templateid', this.templateId);
798
559
  el.setAttribute('fieldname', field.name);
@@ -802,12 +563,12 @@ const VerdocsTemplateFields = class {
802
563
  el.setAttribute('name', field.name);
803
564
  }
804
565
  handlePageRendered(e) {
566
+ var _a;
805
567
  const pageInfo = e.detail;
806
568
  // console.log('[FIELDS] Page rendered', pageInfo.pageNumber, pageInfo.xScale, pageInfo.yScale);
807
569
  this.cachedPageInfo[pageInfo.pageNumber] = pageInfo;
808
570
  this.pageHeights[pageInfo.pageNumber] = pageInfo.naturalHeight;
809
- this.fieldStore
810
- .get('fields')
571
+ (((_a = this.template) === null || _a === void 0 ? void 0 : _a.fields) || [])
811
572
  .filter(field => field && field.page === pageInfo.pageNumber)
812
573
  .forEach(field => {
813
574
  const id = getFieldId(field);
@@ -839,10 +600,9 @@ const VerdocsTemplateFields = class {
839
600
  updateCssTransform(event.target, 'translate', `${newX}px, ${newY}px`);
840
601
  }
841
602
  async handleMoveEnd(event) {
842
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
603
+ var _a, _b, _c, _d, _e, _f, _g, _h;
843
604
  const name = event.target.getAttribute('fieldname');
844
- const option = +(event.target.getAttribute('option') || '0');
845
- const field = this.fieldStore.get('fields').find(field => field.name === name);
605
+ const field = (((_a = this.template) === null || _a === void 0 ? void 0 : _a.fields) || []).find(field => field.name === name);
846
606
  if (!field) {
847
607
  console.log('[FIELDS] Unable to find field', name, event.target);
848
608
  return;
@@ -858,10 +618,9 @@ const VerdocsTemplateFields = class {
858
618
  // (positive displacement) while bottom measures "up" from the bottom (negative displacement).
859
619
  const newX = Math.max(clientRect.left - parentRect.left, 0);
860
620
  let newY = Math.max(renderedHeight - (parentRect.bottom - clientRect.bottom), 0);
861
- console.log('drop', { pageNumber, newX, newY });
862
621
  let newPageNumber = parseInt(pageNumber);
863
622
  if (newY > renderedHeight) {
864
- newPageNumber = Math.min(newPageNumber + 1, ((_d = (_c = (_b = (_a = this.templateStore) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.documents) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.pages) || 1);
623
+ newPageNumber = Math.min(newPageNumber + 1, ((_d = (_c = (((_b = this.template) === null || _b === void 0 ? void 0 : _b.documents) || [])) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.pages) || 1);
865
624
  newY -= renderedHeight;
866
625
  renderedHeight = this.cachedPageInfo[newPageNumber].renderedHeight;
867
626
  console.log('Next page', { newPageNumber, newY, renderedHeight });
@@ -870,39 +629,43 @@ const VerdocsTemplateFields = class {
870
629
  newPageNumber = Math.max(newPageNumber - 1, 1);
871
630
  renderedHeight = this.cachedPageInfo[newPageNumber].renderedHeight;
872
631
  newY += renderedHeight;
873
- console.log('Next page', { newPageNumber, newY, renderedHeight });
632
+ console.log('[FIELDS] Next page', { newPageNumber, newY, renderedHeight });
874
633
  }
875
634
  const { x, y } = this.viewCoordinatesToPageCoordinates(newX, newY, pageNumber, naturalWidth - width, naturalHeight - height);
876
635
  try {
877
636
  const params = { x, y, page: newPageNumber };
878
- console.log('[FIELDS] Will update', name, y, option, params);
879
- const newFieldData = await updateField(this.endpoint, this.templateId, name, params);
880
- console.log('[FIELDS] Updated', newFieldData);
881
- updateStoreField(this.fieldStore, name, newFieldData);
882
- console.log('a');
637
+ const updatedField = await updateField(this.endpoint, this.templateId, name, params);
638
+ console.log('[FIELDS] Updated', updatedField);
639
+ const newTemplate = JSON.parse(JSON.stringify(this.template));
640
+ const fieldIndex = newTemplate.fields.findIndex(field => field.name === name);
641
+ if (fieldIndex > -1) {
642
+ newTemplate.fields[fieldIndex] = updatedField;
643
+ }
644
+ Store.updateTemplate(this.templateId, newTemplate);
883
645
  event.target.removeAttribute('posX');
884
646
  event.target.removeAttribute('posY');
885
647
  removeCssTransform(event.target);
886
- console.log('b');
887
- (_e = this.templateUpdated) === null || _e === void 0 ? void 0 : _e.emit({ endpoint: this.endpoint, template: (_f = this.templateStore) === null || _f === void 0 ? void 0 : _f.state, event: 'updated-field' });
888
- console.log('c');
648
+ const { xScale = 1, yScale = 1 } = this.cachedPageInfo[pageNumber];
649
+ setControlStyles(event.target, updatedField, xScale, yScale);
650
+ (_e = this.templateUpdated) === null || _e === void 0 ? void 0 : _e.emit({ endpoint: this.endpoint, template: newTemplate, event: 'updated-field' });
889
651
  }
890
652
  catch (e) {
891
653
  VerdocsToast('Error updating field, please try again later', { style: 'error' });
892
654
  console.log('[FIELDS] Error updating field', e);
893
- (_g = this.sdkError) === null || _g === void 0 ? void 0 : _g.emit(new SDKError(e.message, (_h = e.response) === null || _h === void 0 ? void 0 : _h.status, (_j = e.response) === null || _j === void 0 ? void 0 : _j.data));
655
+ (_f = this.sdkError) === null || _f === void 0 ? void 0 : _f.emit(new SDKError(e.message, (_g = e.response) === null || _g === void 0 ? void 0 : _g.status, (_h = e.response) === null || _h === void 0 ? void 0 : _h.data));
894
656
  event.target.removeAttribute('posX');
895
657
  event.target.removeAttribute('posY');
896
658
  removeCssTransform(event.target);
897
659
  }
898
660
  }
899
661
  generateFieldName(type, pageNumber) {
662
+ var _a;
900
663
  let i = 1;
901
664
  let fieldName;
902
665
  do {
903
666
  fieldName = `${type}P${pageNumber}-${i}`;
904
667
  i++;
905
- } while (this.fieldStore.get('fields').some(field => field && field.name === fieldName));
668
+ } while ((((_a = this.template) === null || _a === void 0 ? void 0 : _a.fields) || []).some(field => field && field.name === fieldName));
906
669
  return fieldName;
907
670
  }
908
671
  // Scale the X,Y clicks to the virtual page dimensions. Also ensure the field doesn't go off the page.
@@ -913,7 +676,7 @@ const VerdocsTemplateFields = class {
913
676
  return { x, y };
914
677
  }
915
678
  async handleClickPage(e, pageNumber) {
916
- var _a, _b;
679
+ var _a;
917
680
  if (this.placing) {
918
681
  const clickedX = e.offsetX;
919
682
  const clickedY = e.offsetY;
@@ -946,22 +709,24 @@ const VerdocsTemplateFields = class {
946
709
  options: this.placing === 'radio' ? [{ id: 'option-1', label: 'Option 1' }] : [],
947
710
  };
948
711
  console.log('[FIELDS] Will save new field', field);
949
- const saved = await createField(this.endpoint, this.templateId, field);
950
- console.log('[FIELDS] Saved field', saved);
951
- this.fieldStore.set('fields', [...this.fieldStore.get('fields'), saved]);
712
+ const newField = await createField(this.endpoint, this.templateId, field);
713
+ console.log('[FIELDS] Saved field', newField);
714
+ const newTemplate = JSON.parse(JSON.stringify(this.template));
715
+ newTemplate.fields.push(newField);
716
+ Store.updateTemplate(this.templateId, newTemplate);
717
+ (_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: newTemplate, event: 'added-field' });
952
718
  this.placing = null;
953
- (_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: (_b = this.templateStore) === null || _b === void 0 ? void 0 : _b.state, event: 'added-field' });
954
719
  }
955
720
  }
956
721
  render() {
957
722
  var _a, _b, _c;
723
+ if (this.loading) {
724
+ return (h(Host, null, h("verdocs-loader", null)));
725
+ }
958
726
  if (!this.endpoint.session) {
959
727
  return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
960
728
  }
961
- if (this.loading || !((_a = this.templateStore) === null || _a === void 0 ? void 0 : _a.state.isLoaded)) {
962
- return (h(Host, null, h("verdocs-loader", null)));
963
- }
964
- const selectableRoles = this.roleStore.get('roles').map(role => ({ value: role.name, label: role.full_name ? `${role.name}: ${role.full_name}` : role.name }));
729
+ const selectableRoles = (((_a = this.template) === null || _a === void 0 ? void 0 : _a.roles) || []).map(role => ({ value: role.name, label: role.full_name ? `${role.name}: ${role.full_name}` : role.name }));
965
730
  return (h(Host, { class: this.placing ? { [`placing-${this.placing}`]: true } : {}, onSubmit: () => { } }, h("div", { id: "verdocs-template-fields-toolbar" }, h("div", { class: "add-for" }, "Add field:"), h("verdocs-select-input", { value: this.selectedRoleName, options: selectableRoles, onInput: (e) => (this.selectedRoleName = e.target.value) }), menuOptions.map(option => (h("verdocs-toolbar-icon", { text: option.tooltip, icon: option.icon, class: option.class, onClick: () => {
966
731
  // We ignore empty-tooltip entries because they're separators
967
732
  if (option.tooltip) {
@@ -973,7 +738,7 @@ const VerdocsTemplateFields = class {
973
738
  this.showMustSelectRole = true;
974
739
  }
975
740
  }
976
- } })))), h("div", { class: "pages" }, (((_c = (_b = this.templateStore) === null || _b === void 0 ? void 0 : _b.state) === null || _c === void 0 ? void 0 : _c.documents) || []).map(document => {
741
+ } })))), h("div", { class: "pages" }, (((_b = this.template) === null || _b === void 0 ? void 0 : _b.documents) || []).map(document => {
977
742
  const pageNumbers = integerSequence(1, document.pages);
978
743
  return pageNumbers.map(page => {
979
744
  const pageSize = document.page_sizes[page];
@@ -982,7 +747,7 @@ const VerdocsTemplateFields = class {
982
747
  { name: 'controls', type: 'div' },
983
748
  ] }));
984
749
  });
985
- })), this.showMustSelectRole && (h("verdocs-ok-dialog", { heading: "Unable to add field", message: this.roleStore.get('roles').length > 0 ? 'Please select a role before adding fields.' : 'Please add at least one role before adding fields.', onNext: () => (this.showMustSelectRole = false) }))));
750
+ })), this.showMustSelectRole && (h("verdocs-ok-dialog", { heading: "Unable to add field", message: (((_c = this.template) === null || _c === void 0 ? void 0 : _c.roles) || []).length > 0 ? 'Please select a role before adding fields.' : 'Please add at least one role before adding fields.', onNext: () => (this.showMustSelectRole = false) }))));
986
751
  }
987
752
  static get watchers() { return {
988
753
  "templateId": ["onTemplateIdChanged"]
@@ -990,85 +755,13 @@ const VerdocsTemplateFields = class {
990
755
  };
991
756
  VerdocsTemplateFields.style = VerdocsTemplateFieldsStyle0;
992
757
 
993
- const verdocsTemplateNameCss = "";
994
- const VerdocsTemplateNameStyle0 = verdocsTemplateNameCss;
995
-
996
- const VerdocsTemplateName = class {
997
- constructor(hostRef) {
998
- registerInstance(this, hostRef);
999
- this.close = createEvent(this, "close", 7);
1000
- this.sdkError = createEvent(this, "sdkError", 7);
1001
- this.templateUpdated = createEvent(this, "templateUpdated", 7);
1002
- this.store = null;
1003
- this.endpoint = VerdocsEndpoint.getDefault();
1004
- this.templateId = '';
1005
- this.name = '';
1006
- this.dirty = false;
1007
- }
1008
- async componentWillLoad() {
1009
- var _a, _b, _c, _d, _e;
1010
- try {
1011
- this.endpoint.loadSession();
1012
- if (!this.templateId) {
1013
- console.log(`[ROLES] Missing required template ID ${this.templateId}`);
1014
- return;
1015
- }
1016
- if (!this.endpoint.session) {
1017
- console.log('[ROLES] Unable to start builder session, must be authenticated');
1018
- return;
1019
- }
1020
- this.store = await getTemplateStore(this.endpoint, this.templateId, false);
1021
- this.name = (_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.name;
1022
- this.dirty = false;
1023
- }
1024
- catch (e) {
1025
- console.log('[TEMPLATE NAME] Error loading template', e);
1026
- (_c = this.sdkError) === null || _c === void 0 ? void 0 : _c.emit(new SDKError(e.message, (_d = e.response) === null || _d === void 0 ? void 0 : _d.status, (_e = e.response) === null || _e === void 0 ? void 0 : _e.data));
1027
- }
1028
- }
1029
- handleCancel(e) {
1030
- var _a, _b, _c;
1031
- e.stopPropagation();
1032
- this.name = (_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.name;
1033
- this.dirty = false;
1034
- console.log('Closing');
1035
- (_c = this.close) === null || _c === void 0 ? void 0 : _c.emit();
1036
- }
1037
- async handleSave(e) {
1038
- var _a, _b, _c;
1039
- e.stopPropagation();
1040
- await updateTemplate(this.endpoint, this.templateId, { name: this.name });
1041
- if ((_a = this.store) === null || _a === void 0 ? void 0 : _a.state) {
1042
- this.store.state.name = this.name;
1043
- }
1044
- this.dirty = false;
1045
- (_b = this.templateUpdated) === null || _b === void 0 ? void 0 : _b.emit({ endpoint: this.endpoint, template: this.store.state, event: 'name' });
1046
- (_c = this.close) === null || _c === void 0 ? void 0 : _c.emit();
1047
- }
1048
- render() {
1049
- var _a, _b;
1050
- if (!this.endpoint.session) {
1051
- return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
1052
- }
1053
- if ((_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.isLoading) {
1054
- return (h(Host, { class: "loading" }, h("verdocs-loader", null)));
1055
- }
1056
- return (h(Host, null, h("form", { onSubmit: e => e.preventDefault(), onClick: e => e.stopPropagation(), autocomplete: "off" }, h("label", { htmlFor: "verdocs-template-name" }, "Template Name"), h("verdocs-text-input", { id: "verdocs-template-name", value: this.name, autocomplete: "off", placeholder: "Template Name...", onInput: (e) => {
1057
- var _a, _b;
1058
- this.name = e.target.value;
1059
- this.dirty = this.name !== ((_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.name);
1060
- } }), h("div", { class: "buttons" }, h("verdocs-button", { size: "small", variant: "outline", label: "Cancel", disabled: !this.dirty, onClick: e => this.handleCancel(e) }), h("verdocs-button", { size: "small", label: "Save", disabled: !this.dirty, onClick: e => this.handleSave(e) })))));
1061
- }
1062
- };
1063
- VerdocsTemplateName.style = VerdocsTemplateNameStyle0;
1064
-
1065
758
  const verdocsTemplateRolesCss = "@-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-template-roles{display:block;min-width:400px;font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif}verdocs-template-roles>form{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;background-color:#ffffff;padding:12px}verdocs-template-roles>form h5{font-size:16px;font-weight:bold;color:#46497d;margin:0 0 10px 0}verdocs-template-roles>form .participants{position:relative}verdocs-template-roles>form .left-line{top:32px;left:11px;z-index:1;width:12px;bottom:30px;position:absolute;background:#ffffff;border-left:3px dotted #9b9b9b}verdocs-template-roles>form .row{display:-ms-flexbox;display:flex;-webkit-column-gap:0;-moz-column-gap:0;column-gap:0;min-height:35px;margin-top:0;margin-left:40px;position:relative;-ms-flex-direction:row;flex-direction:row;padding:6px 0 4px 0}verdocs-template-roles>form .row .row-roles{-ms-flex:1;flex:1;gap:10px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-direction:row;flex-direction:row}verdocs-template-roles>form .row .icon{top:14px;z-index:2;left:-40px;width:24px;height:24px;position:absolute;background:#ffffff}verdocs-template-roles>form .row .sender{height:30px;display:-ms-flexbox;display:flex;font-size:14px;line-height:30px;-ms-flex-align:center;align-items:center;border-radius:30px;-ms-flex-direction:row;flex-direction:row;padding:0 15px 0 15px;border:1px solid #c6c9cc;background-color:#f5f5fa}verdocs-template-roles>form .row .complete{height:30px;display:-ms-flexbox;display:flex;font-size:14px;padding:0 15px;line-height:30px;-ms-flex-direction:row;flex-direction:row;border-radius:30px;background-color:#f5f5fa;border:1px solid #aeb4bf}verdocs-template-roles>form .row .label{font-weight:bold;margin-right:6px;color:#33364b}verdocs-template-roles>form .row .settings-button{display:-ms-flexbox;display:flex;cursor:pointer;margin:0 0 0 9px}verdocs-template-roles>form .row .recipient{height:30px;display:-ms-flexbox;display:flex;font-size:14px;border-radius:30px;-ms-flex-align:center;align-items:center;-ms-flex-direction:row;flex-direction:row;padding:0 5px 0 6px;white-space:nowrap;border:2px solid #aeb4bf}verdocs-template-roles>form .row .recipient .type-icon{width:24px;height:24px;-webkit-transform:scale(0.8);transform:scale(0.8);opacity:0.6;margin:0 12px 0 0}verdocs-template-roles>form .row .recipient.dragging{position:absolute}verdocs-template-roles>form .row .recipient.dragging+.dropzone{display:none !important}verdocs-template-roles>form .row .dropzone{width:14px;height:30px;display:none}verdocs-template-roles>form .row .dropzone svg{fill:#cccccc}verdocs-template-roles>form .row .dropzone.visible{margin:0 7px;display:-ms-flexbox;display:flex;-ms-flex:0 0 14px;flex:0 0 14px}verdocs-template-roles>form .row .dropzone.active{-ms-flex:0 0 120px;flex:0 0 120px;border-radius:30px;background:rgba(101, 77, 203, 0.4980392157);border:1px dashed #654dcb}verdocs-template-roles>form label{display:block;font-size:14px;font-weight:500;margin:0 0 4px 0;color:#5c6575}verdocs-template-roles>form input{border:none;font-size:18px;padding:3px 6px 3px 0;background:transparent;border-bottom:1px solid #33364b}verdocs-template-roles>form input:focus{outline:none}verdocs-template-roles .row.add-sequence{display:none}verdocs-template-roles .add-role{margin:0;padding:0;border:none;opacity:0.5;cursor:pointer;background:none}verdocs-template-roles .add-role:hover{opacity:1}verdocs-template-roles .add-role svg{width:32px;height:32px}verdocs-template-roles .add-step{margin:0;padding:0;border:none;opacity:0.5;cursor:pointer;background:none}verdocs-template-roles .add-step:hover{opacity:1}verdocs-template-roles .add-step svg{width:32px;height:32px}verdocs-template-roles.dragging .add-role{display:none}verdocs-template-roles.dragging form .row .recipient+.dropzone{display:-ms-flexbox;display:flex}verdocs-template-roles.dragging .row.add-sequence{display:-ms-flexbox;display:flex}verdocs-template-roles.dragging .row.add-sequence .dropzone{opacity:0.5;-ms-flex:0 0 120px;flex:0 0 120px;border-radius:30px;-ms-flex-align:center;align-items:center;background:rgba(101, 77, 203, 0.4980392157);-ms-flex-pack:center;justify-content:center;border:1px dashed #654dcb}verdocs-template-roles.dragging .row.add-sequence .dropzone.active{opacity:1}verdocs-template-roles .buttons{display:-ms-flexbox;display:flex;-webkit-column-gap:8px;-moz-column-gap:8px;column-gap:8px;margin-top:16px;-ms-flex-direction:row;flex-direction:row}verdocs-template-roles .empty{font-size:13px;margin-top:15px;margin-bottom:5px}verdocs-template-roles .empty svg{width:16px;height:16px;stroke:#666666;margin-bottom:2px;display:inline-block}verdocs-template-roles ::-webkit-input-placeholder{color:#aaaaaa}verdocs-template-roles ::-moz-placeholder{color:#aaaaaa}verdocs-template-roles :-ms-input-placeholder{color:#aaaaaa}verdocs-template-roles ::-ms-input-placeholder{color:#aaaaaa}verdocs-template-roles ::placeholder{color:#aaaaaa}";
1066
759
  const VerdocsTemplateRolesStyle0 = verdocsTemplateRolesCss;
1067
760
 
1068
- const senderLabels = {
1069
- template_owner: 'Template Owner',
1070
- envelope_creator: 'Envelope Creator',
1071
- };
761
+ // const senderLabels: Record<TTemplateSender, string> = {
762
+ // template_owner: 'Template Owner',
763
+ // envelope_creator: 'Envelope Creator',
764
+ // };
1072
765
  const settingsIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" fill="#00000089"><path d="m8.021 17.917-.313-2.5q-.27-.125-.625-.334-.354-.208-.625-.395l-2.312.979-1.979-3.438 1.979-1.5q-.021-.167-.031-.364-.011-.198-.011-.365 0-.146.011-.344.01-.198.031-.385l-1.979-1.5 1.979-3.417 2.312.958q.271-.187.615-.385t.635-.344l.313-2.5h3.958l.313 2.5q.312.167.625.344.312.177.604.385l2.333-.958 1.979 3.417-1.979 1.521q.021.187.021.364V10q0 .146-.01.333-.011.188-.011.396l1.958 1.5-1.979 3.438-2.312-.979q-.292.208-.615.395-.323.188-.614.334l-.313 2.5Zm1.937-5.355q1.063 0 1.813-.75t.75-1.812q0-1.062-.75-1.812t-1.813-.75q-1.041 0-1.802.75-.76.75-.76 1.812t.76 1.812q.761.75 1.802.75Zm0-1.333q-.5 0-.864-.364-.365-.365-.365-.865t.365-.865q.364-.364.864-.364t.865.364q.365.365.365.865t-.365.865q-.365.364-.865.364ZM10.021 10Zm-.854 6.583h1.666l.25-2.187q.605-.167 1.136-.49.531-.323 1.031-.802l2.021.875.854-1.375-1.792-1.354q.105-.333.136-.635.031-.303.031-.615 0-.292-.031-.573-.031-.281-.115-.635l1.792-1.396-.834-1.375-2.062.875q-.438-.438-1.021-.781-.583-.344-1.125-.49l-.271-2.208H9.167l-.271 2.208q-.584.146-1.125.458-.542.313-1.042.792l-2.021-.854-.833 1.375 1.75 1.354q-.083.333-.125.646-.042.312-.042.604t.042.594q.042.302.125.635l-1.75 1.375.833 1.375 2.021-.854q.479.458 1.021.771.542.312 1.146.479Z"/></svg>';
1073
766
  const startIcon = '<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24" fill="#00000089"><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>';
1074
767
  const stepIcon = '<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24" fill="#00000089"><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>';
@@ -1084,13 +777,31 @@ const VerdocsTemplateRoles = class {
1084
777
  this.exit = createEvent(this, "exit", 7);
1085
778
  this.sdkError = createEvent(this, "sdkError", 7);
1086
779
  this.rolesUpdated = createEvent(this, "rolesUpdated", 7);
1087
- this.templateStore = null;
1088
- this.roleStore = null;
780
+ this.templateListenerId = null;
1089
781
  this.endpoint = VerdocsEndpoint.getDefault();
1090
782
  this.templateId = '';
1091
783
  this.showingRoleDialog = null;
1092
784
  this.sender = null;
1093
785
  this.loading = true;
786
+ this.template = null;
787
+ }
788
+ disconnectedCallback() {
789
+ this.unlistenToTemplate();
790
+ }
791
+ async listenToTemplate() {
792
+ console.log('[ROLES] Loading template', this.templateId);
793
+ this.unlistenToTemplate();
794
+ Store.subscribe('templates', this.templateId, () => getTemplate(this.endpoint, this.templateId), false, (template) => {
795
+ console.log('[BUILD] Template Updated', template);
796
+ this.template = template;
797
+ this.loading = false;
798
+ });
799
+ }
800
+ unlistenToTemplate() {
801
+ if (this.templateListenerId) {
802
+ Store.store.delListener(this.templateListenerId);
803
+ this.templateListenerId = null;
804
+ }
1094
805
  }
1095
806
  async componentWillLoad() {
1096
807
  var _a, _b, _c;
@@ -1104,18 +815,7 @@ const VerdocsTemplateRoles = class {
1104
815
  console.log('[ROLES] Unable to start builder session, must be authenticated');
1105
816
  return;
1106
817
  }
1107
- await getTemplateStore(this.endpoint, this.templateId, false)
1108
- .then(ts => {
1109
- this.templateStore = ts;
1110
- this.roleStore = getTemplateRoleStore(this.templateId);
1111
- this.loading = false;
1112
- this.roleStore.onChange('roles', roles => {
1113
- var _a;
1114
- console.log('[ROLES] Roles changed', { roles });
1115
- (_a = this.rolesUpdated) === null || _a === void 0 ? void 0 : _a.emit({ event: 'updated', endpoint: this.endpoint, templateId: this.templateId, roles });
1116
- });
1117
- })
1118
- .catch(e => console.warn(e));
818
+ this.listenToTemplate();
1119
819
  }
1120
820
  catch (e) {
1121
821
  console.log('[FIELDS] Error with preview session', e);
@@ -1159,12 +859,8 @@ const VerdocsTemplateRoles = class {
1159
859
  overlap: 0.05,
1160
860
  ondrop: async function onDrop(event) {
1161
861
  var _a;
1162
- console.log('dropped', event.target.classList);
1163
862
  event.target.classList.remove('active');
1164
- const roleName = event.relatedTarget.dataset.rolename;
1165
- const targetSequence = +event.target.dataset.sequence;
1166
- const targetOrder = +event.target.dataset.order;
1167
- updateStoreRole(this.roleStore, roleName, { sequence: targetSequence, order: targetOrder });
863
+ // This will re-sort the roles and renumbers them via server calls if necessary
1168
864
  await this.renumberTemplateRoles();
1169
865
  console.log('[ROLES] Updated roles', this.getSortedRoles());
1170
866
  (_a = this.rolesUpdated) === null || _a === void 0 ? void 0 : _a.emit({ event: 'updated', endpoint: this.endpoint, templateId: this.templateId, roles: this.getSortedRoles() });
@@ -1192,7 +888,10 @@ const VerdocsTemplateRoles = class {
1192
888
  (_a = this.next) === null || _a === void 0 ? void 0 : _a.emit();
1193
889
  }
1194
890
  getSortedRoles() {
1195
- return this.roleStore.state.roles.sort((a, b) => {
891
+ var _a;
892
+ // NOTE: This mutates the source array but that's OK because everything that touches
893
+ // it will want the same thing done.
894
+ return (((_a = this.template) === null || _a === void 0 ? void 0 : _a.roles) || []).sort((a, b) => {
1196
895
  return a.sequence === b.sequence ? a.order - b.order : a.sequence - b.sequence;
1197
896
  });
1198
897
  }
@@ -1210,14 +909,15 @@ const VerdocsTemplateRoles = class {
1210
909
  return roles.map(role => role.name);
1211
910
  }
1212
911
  getRolesAtSequence(sequence) {
912
+ var _a;
1213
913
  // Entries can be undefined when deleted because Stencil has no remove() operator yet for stores.
1214
914
  // See https://github.com/ionic-team/stencil-store/issues/23
1215
- return this.roleStore.state.roles.filter(role => role && role.sequence === sequence);
915
+ return (((_a = this.template) === null || _a === void 0 ? void 0 : _a.roles) || []).filter(role => role && role.sequence === sequence);
1216
916
  }
1217
917
  // When the user drags a role around, we handle placement "between" items by assigning it a half-order number
1218
918
  // e.g. 1.5 to place it between items 1 and 2, 0.5 to place it at the beginning, or last+0.5 to place it at the end.
1219
919
  // Then we re-sort the list of roles and renumber them.
1220
- renumberTemplateRoles() {
920
+ async renumberTemplateRoles() {
1221
921
  // console.log('Renumbering roles', this.getSequenceNumbers(), JSON.stringify(this.roleStore.state));
1222
922
  // Avoid dupe renumber attempts
1223
923
  const renumbered = [];
@@ -1230,24 +930,30 @@ const VerdocsTemplateRoles = class {
1230
930
  role.sequence = newSequenceIndex + 1;
1231
931
  role.order = newOrderIndex + 1;
1232
932
  renumbered.push(role.name);
1233
- renumberRequests.push(updateTemplateRole(this.endpoint, this.templateId, role.name, {
1234
- sequence: role.sequence,
1235
- order: role.order,
1236
- }));
933
+ renumberRequests.push(updateTemplateRole(this.endpoint, this.templateId, role.name, { sequence: role.sequence, order: role.order }));
1237
934
  }
1238
935
  }
1239
936
  });
1240
937
  });
1241
- return Promise.all(renumberRequests);
938
+ if (renumberRequests.length > 0) {
939
+ console.log(`[ROLES] Submitting ${renumberRequests.length} renumber requests`);
940
+ return Promise.all(renumberRequests).then(async () => {
941
+ // When renumbering, we don't try to update the store for every individual item
942
+ // changing. We just do it once at the end.
943
+ this.template = await Store.getTemplate(this.endpoint, this.templateId, true);
944
+ });
945
+ }
946
+ return true;
1242
947
  }
1243
948
  // Look for name conflicts, because they're UGC and can be anything, regardless of order.
1244
949
  getNextRoleName() {
950
+ var _a, _b;
1245
951
  let name = '';
1246
- let nextNumber = Object.keys(this.roleStore.state).length - 1;
952
+ let nextNumber = (((_a = this.template) === null || _a === void 0 ? void 0 : _a.roles) || []).length;
1247
953
  do {
1248
954
  nextNumber++;
1249
955
  name = `Recipient ${nextNumber}`;
1250
- } while (!name || this.roleStore.state.roles.some(role => role && role.name === name));
956
+ } while (!name || (((_b = this.template) === null || _b === void 0 ? void 0 : _b.roles) || []).some(role => role && role.name === name));
1251
957
  return name;
1252
958
  }
1253
959
  callCreateRole(name, sequence, order) {
@@ -1267,10 +973,15 @@ const VerdocsTemplateRoles = class {
1267
973
  delegator: false,
1268
974
  kba_method: null,
1269
975
  })
1270
- .then(async (r) => {
976
+ .then(async (role) => {
1271
977
  var _a;
1272
- console.log('[ROLES] Created role', r);
1273
- this.roleStore.set('roles', [...this.roleStore.state.roles, r]);
978
+ console.log('[ROLES] Created role', role);
979
+ const newTemplate = JSON.parse(JSON.stringify(this.template));
980
+ newTemplate.roles.push(role);
981
+ // TODO: Verify this immediately triggers a self-update
982
+ console.log('Updating template in data store');
983
+ Store.updateTemplate(this.templateId, newTemplate);
984
+ // This will re-sort the roles and renumbers them via server calls if necessary
1274
985
  await this.renumberTemplateRoles();
1275
986
  (_a = this.rolesUpdated) === null || _a === void 0 ? void 0 : _a.emit({ event: 'added', endpoint: this.endpoint, templateId: this.templateId, roles: this.getSortedRoles() });
1276
987
  })
@@ -1291,25 +1002,23 @@ const VerdocsTemplateRoles = class {
1291
1002
  this.callCreateRole(name, sequence, order);
1292
1003
  }
1293
1004
  render() {
1294
- var _a, _b, _c, _d;
1295
1005
  if (!this.endpoint.session) {
1296
1006
  return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
1297
1007
  }
1298
- if (this.loading || !((_a = this.templateStore) === null || _a === void 0 ? void 0 : _a.state.isLoaded)) {
1299
- console.log('Loading', this.loading, (_b = this.templateStore) === null || _b === void 0 ? void 0 : _b.state.isLoaded);
1008
+ if (this.loading || !this.template) {
1300
1009
  return (h(Host, { class: "loading" }, h("verdocs-loader", null)));
1301
1010
  }
1302
1011
  const roleNames = this.getRoleNames();
1303
1012
  const sequences = this.getSequenceNumbers();
1304
- return (h(Host, null, h("form", { onSubmit: e => e.preventDefault(), onClick: e => e.stopPropagation(), autocomplete: "off" }, h("h5", null, "Roles and Workflow"), h("div", { class: "participants" }, h("div", { class: "left-line" }), h("div", { class: "row" }, h("div", { class: "icon", innerHTML: startIcon }), h("div", { class: "row-roles" }, h("div", { class: "sender" }, h("span", { class: "label" }, "Owner:"), " ", senderLabels[(_d = (_c = this.templateStore) === null || _c === void 0 ? void 0 : _c.state) === null || _d === void 0 ? void 0 : _d.sender], ' '))), h("div", { class: "row add-sequence", "data-sequence": 0 }, h("div", { class: "icon", innerHTML: plusIcon }), h("div", { class: "row-roles" }, h("div", { class: "dropzone", "data-sequence": 0, "data-order": 1 }, "Add Step"))), sequences.map(sequence => (h(Fragment, null, h("div", { class: "row" }, h("div", { class: "icon", innerHTML: stepIcon }), h("div", { class: "row-roles" }, h("div", { class: "dropzone", "data-order": 0.5, "data-sequence": sequence }), this.getRolesAtSequence(sequence).map(role => {
1013
+ return (h(Host, null, h("form", { onSubmit: e => e.preventDefault(), onClick: e => e.stopPropagation(), autocomplete: "off" }, h("h5", null, "Roles and Workflow"), h("div", { class: "participants" }, h("div", { class: "left-line" }), h("div", { class: "row" }, h("div", { class: "icon", innerHTML: startIcon }), h("div", { class: "row-roles" }, h("div", { class: "sender" }, h("span", { class: "label" }, "Send Envelope")))), h("div", { class: "row add-sequence", "data-sequence": 0 }, h("div", { class: "icon", innerHTML: plusIcon }), h("div", { class: "row-roles" }, h("div", { class: "dropzone", "data-sequence": 0, "data-order": 1 }, "Add Step"))), sequences.map(sequence => (h(Fragment, null, h("div", { class: "row" }, h("div", { class: "icon", innerHTML: stepIcon }), h("div", { class: "row-roles" }, h("div", { class: "dropzone", "data-order": 0.5, "data-sequence": sequence }), this.getRolesAtSequence(sequence).map(role => {
1305
1014
  const unknown = !role.email;
1306
- console.log('ras', sequence, role);
1307
- return unknown ? (h(Fragment, null, h("div", { class: "recipient", style: { backgroundColor: getRGBA(getRoleIndex(this.roleStore, role.name)) }, "data-rolename": role.name, "data-sequence": sequence, "data-order": role.order }, h("span", { class: "type-icon", innerHTML: role.type === 'signer' ? iconSigner : role.type === 'cc' ? iconCC : iconApprover }), role.name, " ", h("div", { class: "settings-button", innerHTML: settingsIcon, onClick: () => (this.showingRoleDialog = role.name), "aria-role": "button" })), h("div", { class: "dropzone", "data-order": role.order + 0.5, "data-sequence": sequence }))) : (h(Fragment, null, h("div", { class: "recipient", style: { borderColor: getRGBA(getRoleIndex(this.roleStore, role.name)) }, "data-rolename": role.name, "data-sequence": sequence, "data-order": role.order }, h("span", { class: "type-icon", innerHTML: role.type === 'signer' ? iconSigner : role.type === 'cc' ? iconCC : iconApprover }), formatFullName(role), " ", h("div", { class: "settings-button", innerHTML: settingsIcon, onClick: () => (this.showingRoleDialog = role.name), "aria-role": "button" })), h("div", { class: "dropzone", "data-order": role.order + 0.5, "data-sequence": sequence })));
1015
+ return unknown ? (h(Fragment, null, h("div", { class: "recipient", style: { backgroundColor: getRGBA(getRoleIndex(this.template, role.name)) }, "data-rolename": role.name, "data-sequence": sequence, "data-order": role.order }, h("span", { class: "type-icon", innerHTML: role.type === 'signer' ? iconSigner : role.type === 'cc' ? iconCC : iconApprover }), role.name, " ", h("div", { class: "settings-button", innerHTML: settingsIcon, onClick: () => (this.showingRoleDialog = role.name), "aria-role": "button" })), h("div", { class: "dropzone", "data-order": role.order + 0.5, "data-sequence": sequence }))) : (h(Fragment, null, h("div", { class: "recipient", style: { borderColor: getRGBA(getRoleIndex(this.template, role.name)) }, "data-rolename": role.name, "data-sequence": sequence, "data-order": role.order }, h("span", { class: "type-icon", innerHTML: role.type === 'signer' ? iconSigner : role.type === 'cc' ? iconCC : iconApprover }), formatFullName(role), " ", h("div", { class: "settings-button", innerHTML: settingsIcon, onClick: () => (this.showingRoleDialog = role.name), "aria-role": "button" })), h("div", { class: "dropzone", "data-order": role.order + 0.5, "data-sequence": sequence })));
1308
1016
  }), h("button", { class: "add-role", innerHTML: plusIcon, onClick: e => this.handleAddRole(e, sequence) }))), sequences.length > 0 && (h("div", { class: "row add-sequence", "data-sequence": sequence }, h("div", { class: "row-roles" }, h("div", { class: "icon", innerHTML: plusIcon }), h("div", { class: "dropzone", "data-sequence": sequence + 1, "data-order": 1 }, "Add Step"))))))), h("div", { class: "row", "data-sequence": sequences.length + 1 }, h("div", { class: "row-roles" }, h("div", { class: "icon", innerHTML: plusIcon }), h("button", { class: "add-step", innerHTML: plusIcon, onClick: e => this.handleAddStep(e, sequences.length + 1) }))), h("div", { class: "row" }, h("div", { class: "icon", innerHTML: doneIcon }), h("div", { class: "row-roles" }, h("div", { class: "complete" }, "Document Complete")))), roleNames.length < 1 && (h("div", { class: "empty" }, "You must add at least one Role before proceeding.", h("br", null), " Click the ", h("span", { innerHTML: plusIcon }), " Add button above to get started.")), h("div", { class: "buttons" }, h("div", { class: "flex-fill" }), h("verdocs-button", { variant: "outline", label: "Cancel", size: "small", onClick: () => this.handleCancel() }), h("verdocs-button", { label: "OK", size: "small", onClick: () => this.handleSubmit(), disabled: roleNames.length < 1 }))), this.showingRoleDialog && (h("verdocs-template-role-properties", { endpoint: this.endpoint, templateId: this.templateId, roleName: this.showingRoleDialog, onClose: () => {
1309
1017
  this.showingRoleDialog = null;
1310
1018
  }, onDelete: async () => {
1311
1019
  var _a;
1312
1020
  this.showingRoleDialog = null;
1021
+ // This will re-sort the roles and renumbers them via server calls if necessary
1313
1022
  await this.renumberTemplateRoles();
1314
1023
  (_a = this.rolesUpdated) === null || _a === void 0 ? void 0 : _a.emit({ event: 'deleted', endpoint: this.endpoint, templateId: this.templateId, roles: this.getSortedRoles() });
1315
1024
  } }))));
@@ -1318,82 +1027,4 @@ const VerdocsTemplateRoles = class {
1318
1027
  };
1319
1028
  VerdocsTemplateRoles.style = VerdocsTemplateRolesStyle0;
1320
1029
 
1321
- const verdocsTemplateVisibilityCss = "@-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-template-visibility{font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif}verdocs-template-visibility.loading{min-height:300px;position:relative;display:block}verdocs-template-visibility.empty{display:none}verdocs-template-visibility form{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}verdocs-template-visibility form .description{font-size:14px;text-align:justify;color:#5c6575}verdocs-template-visibility form h5{font-size:16px;font-weight:bold;color:#4c56cb;margin:0}verdocs-template-visibility form label{-ms-flex:1;flex:1;display:-ms-flexbox;display:flex;font-size:16px;font-weight:500;margin:0 0 4px 0;color:#33364b}verdocs-template-visibility form input{border:none;font-size:18px;padding:3px 6px 3px 0;background:transparent;border-bottom:1px solid #33364b}verdocs-template-visibility form input:focus{outline:none}verdocs-template-visibility form .input-row{display:-ms-flexbox;display:flex;margin:20px 0 0 0;-ms-flex-align:center;align-items:center;-ms-flex-direction:row;flex-direction:row}verdocs-template-visibility form .input-row verdocs-text-input{margin:0;display:-ms-flexbox;display:flex;-ms-flex:0 0 40px;flex:0 0 40px}verdocs-template-visibility form .input-row verdocs-text-input input{text-align:center}verdocs-template-visibility form .input-row verdocs-checkbox{-ms-flex:0;flex:0;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}verdocs-template-visibility form .input-row verdocs-checkbox label>input[type=checkbox]+*::before{margin-right:0}verdocs-template-visibility .buttons{display:-ms-flexbox;display:flex;-webkit-column-gap:8px;-moz-column-gap:8px;column-gap:8px;margin-top:25px;-ms-flex-direction:row;flex-direction:row}verdocs-template-visibility ::-webkit-input-placeholder{color:#aaaaaa}verdocs-template-visibility ::-moz-placeholder{color:#aaaaaa}verdocs-template-visibility :-ms-input-placeholder{color:#aaaaaa}verdocs-template-visibility ::-ms-input-placeholder{color:#aaaaaa}verdocs-template-visibility ::placeholder{color:#aaaaaa}";
1322
- const VerdocsTemplateVisibilityStyle0 = verdocsTemplateVisibilityCss;
1323
-
1324
- const VerdocsTemplateVisibility = class {
1325
- constructor(hostRef) {
1326
- registerInstance(this, hostRef);
1327
- this.close = createEvent(this, "close", 7);
1328
- this.sdkError = createEvent(this, "sdkError", 7);
1329
- this.templateUpdated = createEvent(this, "templateUpdated", 7);
1330
- this.store = null;
1331
- this.endpoint = VerdocsEndpoint.getDefault();
1332
- this.templateId = '';
1333
- this.dirty = false;
1334
- this.personal = false;
1335
- this.public = false;
1336
- }
1337
- async componentWillLoad() {
1338
- var _a, _b, _c, _d, _e, _f, _g;
1339
- try {
1340
- this.endpoint.loadSession();
1341
- if (!this.templateId) {
1342
- console.log(`[VISIBILITY] Missing required template ID ${this.templateId}`);
1343
- return;
1344
- }
1345
- if (!this.endpoint.session) {
1346
- console.log('[VISIBILITY] Unable to start builder session, must be authenticated');
1347
- return;
1348
- }
1349
- this.store = await getTemplateStore(this.endpoint, this.templateId, false);
1350
- this.personal = ((_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.is_personal) || true;
1351
- this.public = ((_d = (_c = this.store) === null || _c === void 0 ? void 0 : _c.state) === null || _d === void 0 ? void 0 : _d.is_public) || false;
1352
- this.dirty = false;
1353
- }
1354
- catch (e) {
1355
- console.log('[TEMPLATE VISIBILITY] Error loading template', e);
1356
- (_e = this.sdkError) === null || _e === void 0 ? void 0 : _e.emit(new SDKError(e.message, (_f = e.response) === null || _f === void 0 ? void 0 : _f.status, (_g = e.response) === null || _g === void 0 ? void 0 : _g.data));
1357
- }
1358
- }
1359
- handleCancel(e) {
1360
- var _a, _b, _c, _d, _e;
1361
- e.stopPropagation();
1362
- this.personal = (_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.is_personal;
1363
- this.public = (_d = (_c = this.store) === null || _c === void 0 ? void 0 : _c.state) === null || _d === void 0 ? void 0 : _d.is_public;
1364
- this.dirty = false;
1365
- (_e = this.close) === null || _e === void 0 ? void 0 : _e.emit();
1366
- }
1367
- async handleSave(e) {
1368
- var _a, _b, _c;
1369
- e.stopPropagation();
1370
- await updateTemplate(this.endpoint, this.templateId, { is_personal: this.personal, is_public: this.public });
1371
- if ((_a = this.store) === null || _a === void 0 ? void 0 : _a.state) {
1372
- this.store.state.is_personal = this.personal;
1373
- this.store.state.is_public = this.public;
1374
- }
1375
- this.dirty = false;
1376
- (_b = this.templateUpdated) === null || _b === void 0 ? void 0 : _b.emit({ endpoint: this.endpoint, template: this.store.state, event: 'visibility' });
1377
- (_c = this.close) === null || _c === void 0 ? void 0 : _c.emit();
1378
- }
1379
- render() {
1380
- var _a, _b;
1381
- if (!this.endpoint.session) {
1382
- return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
1383
- }
1384
- // This is meant to be a companion for larger visual experiences so we just go blank on errors for now.
1385
- if (!this.endpoint.session || !((_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.isLoaded)) {
1386
- return h(Host, { class: "empty" });
1387
- }
1388
- return (h(Host, null, h("form", { onSubmit: e => e.preventDefault(), onClick: e => e.stopPropagation(), autocomplete: "off" }, h("h5", null, "Visibility"), h("div", { class: "input-row" }, h("label", { htmlFor: "verdocs-is-shared" }, "Shared"), h("verdocs-checkbox", { id: "verdocs-is-shared", name: "is-shared", checked: !this.personal, value: "on", onInput: (e) => {
1389
- this.personal = !e.target.checked;
1390
- this.dirty = true;
1391
- } })), h("div", { class: "description" }, "Shared templates are visible to other members of your Organization (if any)."), h("div", { class: "input-row" }, h("label", { htmlFor: "verdocs-is-public" }, "Public"), h("verdocs-checkbox", { id: "verdocs-is-public", name: "is-public", checked: this.public, value: "on", onInput: (e) => {
1392
- this.public = e.target.checked;
1393
- this.dirty = true;
1394
- } })), h("div", { class: "description" }, "Public templates may appear in results when any other user searches for templates. Note that a template may be both Personal and Public, which may be useful if you want your template to be found via search but not otherwise displayed to other members of your Organization (if any)."), h("div", { class: "buttons" }, h("verdocs-button", { size: "small", variant: "outline", label: "Cancel", disabled: !this.dirty, onClick: e => this.handleCancel(e) }), h("verdocs-button", { size: "small", label: "Save", disabled: !this.dirty, onClick: e => this.handleSave(e) })))));
1395
- }
1396
- };
1397
- VerdocsTemplateVisibility.style = VerdocsTemplateVisibilityStyle0;
1398
-
1399
- export { VerdocsPreview as verdocs_preview, VerdocsSend as verdocs_send, VerdocsTemplateAttachments as verdocs_template_attachments, VerdocsTemplateBuildTabs as verdocs_template_build_tabs, VerdocsTemplateCreate as verdocs_template_create, VerdocsTemplateFields as verdocs_template_fields, VerdocsTemplateName as verdocs_template_name, VerdocsTemplateRoles as verdocs_template_roles, VerdocsTemplateVisibility as verdocs_template_visibility };
1030
+ export { VerdocsPreview as verdocs_preview, VerdocsSend as verdocs_send, VerdocsTemplateBuildTabs as verdocs_template_build_tabs, VerdocsTemplateFields as verdocs_template_fields, VerdocsTemplateRoles as verdocs_template_roles };