@verdocs/web-sdk 1.12.43 → 1.13.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 (270) hide show
  1. package/dist/cjs/{templateStore-1862f03c.js → TemplateStore-01ff3237.js} +77 -43
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/verdocs-build.cjs.entry.js +12 -15
  4. package/dist/cjs/verdocs-button-panel_3.cjs.entry.js +32 -31
  5. package/dist/cjs/verdocs-field-attachment.cjs.entry.js +2 -3
  6. package/dist/cjs/verdocs-field-checkbox.cjs.entry.js +3 -4
  7. package/dist/cjs/verdocs-field-date.cjs.entry.js +3 -4
  8. package/dist/cjs/verdocs-field-dropdown.cjs.entry.js +3 -4
  9. package/dist/cjs/verdocs-field-initial.cjs.entry.js +3 -4
  10. package/dist/cjs/verdocs-field-payment.cjs.entry.js +2 -3
  11. package/dist/cjs/verdocs-field-radio-button.cjs.entry.js +3 -4
  12. package/dist/cjs/verdocs-field-signature.cjs.entry.js +3 -4
  13. package/dist/cjs/verdocs-field-textarea.cjs.entry.js +3 -4
  14. package/dist/cjs/verdocs-field-textbox.cjs.entry.js +3 -4
  15. package/dist/cjs/verdocs-field-timestamp.cjs.entry.js +3 -4
  16. package/dist/cjs/verdocs-preview.cjs.entry.js +21 -17
  17. package/dist/cjs/verdocs-send.cjs.entry.js +31 -29
  18. package/dist/cjs/verdocs-template-attachments.cjs.entry.js +20 -11
  19. package/dist/cjs/verdocs-template-create_3.cjs.entry.js +76 -85
  20. package/dist/cjs/verdocs-template-name.cjs.entry.js +28 -20
  21. package/dist/cjs/verdocs-template-properties.cjs.entry.js +14 -15
  22. package/dist/cjs/verdocs-template-reminders.cjs.entry.js +24 -19
  23. package/dist/cjs/verdocs-template-role-properties_2.cjs.entry.js +33 -43
  24. package/dist/cjs/verdocs-template-visibility.cjs.entry.js +29 -22
  25. package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
  26. package/dist/collection/components/controls/verdocs-button-panel/verdocs-button-panel.js +1 -2
  27. package/dist/collection/components/controls/verdocs-help-icon/verdocs-help-icon.stories.js +1 -1
  28. package/dist/collection/components/controls/verdocs-toolbar-icon/verdocs-toolbar-icon.stories.js +1 -1
  29. package/dist/collection/components/embeds/verdocs-build/verdocs-build.js +12 -13
  30. package/dist/collection/components/embeds/verdocs-preview/verdocs-preview.js +21 -16
  31. package/dist/collection/components/embeds/verdocs-send/verdocs-send.js +31 -28
  32. package/dist/collection/components/embeds/verdocs-view/verdocs-view.js +2 -2
  33. package/dist/collection/components/fields/verdocs-field-attachment/verdocs-field-attachment.js +20 -2
  34. package/dist/collection/components/fields/verdocs-field-checkbox/verdocs-field-checkbox.js +21 -3
  35. package/dist/collection/components/fields/verdocs-field-date/verdocs-field-date.js +21 -3
  36. package/dist/collection/components/fields/verdocs-field-dropdown/verdocs-field-dropdown.js +21 -3
  37. package/dist/collection/components/fields/verdocs-field-initial/verdocs-field-initial.js +21 -3
  38. package/dist/collection/components/fields/verdocs-field-payment/verdocs-field-payment.js +20 -2
  39. package/dist/collection/components/fields/verdocs-field-radio-button-group/verdocs-field-radio-button.js +21 -3
  40. package/dist/collection/components/fields/verdocs-field-signature/verdocs-field-signature.js +21 -3
  41. package/dist/collection/components/fields/verdocs-field-textarea/verdocs-field-textarea.js +21 -3
  42. package/dist/collection/components/fields/verdocs-field-textbox/verdocs-field-textbox.js +21 -3
  43. package/dist/collection/components/fields/verdocs-field-timestamp/verdocs-field-timestamp.js +21 -3
  44. package/dist/collection/components/templates/verdocs-template-attachments/verdocs-template-attachments.js +20 -15
  45. package/dist/collection/components/templates/verdocs-template-field-properties/verdocs-template-field-properties.js +32 -30
  46. package/dist/collection/components/templates/verdocs-template-fields/verdocs-template-fields.js +32 -32
  47. package/dist/collection/components/templates/verdocs-template-name/verdocs-template-name.js +27 -19
  48. package/dist/collection/components/templates/verdocs-template-properties/verdocs-template-properties.js +13 -15
  49. package/dist/collection/components/templates/verdocs-template-reminders/verdocs-template-reminders.js +25 -20
  50. package/dist/collection/components/templates/verdocs-template-role-properties/verdocs-template-role-properties.js +19 -24
  51. package/dist/collection/components/templates/verdocs-template-roles/verdocs-template-roles.js +46 -56
  52. package/dist/collection/components/templates/verdocs-template-sender/verdocs-template-sender.js +13 -18
  53. package/dist/collection/components/templates/verdocs-template-visibillity/verdocs-template-visibility.js +27 -20
  54. package/dist/collection/utils/TemplateStore.js +77 -0
  55. package/dist/components/{templateStore.js → TemplateStore.js} +76 -43
  56. package/dist/components/Templates.js +65 -45
  57. package/dist/components/verdocs-build.js +12 -13
  58. package/dist/components/verdocs-field-attachment.js +3 -2
  59. package/dist/components/verdocs-field-checkbox.js +4 -3
  60. package/dist/components/verdocs-field-date.js +4 -3
  61. package/dist/components/verdocs-field-dropdown.js +4 -3
  62. package/dist/components/verdocs-field-initial.js +4 -3
  63. package/dist/components/verdocs-field-payment.js +3 -2
  64. package/dist/components/verdocs-field-radio-button.js +4 -3
  65. package/dist/components/verdocs-field-signature.js +4 -3
  66. package/dist/components/verdocs-field-textarea.js +4 -3
  67. package/dist/components/verdocs-field-textbox.js +4 -3
  68. package/dist/components/verdocs-field-timestamp.js +4 -3
  69. package/dist/components/verdocs-preview.js +21 -16
  70. package/dist/components/verdocs-search-activity2.js +1 -1
  71. package/dist/components/verdocs-send.js +31 -28
  72. package/dist/components/verdocs-sign.js +1 -2
  73. package/dist/components/verdocs-template-attachments.js +21 -12
  74. package/dist/components/verdocs-template-create2.js +1 -1
  75. package/dist/components/verdocs-template-field-properties2.js +32 -30
  76. package/dist/components/verdocs-template-fields2.js +32 -32
  77. package/dist/components/verdocs-template-name.js +28 -20
  78. package/dist/components/verdocs-template-properties.js +13 -15
  79. package/dist/components/verdocs-template-reminders.js +25 -20
  80. package/dist/components/verdocs-template-role-properties2.js +19 -24
  81. package/dist/components/verdocs-template-roles2.js +46 -56
  82. package/dist/components/verdocs-template-sender2.js +14 -19
  83. package/dist/components/verdocs-template-visibility.js +28 -21
  84. package/dist/components/verdocs-view2.js +20 -2
  85. package/dist/docs.json +189 -2
  86. package/dist/esm/{templateStore-17c872da.js → TemplateStore-91a71f46.js} +76 -43
  87. package/dist/esm/loader.js +1 -1
  88. package/dist/esm/verdocs-build.entry.js +12 -15
  89. package/dist/esm/verdocs-button-panel_3.entry.js +32 -31
  90. package/dist/esm/verdocs-field-attachment.entry.js +2 -3
  91. package/dist/esm/verdocs-field-checkbox.entry.js +3 -4
  92. package/dist/esm/verdocs-field-date.entry.js +3 -4
  93. package/dist/esm/verdocs-field-dropdown.entry.js +3 -4
  94. package/dist/esm/verdocs-field-initial.entry.js +3 -4
  95. package/dist/esm/verdocs-field-payment.entry.js +2 -3
  96. package/dist/esm/verdocs-field-radio-button.entry.js +3 -4
  97. package/dist/esm/verdocs-field-signature.entry.js +3 -4
  98. package/dist/esm/verdocs-field-textarea.entry.js +3 -4
  99. package/dist/esm/verdocs-field-textbox.entry.js +3 -4
  100. package/dist/esm/verdocs-field-timestamp.entry.js +3 -4
  101. package/dist/esm/verdocs-preview.entry.js +21 -17
  102. package/dist/esm/verdocs-send.entry.js +31 -29
  103. package/dist/esm/verdocs-template-attachments.entry.js +20 -11
  104. package/dist/esm/verdocs-template-create_3.entry.js +76 -85
  105. package/dist/esm/verdocs-template-name.entry.js +26 -18
  106. package/dist/esm/verdocs-template-properties.entry.js +14 -15
  107. package/dist/esm/verdocs-template-reminders.entry.js +24 -19
  108. package/dist/esm/verdocs-template-role-properties_2.entry.js +31 -41
  109. package/dist/esm/verdocs-template-visibility.entry.js +27 -20
  110. package/dist/esm/verdocs-web-sdk.js +1 -1
  111. package/dist/esm-es5/TemplateStore-91a71f46.js +1 -0
  112. package/dist/esm-es5/loader.js +1 -1
  113. package/dist/esm-es5/verdocs-build.entry.js +1 -1
  114. package/dist/esm-es5/verdocs-button-panel_3.entry.js +1 -1
  115. package/dist/esm-es5/verdocs-field-attachment.entry.js +1 -1
  116. package/dist/esm-es5/verdocs-field-checkbox.entry.js +1 -1
  117. package/dist/esm-es5/verdocs-field-date.entry.js +1 -1
  118. package/dist/esm-es5/verdocs-field-dropdown.entry.js +1 -1
  119. package/dist/esm-es5/verdocs-field-initial.entry.js +1 -1
  120. package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
  121. package/dist/esm-es5/verdocs-field-radio-button.entry.js +1 -1
  122. package/dist/esm-es5/verdocs-field-signature.entry.js +1 -1
  123. package/dist/esm-es5/verdocs-field-textarea.entry.js +1 -1
  124. package/dist/esm-es5/verdocs-field-textbox.entry.js +1 -1
  125. package/dist/esm-es5/verdocs-field-timestamp.entry.js +1 -1
  126. package/dist/esm-es5/verdocs-preview.entry.js +1 -1
  127. package/dist/esm-es5/verdocs-send.entry.js +1 -1
  128. package/dist/esm-es5/verdocs-template-attachments.entry.js +1 -1
  129. package/dist/esm-es5/verdocs-template-create_3.entry.js +1 -1
  130. package/dist/esm-es5/verdocs-template-name.entry.js +1 -1
  131. package/dist/esm-es5/verdocs-template-properties.entry.js +1 -1
  132. package/dist/esm-es5/verdocs-template-reminders.entry.js +1 -1
  133. package/dist/esm-es5/verdocs-template-role-properties_2.entry.js +1 -1
  134. package/dist/esm-es5/verdocs-template-visibility.entry.js +1 -1
  135. package/dist/esm-es5/verdocs-web-sdk.js +1 -1
  136. package/dist/types/components/controls/verdocs-button-panel/verdocs-button-panel.d.ts +1 -2
  137. package/dist/types/components/embeds/verdocs-build/verdocs-build.d.ts +2 -0
  138. package/dist/types/components/embeds/verdocs-preview/verdocs-preview.d.ts +3 -1
  139. package/dist/types/components/embeds/verdocs-send/verdocs-send.d.ts +3 -1
  140. package/dist/types/components/fields/verdocs-field-attachment/verdocs-field-attachment.d.ts +4 -0
  141. package/dist/types/components/fields/verdocs-field-checkbox/verdocs-field-checkbox.d.ts +4 -0
  142. package/dist/types/components/fields/verdocs-field-date/verdocs-field-date.d.ts +4 -0
  143. package/dist/types/components/fields/verdocs-field-dropdown/verdocs-field-dropdown.d.ts +4 -0
  144. package/dist/types/components/fields/verdocs-field-initial/verdocs-field-initial.d.ts +4 -0
  145. package/dist/types/components/fields/verdocs-field-payment/verdocs-field-payment.d.ts +4 -0
  146. package/dist/types/components/fields/verdocs-field-radio-button-group/verdocs-field-radio-button.d.ts +4 -0
  147. package/dist/types/components/fields/verdocs-field-signature/verdocs-field-signature.d.ts +4 -0
  148. package/dist/types/components/fields/verdocs-field-textarea/verdocs-field-textarea.d.ts +4 -0
  149. package/dist/types/components/fields/verdocs-field-textbox/verdocs-field-textbox.d.ts +4 -0
  150. package/dist/types/components/fields/verdocs-field-timestamp/verdocs-field-timestamp.d.ts +4 -0
  151. package/dist/types/components/templates/verdocs-template-attachments/verdocs-template-attachments.d.ts +2 -1
  152. package/dist/types/components/templates/verdocs-template-field-properties/verdocs-template-field-properties.d.ts +2 -0
  153. package/dist/types/components/templates/verdocs-template-fields/verdocs-template-fields.d.ts +2 -0
  154. package/dist/types/components/templates/verdocs-template-name/verdocs-template-name.d.ts +2 -1
  155. package/dist/types/components/templates/verdocs-template-properties/verdocs-template-properties.d.ts +2 -2
  156. package/dist/types/components/templates/verdocs-template-reminders/verdocs-template-reminders.d.ts +2 -1
  157. package/dist/types/components/templates/verdocs-template-role-properties/verdocs-template-role-properties.d.ts +2 -0
  158. package/dist/types/components/templates/verdocs-template-roles/verdocs-template-roles.d.ts +2 -1
  159. package/dist/types/components/templates/verdocs-template-sender/verdocs-template-sender.d.ts +2 -0
  160. package/dist/types/components/templates/verdocs-template-visibillity/verdocs-template-visibility.d.ts +2 -1
  161. package/dist/types/components.d.ts +88 -0
  162. package/dist/types/utils/TemplateStore.d.ts +14 -0
  163. package/dist/verdocs-web-sdk/p-1b21b08d.system.entry.js +1 -0
  164. package/dist/verdocs-web-sdk/p-227d07a2.entry.js +1 -0
  165. package/dist/verdocs-web-sdk/p-2cb414ec.system.entry.js +1 -0
  166. package/dist/verdocs-web-sdk/p-2d39a000.entry.js +1 -0
  167. package/dist/verdocs-web-sdk/p-34d3d150.system.entry.js +1 -0
  168. package/dist/verdocs-web-sdk/p-36a31514.entry.js +1 -0
  169. package/dist/verdocs-web-sdk/p-37dd3108.system.entry.js +1 -0
  170. package/dist/verdocs-web-sdk/p-38d0af92.entry.js +1 -0
  171. package/dist/verdocs-web-sdk/p-47bba747.entry.js +1 -0
  172. package/dist/verdocs-web-sdk/p-4eb829ca.system.entry.js +1 -0
  173. package/dist/verdocs-web-sdk/p-5a3d9d9f.system.entry.js +1 -0
  174. package/dist/verdocs-web-sdk/p-5b4dd6a0.entry.js +1 -0
  175. package/dist/verdocs-web-sdk/p-62e12e8f.system.entry.js +1 -0
  176. package/dist/verdocs-web-sdk/p-650b9205.system.entry.js +1 -0
  177. package/dist/verdocs-web-sdk/p-6a0e0615.system.entry.js +1 -0
  178. package/dist/verdocs-web-sdk/p-6caf1137.system.js +1 -1
  179. package/dist/verdocs-web-sdk/p-6dedf123.entry.js +1 -0
  180. package/dist/verdocs-web-sdk/p-6f511c7b.entry.js +1 -0
  181. package/dist/verdocs-web-sdk/p-7306abd0.system.entry.js +1 -0
  182. package/dist/verdocs-web-sdk/p-7464fd3c.system.entry.js +1 -0
  183. package/dist/verdocs-web-sdk/p-76938033.system.entry.js +1 -0
  184. package/dist/verdocs-web-sdk/p-809947d4.system.entry.js +1 -0
  185. package/dist/verdocs-web-sdk/p-8c9caa8a.system.entry.js +1 -0
  186. package/dist/verdocs-web-sdk/p-8d32078d.entry.js +1 -0
  187. package/dist/verdocs-web-sdk/p-8eca5dd8.entry.js +1 -0
  188. package/dist/verdocs-web-sdk/p-92a2bb47.entry.js +1 -0
  189. package/dist/verdocs-web-sdk/p-a3747387.system.entry.js +1 -0
  190. package/dist/verdocs-web-sdk/p-a5970648.system.entry.js +1 -0
  191. package/dist/verdocs-web-sdk/p-ab6bd525.entry.js +1 -0
  192. package/dist/verdocs-web-sdk/p-ba62a8f6.system.entry.js +1 -0
  193. package/dist/verdocs-web-sdk/p-c25d965d.js +1 -0
  194. package/dist/verdocs-web-sdk/p-c2770861.system.entry.js +1 -0
  195. package/dist/verdocs-web-sdk/p-c35bbaef.entry.js +1 -0
  196. package/dist/verdocs-web-sdk/p-c8901fde.entry.js +1 -0
  197. package/dist/verdocs-web-sdk/p-cc396cda.entry.js +1 -0
  198. package/dist/verdocs-web-sdk/p-ce6780e4.system.entry.js +1 -0
  199. package/dist/verdocs-web-sdk/p-d63fe7e9.system.entry.js +1 -0
  200. package/dist/verdocs-web-sdk/p-d7ca70cc.entry.js +1 -0
  201. package/dist/verdocs-web-sdk/p-db2b75bc.system.entry.js +1 -0
  202. package/dist/verdocs-web-sdk/p-de4c38a1.entry.js +1 -0
  203. package/dist/verdocs-web-sdk/p-e4b56475.entry.js +1 -0
  204. package/dist/verdocs-web-sdk/p-e9751ec7.entry.js +1 -0
  205. package/dist/verdocs-web-sdk/p-e9c9cdf5.entry.js +1 -0
  206. package/dist/verdocs-web-sdk/p-ec81b1f2.entry.js +1 -0
  207. package/dist/verdocs-web-sdk/p-f1edfd5a.system.js +1 -0
  208. package/dist/verdocs-web-sdk/p-f201e410.system.entry.js +1 -0
  209. package/dist/verdocs-web-sdk/p-f23a6019.entry.js +1 -0
  210. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  211. package/package.json +2 -2
  212. package/dist/cjs/Templates-f310df2f.js +0 -49
  213. package/dist/collection/utils/Templates.js +0 -44
  214. package/dist/collection/utils/templateStore.js +0 -46
  215. package/dist/components/Primitives.js +0 -20
  216. package/dist/components/Templates2.js +0 -67
  217. package/dist/custom-elements.json +0 -1502
  218. package/dist/esm/Templates-d94fb9d5.js +0 -47
  219. package/dist/esm-es5/Templates-d94fb9d5.js +0 -1
  220. package/dist/esm-es5/templateStore-17c872da.js +0 -1
  221. package/dist/types/utils/Templates.d.ts +0 -2
  222. package/dist/types/utils/templateStore.d.ts +0 -14
  223. package/dist/verdocs-web-sdk/p-02316241.system.js +0 -1
  224. package/dist/verdocs-web-sdk/p-0e727b1c.system.entry.js +0 -1
  225. package/dist/verdocs-web-sdk/p-0fd75d91.system.entry.js +0 -1
  226. package/dist/verdocs-web-sdk/p-1cfb7ff5.entry.js +0 -1
  227. package/dist/verdocs-web-sdk/p-1e35f143.entry.js +0 -1
  228. package/dist/verdocs-web-sdk/p-28976191.system.entry.js +0 -1
  229. package/dist/verdocs-web-sdk/p-2e0980f3.system.entry.js +0 -1
  230. package/dist/verdocs-web-sdk/p-38368af4.system.entry.js +0 -1
  231. package/dist/verdocs-web-sdk/p-3ba4df31.system.entry.js +0 -1
  232. package/dist/verdocs-web-sdk/p-41d9b35b.system.entry.js +0 -1
  233. package/dist/verdocs-web-sdk/p-48eb46ed.system.entry.js +0 -1
  234. package/dist/verdocs-web-sdk/p-519127ef.entry.js +0 -1
  235. package/dist/verdocs-web-sdk/p-552441c6.system.entry.js +0 -1
  236. package/dist/verdocs-web-sdk/p-645e4723.system.entry.js +0 -1
  237. package/dist/verdocs-web-sdk/p-66158f86.system.entry.js +0 -1
  238. package/dist/verdocs-web-sdk/p-667cbdb4.system.entry.js +0 -1
  239. package/dist/verdocs-web-sdk/p-6ec15fc0.entry.js +0 -1
  240. package/dist/verdocs-web-sdk/p-71b8bb54.system.js +0 -1
  241. package/dist/verdocs-web-sdk/p-72b936b3.entry.js +0 -1
  242. package/dist/verdocs-web-sdk/p-73452912.system.entry.js +0 -1
  243. package/dist/verdocs-web-sdk/p-753a6e4a.entry.js +0 -1
  244. package/dist/verdocs-web-sdk/p-7bc337ce.entry.js +0 -1
  245. package/dist/verdocs-web-sdk/p-808f6a46.entry.js +0 -1
  246. package/dist/verdocs-web-sdk/p-81b24500.entry.js +0 -1
  247. package/dist/verdocs-web-sdk/p-89963a6e.system.entry.js +0 -1
  248. package/dist/verdocs-web-sdk/p-8be51136.entry.js +0 -1
  249. package/dist/verdocs-web-sdk/p-8cba983e.entry.js +0 -1
  250. package/dist/verdocs-web-sdk/p-90c71302.entry.js +0 -1
  251. package/dist/verdocs-web-sdk/p-94fa2efb.system.entry.js +0 -1
  252. package/dist/verdocs-web-sdk/p-9e9de6e3.system.entry.js +0 -1
  253. package/dist/verdocs-web-sdk/p-9eb2690b.entry.js +0 -1
  254. package/dist/verdocs-web-sdk/p-a612d29b.system.entry.js +0 -1
  255. package/dist/verdocs-web-sdk/p-b24324f6.entry.js +0 -1
  256. package/dist/verdocs-web-sdk/p-b2c96afc.entry.js +0 -1
  257. package/dist/verdocs-web-sdk/p-b355484e.system.entry.js +0 -1
  258. package/dist/verdocs-web-sdk/p-be25b61f.js +0 -1
  259. package/dist/verdocs-web-sdk/p-bf8cc58c.entry.js +0 -1
  260. package/dist/verdocs-web-sdk/p-c0c4cbe6.entry.js +0 -1
  261. package/dist/verdocs-web-sdk/p-c60c9371.entry.js +0 -1
  262. package/dist/verdocs-web-sdk/p-c83042ac.entry.js +0 -1
  263. package/dist/verdocs-web-sdk/p-c903c4a7.js +0 -1
  264. package/dist/verdocs-web-sdk/p-cae4a96e.system.entry.js +0 -1
  265. package/dist/verdocs-web-sdk/p-ce14f118.system.entry.js +0 -1
  266. package/dist/verdocs-web-sdk/p-cf09e52c.entry.js +0 -1
  267. package/dist/verdocs-web-sdk/p-dca6db47.system.entry.js +0 -1
  268. package/dist/verdocs-web-sdk/p-f3206b9e.system.entry.js +0 -1
  269. package/dist/verdocs-web-sdk/p-f6f1eb46.entry.js +0 -1
  270. package/dist/verdocs-web-sdk/p-fd463970.entry.js +0 -1
