@verdocs/web-sdk 2.3.31 → 2.3.33

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 (261) hide show
  1. package/dist/cjs/{Icons-a11fb3fc.js → Icons-3286d014.js} +2 -0
  2. package/dist/cjs/TemplateRoleStore-e17bb006.js +44 -0
  3. package/dist/cjs/{TemplateStore-78b8944b.js → TemplateStore-e62c16a8.js} +2 -39
  4. package/dist/cjs/ipc-test.cjs.entry.js +2 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/{utils-aeaf4a31.js → utils-ac526133.js} +1 -7
  7. package/dist/cjs/verdocs-build.cjs.entry.js +2 -1
  8. package/dist/cjs/verdocs-contact-picker_2.cjs.entry.js +1 -1
  9. package/dist/cjs/verdocs-envelope-document-page.cjs.entry.js +1 -1
  10. package/dist/cjs/verdocs-envelopes-list.cjs.entry.js +1 -1
  11. package/dist/cjs/verdocs-field-attachment.cjs.entry.js +8 -7
  12. package/dist/cjs/verdocs-field-checkbox.cjs.entry.js +8 -7
  13. package/dist/cjs/verdocs-field-date.cjs.entry.js +10 -8
  14. package/dist/cjs/verdocs-field-dropdown.cjs.entry.js +8 -6
  15. package/dist/cjs/verdocs-field-initial.cjs.entry.js +9 -7
  16. package/dist/cjs/verdocs-field-payment.cjs.entry.js +6 -4
  17. package/dist/cjs/verdocs-field-radio-button.cjs.entry.js +8 -6
  18. package/dist/cjs/verdocs-field-signature.cjs.entry.js +9 -7
  19. package/dist/cjs/verdocs-field-textarea.cjs.entry.js +12 -7
  20. package/dist/cjs/verdocs-field-textbox.cjs.entry.js +9 -6
  21. package/dist/cjs/verdocs-field-timestamp.cjs.entry.js +10 -8
  22. package/dist/cjs/verdocs-file-chooser_2.cjs.entry.js +1 -1
  23. package/dist/cjs/verdocs-pagination_2.cjs.entry.js +1 -1
  24. package/dist/cjs/verdocs-portal_2.cjs.entry.js +3 -2
  25. package/dist/cjs/verdocs-preview_8.cjs.entry.js +29 -24
  26. package/dist/cjs/verdocs-settings-api-keys_4.cjs.entry.js +1 -1
  27. package/dist/cjs/verdocs-sign.cjs.entry.js +10 -12
  28. package/dist/cjs/verdocs-template-document-page_2.cjs.entry.js +1 -1
  29. package/dist/cjs/verdocs-template-fields_4.cjs.entry.js +18 -17
  30. package/dist/cjs/verdocs-view.cjs.entry.js +1 -1
  31. package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
  32. package/dist/collection/components/embeds/verdocs-preview/verdocs-preview.js +11 -8
  33. package/dist/collection/components/embeds/verdocs-send/verdocs-send.js +16 -14
  34. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js +10 -12
  35. package/dist/collection/components/fields/verdocs-field-attachment/verdocs-field-attachment.js +7 -42
  36. package/dist/collection/components/fields/verdocs-field-checkbox/verdocs-field-checkbox.js +7 -42
  37. package/dist/collection/components/fields/verdocs-field-date/verdocs-field-date.js +8 -42
  38. package/dist/collection/components/fields/verdocs-field-dropdown/verdocs-field-dropdown.js +7 -41
  39. package/dist/collection/components/fields/verdocs-field-initial/verdocs-field-initial.js +8 -42
  40. package/dist/collection/components/fields/verdocs-field-payment/verdocs-field-payment.js +5 -21
  41. package/dist/collection/components/fields/verdocs-field-radio-button-group/verdocs-field-radio-button.js +7 -41
  42. package/dist/collection/components/fields/verdocs-field-signature/verdocs-field-signature.js +8 -42
  43. package/dist/collection/components/fields/verdocs-field-textarea/verdocs-field-textarea.js +11 -42
  44. package/dist/collection/components/fields/verdocs-field-textbox/verdocs-field-textbox.js +8 -41
  45. package/dist/collection/components/fields/verdocs-field-timestamp/verdocs-field-timestamp.js +8 -42
  46. package/dist/collection/components/templates/verdocs-template-fields/verdocs-template-fields.js +10 -10
  47. package/dist/collection/components/templates/verdocs-template-fields/verdocs-template-fields.stories.js +1 -1
  48. package/dist/collection/components/templates/verdocs-template-roles/verdocs-template-roles.js +2 -3
  49. package/dist/collection/utils/Icons.js +1 -0
  50. package/dist/collection/utils/TemplateRoleStore.js +2 -0
  51. package/dist/collection/utils/TemplateStore.js +1 -2
  52. package/dist/collection/utils/utils.js +1 -15
  53. package/dist/{esm/Icons-c29eb0fa.js → components/Icons.js} +2 -1
  54. package/dist/components/TemplateRoleStore.js +37 -0
  55. package/dist/components/TemplateStore.js +2 -34
  56. package/dist/components/utils.js +2 -7
  57. package/dist/components/verdocs-contact-picker2.js +1 -1
  58. package/dist/components/verdocs-field-attachment.js +7 -8
  59. package/dist/components/verdocs-field-checkbox.js +7 -8
  60. package/dist/components/verdocs-field-date.js +8 -8
  61. package/dist/components/verdocs-field-dropdown.js +7 -7
  62. package/dist/components/verdocs-field-initial.js +8 -8
  63. package/dist/components/verdocs-field-payment.js +5 -4
  64. package/dist/components/verdocs-field-radio-button.js +7 -7
  65. package/dist/components/verdocs-field-signature.js +8 -8
  66. package/dist/components/verdocs-field-textarea.js +11 -8
  67. package/dist/components/verdocs-field-textbox.js +8 -7
  68. package/dist/components/verdocs-field-timestamp.js +8 -8
  69. package/dist/components/verdocs-file-chooser2.js +2 -75
  70. package/dist/components/verdocs-preview2.js +11 -8
  71. package/dist/components/verdocs-quick-filter2.js +1 -1
  72. package/dist/components/verdocs-send2.js +16 -14
  73. package/dist/components/verdocs-settings-organization2.js +1 -1
  74. package/dist/components/verdocs-settings-profile2.js +1 -1
  75. package/dist/components/verdocs-sign.js +10 -12
  76. package/dist/components/verdocs-template-attachments2.js +2 -1
  77. package/dist/components/verdocs-template-field-properties2.js +2 -1
  78. package/dist/components/verdocs-template-fields2.js +10 -9
  79. package/dist/components/verdocs-template-role-properties2.js +2 -1
  80. package/dist/components/verdocs-template-roles2.js +3 -3
  81. package/dist/docs.json +1 -358
  82. package/dist/esm/Icons-ddea87bf.js +76 -0
  83. package/dist/esm/TemplateRoleStore-bbb2b098.js +37 -0
  84. package/dist/esm/{TemplateStore-618fb47f.js → TemplateStore-adbf68a0.js} +2 -34
  85. package/dist/esm/ipc-test.entry.js +2 -1
  86. package/dist/esm/loader.js +1 -1
  87. package/dist/esm/{utils-f76f3448.js → utils-d081a2b9.js} +2 -7
  88. package/dist/esm/verdocs-build.entry.js +2 -1
  89. package/dist/esm/verdocs-contact-picker_2.entry.js +1 -1
  90. package/dist/esm/verdocs-envelope-document-page.entry.js +1 -1
  91. package/dist/esm/verdocs-envelopes-list.entry.js +1 -1
  92. package/dist/esm/verdocs-field-attachment.entry.js +8 -7
  93. package/dist/esm/verdocs-field-checkbox.entry.js +8 -7
  94. package/dist/esm/verdocs-field-date.entry.js +10 -8
  95. package/dist/esm/verdocs-field-dropdown.entry.js +8 -6
  96. package/dist/esm/verdocs-field-initial.entry.js +9 -7
  97. package/dist/esm/verdocs-field-payment.entry.js +6 -4
  98. package/dist/esm/verdocs-field-radio-button.entry.js +8 -6
  99. package/dist/esm/verdocs-field-signature.entry.js +9 -7
  100. package/dist/esm/verdocs-field-textarea.entry.js +12 -7
  101. package/dist/esm/verdocs-field-textbox.entry.js +9 -6
  102. package/dist/esm/verdocs-field-timestamp.entry.js +10 -8
  103. package/dist/esm/verdocs-file-chooser_2.entry.js +1 -1
  104. package/dist/esm/verdocs-pagination_2.entry.js +1 -1
  105. package/dist/esm/verdocs-portal_2.entry.js +2 -1
  106. package/dist/esm/verdocs-preview_8.entry.js +29 -24
  107. package/dist/esm/verdocs-settings-api-keys_4.entry.js +1 -1
  108. package/dist/esm/verdocs-sign.entry.js +10 -12
  109. package/dist/esm/verdocs-template-document-page_2.entry.js +1 -1
  110. package/dist/esm/verdocs-template-fields_4.entry.js +12 -11
  111. package/dist/esm/verdocs-view.entry.js +1 -1
  112. package/dist/esm/verdocs-web-sdk.js +1 -1
  113. package/dist/esm-es5/{Icons-c29eb0fa.js → Icons-ddea87bf.js} +1 -1
  114. package/dist/esm-es5/TemplateRoleStore-bbb2b098.js +1 -0
  115. package/dist/esm-es5/TemplateStore-adbf68a0.js +1 -0
  116. package/dist/esm-es5/ipc-test.entry.js +1 -1
  117. package/dist/esm-es5/loader.js +1 -1
  118. package/dist/esm-es5/{utils-f76f3448.js → utils-d081a2b9.js} +1 -1
  119. package/dist/esm-es5/verdocs-build.entry.js +1 -1
  120. package/dist/esm-es5/verdocs-contact-picker_2.entry.js +1 -1
  121. package/dist/esm-es5/verdocs-envelope-document-page.entry.js +1 -1
  122. package/dist/esm-es5/verdocs-envelopes-list.entry.js +1 -1
  123. package/dist/esm-es5/verdocs-field-attachment.entry.js +1 -1
  124. package/dist/esm-es5/verdocs-field-checkbox.entry.js +1 -1
  125. package/dist/esm-es5/verdocs-field-date.entry.js +1 -1
  126. package/dist/esm-es5/verdocs-field-dropdown.entry.js +1 -1
  127. package/dist/esm-es5/verdocs-field-initial.entry.js +1 -1
  128. package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
  129. package/dist/esm-es5/verdocs-field-radio-button.entry.js +1 -1
  130. package/dist/esm-es5/verdocs-field-signature.entry.js +1 -1
  131. package/dist/esm-es5/verdocs-field-textarea.entry.js +1 -1
  132. package/dist/esm-es5/verdocs-field-textbox.entry.js +1 -1
  133. package/dist/esm-es5/verdocs-field-timestamp.entry.js +1 -1
  134. package/dist/esm-es5/verdocs-file-chooser_2.entry.js +1 -1
  135. package/dist/esm-es5/verdocs-pagination_2.entry.js +1 -1
  136. package/dist/esm-es5/verdocs-portal_2.entry.js +1 -1
  137. package/dist/esm-es5/verdocs-preview_8.entry.js +1 -1
  138. package/dist/esm-es5/verdocs-settings-api-keys_4.entry.js +1 -1
  139. package/dist/esm-es5/verdocs-sign.entry.js +1 -1
  140. package/dist/esm-es5/verdocs-template-document-page_2.entry.js +1 -1
  141. package/dist/esm-es5/verdocs-template-fields_4.entry.js +1 -1
  142. package/dist/esm-es5/verdocs-view.entry.js +1 -1
  143. package/dist/esm-es5/verdocs-web-sdk.js +1 -1
  144. package/dist/types/components/embeds/verdocs-preview/verdocs-preview.d.ts +4 -2
  145. package/dist/types/components/embeds/verdocs-send/verdocs-send.d.ts +3 -1
  146. package/dist/types/components/embeds/verdocs-sign/verdocs-sign.d.ts +1 -1
  147. package/dist/types/components/fields/verdocs-field-attachment/verdocs-field-attachment.d.ts +2 -8
  148. package/dist/types/components/fields/verdocs-field-checkbox/verdocs-field-checkbox.d.ts +2 -8
  149. package/dist/types/components/fields/verdocs-field-date/verdocs-field-date.d.ts +2 -8
  150. package/dist/types/components/fields/verdocs-field-dropdown/verdocs-field-dropdown.d.ts +2 -8
  151. package/dist/types/components/fields/verdocs-field-initial/verdocs-field-initial.d.ts +2 -8
  152. package/dist/types/components/fields/verdocs-field-payment/verdocs-field-payment.d.ts +2 -4
  153. package/dist/types/components/fields/verdocs-field-radio-button-group/verdocs-field-radio-button.d.ts +2 -8
  154. package/dist/types/components/fields/verdocs-field-signature/verdocs-field-signature.d.ts +2 -8
  155. package/dist/types/components/fields/verdocs-field-textarea/verdocs-field-textarea.d.ts +3 -9
  156. package/dist/types/components/fields/verdocs-field-textbox/verdocs-field-textbox.d.ts +2 -8
  157. package/dist/types/components/fields/verdocs-field-timestamp/verdocs-field-timestamp.d.ts +2 -8
  158. package/dist/types/components/templates/verdocs-template-fields/verdocs-template-fields.d.ts +3 -3
  159. package/dist/types/components.d.ts +0 -168
  160. package/dist/types/utils/Icons.d.ts +1 -0
  161. package/dist/types/utils/TemplateRoleStore.d.ts +2 -0
  162. package/dist/types/utils/TemplateStore.d.ts +0 -1
  163. package/dist/types/utils/utils.d.ts +1 -6
  164. package/dist/verdocs-web-sdk/p-01730f6a.system.entry.js +1 -0
  165. package/dist/verdocs-web-sdk/{p-637fee9b.js → p-029ae656.js} +1 -1
  166. package/dist/verdocs-web-sdk/{p-9b6f0565.entry.js → p-07c30f7e.entry.js} +1 -1
  167. package/dist/verdocs-web-sdk/p-0a93ada5.system.entry.js +1 -0
  168. package/dist/verdocs-web-sdk/p-0aa50735.system.entry.js +1 -0
  169. package/dist/verdocs-web-sdk/p-0ef84cfe.system.entry.js +1 -0
  170. package/dist/verdocs-web-sdk/{p-3898a9b0.entry.js → p-140b8c97.entry.js} +1 -1
  171. package/dist/verdocs-web-sdk/{p-72dc5fb4.system.entry.js → p-15259f81.system.entry.js} +1 -1
  172. package/dist/verdocs-web-sdk/p-17575e47.entry.js +1 -0
  173. package/dist/verdocs-web-sdk/{p-3c5240df.system.entry.js → p-1a70513e.system.entry.js} +1 -1
  174. package/dist/verdocs-web-sdk/p-242a7d5f.entry.js +1 -0
  175. package/dist/verdocs-web-sdk/p-2af02a9e.system.entry.js +1 -0
  176. package/dist/verdocs-web-sdk/p-2c13a315.system.entry.js +1 -0
  177. package/dist/verdocs-web-sdk/p-2dddc88a.js +1 -0
  178. package/dist/verdocs-web-sdk/p-306af4e0.entry.js +1 -0
  179. package/dist/verdocs-web-sdk/{p-e65e9d24.js → p-34f03fee.js} +1 -1
  180. package/dist/verdocs-web-sdk/{p-455d16dc.system.js → p-3f628837.system.js} +1 -1
  181. package/dist/verdocs-web-sdk/p-47b2d159.entry.js +1 -0
  182. package/dist/verdocs-web-sdk/{p-94009f45.entry.js → p-4861684b.entry.js} +1 -1
  183. package/dist/verdocs-web-sdk/p-4c7998f0.entry.js +1 -0
  184. package/dist/verdocs-web-sdk/{p-3f7aa186.system.entry.js → p-56da687c.system.entry.js} +1 -1
  185. package/dist/verdocs-web-sdk/p-579d1e2c.entry.js +1 -0
  186. package/dist/verdocs-web-sdk/{p-9542e890.system.entry.js → p-5a6581cc.system.entry.js} +1 -1
  187. package/dist/verdocs-web-sdk/p-5f96dd8d.entry.js +1 -0
  188. package/dist/verdocs-web-sdk/{p-0685d939.system.entry.js → p-6384f444.system.entry.js} +1 -1
  189. package/dist/verdocs-web-sdk/p-67b93075.system.entry.js +1 -0
  190. package/dist/verdocs-web-sdk/p-794ce527.entry.js +1 -0
  191. package/dist/verdocs-web-sdk/{p-c1f51f1b.system.entry.js → p-7ae877b4.system.entry.js} +1 -1
  192. package/dist/verdocs-web-sdk/p-7dc5daed.entry.js +1 -0
  193. package/dist/verdocs-web-sdk/p-89d8a21e.entry.js +1 -0
  194. package/dist/verdocs-web-sdk/{p-e96924b5.system.entry.js → p-8b111775.system.entry.js} +1 -1
  195. package/dist/verdocs-web-sdk/p-8bbe0209.system.js +1 -0
  196. package/dist/verdocs-web-sdk/p-93aa6f6e.js +1 -0
  197. package/dist/verdocs-web-sdk/p-9d274e45.system.entry.js +1 -0
  198. package/dist/verdocs-web-sdk/{p-3b1711df.entry.js → p-a3326659.entry.js} +1 -1
  199. package/dist/verdocs-web-sdk/p-a7580374.entry.js +1 -0
  200. package/dist/verdocs-web-sdk/{p-623fe013.system.entry.js → p-a91615c2.system.entry.js} +1 -1
  201. package/dist/verdocs-web-sdk/{p-77ca800b.entry.js → p-ac6d0fb0.entry.js} +1 -1
  202. package/dist/verdocs-web-sdk/p-b5aee483.system.entry.js +1 -0
  203. package/dist/verdocs-web-sdk/{p-126c423d.entry.js → p-ba2aa74b.entry.js} +1 -1
  204. package/dist/verdocs-web-sdk/p-bce1fa90.system.entry.js +1 -0
  205. package/dist/verdocs-web-sdk/p-bd8918e3.system.entry.js +1 -0
  206. package/dist/verdocs-web-sdk/p-c10da56f.entry.js +1 -0
  207. package/dist/verdocs-web-sdk/{p-4be3b251.entry.js → p-c3c142f0.entry.js} +1 -1
  208. package/dist/verdocs-web-sdk/p-c67f893d.system.entry.js +1 -0
  209. package/dist/verdocs-web-sdk/p-c72dfb47.system.entry.js +1 -0
  210. package/dist/verdocs-web-sdk/{p-7a47fcd9.system.js → p-c90481a4.system.js} +1 -1
  211. package/dist/verdocs-web-sdk/p-c9e30988.system.entry.js +1 -0
  212. package/dist/verdocs-web-sdk/p-cd7bd84e.entry.js +1 -0
  213. package/dist/verdocs-web-sdk/p-cff1b0e9.entry.js +1 -0
  214. package/dist/verdocs-web-sdk/p-d4cd201f.system.entry.js +1 -0
  215. package/dist/verdocs-web-sdk/{p-cbe7b8c8.system.entry.js → p-d72dc783.system.entry.js} +1 -1
  216. package/dist/verdocs-web-sdk/p-d87c1330.system.js +1 -0
  217. package/dist/verdocs-web-sdk/{p-bfdbd210.entry.js → p-da9462c7.entry.js} +1 -1
  218. package/dist/verdocs-web-sdk/p-f04bf956.system.js +1 -1
  219. package/dist/verdocs-web-sdk/p-f59a30d0.entry.js +1 -0
  220. package/dist/verdocs-web-sdk/p-f9efd9ae.entry.js +1 -0
  221. package/dist/verdocs-web-sdk/p-fb73910e.entry.js +1 -0
  222. package/dist/verdocs-web-sdk/p-fc9067c0.system.entry.js +1 -0
  223. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  224. package/package.json +1 -1
  225. package/dist/custom-elements.json +0 -2175
  226. package/dist/esm-es5/TemplateStore-618fb47f.js +0 -1
  227. package/dist/verdocs-web-sdk/p-058f0e56.system.entry.js +0 -1
  228. package/dist/verdocs-web-sdk/p-093f593d.system.entry.js +0 -1
  229. package/dist/verdocs-web-sdk/p-09babc77.system.entry.js +0 -1
  230. package/dist/verdocs-web-sdk/p-0a5b8a89.entry.js +0 -1
  231. package/dist/verdocs-web-sdk/p-17245241.system.entry.js +0 -1
  232. package/dist/verdocs-web-sdk/p-18cb9ef7.system.entry.js +0 -1
  233. package/dist/verdocs-web-sdk/p-1b661190.entry.js +0 -1
  234. package/dist/verdocs-web-sdk/p-350f1ca4.system.entry.js +0 -1
  235. package/dist/verdocs-web-sdk/p-35720475.entry.js +0 -1
  236. package/dist/verdocs-web-sdk/p-371effb1.system.entry.js +0 -1
  237. package/dist/verdocs-web-sdk/p-3930ee22.js +0 -1
  238. package/dist/verdocs-web-sdk/p-3989e584.entry.js +0 -1
  239. package/dist/verdocs-web-sdk/p-3d9adca7.entry.js +0 -1
  240. package/dist/verdocs-web-sdk/p-413a5b21.entry.js +0 -1
  241. package/dist/verdocs-web-sdk/p-591b695c.entry.js +0 -1
  242. package/dist/verdocs-web-sdk/p-5cd0b997.entry.js +0 -1
  243. package/dist/verdocs-web-sdk/p-62ec3db9.system.entry.js +0 -1
  244. package/dist/verdocs-web-sdk/p-6d42921b.entry.js +0 -1
  245. package/dist/verdocs-web-sdk/p-6d81d774.entry.js +0 -1
  246. package/dist/verdocs-web-sdk/p-6e45e610.system.entry.js +0 -1
  247. package/dist/verdocs-web-sdk/p-71faa59f.entry.js +0 -1
  248. package/dist/verdocs-web-sdk/p-7c8419d7.system.entry.js +0 -1
  249. package/dist/verdocs-web-sdk/p-961ee618.system.entry.js +0 -1
  250. package/dist/verdocs-web-sdk/p-a97512f6.system.entry.js +0 -1
  251. package/dist/verdocs-web-sdk/p-aa29c7ec.system.entry.js +0 -1
  252. package/dist/verdocs-web-sdk/p-bc017ceb.entry.js +0 -1
  253. package/dist/verdocs-web-sdk/p-c11c841c.system.entry.js +0 -1
  254. package/dist/verdocs-web-sdk/p-c82a2a4e.system.entry.js +0 -1
  255. package/dist/verdocs-web-sdk/p-d32278c8.system.entry.js +0 -1
  256. package/dist/verdocs-web-sdk/p-df621f8d.system.js +0 -1
  257. package/dist/verdocs-web-sdk/p-ea52b891.entry.js +0 -1
  258. package/dist/verdocs-web-sdk/p-ebc1c670.entry.js +0 -1
  259. package/dist/verdocs-web-sdk/p-fda04bb0.entry.js +0 -1
  260. package/dist/verdocs-web-sdk/p-ff473972.entry.js +0 -1
  261. package/dist/verdocs-web-sdk/p-ffa4091d.entry.js +0 -1
@@ -3,15 +3,17 @@ import { VerdocsEndpoint } from '@verdocs/js-sdk';
3
3
  import { getRGBA } from '@verdocs/js-sdk/Utils/Colors';
4
4
  import { updateField } from '@verdocs/js-sdk/Templates/Fields';
5
5
  import { h, Host, Fragment } from '@stencil/core';
6
- import { getFieldSettings } from '../../../utils/utils';
7
6
  import { getTemplateFieldStore } from '../../../utils/TemplateFieldStore';
8
- const settingsIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20"><path d="m7.5 18.5-.312-2.667q-.188-.125-.396-.25-.209-.125-.396-.229l-2.479 1.063-2.521-4.334 2.125-1.625q.021-.104.021-.229v-.458q0-.125-.021-.229L1.396 7.917l2.521-4.313 2.5 1.042q.166-.104.375-.229.208-.125.396-.229L7.5 1.5h5l.312 2.688q.188.104.396.229.209.125.396.229l2.479-1.042 2.521 4.313-2.125 1.625v.916l2.125 1.625-2.521 4.334-2.5-1.063q-.166.104-.375.229-.208.125-.396.25L12.5 18.5Zm2.479-5.521q1.229 0 2.104-.875T12.958 10q0-1.229-.875-2.104t-2.104-.875q-1.208 0-2.094.875Q7 8.771 7 10t.885 2.104q.886.875 2.094.875Zm0-1.75q-.5 0-.864-.364Q8.75 10.5 8.75 10t.365-.865q.364-.364.864-.364t.865.364q.364.365.364.865t-.364.865q-.365.364-.865.364ZM10.021 10Zm-.792 6.521h1.542l.25-2.146q.625-.167 1.198-.51.573-.344 1.031-.823l2.021.854.771-1.271-1.771-1.354q.104-.292.156-.615.052-.323.052-.656 0-.292-.052-.604-.052-.313-.135-.646l1.77-1.375-.77-1.271-2.021.875q-.479-.5-1.042-.833-.562-.334-1.187-.5l-.271-2.167H9.208l-.25 2.167q-.625.166-1.187.5-.563.333-1.042.812l-2-.854-.771 1.271 1.73 1.354q-.084.333-.136.656Q5.5 9.708 5.5 10t.052.604q.052.313.136.667l-1.73 1.354.771 1.271 2-.834q.479.459 1.042.792.562.334 1.187.5Z"/></svg>';
7
+ import { getRoleIndex, getTemplateRoleStore } from '../../../utils/TemplateRoleStore';
8
+ import { getFieldSettings } from '../../../utils/utils';
9
+ import { SettingsIcon } from '../../../utils/Icons';
9
10
  /**
10
11
  * Display a multi-line text input field.
11
12
  */