@@ -1,13 +1,13 @@
1
1
  import { getRGBA } from '@verdocs/js-sdk/Utils/Colors';
2
2
  import { h, Host } from '@stencil/core';
3
3
  import { getFieldSettings } from '../../../utils/utils';
4
- import TemplateStore from '../../../utils/templateStore';
5
4
  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>';
6
5
  /**
7
6
  * Display a multi-line text input field.
8
7
  */
9
8
  export class VerdocsFieldTextarea {
10
9
  constructor() {
10
+ this.templateid = '';
11
11
  this.field = null;
12
12
  this.disabled = false;
13
13
  this.editable = false;
@@ -30,7 +30,7 @@ export class VerdocsFieldTextarea {
30
30
  if (settingsPanel && settingsPanel.hidePanel) {
31
31
  settingsPanel.hidePanel();
32
32
  }
33
- TemplateStore.updateCount++;
33
+ // TemplateStore.updateCount++;
34
34
  }
35
35
  render() {
36
36
  var _a, _b;
@@ -40,7 +40,7 @@ export class VerdocsFieldTextarea {
40
40
  if (this.done) {
41
41
  return h(Host, { class: { done: this.done } }, settings.value);
42
42
  }
43
- return (h(Host, { class: { required: settings.required, disabled }, style: { backgroundColor } }, h("textarea", { placeholder: settings.placeholder || '', tabIndex: settings.order, value: settings.value, disabled: disabled, required: settings.required, ref: el => (this.el = el) }), this.editable && (h("verdocs-button-panel", { icon: settingsIcon, id: `verdocs-settings-panel-${this.field.name}` }, h("verdocs-template-field-properties", { templateId: TemplateStore.templateId, fieldName: this.field.name, onClose: () => this.hideSettingsPanel(), onDelete: () => {
43
+ return (h(Host, { class: { required: settings.required, disabled }, style: { backgroundColor } }, h("textarea", { placeholder: settings.placeholder || '', tabIndex: settings.order, value: settings.value, disabled: disabled, required: settings.required, ref: el => (this.el = el) }), this.editable && (h("verdocs-button-panel", { icon: settingsIcon, id: `verdocs-settings-panel-${this.field.name}` }, h("verdocs-template-field-properties", { templateId: this.templateid, fieldName: this.field.name, onClose: () => this.hideSettingsPanel(), onDelete: () => {
44
44
  var _a;
45
45
  (_a = this.deleted) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.field.name });
46
46
  return this.hideSettingsPanel();
@@ -63,6 +63,24 @@ export class VerdocsFieldTextarea {
63
63
  }
64
64
  static get properties() {
65
65
  return {
66
+ "templateid": {
67
+ "type": "string",
68
+ "mutable": false,
69
+ "complexType": {
70
+ "original": "string",
71
+ "resolved": "string",
72
+ "references": {}
73
+ },
74
+ "required": false,
75
+ "optional": false,
76
+ "docs": {
77
+ "tags": [],
78
+ "text": "The template the field is for/from. Only required in Builder mode, to support the Field Properties dialog."
79
+ },
80
+ "attribute": "templateid",
81
+ "reflect": false,
82
+ "defaultValue": "''"
83
+ },
66
84
  "field": {
67
85
  "type": "unknown",
68
86
  "mutable": false,
@@ -1,7 +1,6 @@
1
1
  import interact from 'interactjs';
2
2
  import { getRGBA } from '@verdocs/js-sdk/Utils/Colors';
3
3
  import { h, Host } from '@stencil/core';
4
- import TemplateStore from '../../../utils/templateStore';
5
4
  import { getFieldSettings } from '../../../utils/utils';
6
5
  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
6
  /**
@@ -9,6 +8,7 @@ const settingsIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="20" width=
9
8
  */
10
9
  export class VerdocsFieldTextbox {
11
10
  constructor() {
11
+ this.templateid = '';
12
12
  this.field = null;
13
13
  this.disabled = false;
14
14
  this.editable = false;
@@ -31,7 +31,7 @@ export class VerdocsFieldTextbox {
31
31
  if (settingsPanel && settingsPanel.hidePanel) {
32
32
  settingsPanel.hidePanel();
33
33
  }
34
- TemplateStore.updateCount++;
34
+ // TemplateStore.updateCount++;
35
35
  }
36
36
  componentDidRender() {
37
37
  interact.dynamicDrop(true);
@@ -70,7 +70,7 @@ export class VerdocsFieldTextbox {
70
70
  if (this.done) {
71
71
  return h(Host, { class: { done: this.done } }, value);
72
72
  }
73
- return (h(Host, { class: { required: (_c = this.field) === null || _c === void 0 ? void 0 : _c.required, disabled, done: this.done }, 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, value: value, disabled: disabled, required: (_d = this.field) === null || _d === void 0 ? void 0 : _d.required, ref: el => (this.inputEl = el) }), this.editable && (h("div", { class: "resizer", ref: el => (this.resizeHandle = el) }, h("div", { class: "resizer-inner" }))), this.editable && (h("verdocs-button-panel", { icon: settingsIcon, id: `verdocs-settings-panel-${this.field.name}` }, h("verdocs-template-field-properties", { templateId: TemplateStore.templateId, fieldName: this.field.name, onClose: () => this.hideSettingsPanel(), onDelete: () => {
73
+ return (h(Host, { class: { required: (_c = this.field) === null || _c === void 0 ? void 0 : _c.required, disabled, done: this.done }, 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, value: value, disabled: disabled, required: (_d = this.field) === null || _d === void 0 ? void 0 : _d.required, ref: el => (this.inputEl = el) }), this.editable && (h("div", { class: "resizer", ref: el => (this.resizeHandle = el) }, h("div", { class: "resizer-inner" }))), this.editable && (h("verdocs-button-panel", { icon: settingsIcon, id: `verdocs-settings-panel-${this.field.name}` }, h("verdocs-template-field-properties", { templateId: this.templateid, fieldName: this.field.name, onClose: () => this.hideSettingsPanel(), onDelete: () => {
74
74
  var _a;
75
75
  (_a = this.deleted) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.field.name });
76
76
  return this.hideSettingsPanel();
@@ -93,6 +93,24 @@ export class VerdocsFieldTextbox {
93
93
  }
94
94
  static get properties() {
95
95
  return {
96
+ "templateid": {
97
+ "type": "string",
98
+ "mutable": false,
99
+ "complexType": {
100
+ "original": "string",
101
+ "resolved": "string",
102
+ "references": {}
103
+ },
104
+ "required": false,
105
+ "optional": false,
106
+ "docs": {
107
+ "tags": [],
108
+ "text": "The template the field is for/from. Only required in Builder mode, to support the Field Properties dialog."
109
+ },
110
+ "attribute": "templateid",
111
+ "reflect": false,
112
+ "defaultValue": "''"
113
+ },
96
114
  "field": {
97
115
  "type": "unknown",
98
116
  "mutable": false,
@@ -2,13 +2,13 @@ import { format } from 'date-fns';
2
2
  import { getRGBA } from '@verdocs/js-sdk/Utils/Colors';
3
3
  import { h, Host } from '@stencil/core';
4
4
  import { getFieldSettings } from '../../../utils/utils';
5
- import TemplateStore from '../../../utils/templateStore';
6
5
  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
6
  /**
8
7
  * Display a timestamp field.
9
8
  */
10
9
  export class VerdocsFieldTimestamp {
11
10
  constructor() {
11
+ this.templateid = '';
12
12
  this.field = null;
13
13
  this.disabled = false;
14
14
  this.editable = false;
@@ -31,7 +31,7 @@ export class VerdocsFieldTimestamp {
31
31
  if (settingsPanel && settingsPanel.hidePanel) {
32
32
  settingsPanel.hidePanel();
33
33
  }
34
- TemplateStore.updateCount++;
34
+ // TemplateStore.updateCount++;
35
35
  }
36
36
  render() {
37
37
  var _a, _b, _c;
@@ -47,7 +47,7 @@ export class VerdocsFieldTimestamp {
47
47
  return (h(Host, { class: { required: (_c = this.field) === null || _c === void 0 ? void 0 : _c.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,
48
48
  // TODO: It would really make more sense to show the date and time but the default width of 64px for this field
49
49
  // is encoded in a ton of existing entries in the database and is hard to change.
50
- value: formatted, disabled: true, ref: el => (this.el = el) }), this.editable && (h("verdocs-button-panel", { icon: settingsIcon, id: `verdocs-settings-panel-${this.field.name}` }, h("verdocs-template-field-properties", { templateId: TemplateStore.templateId, fieldName: this.field.name, onClose: () => this.hideSettingsPanel(), onDelete: () => {
50
+ value: formatted, disabled: true, ref: el => (this.el = el) }), this.editable && (h("verdocs-button-panel", { icon: settingsIcon, id: `verdocs-settings-panel-${this.field.name}` }, h("verdocs-template-field-properties", { templateId: this.templateid, fieldName: this.field.name, onClose: () => this.hideSettingsPanel(), onDelete: () => {
51
51
  var _a;
52
52
  (_a = this.deleted) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.field.name });
53
53
  return this.hideSettingsPanel();
@@ -70,6 +70,24 @@ export class VerdocsFieldTimestamp {
70
70
  }
71
71
  static get properties() {
72
72
  return {
73
+ "templateid": {
74
+ "type": "string",
75
+ "mutable": false,
76
+ "complexType": {
77
+ "original": "string",
78
+ "resolved": "string",
79
+ "references": {}
80
+ },
81
+ "required": false,
82
+ "optional": false,
83
+ "docs": {
84
+ "tags": [],
85
+ "text": "The template the field is for/from. Only required in Builder mode, to support the Field Properties dialog."
86
+ },
87
+ "attribute": "templateid",
88
+ "reflect": false,
89
+ "defaultValue": "''"
90
+ },
73
91
  "field": {
74
92
  "type": "unknown",
75
93
  "mutable": false,
@@ -1,7 +1,6 @@
1
1
  import { VerdocsEndpoint } from '@verdocs/js-sdk';
2
2
  import { h, Host } from '@stencil/core';
3
- import TemplateStore from '../../../utils/templateStore';
4
- import { loadTemplate } from '../../../utils/Templates';
3
+ import { getTemplateStore } from '../../../utils/TemplateStore';
5
4
  import { SDKError } from '../../../utils/errors';
6
5
  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>';
7
6
  /**
@@ -10,35 +9,46 @@ const FileIcon = '<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24">
10
9
  */
11
10
  export class VerdocsTemplateAttachments {
12
11
  constructor() {
12
+ this.store = null;
13
13
  this.endpoint = VerdocsEndpoint.getDefault();
14
14
  this.templateId = '';
15
- this.loading = true;
16
15
  }
17
16
  async componentWillLoad() {
18
17
  var _a, _b, _c;
19
18
  try {
20
19
  this.endpoint.loadSession();
21
- await loadTemplate(this.endpoint, this.templateId);
22
- this.loading = false;
20
+ if (!this.templateId) {
21
+ console.log(`[ROLES] Missing required template ID ${this.templateId}`);
22
+ return;
23
+ }
24
+ if (!this.endpoint.session) {
25
+ console.log('[ROLES] Unable to start builder session, must be authenticated');
26
+ return;
27
+ }
28
+ this.store = await getTemplateStore(this.endpoint, this.templateId, false);
29
+ this.endpoint.loadSession();
23
30
  }
24
31
  catch (e) {
25
- console.log('[TEMPLATE NAME] Error loading template', e);
26
- this.loading = false;
32
+ console.log('[TEMPLATE ATTACHMENTS] Error loading template', e);
27
33
  (_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));
28
34
  }
29
35
  }
30
36
  render() {
37
+ var _a, _b;
31
38
  if (!this.endpoint.session) {
32
39
  return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
33
40
  }
34
- if (this.loading) {
41
+ const templateState = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state;
42
+ if (!templateState.isLoaded) {
35
43
  return (h(Host, { class: "loading" }, h("verdocs-loader", null)));
36
44
  }
37
45
  // This is meant to be a companion for larger visual experiences so we just go blank on errors for now.
38
- if (!this.endpoint.session || !TemplateStore.template) {
46
+ // Checking
47
+ if (!this.endpoint.session || !templateState.profile_id) {
39
48
  return h(Host, { class: "empty" });
40
49
  }
41
- return (h(Host, null, h("h5", null, "Attachments"), TemplateStore.template.template_documents.map(document => (h("div", { class: "attachment" }, h("span", { innerHTML: FileIcon }), document.name, " (", document.page_numbers, " page", document.page_numbers > 1 ? 's' : '', ")")))));
50
+ return (h(Host, null, h("h5", null, "Attachments"), (_b = this.store) === null || _b === void 0 ? void 0 :
51
+ _b.state.template_documents.map(document => (h("div", { class: "attachment" }, h("span", { innerHTML: FileIcon }), document.name, " (", document.page_numbers, " page", document.page_numbers > 1 ? 's' : '', ")")))));
42
52
  }
43
53
  static get is() { return "verdocs-template-attachments"; }
44
54
  static get originalStyleUrls() {
@@ -94,11 +104,6 @@ export class VerdocsTemplateAttachments {
94
104
  }
95
105
  };
96
106
  }
97
- static get states() {
98
- return {
99
- "loading": {}
100
- };
101
- }
102
107
  static get events() {
103
108
  return [{
104
109
  "method": "close",
@@ -1,9 +1,8 @@
1
- import { VerdocsEndpoint } from '@verdocs/js-sdk';
2
1
  import uuidv4 from 'uuid-browser';
2
+ import { VerdocsEndpoint } from '@verdocs/js-sdk';
3
3
  import { deleteField, updateField } from '@verdocs/js-sdk/Templates/Fields';
4
4
  import { h, Host } from '@stencil/core';
5
- import TemplateStore from '../../../utils/templateStore';
6
- import { loadTemplate } from '../../../utils/Templates';
5
+ import { getTemplateStore } from '../../../utils/TemplateStore';
7
6
  import { SDKError } from '../../../utils/errors';
8
7
  const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1);
9
8
  const TrashIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="#a50021"><path stroke-linecap="round" stroke-linejoin="round" d="M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0" /></svg>`;
@@ -14,6 +13,7 @@ const HelpIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"
14
13
  */
15
14
  export class VerdocsTemplateFieldProperties {
16
15
  constructor() {
16
+ this.store = null;
17
17
  this.endpoint = VerdocsEndpoint.getDefault();
18
18
  this.templateId = '';
19
19
  this.fieldName = '';
@@ -33,11 +33,11 @@ export class VerdocsTemplateFieldProperties {
33
33
  this.showingHelp = false;
34
34
  }
35
35
  async componentWillLoad() {
36
- var _a, _b, _c, _d, _e;
36
+ var _a, _b, _c, _d, _e, _f, _g;
37
37
  try {
38
38
  this.endpoint.loadSession();
39
39
  if (!this.templateId) {
40
- console.error(`[FIELD PROPERTIES] Missing required template ID`);
40
+ console.log(`[ROLES] Missing required template ID ${this.templateId}`);
41
41
  return;
42
42
  }
43
43
  if (!this.fieldName) {
@@ -45,11 +45,11 @@ export class VerdocsTemplateFieldProperties {
45
45
  return;
46
46
  }
47
47
  if (!this.endpoint.session) {
48
- console.error('[FIELD PROPERTIES] Unable to start builder session, must be authenticated');
48
+ console.log('[ROLES] Unable to start builder session, must be authenticated');
49
49
  return;
50
50
  }
51
- await loadTemplate(this.endpoint, this.templateId);
52
- const field = TemplateStore.fields.find(field => field.name === this.fieldName);
51
+ this.store = await getTemplateStore(this.endpoint, this.templateId, false);
52
+ const field = (_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.fields.find(field => field.name === this.fieldName);
53
53
  if (!field) {
54
54
  console.log(`[FIELD PROPERTIES] Unable to find field "${this.fieldName}" in template`);
55
55
  }
@@ -60,31 +60,31 @@ export class VerdocsTemplateFieldProperties {
60
60
  this.required = field.required;
61
61
  this.fieldType = field.type;
62
62
  this.placeholder = field.label; // TODO: Talk about how we want to handle labels/placeholders
63
- this.defaultValue = ((_a = field.setting) === null || _a === void 0 ? void 0 : _a.value) || '';
63
+ this.defaultValue = ((_c = field.setting) === null || _c === void 0 ? void 0 : _c.value) || '';
64
64
  this.setting = field.setting || {};
65
- this.options = ((_b = field.setting) === null || _b === void 0 ? void 0 : _b.options) || [];
65
+ this.options = ((_d = field.setting) === null || _d === void 0 ? void 0 : _d.options) || [];
66
66
  this.dirty = false;
67
67
  this.loading = false;
68
68
  }
69
69
  catch (e) {
70
70
  console.log('[FIELD PROPERTIES] Error loading template', e);
71
71
  this.loading = false;
72
- (_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));
72
+ (_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));
73
73
  }
74
74
  }
75
75
  handleCancel(e) {
76
- var _a, _b;
76
+ var _a, _b, _c, _d;
77
77
  e.stopPropagation();
78
- const field = TemplateStore.fields.find(field => field.name === this.fieldName);
78
+ const field = (_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.fields.find(field => field.name === this.fieldName);
79
79
  if (field) {
80
80
  this.name = field.name;
81
81
  this.roleName = field.role_name;
82
82
  this.required = field.required;
83
83
  this.placeholder = field.label; // TODO: Talk about how we want to handle labels/placeholders
84
- this.defaultValue = ((_a = field.setting) === null || _a === void 0 ? void 0 : _a.result) || '';
84
+ this.defaultValue = ((_c = field.setting) === null || _c === void 0 ? void 0 : _c.result) || '';
85
85
  }
86
86
  this.dirty = false;
87
- (_b = this.close) === null || _b === void 0 ? void 0 : _b.emit();
87
+ (_d = this.close) === null || _d === void 0 ? void 0 : _d.emit();
88
88
  }
89
89
  handleSave(e) {
90
90
  e.stopPropagation();
@@ -107,9 +107,9 @@ export class VerdocsTemplateFieldProperties {
107
107
  }
108
108
  updateField(this.endpoint, this.templateId, this.fieldName, newProperties)
109
109
  .then(() => {
110
- var _a, _b;
110
+ var _a, _b, _c, _d;
111
111
  this.dirty = false;
112
- const field = TemplateStore.fields.find(field => field.name === this.fieldName);
112
+ const field = (_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.fields.find(field => field.name === this.fieldName);
113
113
  if (field) {
114
114
  field.name = this.name;
115
115
  field.role_name = this.roleName;
@@ -120,8 +120,8 @@ export class VerdocsTemplateFieldProperties {
120
120
  field.setting.options = this.options;
121
121
  }
122
122
  }
123
- (_a = this.settingsChanged) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.fieldName });
124
- (_b = this.close) === null || _b === void 0 ? void 0 : _b.emit();
123
+ (_c = this.settingsChanged) === null || _c === void 0 ? void 0 : _c.emit({ fieldName: this.fieldName });
124
+ (_d = this.close) === null || _d === void 0 ? void 0 : _d.emit();
125
125
  })
126
126
  .catch(() => {
127
127
  console.log('Field update failed', e);
@@ -154,9 +154,9 @@ export class VerdocsTemplateFieldProperties {
154
154
  newProperties.setting.options = this.options;
155
155
  updateField(this.endpoint, this.templateId, this.fieldName, newProperties)
156
156
  .then(() => {
157
- var _a, _b;
157
+ var _a, _b, _c, _d;
158
158
  this.dirty = false;
159
- const field = TemplateStore.fields.find(field => field.name === this.fieldName);
159
+ const field = (_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.fields.find(field => field.name === this.fieldName);
160
160
  if (field) {
161
161
  field.name = this.name;
162
162
  field.role_name = this.roleName;
@@ -164,9 +164,10 @@ export class VerdocsTemplateFieldProperties {
164
164
  field.label = this.placeholder;
165
165
  field.setting.result = this.defaultValue;
166
166
  }
167
- (_a = this.settingsChanged) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.fieldName });
168
- (_b = this.close) === null || _b === void 0 ? void 0 : _b.emit();
169
- TemplateStore.updateCount++;
167
+ (_c = this.settingsChanged) === null || _c === void 0 ? void 0 : _c.emit({ fieldName: this.fieldName });
168
+ (_d = this.close) === null || _d === void 0 ? void 0 : _d.emit();
169
+ // TODO: Verify this
170
+ // TemplateStore.updateCount++;
170
171
  })
171
172
  .catch(() => {
172
173
  console.log('Field update failed', e);
@@ -177,13 +178,13 @@ export class VerdocsTemplateFieldProperties {
177
178
  if (window.confirm('Are you sure you wish to remove this field? This action cannot be undone.')) {
178
179
  deleteField(this.endpoint, this.templateId, this.fieldName)
179
180
  .then(r => {
180
- var _a;
181
+ var _a, _b, _c, _d, _e;
181
182
  console.log('Field deleted', r);
182
- TemplateStore.fields = [...TemplateStore.fields.filter(field => field.name !== this.fieldName)];
183
- TemplateStore.template.roles.forEach(role => {
183
+ this.store.state.fields = [...(_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.fields.filter(field => field.name !== this.fieldName)];
184
+ (_d = (_c = this.store) === null || _c === void 0 ? void 0 : _c.state) === null || _d === void 0 ? void 0 : _d.roles.forEach(role => {
184
185
  role.fields = [...role.fields.filter(field => field.name !== this.fieldName)];
185
186
  });
186
- (_a = this.delete) === null || _a === void 0 ? void 0 : _a.emit({ templateId: this.templateId, roleName: this.roleName });
187
+ (_e = this.delete) === null || _e === void 0 ? void 0 : _e.emit({ templateId: this.templateId, roleName: this.roleName });
187
188
  })
188
189
  .catch(e => {
189
190
  console.log('Deletion error', e);
@@ -191,11 +192,12 @@ export class VerdocsTemplateFieldProperties {
191
192
  }
192
193
  }
193
194
  render() {
195
+ var _a, _b, _c, _d;
194
196
  if (!this.endpoint.session) {
195
197
  return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
196
198
  }
197
199
  // This is meant to be a companion for larger visual experiences so we just go blank on errors for now.
198
- if (!this.endpoint.session || !TemplateStore.template) {
200
+ if (!this.endpoint.session || !((_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.isLoaded)) {
199
201
  return h(Host, { class: "empty" });
200
202
  }
201
203
  if (this.helpText && this.showingHelp) {
@@ -206,7 +208,7 @@ export class VerdocsTemplateFieldProperties {
206
208
  placeholder: "Field Name...", onInput: (e) => {
207
209
  this.name = e.target.value;
208
210
  this.dirty = true;
209
- } })), h("div", { class: "row" }, h("div", { class: "input-label" }, "Role:"), h("verdocs-select-input", { value: this.roleName, options: TemplateStore.template.roles.map(role => ({ label: role.name, value: role.name })), onInput: (e) => {
211
+ } })), h("div", { class: "row" }, h("div", { class: "input-label" }, "Role:"), h("verdocs-select-input", { value: this.roleName, options: (_d = (_c = this.store) === null || _c === void 0 ? void 0 : _c.state) === null || _d === void 0 ? void 0 : _d.roles.map(role => ({ label: role.name, value: role.name })), onInput: (e) => {
210
212
  this.roleName = e.target.value;
211
213
  this.dirty = true;
212
214
  } })), ['textbox', 'textarea'].includes(this.type) && (h("verdocs-text-input", { id: "verdocs-field-placeholder", label: "Placeholder", value: this.name, autocomplete: "off",
@@ -3,8 +3,7 @@ import { VerdocsEndpoint } from '@verdocs/js-sdk';
3
3
  import { createField, updateField } from '@verdocs/js-sdk/Templates/Fields';
4
4
  import { h, Host } from '@stencil/core';
5
5
  import { defaultHeight, defaultWidth, getRoleIndex, renderDocumentField, updateCssTransform } from '../../../utils/utils';
6
- import TemplateStore from '../../../utils/templateStore';
7
- import { loadTemplate } from '../../../utils/Templates';
6
+ import { getRoleNames, getTemplateStore } from '../../../utils/TemplateStore';
8
7
  import { SDKError } from '../../../utils/errors';
9
8
  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>';
10
9
  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>';
@@ -39,6 +38,7 @@ const menuOptions = [
39
38
  export class VerdocsTemplateFields {
40
39
  constructor() {
41
40
  this.pageHeights = {};
41
+ this.store = null;
42
42
  this.cachedPageInfo = {};
43
43
  this.endpoint = VerdocsEndpoint.getDefault();
44
44
  this.templateId = null;
@@ -48,7 +48,7 @@ export class VerdocsTemplateFields {
48
48
  this.rerender = 1;
49
49
  }
50
50
  async componentWillLoad() {
51
- var _a, _b, _c, _d, _e, _f;
51
+ var _a, _b, _c, _d, _e, _f, _g;
52
52
  try {
53
53
  this.endpoint.loadSession();
54
54
  if (!this.templateId) {
@@ -56,23 +56,17 @@ export class VerdocsTemplateFields {
56
56
  return;
57
57
  }
58
58
  if (!this.endpoint.session) {
59
- console.log('[BUILD] Unable to start builder session, must be authenticated');
59
+ console.log('[FIELDS] Unable to start builder session, must be authenticated');
60
60
  return;
61
61
  }
62
- try {
63
- console.log(`[FIELDS] Loading template ${this.templateId}`, this.endpoint.session);
64
- await loadTemplate(this.endpoint, this.templateId, true);
65
- this.selectedRoleName = TemplateStore.roleNames[0];
66
- console.log('Starting with role', this.selectedRoleName);
67
- }
68
- catch (e) {
69
- console.log('[FIELDS] Error loading template', e);
70
- (_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));
71
- }
62
+ this.store = await getTemplateStore(this.endpoint, this.templateId, true);
63
+ console.log(`[FIELDS] Loading template ${this.templateId}`, this.endpoint.session);
64
+ this.selectedRoleName = ((_d = (_c = (_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.roles) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.name) || '';
65
+ console.log('Starting with role', this.selectedRoleName);
72
66
  }
73
67
  catch (e) {
74
68
  console.log('[FIELDS] Error with preview session', e);
75
- (_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));
69
+ (_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));
76
70
  }
77
71
  }
78
72
  componentDidRender() {
@@ -98,15 +92,14 @@ export class VerdocsTemplateFields {
98
92
  attachFieldAttributes(pageInfo, field, roleIndex, el) {
99
93
  el.addEventListener('input', e => this.handleFieldChange(field, e));
100
94
  el.addEventListener('settingsChanged', () => {
101
- var _a;
102
- console.log('Settings', TemplateStore.fields);
95
+ var _a, _b, _c, _d;
103
96
  this.selectedRoleName = field.role_name;
104
97
  console.log('settings changed', this.selectedRoleName, field);
105
- el.setAttribute('roleindex', getRoleIndex(TemplateStore.roleNames, field.role_name));
106
- el.field = TemplateStore.fields.find(f => f.name === field.name);
98
+ el.setAttribute('roleindex', getRoleIndex(getRoleNames(this.store), field.role_name));
99
+ el.field = (_b = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.fields.find(f => f.name === field.name);
107
100
  this.rerender++;
108
101
  el.setAttribute('rerender', this.rerender);
109
- (_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: TemplateStore.template, event: 'updated-field' });
102
+ (_c = this.templateUpdated) === null || _c === void 0 ? void 0 : _c.emit({ endpoint: this.endpoint, template: (_d = this.store) === null || _d === void 0 ? void 0 : _d.state, event: 'updated-field' });
110
103
  console.log('Re-rendering field', field.name, pageInfo.pageNumber);
111
104
  this.reRenderField(field, pageInfo.pageNumber);
112
105
  const newEl = renderDocumentField(field, pageInfo, roleIndex, { disabled: true, editable: true, draggable: true });
@@ -115,12 +108,13 @@ export class VerdocsTemplateFields {
115
108
  }
116
109
  });
117
110
  el.addEventListener('deleted', () => {
118
- var _a;
111
+ var _a, _b;
119
112
  console.log('deleted', this, field);
120
113
  el.remove();
121
114
  this.rerender++;
122
- (_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: TemplateStore.template, event: 'updated-field' });
115
+ (_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: (_b = this.store) === null || _b === void 0 ? void 0 : _b.state, event: 'updated-field' });
123
116
  });
117
+ el.setAttribute('templateid', this.templateId);
124
118
  el.setAttribute('roleindex', roleIndex);
125
119
  el.setAttribute('pageNumber', pageInfo.pageNumber);
126
120
  el.setAttribute('xScale', pageInfo.xScale);
@@ -128,16 +122,17 @@ export class VerdocsTemplateFields {
128
122
  el.setAttribute('name', field.name);
129
123
  }
130
124
  handlePageRendered(e) {
125
+ var _a;
131
126
  const pageInfo = e.detail;
132
127
  console.log('[FIELDS] Page rendered', pageInfo.pageNumber, pageInfo);
133
128
  this.cachedPageInfo[pageInfo.pageNumber] = pageInfo;
134
129
  this.pageHeights[pageInfo.pageNumber] = pageInfo.naturalHeight;
135
- const fields = TemplateStore.fields.filter(field => field.page_sequence === pageInfo.pageNumber);
130
+ const fields = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state.fields.filter(field => field.page_sequence === pageInfo.pageNumber);
136
131
  fields.forEach(field => this.reRenderField(field, pageInfo.pageNumber));
137
132
  }
138
133
  reRenderField(field, pageNumber) {
139
134
  const pageInfo = this.cachedPageInfo[pageNumber];
140
- const roleIndex = getRoleIndex(TemplateStore.roleNames, field.role_name);
135
+ const roleIndex = getRoleIndex(getRoleNames(this.store), field.role_name);
141
136
  const el = renderDocumentField(field, pageInfo, roleIndex, { disabled: true, editable: true, draggable: true });
142
137
  if (!el) {
143
138
  return;
@@ -190,6 +185,7 @@ export class VerdocsTemplateFields {
190
185
  }
191
186
  }
192
187
  async handleMoveField(e) {
188
+ var _a;
193
189
  const pageNumber = e.target.getAttribute('pageNumber');
194
190
  const { naturalWidth = 612, naturalHeight = 792, renderedHeight = 792 } = this.cachedPageInfo[pageNumber];
195
191
  console.log('[FIELDS] Drag ended', pageNumber, e.target);
@@ -203,7 +199,7 @@ export class VerdocsTemplateFields {
203
199
  const { x, y } = this.viewCoordinatesToPageCoordinates(newX, newY, pageNumber, naturalWidth - e.rect.width, naturalHeight - e.rect.height);
204
200
  const name = e.target.getAttribute('name');
205
201
  const option = +(e.target.getAttribute('option') || '0');
206
- const field = TemplateStore.fields.find(field => field.name === name);
202
+ const field = (_a = this.store) === null || _a === void 0 ? void 0 : _a.state.fields.find(field => field.name === name);
207
203
  console.log('Will update', name, option, field);
208
204
  if (field) {
209
205
  switch (field.type) {
@@ -235,14 +231,15 @@ export class VerdocsTemplateFields {
235
231
  }
236
232
  }
237
233
  generateFieldName(type, pageNumber) {
234
+ var _a, _b;
238
235
  let i = 1;
239
236
  let fieldName;
240
237
  do {
241
238
  fieldName = `${type}P${pageNumber}-${i}`;
242
239
  console.log('testing field', fieldName);
243
240
  i++;
244
- } while (TemplateStore.fields.some(field => field.name === fieldName));
245
- console.log('Will use field name', fieldName, TemplateStore.fields);
241
+ } while ((_a = this.store) === null || _a === void 0 ? void 0 : _a.state.fields.some(field => field.name === fieldName));
242
+ console.log('Will use field name', fieldName, (_b = this.store) === null || _b === void 0 ? void 0 : _b.state.fields);
246
243
  return fieldName;
247
244
  }
248
245
  // Scale the X,Y clicks to the virtual page dimensions. Also ensure the field doesn't go off the page.
@@ -253,7 +250,7 @@ export class VerdocsTemplateFields {
253
250
  return { x, y };
254
251
  }
255
252
  async handleClickPage(e, page) {
256
- var _a;
253
+ var _a, _b, _c;
257
254
  if (this.placing) {
258
255
  console.log('Placing field', this.placing, page.sequence, e.offsetX, e.offsetY);
259
256
  const pageNumber = page.sequence;
@@ -343,21 +340,24 @@ export class VerdocsTemplateFields {
343
340
  }
344
341
  const saved = await createField(this.endpoint, this.templateId, field);
345
342
  console.log('Saved field', saved);
346
- TemplateStore.fields.push(saved);
343
+ if (this.store.state) {
344
+ this.store.state.fields = [...(_a = this.store) === null || _a === void 0 ? void 0 : _a.state.fields, saved];
345
+ }
347
346
  this.placing = null;
348
- (_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: TemplateStore.template, event: 'added-field' });
347
+ (_b = this.templateUpdated) === null || _b === void 0 ? void 0 : _b.emit({ endpoint: this.endpoint, template: (_c = this.store) === null || _c === void 0 ? void 0 : _c.state, event: 'added-field' });
349
348
  this.handlePageRendered({ detail: this.cachedPageInfo[pageNumber] });
350
349
  }
351
350
  }
352
351
  render() {
352
+ var _a, _b;
353
353
  if (!this.endpoint.session) {
354
354
  return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
355
355
  }
356
356
  // TODO: Render a better error
357
- if (TemplateStore.loading || !TemplateStore.template) {
357
+ if (!((_a = this.store) === null || _a === void 0 ? void 0 : _a.state.isLoaded)) {
358
358
  return (h(Host, null, h("verdocs-loader", null)));
359
359
  }
360
- const pages = [...TemplateStore.template.pages];
360
+ const pages = [...(_b = this.store) === null || _b === void 0 ? void 0 : _b.state.pages];
361
361
  pages.sort((a, b) => a.sequence - b.sequence);
362
362
  return (h(Host, { class: this.placing ? { [`placing-${this.placing}`]: true } : {}, "data-r": this.rerender, onSubmit: () => {
363
363
  console.log('onSubmit');