12
13
  export class VerdocsFieldTextarea {
13
14
  constructor() {
14
15
  this.fieldStore = null;
16
+ this.roleStore = null;
15
17
  this.endpoint = VerdocsEndpoint.getDefault();
16
18
  this.templateid = '';
17
19
  this.fieldname = '';
@@ -19,10 +21,8 @@ export class VerdocsFieldTextarea {
19
21
  this.editable = false;
20
22
  this.moveable = false;
21
23
  this.done = false;
22
- this.roleindex = 0;
23
24
  this.xscale = 1;
24
25
  this.yscale = 1;
25
- this.rerender = 0;
26
26
  this.showingProperties = false;
27
27
  }
28
28
  async focusField() {
@@ -42,6 +42,7 @@ export class VerdocsFieldTextarea {
42
42
  }
43
43
  async componentWillLoad() {
44
44
  this.fieldStore = getTemplateFieldStore(this.templateid);
45
+ this.roleStore = getTemplateRoleStore(this.templateid);
45
46
  }
46
47
  componentDidRender() {
47
48
  interact.dynamicDrop(true);
@@ -75,6 +76,9 @@ export class VerdocsFieldTextarea {
75
76
  }
76
77
  handleResizeEnd(e) {
77
78
  const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
79
+ if (!field) {
80
+ return h(Fragment, null);
81
+ }
78
82
  const newSettings = { ...getFieldSettings(field) };
79
83
  const [translateX, translateY] = e.target.style.transform.split('(')[1].split(')')[0].split(',').map(parseFloat);
80
84
  newSettings.width = Math.round(parseFloat(e.target.style.width) / this.xscale);
@@ -92,17 +96,18 @@ export class VerdocsFieldTextarea {
92
96
  render() {
93
97
  var _a, _b;
94
98
  const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
99
+ const roleIndex = getRoleIndex(this.roleStore, field.role_name);
100
+ const backgroundColor = field['rgba'] || getRGBA(roleIndex);
95
101
  if (!field) {
96
102
  return h(Fragment, null);
97
103
  }
98
104
  const settings = getFieldSettings(field);
99
105
  const disabled = (_b = (_a = this.disabled) !== null && _a !== void 0 ? _a : settings.disabled) !== null && _b !== void 0 ? _b : false;
100
106
  const value = (settings === null || settings === void 0 ? void 0 : settings.result) || '';
101
- const backgroundColor = field['rgba'] || getRGBA(this.roleindex);
102
107
  if (this.done) {
103
108
  return h(Host, { class: { done: this.done } }, settings.value);
104
109
  }
105
- return (h(Host, { class: { required: field === null || field === void 0 ? void 0 : field.required, disabled, done: this.done }, style: { backgroundColor } }, h("textarea", { placeholder: settings.placeholder || '', tabIndex: settings.order, disabled: disabled, name: field.name, required: field === null || field === void 0 ? void 0 : field.required, ref: el => (this.inputEl = el) }, value), this.editable && (h(Fragment, null, h("div", { id: `verdocs-settings-panel-trigger-${field.name}`, style: { transform: `scale(${Math.floor((1 / this.xscale) * 1000) / 1000}, ${Math.floor((1 / this.yscale) * 1000) / 1000})` }, class: "settings-icon", innerHTML: settingsIcon, onClick: (e) => {
110
+ return (h(Host, { class: { required: field === null || field === void 0 ? void 0 : field.required, disabled, done: this.done }, style: { backgroundColor } }, h("textarea", { placeholder: settings.placeholder || '', tabIndex: settings.order, disabled: disabled, name: field.name, required: field === null || field === void 0 ? void 0 : field.required, ref: el => (this.inputEl = el) }, value), this.editable && (h(Fragment, null, h("div", { id: `verdocs-settings-panel-trigger-${field.name}`, style: { transform: `scale(${Math.floor((1 / this.xscale) * 1000) / 1000}, ${Math.floor((1 / this.yscale) * 1000) / 1000})` }, class: "settings-icon", innerHTML: SettingsIcon, onClick: (e) => {
106
111
  e.stopPropagation();
107
112
  this.showingProperties = !this.showingProperties;
108
113
  } }), this.showingProperties && (h("verdocs-portal", { anchor: `verdocs-settings-panel-trigger-${this.fieldname}`, onClickAway: () => (this.showingProperties = false) }, h("verdocs-template-field-properties", { templateId: this.templateid, fieldName: field.name, onClose: () => (this.showingProperties = false), onDelete: () => {
@@ -257,24 +262,6 @@ export class VerdocsFieldTextarea {
257
262
  "reflect": false,
258
263
  "defaultValue": "false"
259
264
  },
260
- "roleindex": {
261
- "type": "number",
262
- "mutable": false,
263
- "complexType": {
264
- "original": "number",
265
- "resolved": "number",
266
- "references": {}
267
- },
268
- "required": false,
269
- "optional": true,
270
- "docs": {
271
- "tags": [],
272
- "text": "If set, the field will be colored using this index value to select the background color."
273
- },
274
- "attribute": "roleindex",
275
- "reflect": false,
276
- "defaultValue": "0"
277
- },
278
265
  "xscale": {
279
266
  "type": "number",
280
267
  "mutable": false,
@@ -310,24 +297,6 @@ export class VerdocsFieldTextarea {
310
297
  "attribute": "yscale",
311
298
  "reflect": false,
312
299
  "defaultValue": "1"
313
- },
314
- "rerender": {
315
- "type": "number",
316
- "mutable": false,
317
- "complexType": {
318
- "original": "number",
319
- "resolved": "number",
320
- "references": {}
321
- },
322
- "required": false,
323
- "optional": true,
324
- "docs": {
325
- "tags": [],
326
- "text": "May be used to force the field to re-render."
327
- },
328
- "attribute": "rerender",
329
- "reflect": false,
330
- "defaultValue": "0"
331
300
  }
332
301
  };
333
302
  }
@@ -3,15 +3,17 @@ import { VerdocsEndpoint } from '@verdocs/js-sdk';
3
3
  import { getRGBA } from '@verdocs/js-sdk/Utils/Colors';
4
4
  import { updateField } from '@verdocs/js-sdk/Templates/Fields';
5
5
  import { h, Host, Fragment } from '@stencil/core';
6
+ import { getRoleIndex, getTemplateRoleStore } from '../../../utils/TemplateRoleStore';
6
7
  import { getTemplateFieldStore } from '../../../utils/TemplateFieldStore';
7
8
  import { getFieldSettings } from '../../../utils/utils';
8
- const settingsIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor"><path fill-rule="evenodd" d="M7.84 1.804A1 1 0 0 1 8.82 1h2.36a1 1 0 0 1 .98.804l.331 1.652a6.993 6.993 0 0 1 1.929 1.115l1.598-.54a1 1 0 0 1 1.186.447l1.18 2.044a1 1 0 0 1-.205 1.251l-1.267 1.113a7.047 7.047 0 0 1 0 2.228l1.267 1.113a1 1 0 0 1 .206 1.25l-1.18 2.045a1 1 0 0 1-1.187.447l-1.598-.54a6.993 6.993 0 0 1-1.929 1.115l-.33 1.652a1 1 0 0 1-.98.804H8.82a1 1 0 0 1-.98-.804l-.331-1.652a6.993 6.993 0 0 1-1.929-1.115l-1.598.54a1 1 0 0 1-1.186-.447l-1.18-2.044a1 1 0 0 1 .205-1.251l1.267-1.114a7.05 7.05 0 0 1 0-2.227L1.821 7.773a1 1 0 0 1-.206-1.25l1.18-2.045a1 1 0 0 1 1.187-.447l1.598.54A6.992 6.992 0 0 1 7.51 3.456l.33-1.652ZM10 13a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z" clip-rule="evenodd" /></svg>';
9
+ import { SettingsIcon } from '../../../utils/Icons';
9
10
  /**
10
11
  * Display a text input field.
11
12
  */
12
13
  export class VerdocsFieldTextbox {
13
14
  constructor() {
14
15
  this.fieldStore = null;
16
+ this.roleStore = null;
15
17
  this.endpoint = VerdocsEndpoint.getDefault();
16
18
  this.templateid = '';
17
19
  this.fieldname = '';
@@ -19,10 +21,8 @@ export class VerdocsFieldTextbox {
19
21
  this.editable = false;
20
22
  this.moveable = false;
21
23
  this.done = false;
22
- this.roleindex = 0;
23
24
  this.xscale = 1;
24
25
  this.yscale = 1;
25
- this.rerender = 0;
26
26
  this.showingProperties = false;
27
27
  }
28
28
  async focusField() {
@@ -42,6 +42,7 @@ export class VerdocsFieldTextbox {
42
42
  }
43
43
  async componentWillLoad() {
44
44
  this.fieldStore = getTemplateFieldStore(this.templateid);
45
+ this.roleStore = getTemplateRoleStore(this.templateid);
45
46
  }
46
47
  componentDidRender() {
47
48
  interact.dynamicDrop(true);
@@ -93,12 +94,14 @@ export class VerdocsFieldTextbox {
93
94
  render() {
94
95
  var _a, _b;
95
96
  const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
97
+ console.log('Rendering tb', this.fieldname, field);
98
+ const roleIndex = getRoleIndex(this.roleStore, field.role_name);
99
+ const backgroundColor = field['rgba'] || getRGBA(roleIndex);
96
100
  if (!field) {
97
101
  return h(Fragment, null);
98
102
  }
99
103
  const settings = getFieldSettings(field);
100
104
  let disabled = (_b = (_a = this.disabled) !== null && _a !== void 0 ? _a : settings.disabled) !== null && _b !== void 0 ? _b : false;
101
- const backgroundColor = field['rgba'] || getRGBA(this.roleindex);
102
105
  const value = (settings === null || settings === void 0 ? void 0 : settings.result) || '';
103
106
  const width = settings.width || 150;
104
107
  // TODO: This is an outdated technique from the old system. We should compute it.
@@ -106,7 +109,7 @@ export class VerdocsFieldTextbox {
106
109
  if (this.done) {
107
110
  return h(Host, { class: { done: this.done } }, value);
108
111
  }
109
- return (h(Host, { class: { required: field.required, disabled, done: this.done }, style: { backgroundColor } }, h("input", { type: "text", name: field.name, placeholder: settings === null || settings === void 0 ? void 0 : settings.placeholder, tabIndex: settings === null || settings === void 0 ? void 0 : settings.order, value: value, disabled: disabled, required: field === null || field === void 0 ? void 0 : field.required, ref: el => (this.inputEl = el), maxlength: maxlength }), this.editable && (h(Fragment, null, h("div", { id: `verdocs-settings-panel-trigger-${field.name}`, style: { transform: `scale(${Math.floor((1 / this.xscale) * 1000) / 1000}, ${Math.floor((1 / this.yscale) * 1000) / 1000})` }, class: "settings-icon", innerHTML: settingsIcon, onClick: (e) => {
112
+ return (h(Host, { class: { required: field.required, disabled, done: this.done }, style: { backgroundColor } }, h("input", { type: "text", name: field.name, placeholder: settings === null || settings === void 0 ? void 0 : settings.placeholder, tabIndex: settings === null || settings === void 0 ? void 0 : settings.order, value: value, disabled: disabled, required: field === null || field === void 0 ? void 0 : field.required, ref: el => (this.inputEl = el), maxlength: maxlength }), this.editable && (h(Fragment, null, h("div", { id: `verdocs-settings-panel-trigger-${field.name}`, style: { transform: `scale(${Math.floor((1 / this.xscale) * 1000) / 1000}, ${Math.floor((1 / this.yscale) * 1000) / 1000})` }, class: "settings-icon", innerHTML: SettingsIcon, onClick: (e) => {
110
113
  e.stopPropagation();
111
114
  this.showingProperties = !this.showingProperties;
112
115
  } }), this.showingProperties && (h("verdocs-portal", { anchor: `verdocs-settings-panel-trigger-${field.name}`, onClickAway: () => (this.showingProperties = false) }, h("verdocs-template-field-properties", { templateId: this.templateid, fieldName: field.name, onClose: () => (this.showingProperties = false), onDelete: () => {
@@ -261,24 +264,6 @@ export class VerdocsFieldTextbox {
261
264
  "reflect": false,
262
265
  "defaultValue": "false"
263
266
  },
264
- "roleindex": {
265
- "type": "number",
266
- "mutable": false,
267
- "complexType": {
268
- "original": "number",
269
- "resolved": "number",
270
- "references": {}
271
- },
272
- "required": false,
273
- "optional": true,
274
- "docs": {
275
- "tags": [],
276
- "text": "If set, the field will be colored using this index value to select the background color."
277
- },
278
- "attribute": "roleindex",
279
- "reflect": false,
280
- "defaultValue": "0"
281
- },
282
267
  "xscale": {
283
268
  "type": "number",
284
269
  "mutable": false,
@@ -314,24 +299,6 @@ export class VerdocsFieldTextbox {
314
299
  "attribute": "yscale",
315
300
  "reflect": false,
316
301
  "defaultValue": "1"
317
- },
318
- "rerender": {
319
- "type": "number",
320
- "mutable": false,
321
- "complexType": {
322
- "original": "number",
323
- "resolved": "number",
324
- "references": {}
325
- },
326
- "required": false,
327
- "optional": true,
328
- "docs": {
329
- "tags": [],
330
- "text": "May be used to force the field to re-render."
331
- },
332
- "attribute": "rerender",
333
- "reflect": false,
334
- "defaultValue": "0"
335
302
  }
336
303
  };
337
304
  }
@@ -1,24 +1,24 @@
1
1
  import { format } from 'date-fns';
2
2
  import { getRGBA } from '@verdocs/js-sdk/Utils/Colors';
3
3
  import { h, Host, Fragment } from '@stencil/core';
4
+ import { getRoleIndex, getTemplateRoleStore } from '../../../utils/TemplateRoleStore';
5
+ import { getTemplateFieldStore } from '../../../utils/TemplateFieldStore';
4
6
  import { getFieldSettings } from '../../../utils/utils';
5
7
  import { FORMAT_TIMESTAMP } from '../../../utils/Types';
6
- import { getTemplateFieldStore } from '../../../utils/TemplateFieldStore';
7
- const settingsIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20"><path d="m7.5 18.5-.312-2.667q-.188-.125-.396-.25-.209-.125-.396-.229l-2.479 1.063-2.521-4.334 2.125-1.625q.021-.104.021-.229v-.458q0-.125-.021-.229L1.396 7.917l2.521-4.313 2.5 1.042q.166-.104.375-.229.208-.125.396-.229L7.5 1.5h5l.312 2.688q.188.104.396.229.209.125.396.229l2.479-1.042 2.521 4.313-2.125 1.625v.916l2.125 1.625-2.521 4.334-2.5-1.063q-.166.104-.375.229-.208.125-.396.25L12.5 18.5Zm2.479-5.521q1.229 0 2.104-.875T12.958 10q0-1.229-.875-2.104t-2.104-.875q-1.208 0-2.094.875Q7 8.771 7 10t.885 2.104q.886.875 2.094.875Zm0-1.75q-.5 0-.864-.364Q8.75 10.5 8.75 10t.365-.865q.364-.364.864-.364t.865.364q.364.365.364.865t-.364.865q-.365.364-.865.364ZM10.021 10Zm-.792 6.521h1.542l.25-2.146q.625-.167 1.198-.51.573-.344 1.031-.823l2.021.854.771-1.271-1.771-1.354q.104-.292.156-.615.052-.323.052-.656 0-.292-.052-.604-.052-.313-.135-.646l1.77-1.375-.77-1.271-2.021.875q-.479-.5-1.042-.833-.562-.334-1.187-.5l-.271-2.167H9.208l-.25 2.167q-.625.166-1.187.5-.563.333-1.042.812l-2-.854-.771 1.271 1.73 1.354q-.084.333-.136.656Q5.5 9.708 5.5 10t.052.604q.052.313.136.667l-1.73 1.354.771 1.271 2-.834q.479.459 1.042.792.562.334 1.187.5Z"/></svg>';
8
+ import { SettingsIcon } from '../../../utils/Icons';
8
9
  /**
9
10
  * Display a timestamp field.
10
11
  */
11
12
  export class VerdocsFieldTimestamp {
12
13
  constructor() {
13
14
  this.fieldStore = null;
15
+ this.roleStore = null;
14
16
  this.templateid = '';
15
17
  this.fieldname = '';
16
18
  this.disabled = false;
17
19
  this.editable = false;
18
20
  this.moveable = false;
19
21
  this.done = false;
20
- this.roleindex = 0;
21
- this.rerender = 0;
22
22
  this.xscale = 1;
23
23
  this.yscale = 1;
24
24
  this.showingProperties = false;
@@ -40,16 +40,18 @@ export class VerdocsFieldTimestamp {
40
40
  }
41
41
  async componentWillLoad() {
42
42
  this.fieldStore = getTemplateFieldStore(this.templateid);
43
+ this.roleStore = getTemplateRoleStore(this.templateid);
43
44
  }
44
45
  render() {
45
46
  var _a, _b;
46
47
  const field = this.fieldStore.get('fields').find(field => field.name === this.fieldname);
48
+ const roleIndex = getRoleIndex(this.roleStore, field.role_name);
49
+ const backgroundColor = field['rgba'] || getRGBA(roleIndex);
47
50
  if (!field) {
48
51
  return h(Fragment, null);
49
52
  }
50
53
  const settings = getFieldSettings(field);
51
54
  const disabled = (_b = (_a = this.disabled) !== null && _a !== void 0 ? _a : settings.disabled) !== null && _b !== void 0 ? _b : false;
52
- const backgroundColor = field['rgba'] || getRGBA(this.roleindex);
53
55
  const value = settings.value || new Date().toISOString();
54
56
  const dt = new Date(value);
55
57
  const formatted = format(dt, FORMAT_TIMESTAMP);
@@ -59,7 +61,7 @@ export class VerdocsFieldTimestamp {
59
61
  return (h(Host, { class: { required: field === null || field === void 0 ? void 0 : field.required, disabled }, style: { backgroundColor } }, h("input", { type: "text", placeholder: settings === null || settings === void 0 ? void 0 : settings.placeholder, tabIndex: settings === null || settings === void 0 ? void 0 : settings.order,
60
62
  // TODO: It would really make more sense to show the date and time but the default width of 64px for this field
61
63
  // is encoded in a ton of existing entries in the database and is hard to change.
62
- value: formatted, disabled: true, ref: el => (this.el = el) }), this.editable && (h(Fragment, null, h("div", { id: `verdocs-settings-panel-trigger-${field.name}`, style: { transform: `scale(${Math.floor((1 / this.xscale) * 1000) / 1000}, ${Math.floor((1 / this.yscale) * 1000) / 1000})` }, class: "settings-icon", innerHTML: settingsIcon, onClick: (e) => {
64
+ value: formatted, disabled: true, ref: el => (this.el = el) }), this.editable && (h(Fragment, null, h("div", { id: `verdocs-settings-panel-trigger-${field.name}`, style: { transform: `scale(${Math.floor((1 / this.xscale) * 1000) / 1000}, ${Math.floor((1 / this.yscale) * 1000) / 1000})` }, class: "settings-icon", innerHTML: SettingsIcon, onClick: (e) => {
63
65
  e.stopPropagation();
64
66
  this.showingProperties = !this.showingProperties;
65
67
  } }), this.showingProperties && (h("verdocs-portal", { anchor: `verdocs-settings-panel-trigger-${field.name}`, onClickAway: () => (this.showingProperties = false) }, h("verdocs-template-field-properties", { templateId: this.templateid, fieldName: field.name, onClose: () => (this.showingProperties = false), onDelete: () => {
@@ -193,42 +195,6 @@ export class VerdocsFieldTimestamp {
193
195
  "reflect": false,
194
196
  "defaultValue": "false"
195
197
  },
196
- "roleindex": {
197
- "type": "number",
198
- "mutable": false,
199
- "complexType": {
200
- "original": "number",
201
- "resolved": "number",
202
- "references": {}
203
- },
204
- "required": false,
205
- "optional": true,
206
- "docs": {
207
- "tags": [],
208
- "text": "If set, the field will be colored using this index value to select the background color."
209
- },
210
- "attribute": "roleindex",
211
- "reflect": false,
212
- "defaultValue": "0"
213
- },
214
- "rerender": {
215
- "type": "number",
216
- "mutable": false,
217
- "complexType": {
218
- "original": "number",
219
- "resolved": "number",
220
- "references": {}
221
- },
222
- "required": false,
223
- "optional": true,
224
- "docs": {
225
- "tags": [],
226
- "text": "May be used to force the field to re-render."
227
- },
228
- "attribute": "rerender",
229
- "reflect": false,
230
- "defaultValue": "0"
231
- },
232
198
  "xscale": {
233
199
  "type": "number",
234
200
  "mutable": false,
@@ -2,11 +2,11 @@ import interact from 'interactjs';
2
2
  import { VerdocsEndpoint } from '@verdocs/js-sdk';
3
3
  import { integerSequence } from '@verdocs/js-sdk/Utils/Primitives';
4
4
  import { createField, updateField } from '@verdocs/js-sdk/Templates/Fields';
5
- import { h, Host } from '@stencil/core';
6
- import { defaultHeight, defaultWidth, getRoleIndex, renderDocumentField, updateCssTransform } from '../../../utils/utils';
7
- import { getRoleNames, getTemplateStore } from '../../../utils/TemplateStore';
8
5
  import { getTemplateFieldStore, updateStoreField } from '../../../utils/TemplateFieldStore';
6
+ import { defaultHeight, defaultWidth, renderDocumentField, updateCssTransform } from '../../../utils/utils';
7
+ import { h, Host } from '@stencil/core';
9
8
  import { getTemplateRoleStore } from '../../../utils/TemplateRoleStore';
9
+ import { getTemplateStore } from '../../../utils/TemplateStore';
10
10
  import { SDKError } from '../../../utils/errors';
11
11
  const iconTextbox = '<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"><path fill="#ffffff" d="M3.425 16.15V13h11.15v3.15Zm0-5.15V7.85h17.15V11Z"/></svg>';
12
12
  const iconTextarea = '<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"><path fill="#ffffff" 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"/></svg>';
@@ -103,7 +103,7 @@ export class VerdocsTemplateFields {
103
103
  async handleFieldChange(field, e, optionId) {
104
104
  console.log('[FIELDS] handleFieldChange', field, e, optionId);
105
105
  }
106
- attachFieldAttributes(pageInfo, field, roleIndex, el) {
106
+ attachFieldAttributes(pageInfo, field, el) {
107
107
  el.addEventListener('input', e => this.handleFieldChange(field, e));
108
108
  el.addEventListener('settingsChanged', () => {
109
109
  var _a, _b;
@@ -117,7 +117,6 @@ export class VerdocsTemplateFields {
117
117
  });
118
118
  el.setAttribute('templateid', this.templateId);
119
119
  el.setAttribute('fieldname', field.name);
120
- el.setAttribute('roleindex', roleIndex);
121
120
  el.setAttribute('pageNumber', pageInfo.pageNumber);
122
121
  el.setAttribute('xScale', pageInfo.xScale);
123
122
  el.setAttribute('yScale', pageInfo.yScale);
@@ -134,19 +133,19 @@ export class VerdocsTemplateFields {
134
133
  }
135
134
  reRenderField(field, pageNumber) {
136
135
  const pageInfo = this.cachedPageInfo[pageNumber];
137
- const roleIndex = getRoleIndex(getRoleNames(this.templateStore), field.role_name);
138
- const el = renderDocumentField(field, pageInfo, roleIndex, { disabled: true, editable: true, draggable: true });
136
+ // const roleIndex = getRoleIndex(getRoleNames(this.roleStore), field.role_name);
137
+ const el = renderDocumentField(field, pageInfo, { disabled: true, editable: true, draggable: true });
139
138
  if (!el) {
140
139
  return;
141
140
  }
142
141
  if (Array.isArray(el)) {
143
142
  el.forEach(childEl => {
144
- this.attachFieldAttributes(pageInfo, field, roleIndex, childEl);
143
+ this.attachFieldAttributes(pageInfo, field, childEl);
145
144
  this.makeDraggable(childEl);
146
145
  });
147
146
  }
148
147
  else {
149
- this.attachFieldAttributes(pageInfo, field, roleIndex, el);
148
+ this.attachFieldAttributes(pageInfo, field, el);
150
149
  this.makeDraggable(el);
151
150
  }
152
151
  }
@@ -219,7 +218,8 @@ export class VerdocsTemplateFields {
219
218
  updateStoreField(this.fieldStore, name, newFieldData);
220
219
  event.target.removeAttribute('posX');
221
220
  event.target.removeAttribute('posY');
222
- this.reRenderField(newFieldData, pageNumber);
221
+ // this.reRenderField(newFieldData, pageNumber);
222
+ console.log('[FIELDS] Updated', name, newFieldData);
223
223
  (_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' });
224
224
  }
225
225
  generateFieldName(type, pageNumber) {
@@ -3,7 +3,7 @@ export default {
3
3
  title: 'Templates/Fields',
4
4
  component: 'verdocs-template-fields',
5
5
  args: {
6
- templateId: '',
6
+ templateId: 'd2338742-f3a1-465b-8592-806587413cc1',
7
7
  },
8
8
  argTypes: {},
9
9
  parameters: {
@@ -4,9 +4,8 @@ import { getRGBA } from '@verdocs/js-sdk/Utils/Colors';
4
4
  import { createRole, updateRole } from '@verdocs/js-sdk/Templates/Roles';
5
5
  import { TemplateSenderTypes } from '@verdocs/js-sdk/Templates/Types';
6
6
  import { h, Fragment, Host } from '@stencil/core';
7
- import { getTemplateRoleStore, updateStoreRole } from '../../../utils/TemplateRoleStore';
7
+ import { getRoleIndex, getTemplateRoleStore, updateStoreRole } from '../../../utils/TemplateRoleStore';
8
8
  import { getTemplateStore } from '../../../utils/TemplateStore';
9
- import { getRoleIndex } from '../../../utils/utils';
10
9
  import { SDKError } from '../../../utils/errors';
11
10
  const senderLabels = {
12
11
  [TemplateSenderTypes.EVERYONE]: 'Everyone',
@@ -230,7 +229,7 @@ export class VerdocsTemplateRoles {
230
229
  console.log('Rendering', roleNames, sequences);
231
230
  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" }, "Sender:"), " ", senderLabels[(_c = (_b = this.templateStore) === null || _b === void 0 ? void 0 : _b.state) === null || _c === void 0 ? void 0 : _c.sender], ' ', h("div", { class: "settings-button", innerHTML: settingsIcon, onClick: () => (this.showingSenderDialog = true), "aria-role": "button" })))), h("div", { class: "row add-sequence", "data-sequence": 0 }, h("div", { class: "icon", innerHTML: plusIcon }), h("div", { class: "row-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 => {
232
231
  const unknown = !role.email;
233
- return unknown ? (h(Fragment, null, h("div", { class: "recipient", style: { backgroundColor: getRGBA(getRoleIndex(roleNames, 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(roleNames, 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.full_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 })));
232
+ 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 }), role.full_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 })));
234
233
  }), 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: () => {
235
234
  this.showingRoleDialog = null;
236
235
  }, onDelete: async () => {
@@ -71,3 +71,4 @@ export const PageCountIcon = `<svg width="19" height="24" viewBox="0 0 19 24" fi
71
71
  <rect x="4.5" y="4.5" width="14" height="19" rx="0.5" fill="white" stroke="#375367"/>
72
72
  </svg>
73
73
  `;
74
+ export const SettingsIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor"><path fill-rule="evenodd" d="M7.84 1.804A1 1 0 0 1 8.82 1h2.36a1 1 0 0 1 .98.804l.331 1.652a6.993 6.993 0 0 1 1.929 1.115l1.598-.54a1 1 0 0 1 1.186.447l1.18 2.044a1 1 0 0 1-.205 1.251l-1.267 1.113a7.047 7.047 0 0 1 0 2.228l1.267 1.113a1 1 0 0 1 .206 1.25l-1.18 2.045a1 1 0 0 1-1.187.447l-1.598-.54a6.993 6.993 0 0 1-1.929 1.115l-.33 1.652a1 1 0 0 1-.98.804H8.82a1 1 0 0 1-.98-.804l-.331-1.652a6.993 6.993 0 0 1-1.929-1.115l-1.598.54a1 1 0 0 1-1.186-.447l-1.18-2.044a1 1 0 0 1 .205-1.251l1.267-1.114a7.05 7.05 0 0 1 0-2.227L1.821 7.773a1 1 0 0 1-.206-1.25l1.18-2.045a1 1 0 0 1 1.187-.447l1.598.54A6.992 6.992 0 0 1 7.51 3.456l.33-1.652ZM10 13a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z" clip-rule="evenodd" /></svg>';
@@ -30,3 +30,5 @@ export const deleteStoreRole = (store, name) => {
30
30
  const newRoles = [...store.get('roles').filter(field => field.name !== name)];
31
31
  store.set('roles', newRoles);
32
32
  };
33
+ export const getRoleNames = (store) => store.get('roles').map(role => role.name);
34
+ export const getRoleIndex = (store, name) => getRoleNames(store).findIndex(roleName => roleName === name);
@@ -1,8 +1,8 @@
1
1
  import { createStore } from '@stencil/store';
2
2
  import { getTemplate } from '@verdocs/js-sdk/Templates/Templates';
3
3
  import { TemplateSenderTypes } from '@verdocs/js-sdk/Templates/Types';
4
- import { createTemplateFieldStore, getTemplateFieldStore } from './TemplateFieldStore';
5
4
  import { createTemplateRoleStore, getTemplateRoleStore } from './TemplateRoleStore';
5
+ import { createTemplateFieldStore, getTemplateFieldStore } from './TemplateFieldStore';
6
6
  const createTemplateStore = (templateId) => {
7
7
  const now = new Date().toISOString();
8
8
  return createStore({
@@ -88,4 +88,3 @@ export const getTemplateStore = async (endpoint, templateId, forceReload = false
88
88
  }
89
89
  return store;
90
90
  };
91
- export const getRoleNames = (store) => { var _a; return (((_a = store === null || store === void 0 ? void 0 : store.state) === null || _a === void 0 ? void 0 : _a.roles) || []).map(role => role.name); };
@@ -95,7 +95,7 @@ export const updateDocumentFieldValue = (field) => {
95
95
  existingField.setAttribute('disabled', false); // We need this to trigger a re-render
96
96
  }
97
97
  };
98
- export const renderDocumentField = (field, docPage, roleIndex, fieldOptions) => {
98
+ export const renderDocumentField = (field, docPage, fieldOptions) => {
99
99
  var _a, _b;
100
100
  // console.log('rdf', field);
101
101
  const { disabled = false, editable = false, draggable = false, done = false } = fieldOptions;
@@ -130,7 +130,6 @@ export const renderDocumentField = (field, docPage, roleIndex, fieldOptions) =>
130
130
  const el = document.createElement(`verdocs-field-${type}`);
131
131
  el.field = field;
132
132
  el.setAttribute('id', id);
133
- el.setAttribute('roleIndex', roleIndex);
134
133
  el.setAttribute('fieldname', field.name);
135
134
  el.setAttribute('templateid', 'template_id' in field ? field.template_id : 'PREVIEW');
136
135
  if (disabled) {
@@ -164,7 +163,6 @@ export const renderDocumentField = (field, docPage, roleIndex, fieldOptions) =>
164
163
  const cbEl = document.createElement(`verdocs-field-checkbox`);
165
164
  cbEl.field = field;
166
165
  cbEl.setAttribute('id', id);
167
- cbEl.setAttribute('roleIndex', roleIndex);
168
166
  cbEl.setAttribute('option', 0);
169
167
  if (disabled) {
170
168
  cbEl.setAttribute('disabled', true);
@@ -192,7 +190,6 @@ export const renderDocumentField = (field, docPage, roleIndex, fieldOptions) =>
192
190
  const cbEl = document.createElement(`verdocs-field-checkbox`);
193
191
  cbEl.field = field;
194
192
  cbEl.setAttribute('id', id);
195
- cbEl.setAttribute('roleIndex', roleIndex);
196
193
  cbEl.setAttribute('option', checkboxIndex);
197
194
  if (disabled) {
198
195
  cbEl.setAttribute('disabled', true);
@@ -221,7 +218,6 @@ export const renderDocumentField = (field, docPage, roleIndex, fieldOptions) =>
221
218
  const radioEl = document.createElement(`verdocs-field-radio-button`);
222
219
  radioEl.field = field;
223
220
  radioEl.setAttribute('id', id);
224
- radioEl.setAttribute('roleIndex', roleIndex);
225
221
  radioEl.setAttribute('option', buttonIndex);
226
222
  if (disabled) {
227
223
  radioEl.setAttribute('disabled', true);
@@ -251,7 +247,6 @@ export const renderDocumentField = (field, docPage, roleIndex, fieldOptions) =>
251
247
  return null;
252
248
  }
253
249
  };
254
- export const getRoleIndex = (roles, role) => roles.indexOf(role) || 0;
255
250
  // TODO: We can clean this up a lot if we alter the API to emit both setting and settings regardless of the source type,
256
251
  // but then merge the SDK types to encourage developers to use just `settings`.
257
252
  export const getFieldSettings = (field) => {
@@ -330,15 +325,6 @@ export const throttle = (f, delay) => {
330
325
  timer = setTimeout(() => f.apply(this, args), delay);
331
326
  };
332
327
  };
333
- /**
334
- * Convert a browser File object's data into a base64-encoded string.
335
- */
336
- export const fileToBase64 = (file) => new Promise((resolve, reject) => {
337
- const reader = new FileReader();
338
- reader.readAsDataURL(file);
339
- reader.onload = () => { var _a; return resolve(((_a = reader.result) === null || _a === void 0 ? void 0 : _a.toString()) || ''); };
340
- reader.onerror = error => reject(error);
341
- });
342
328
  /**
343
329
  * Compute the rendered width of a given text string, using a given font.
344
330
  */
@@ -71,5 +71,6 @@ const PageCountIcon = `<svg width="19" height="24" viewBox="0 0 19 24" fill="non
71
71
  <rect x="4.5" y="4.5" width="14" height="19" rx="0.5" fill="white" stroke="#375367"/>
72
72
  </svg>
73
73
  `;
74
+ const SettingsIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor"><path fill-rule="evenodd" d="M7.84 1.804A1 1 0 0 1 8.82 1h2.36a1 1 0 0 1 .98.804l.331 1.652a6.993 6.993 0 0 1 1.929 1.115l1.598-.54a1 1 0 0 1 1.186.447l1.18 2.044a1 1 0 0 1-.205 1.251l-1.267 1.113a7.047 7.047 0 0 1 0 2.228l1.267 1.113a1 1 0 0 1 .206 1.25l-1.18 2.045a1 1 0 0 1-1.187.447l-1.598-.54a6.993 6.993 0 0 1-1.929 1.115l-.33 1.652a1 1 0 0 1-.98.804H8.82a1 1 0 0 1-.98-.804l-.331-1.652a6.993 6.993 0 0 1-1.929-1.115l-1.598.54a1 1 0 0 1-1.186-.447l-1.18-2.044a1 1 0 0 1 .205-1.251l1.267-1.114a7.05 7.05 0 0 1 0-2.227L1.821 7.773a1 1 0 0 1-.206-1.25l1.18-2.045a1 1 0 0 1 1.187-.447l1.598.54A6.992 6.992 0 0 1 7.51 3.456l.33-1.652ZM10 13a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z" clip-rule="evenodd" /></svg>';
74
75
 
75
- export { DocIcon as D, FileIcon as F, JpgIcon as J, PngIcon as P, TrashIcon as T, PdfIcon as a, PageCountIcon as b, unicodeNBSP as u };
76
+ export { DocIcon as D, FileIcon as F, JpgIcon as J, PngIcon as P, SettingsIcon as S, TrashIcon as T, PdfIcon as a, PageCountIcon as b, unicodeNBSP as u };
@@ -0,0 +1,37 @@
1
+ import { c as createStore } from './index4.js';
2
+
3
+ const templateRoleStores = {};
4
+ const getTemplateRoleStore = (templateId) => templateRoleStores[templateId];
5
+ const createTemplateRoleStore = (template) => {
6
+ let store = getTemplateRoleStore(template.id);
7
+ if (!store) {
8
+ console.log('Creating template role store for template', template.id);
9
+ store = createStore({ roles: [] });
10
+ templateRoleStores[template.id] = store;
11
+ }
12
+ else {
13
+ console.log('Resetting template role store for template', template.id);
14
+ store.reset();
15
+ }
16
+ store.set('roles', [...template.roles]);
17
+ return store;
18
+ };
19
+ const updateStoreRole = (store, name, newRoleData) => {
20
+ const newRoles = [
21
+ ...store.get('roles').map(role => {
22
+ if (role.name !== name) {
23
+ return role;
24
+ }
25
+ return { ...role, ...newRoleData };
26
+ }),
27
+ ];
28
+ store.set('roles', newRoles);
29
+ };
30
+ const deleteStoreRole = (store, name) => {
31
+ const newRoles = [...store.get('roles').filter(field => field.name !== name)];
32
+ store.set('roles', newRoles);
33
+ };
34
+ const getRoleNames = (store) => store.get('roles').map(role => role.name);
35
+ const getRoleIndex = (store, name) => getRoleNames(store).findIndex(roleName => roleName === name);
36
+
37
+ export { getRoleIndex as a, getRoleNames as b, createTemplateRoleStore as c, deleteStoreRole as d, getTemplateRoleStore as g, updateStoreRole as u };
@@ -1,39 +1,8 @@
1
1
  import { c as createStore } from './index4.js';
2
2
  import { g as getTemplate, b as TemplateSenderTypes } from './VerdocsEndpoint.js';
3
+ import { c as createTemplateRoleStore } from './TemplateRoleStore.js';
3
4
  import { a as createTemplateFieldStore } from './TemplateFieldStore.js';
4
5
 
5
- const templateRoleStores = {};
6
- const getTemplateRoleStore = (templateId) => templateRoleStores[templateId];
7
- const createTemplateRoleStore = (template) => {
8
- let store = getTemplateRoleStore(template.id);
9
- if (!store) {
10
- console.log('Creating template role store for template', template.id);
11
- store = createStore({ roles: [] });
12
- templateRoleStores[template.id] = store;
13
- }
14
- else {
15
- console.log('Resetting template role store for template', template.id);
16
- store.reset();
17
- }
18
- store.set('roles', [...template.roles]);
19
- return store;
20
- };
21
- const updateStoreRole = (store, name, newRoleData) => {
22
- const newRoles = [
23
- ...store.get('roles').map(role => {
24
- if (role.name !== name) {
25
- return role;
26
- }
27
- return { ...role, ...newRoleData };
28
- }),
29
- ];
30
- store.set('roles', newRoles);
31
- };
32
- const deleteStoreRole = (store, name) => {
33
- const newRoles = [...store.get('roles').filter(field => field.name !== name)];
34
- store.set('roles', newRoles);
35
- };
36
-
37
6
  const createTemplateStore = (templateId) => {
38
7
  const now = new Date().toISOString();
39
8
  return createStore({
@@ -114,6 +83,5 @@ const getTemplateStore = async (endpoint, templateId, forceReload = false) => {
114
83
  }
115
84
  return store;
116
85
  };
117
- const getRoleNames = (store) => { var _a; return (((_a = store === null || store === void 0 ? void 0 : store.state) === null || _a === void 0 ? void 0 : _a.roles) || []).map(role => role.name); };
118
86
 
119
- export { getRoleNames as a, getTemplateRoleStore as b, createTemplateRoleStore as c, deleteStoreRole as d, getTemplateStore as g, updateStoreRole as u };
87
+ export { getTemplateStore as g };