@verdocs/web-sdk 2.3.16 → 2.3.18

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 (244) hide show
  1. package/dist/cjs/{TemplateFieldStore-7449e5ff.js → TemplateFieldStore-48265c39.js} +3 -1
  2. package/dist/cjs/{TemplateStore-0074c71d.js → TemplateStore-3e45f5ef.js} +2 -2
  3. package/dist/cjs/ipc-test.cjs.entry.js +2 -2
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/{utils-0916d10f.js → utils-c531813b.js} +2 -0
  6. package/dist/cjs/verdocs-build.cjs.entry.js +2 -2
  7. package/dist/cjs/verdocs-button-panel.cjs.entry.js +80 -0
  8. package/dist/cjs/{verdocs-contact-picker_3.cjs.entry.js → verdocs-contact-picker_2.cjs.entry.js} +1 -73
  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 +24 -11
  12. package/dist/cjs/verdocs-field-checkbox.cjs.entry.js +26 -10
  13. package/dist/cjs/verdocs-field-date.cjs.entry.js +29 -12
  14. package/dist/cjs/verdocs-field-dropdown.cjs.entry.js +26 -10
  15. package/dist/cjs/verdocs-field-initial.cjs.entry.js +27 -11
  16. package/dist/cjs/verdocs-field-payment.cjs.entry.js +19 -9
  17. package/dist/cjs/verdocs-field-radio-button.cjs.entry.js +28 -12
  18. package/dist/cjs/verdocs-field-signature.cjs.entry.js +27 -11
  19. package/dist/cjs/verdocs-field-textarea.cjs.entry.js +29 -14
  20. package/dist/cjs/verdocs-field-textbox.cjs.entry.js +25 -20
  21. package/dist/cjs/verdocs-field-timestamp.cjs.entry.js +28 -12
  22. package/dist/cjs/verdocs-pagination_2.cjs.entry.js +1 -1
  23. package/dist/cjs/{verdocs-button-panel_2.cjs.entry.js → verdocs-portal_2.cjs.entry.js} +79 -80
  24. package/dist/cjs/verdocs-preview_8.cjs.entry.js +3 -3
  25. package/dist/cjs/verdocs-settings-api-keys_4.cjs.entry.js +1 -1
  26. package/dist/cjs/verdocs-sign.cjs.entry.js +2 -1
  27. package/dist/cjs/verdocs-template-document-page_2.cjs.entry.js +1 -1
  28. package/dist/cjs/verdocs-template-fields_4.cjs.entry.js +26 -22
  29. package/dist/cjs/verdocs-view.cjs.entry.js +1 -1
  30. package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
  31. package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js +1 -0
  32. package/dist/collection/components/fields/verdocs-field-attachment/verdocs-field-attachment.css +14 -0
  33. package/dist/collection/components/fields/verdocs-field-attachment/verdocs-field-attachment.js +36 -26
  34. package/dist/collection/components/fields/verdocs-field-checkbox/verdocs-field-checkbox.css +14 -0
  35. package/dist/collection/components/fields/verdocs-field-checkbox/verdocs-field-checkbox.js +74 -25
  36. package/dist/collection/components/fields/verdocs-field-date/verdocs-field-date.css +14 -0
  37. package/dist/collection/components/fields/verdocs-field-date/verdocs-field-date.js +75 -29
  38. package/dist/collection/components/fields/verdocs-field-dropdown/verdocs-field-dropdown.css +14 -0
  39. package/dist/collection/components/fields/verdocs-field-dropdown/verdocs-field-dropdown.js +74 -25
  40. package/dist/collection/components/fields/verdocs-field-initial/verdocs-field-initial.css +14 -0
  41. package/dist/collection/components/fields/verdocs-field-initial/verdocs-field-initial.js +71 -26
  42. package/dist/collection/components/fields/verdocs-field-payment/verdocs-field-payment.css +14 -0
  43. package/dist/collection/components/fields/verdocs-field-payment/verdocs-field-payment.js +64 -25
  44. package/dist/collection/components/fields/verdocs-field-radio-button-group/verdocs-field-radio-button.css +14 -0
  45. package/dist/collection/components/fields/verdocs-field-radio-button-group/verdocs-field-radio-button.js +76 -27
  46. package/dist/collection/components/fields/verdocs-field-signature/verdocs-field-signature.css +14 -0
  47. package/dist/collection/components/fields/verdocs-field-signature/verdocs-field-signature.js +71 -26
  48. package/dist/collection/components/fields/verdocs-field-textarea/verdocs-field-textarea.css +14 -0
  49. package/dist/collection/components/fields/verdocs-field-textarea/verdocs-field-textarea.js +41 -29
  50. package/dist/collection/components/fields/verdocs-field-textbox/verdocs-field-textbox.css +14 -0
  51. package/dist/collection/components/fields/verdocs-field-textbox/verdocs-field-textbox.js +28 -43
  52. package/dist/collection/components/fields/verdocs-field-timestamp/verdocs-field-timestamp.css +14 -0
  53. package/dist/collection/components/fields/verdocs-field-timestamp/verdocs-field-timestamp.js +76 -27
  54. package/dist/collection/components/templates/verdocs-template-field-properties/verdocs-template-field-properties.css +6 -0
  55. package/dist/collection/components/templates/verdocs-template-field-properties/verdocs-template-field-properties.js +21 -20
  56. package/dist/collection/components/templates/verdocs-template-fields/verdocs-template-fields.js +23 -19
  57. package/dist/collection/utils/TemplateFieldStore.js +3 -1
  58. package/dist/collection/utils/TemplateStore.js +6 -2
  59. package/dist/collection/utils/utils.js +2 -7
  60. package/dist/components/TemplateFieldStore.js +23 -0
  61. package/dist/components/TemplateStore.js +3 -20
  62. package/dist/components/utils.js +2 -0
  63. package/dist/components/verdocs-button-panel.js +94 -1
  64. package/dist/components/verdocs-field-attachment.js +34 -21
  65. package/dist/components/verdocs-field-checkbox.js +38 -20
  66. package/dist/components/verdocs-field-date.js +42 -23
  67. package/dist/components/verdocs-field-dropdown.js +38 -20
  68. package/dist/components/verdocs-field-initial.js +41 -23
  69. package/dist/components/verdocs-field-payment.js +22 -10
  70. package/dist/components/verdocs-field-radio-button.js +40 -22
  71. package/dist/components/verdocs-field-signature.js +39 -21
  72. package/dist/components/verdocs-field-textarea.js +39 -24
  73. package/dist/components/verdocs-field-textbox.js +34 -29
  74. package/dist/components/verdocs-field-timestamp.js +40 -22
  75. package/dist/components/verdocs-preview2.js +1 -1
  76. package/dist/components/verdocs-sign.js +1 -0
  77. package/dist/components/verdocs-template-field-properties2.js +24 -22
  78. package/dist/components/verdocs-template-fields2.js +25 -20
  79. package/dist/docs.json +398 -167
  80. package/dist/esm/{TemplateFieldStore-4f1b6332.js → TemplateFieldStore-9dbcdd90.js} +3 -1
  81. package/dist/esm/{TemplateStore-a2ebdaca.js → TemplateStore-9fb3ba37.js} +2 -2
  82. package/dist/esm/ipc-test.entry.js +2 -2
  83. package/dist/esm/loader.js +1 -1
  84. package/dist/esm/{utils-ca3121df.js → utils-ccf09e73.js} +2 -0
  85. package/dist/esm/verdocs-build.entry.js +2 -2
  86. package/dist/{components/verdocs-button-panel2.js → esm/verdocs-button-panel.entry.js} +8 -28
  87. package/dist/esm/{verdocs-contact-picker_3.entry.js → verdocs-contact-picker_2.entry.js} +2 -73
  88. package/dist/esm/verdocs-envelope-document-page.entry.js +1 -1
  89. package/dist/esm/verdocs-envelopes-list.entry.js +1 -1
  90. package/dist/esm/verdocs-field-attachment.entry.js +25 -12
  91. package/dist/esm/verdocs-field-checkbox.entry.js +27 -11
  92. package/dist/esm/verdocs-field-date.entry.js +30 -13
  93. package/dist/esm/verdocs-field-dropdown.entry.js +27 -11
  94. package/dist/esm/verdocs-field-initial.entry.js +28 -12
  95. package/dist/esm/verdocs-field-payment.entry.js +20 -10
  96. package/dist/esm/verdocs-field-radio-button.entry.js +29 -13
  97. package/dist/esm/verdocs-field-signature.entry.js +28 -12
  98. package/dist/esm/verdocs-field-textarea.entry.js +30 -15
  99. package/dist/esm/verdocs-field-textbox.entry.js +26 -21
  100. package/dist/esm/verdocs-field-timestamp.entry.js +29 -13
  101. package/dist/esm/verdocs-pagination_2.entry.js +1 -1
  102. package/dist/esm/{verdocs-button-panel_2.entry.js → verdocs-portal_2.entry.js} +80 -81
  103. package/dist/esm/verdocs-preview_8.entry.js +3 -3
  104. package/dist/esm/verdocs-settings-api-keys_4.entry.js +1 -1
  105. package/dist/esm/verdocs-sign.entry.js +2 -1
  106. package/dist/esm/verdocs-template-document-page_2.entry.js +1 -1
  107. package/dist/esm/verdocs-template-fields_4.entry.js +26 -22
  108. package/dist/esm/verdocs-view.entry.js +1 -1
  109. package/dist/esm/verdocs-web-sdk.js +1 -1
  110. package/dist/esm-es5/TemplateFieldStore-9dbcdd90.js +1 -0
  111. package/dist/esm-es5/{TemplateStore-a2ebdaca.js → TemplateStore-9fb3ba37.js} +1 -1
  112. package/dist/esm-es5/ipc-test.entry.js +1 -1
  113. package/dist/esm-es5/loader.js +1 -1
  114. package/dist/esm-es5/verdocs-build.entry.js +1 -1
  115. package/dist/esm-es5/verdocs-button-panel.entry.js +1 -0
  116. package/dist/esm-es5/{verdocs-contact-picker_3.entry.js → verdocs-contact-picker_2.entry.js} +1 -1
  117. package/dist/esm-es5/verdocs-envelope-document-page.entry.js +1 -1
  118. package/dist/esm-es5/verdocs-envelopes-list.entry.js +1 -1
  119. package/dist/esm-es5/verdocs-field-attachment.entry.js +1 -1
  120. package/dist/esm-es5/verdocs-field-checkbox.entry.js +1 -1
  121. package/dist/esm-es5/verdocs-field-date.entry.js +1 -1
  122. package/dist/esm-es5/verdocs-field-dropdown.entry.js +1 -1
  123. package/dist/esm-es5/verdocs-field-initial.entry.js +1 -1
  124. package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
  125. package/dist/esm-es5/verdocs-field-radio-button.entry.js +1 -1
  126. package/dist/esm-es5/verdocs-field-signature.entry.js +1 -1
  127. package/dist/esm-es5/verdocs-field-textarea.entry.js +1 -1
  128. package/dist/esm-es5/verdocs-field-textbox.entry.js +1 -1
  129. package/dist/esm-es5/verdocs-field-timestamp.entry.js +1 -1
  130. package/dist/esm-es5/verdocs-pagination_2.entry.js +1 -1
  131. package/dist/esm-es5/verdocs-portal_2.entry.js +1 -0
  132. package/dist/esm-es5/verdocs-preview_8.entry.js +1 -1
  133. package/dist/esm-es5/verdocs-settings-api-keys_4.entry.js +1 -1
  134. package/dist/esm-es5/verdocs-sign.entry.js +1 -1
  135. package/dist/esm-es5/verdocs-template-document-page_2.entry.js +1 -1
  136. package/dist/esm-es5/verdocs-template-fields_4.entry.js +1 -1
  137. package/dist/esm-es5/verdocs-view.entry.js +1 -1
  138. package/dist/esm-es5/verdocs-web-sdk.js +1 -1
  139. package/dist/types/components/fields/verdocs-field-attachment/verdocs-field-attachment.d.ts +7 -4
  140. package/dist/types/components/fields/verdocs-field-checkbox/verdocs-field-checkbox.d.ts +15 -4
  141. package/dist/types/components/fields/verdocs-field-date/verdocs-field-date.d.ts +14 -3
  142. package/dist/types/components/fields/verdocs-field-dropdown/verdocs-field-dropdown.d.ts +15 -4
  143. package/dist/types/components/fields/verdocs-field-initial/verdocs-field-initial.d.ts +14 -3
  144. package/dist/types/components/fields/verdocs-field-payment/verdocs-field-payment.d.ts +13 -3
  145. package/dist/types/components/fields/verdocs-field-radio-button-group/verdocs-field-radio-button.d.ts +15 -4
  146. package/dist/types/components/fields/verdocs-field-signature/verdocs-field-signature.d.ts +15 -4
  147. package/dist/types/components/fields/verdocs-field-textarea/verdocs-field-textarea.d.ts +7 -4
  148. package/dist/types/components/fields/verdocs-field-textbox/verdocs-field-textbox.d.ts +1 -5
  149. package/dist/types/components/fields/verdocs-field-timestamp/verdocs-field-timestamp.d.ts +15 -4
  150. package/dist/types/components/templates/verdocs-template-fields/verdocs-template-fields.d.ts +1 -1
  151. package/dist/types/components.d.ts +171 -51
  152. package/dist/types/utils/utils.d.ts +0 -1
  153. package/dist/verdocs-web-sdk/{p-4e74bb3c.entry.js → p-0328539a.entry.js} +1 -1
  154. package/dist/verdocs-web-sdk/p-097f349a.system.entry.js +1 -0
  155. package/dist/verdocs-web-sdk/p-0aca6235.entry.js +1 -0
  156. package/dist/verdocs-web-sdk/{p-3cd0d440.system.entry.js → p-0ccf2abe.system.entry.js} +1 -1
  157. package/dist/verdocs-web-sdk/{p-05e6bc91.entry.js → p-1cad24fa.entry.js} +1 -1
  158. package/dist/verdocs-web-sdk/p-1e5ad9ba.entry.js +1 -0
  159. package/dist/verdocs-web-sdk/{p-6331d113.entry.js → p-28272d35.entry.js} +1 -1
  160. package/dist/verdocs-web-sdk/p-2d0b17e7.entry.js +1 -0
  161. package/dist/verdocs-web-sdk/p-2d4ca5a0.system.entry.js +1 -0
  162. package/dist/verdocs-web-sdk/p-2dd4da7d.system.entry.js +1 -0
  163. package/dist/verdocs-web-sdk/{p-59769c39.system.entry.js → p-30f3c33a.system.entry.js} +1 -1
  164. package/dist/verdocs-web-sdk/p-36c5379e.entry.js +1 -0
  165. package/dist/verdocs-web-sdk/p-38497444.system.entry.js +1 -0
  166. package/dist/verdocs-web-sdk/p-3e490dfa.entry.js +1 -0
  167. package/dist/verdocs-web-sdk/p-4027169f.entry.js +1 -0
  168. package/dist/verdocs-web-sdk/p-41e51012.entry.js +1 -0
  169. package/dist/verdocs-web-sdk/{p-acc873cf.system.entry.js → p-49fba82f.system.entry.js} +1 -1
  170. package/dist/verdocs-web-sdk/p-4e27ba77.entry.js +1 -0
  171. package/dist/verdocs-web-sdk/p-55180d12.entry.js +1 -0
  172. package/dist/verdocs-web-sdk/p-63b86867.system.entry.js +1 -0
  173. package/dist/verdocs-web-sdk/p-66443920.entry.js +1 -0
  174. package/dist/verdocs-web-sdk/p-691f18de.system.entry.js +1 -0
  175. package/dist/verdocs-web-sdk/p-6c3ba7d3.js +1 -0
  176. package/dist/verdocs-web-sdk/p-7203fda7.system.entry.js +1 -0
  177. package/dist/verdocs-web-sdk/p-7211a137.system.entry.js +1 -0
  178. package/dist/verdocs-web-sdk/{p-ba653c39.system.entry.js → p-72c635ef.system.entry.js} +1 -1
  179. package/dist/verdocs-web-sdk/{p-e4dc3264.system.entry.js → p-749a7d9d.system.entry.js} +1 -1
  180. package/dist/verdocs-web-sdk/p-74c05793.system.entry.js +1 -0
  181. package/dist/verdocs-web-sdk/p-7c2627ba.system.js +1 -0
  182. package/dist/verdocs-web-sdk/{p-5bf12ef8.entry.js → p-84e7ab97.entry.js} +1 -1
  183. package/dist/verdocs-web-sdk/p-85ee0dbe.entry.js +1 -0
  184. package/dist/verdocs-web-sdk/{p-8dc15d33.js → p-884367a1.js} +1 -1
  185. package/dist/verdocs-web-sdk/p-8f99d965.system.entry.js +1 -0
  186. package/dist/verdocs-web-sdk/p-90b7699c.system.entry.js +1 -0
  187. package/dist/verdocs-web-sdk/{p-1a7aa04b.entry.js → p-91d084e9.entry.js} +1 -1
  188. package/dist/verdocs-web-sdk/{p-5aa77f6d.system.entry.js → p-93a6c71d.system.entry.js} +1 -1
  189. package/dist/verdocs-web-sdk/{p-e1bc55f8.entry.js → p-94caaad0.entry.js} +1 -1
  190. package/dist/verdocs-web-sdk/p-9b0a81c2.system.entry.js +1 -0
  191. package/dist/verdocs-web-sdk/p-9f61c422.system.entry.js +1 -0
  192. package/dist/verdocs-web-sdk/{p-2ccbf54d.entry.js → p-a1f94c81.entry.js} +1 -1
  193. package/dist/verdocs-web-sdk/p-a38c70eb.entry.js +1 -0
  194. package/dist/verdocs-web-sdk/{p-a627881e.system.js → p-a5da4f00.system.js} +1 -1
  195. package/dist/verdocs-web-sdk/p-a6a93948.entry.js +1 -0
  196. package/dist/verdocs-web-sdk/p-b1019fba.entry.js +1 -0
  197. package/dist/verdocs-web-sdk/{p-1e38b22f.system.entry.js → p-b68869f2.system.entry.js} +1 -1
  198. package/dist/verdocs-web-sdk/p-ba76e170.system.entry.js +1 -0
  199. package/dist/verdocs-web-sdk/{p-1cb878c8.system.entry.js → p-bcb8d6bf.system.entry.js} +1 -1
  200. package/dist/verdocs-web-sdk/{p-aae6b4e0.entry.js → p-bd444cde.entry.js} +1 -1
  201. package/dist/verdocs-web-sdk/{p-736fbb87.system.entry.js → p-bf0cc00c.system.entry.js} +1 -1
  202. package/dist/verdocs-web-sdk/p-d381bf8c.system.entry.js +1 -0
  203. package/dist/verdocs-web-sdk/p-d4522397.entry.js +1 -0
  204. package/dist/verdocs-web-sdk/{p-76f8c30a.entry.js → p-ee4bb73a.entry.js} +1 -1
  205. package/dist/verdocs-web-sdk/p-f04bf956.system.js +1 -1
  206. package/dist/verdocs-web-sdk/{p-72978ba3.system.entry.js → p-f073d143.system.entry.js} +1 -1
  207. package/dist/verdocs-web-sdk/{p-410c63e6.entry.js → p-fcf9db79.entry.js} +1 -1
  208. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  209. package/package.json +1 -1
  210. package/dist/esm-es5/TemplateFieldStore-4f1b6332.js +0 -1
  211. package/dist/esm-es5/verdocs-button-panel_2.entry.js +0 -1
  212. package/dist/verdocs-web-sdk/p-084c23e4.system.js +0 -1
  213. package/dist/verdocs-web-sdk/p-12d00a0f.entry.js +0 -1
  214. package/dist/verdocs-web-sdk/p-22e0d2bc.entry.js +0 -1
  215. package/dist/verdocs-web-sdk/p-319c00bd.entry.js +0 -1
  216. package/dist/verdocs-web-sdk/p-32c40388.entry.js +0 -1
  217. package/dist/verdocs-web-sdk/p-358aef29.entry.js +0 -1
  218. package/dist/verdocs-web-sdk/p-37dfdc84.entry.js +0 -1
  219. package/dist/verdocs-web-sdk/p-3f3807b0.system.entry.js +0 -1
  220. package/dist/verdocs-web-sdk/p-429cad70.js +0 -1
  221. package/dist/verdocs-web-sdk/p-46624bec.entry.js +0 -1
  222. package/dist/verdocs-web-sdk/p-4e47ed1c.entry.js +0 -1
  223. package/dist/verdocs-web-sdk/p-588d6cea.system.entry.js +0 -1
  224. package/dist/verdocs-web-sdk/p-6685ff29.system.entry.js +0 -1
  225. package/dist/verdocs-web-sdk/p-7b30c523.system.entry.js +0 -1
  226. package/dist/verdocs-web-sdk/p-870707e8.system.entry.js +0 -1
  227. package/dist/verdocs-web-sdk/p-8af68516.system.entry.js +0 -1
  228. package/dist/verdocs-web-sdk/p-9360b085.system.entry.js +0 -1
  229. package/dist/verdocs-web-sdk/p-a40b3946.entry.js +0 -1
  230. package/dist/verdocs-web-sdk/p-ac98f6f1.system.entry.js +0 -1
  231. package/dist/verdocs-web-sdk/p-b7a815e9.system.entry.js +0 -1
  232. package/dist/verdocs-web-sdk/p-b91de346.entry.js +0 -1
  233. package/dist/verdocs-web-sdk/p-bd9ba3b3.system.entry.js +0 -1
  234. package/dist/verdocs-web-sdk/p-d59b6988.entry.js +0 -1
  235. package/dist/verdocs-web-sdk/p-d99a05e4.system.entry.js +0 -1
  236. package/dist/verdocs-web-sdk/p-dd2c2edc.entry.js +0 -1
  237. package/dist/verdocs-web-sdk/p-e28878eb.system.entry.js +0 -1
  238. package/dist/verdocs-web-sdk/p-e3ffc00f.system.entry.js +0 -1
  239. package/dist/verdocs-web-sdk/p-eeca4c30.entry.js +0 -1
  240. package/dist/verdocs-web-sdk/p-f42c84f1.entry.js +0 -1
  241. package/dist/verdocs-web-sdk/p-f6b7439f.system.entry.js +0 -1
  242. /package/dist/esm-es5/{utils-ca3121df.js → utils-ccf09e73.js} +0 -0
  243. /package/dist/verdocs-web-sdk/{p-840827b7.system.js → p-9a7178fe.system.js} +0 -0
  244. /package/dist/verdocs-web-sdk/{p-02a71e03.js → p-a9f315bb.js} +0 -0
@@ -2,10 +2,10 @@ import interact from 'interactjs';
2
2
  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
- import { h, Host } from '@stencil/core';
6
- import { getFieldSettings } from '../../../utils/utils';
5
+ import { h, Host, Fragment } from '@stencil/core';
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 { 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
9
  /**
10
10
  * Display a text input field.
11
11
  */
@@ -14,7 +14,6 @@ export class VerdocsFieldTextbox {
14
14
  this.fieldStore = null;
15
15
  this.endpoint = VerdocsEndpoint.getDefault();
16
16
  this.templateid = '';
17
- this.field = null;
18
17
  this.fieldname = '';
19
18
  this.disabled = false;
20
19
  this.editable = false;
@@ -24,24 +23,24 @@ export class VerdocsFieldTextbox {
24
23
  this.xscale = 1;
25
24
  this.yscale = 1;
26
25
  this.rerender = 0;
26
+ this.showingProperties = false;
27
27
  }
28
28
  async focusField() {
29
29
  this.inputEl.focus();
30
30
  }
31
31
  async showSettingsPanel() {
32
- const settingsPanel = document.getElementById(`verdocs-settings-panel-${this.field.name}`);
32
+ const settingsPanel = document.getElementById(`verdocs-settings-panel-${this.fieldname}`);
33
33
  if (settingsPanel && settingsPanel.showPanel) {
34
34
  settingsPanel.showPanel();
35
35
  }
36
36
  }
37
37
  async hideSettingsPanel() {
38
- const settingsPanel = document.getElementById(`verdocs-settings-panel-${this.field.name}`);
38
+ const settingsPanel = document.getElementById(`verdocs-settings-panel-${this.fieldname}`);
39
39
  if (settingsPanel && settingsPanel.hidePanel) {
40
40
  settingsPanel.hidePanel();
41
41
  }
42
42
  }
43
43
  async componentWillLoad() {
44
- console.log('Loading field', this.field);
45
44
  this.fieldStore = getTemplateFieldStore(this.templateid);
46
45
  }
47
46
  componentDidRender() {
@@ -75,28 +74,31 @@ export class VerdocsFieldTextbox {
75
74
  Object.assign(e.target.dataset, { x, y, h });
76
75
  }
77
76
  handleResizeEnd(e) {
78
- const newSettings = { ...getFieldSettings(this.field) };
77
+ const field = this.fieldStore.get(this.fieldname);
78
+ const newSettings = { ...getFieldSettings(field) };
79
79
  const [translateX, translateY] = e.target.style.transform.split('(')[1].split(')')[0].split(',').map(parseFloat);
80
80
  newSettings.width = Math.round(parseFloat(e.target.style.width) / this.xscale);
81
81
  newSettings.height = Math.round(parseFloat(e.target.style.height) / this.yscale);
82
82
  newSettings.x = Math.round(newSettings.x + translateX / this.xscale);
83
83
  newSettings.y = Math.round(newSettings.y - translateY / this.yscale);
84
- updateField(this.endpoint, this.templateid, this.field.name, { setting: newSettings })
84
+ updateField(this.endpoint, this.templateid, this.fieldname, { setting: newSettings })
85
85
  .then(field => {
86
86
  var _a;
87
87
  console.log('update result', field);
88
- (_a = this.settingsChanged) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.field.name, settings: newSettings, field });
88
+ (_a = this.settingsChanged) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: field.name, settings: newSettings, field });
89
89
  Object.assign(e.target.dataset, { x: 0, y: 0, h: 0 });
90
90
  })
91
91
  .catch(e => console.log('Field update failed', e));
92
92
  }
93
93
  render() {
94
- var _a, _b, _c, _d;
95
- const f = this.fieldStore.get(this.fieldname);
96
- console.log('rendering field', f);
97
- const settings = getFieldSettings(this.field);
94
+ var _a, _b;
95
+ const field = this.fieldStore.get(this.fieldname);
96
+ if (!field) {
97
+ return h(Fragment, null);
98
+ }
99
+ const settings = getFieldSettings(field);
98
100
  let disabled = (_b = (_a = this.disabled) !== null && _a !== void 0 ? _a : settings.disabled) !== null && _b !== void 0 ? _b : false;
99
- const backgroundColor = this.field['rgba'] || getRGBA(this.roleindex);
101
+ const backgroundColor = field['rgba'] || getRGBA(this.roleindex);
100
102
  const value = (settings === null || settings === void 0 ? void 0 : settings.result) || '';
101
103
  const width = settings.width || 150;
102
104
  // TODO: This is an outdated technique from the old system. We should compute it.
@@ -104,15 +106,18 @@ export class VerdocsFieldTextbox {
104
106
  if (this.done) {
105
107
  return h(Host, { class: { done: this.done } }, value);
106
108
  }
107
- 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", name: this.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: (_d = this.field) === null || _d === void 0 ? void 0 : _d.required, ref: el => (this.inputEl = el), maxlength: maxlength }), 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: () => {
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) => {
110
+ e.stopPropagation();
111
+ this.showingProperties = !this.showingProperties;
112
+ } }), 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: () => {
108
113
  var _a;
109
- (_a = this.deleted) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.field.name });
114
+ (_a = this.deleted) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: field.name });
110
115
  return this.hideSettingsPanel();
111
116
  }, onSettingsChanged: e => {
112
117
  var _a;
113
118
  (_a = this.settingsChanged) === null || _a === void 0 ? void 0 : _a.emit(e.detail);
114
119
  return this.hideSettingsPanel();
115
- }, helpText: 'Text boxes may be used to capture simple text input. Participant-entered values will be stored for later retrieval via the "name" field.<br /><br />If marked required, the participant must complete the field before proceeding.' })))));
120
+ }, helpText: 'Text boxes may be used to capture simple text input. Participant-entered values will be stored for later retrieval via the "name" field.<br /><br />If marked required, the participant must complete the field before proceeding.' })))))));
116
121
  }
117
122
  static get is() { return "verdocs-field-textbox"; }
118
123
  static get originalStyleUrls() {
@@ -166,31 +171,6 @@ export class VerdocsFieldTextbox {
166
171
  "reflect": false,
167
172
  "defaultValue": "''"
168
173
  },
169
- "field": {
170
- "type": "unknown",
171
- "mutable": false,
172
- "complexType": {
173
- "original": "IEnvelopeField | ITemplateField | null",
174
- "resolved": "IEnvelopeField | ITemplateField",
175
- "references": {
176
- "IEnvelopeField": {
177
- "location": "import",
178
- "path": "@verdocs/js-sdk/Envelopes/Types"
179
- },
180
- "ITemplateField": {
181
- "location": "import",
182
- "path": "@verdocs/js-sdk/Templates/Types"
183
- }
184
- }
185
- },
186
- "required": false,
187
- "optional": false,
188
- "docs": {
189
- "tags": [],
190
- "text": "The document or template field to display."
191
- },
192
- "defaultValue": "null"
193
- },
194
174
  "fieldname": {
195
175
  "type": "string",
196
176
  "mutable": false,
@@ -355,6 +335,11 @@ export class VerdocsFieldTextbox {
355
335
  }
356
336
  };
357
337
  }
338
+ static get states() {
339
+ return {
340
+ "showingProperties": {}
341
+ };
342
+ }
358
343
  static get events() {
359
344
  return [{
360
345
  "method": "settingsChanged",
@@ -51,4 +51,18 @@ verdocs-field-timestamp verdocs-button-panel .icon svg {
51
51
  }
52
52
  verdocs-field-timestamp verdocs-button-panel .icon:hover svg {
53
53
  fill: #000000;
54
+ }
55
+ verdocs-field-timestamp .settings-icon {
56
+ position: absolute;
57
+ top: -3px;
58
+ left: -20px;
59
+ display: inline-block;
60
+ cursor: pointer;
61
+ opacity: 0.6;
62
+ }
63
+ verdocs-field-timestamp .settings-icon svg {
64
+ fill: #707ae5;
65
+ }
66
+ verdocs-field-timestamp .settings-icon:hover {
67
+ opacity: 1;
54
68
  }
@@ -1,62 +1,77 @@
1
1
  import { format } from 'date-fns';
2
2
  import { getRGBA } from '@verdocs/js-sdk/Utils/Colors';
3
- import { h, Host } from '@stencil/core';
3
+ import { h, Host, Fragment } from '@stencil/core';
4
4
  import { getFieldSettings } from '../../../utils/utils';
5
5
  import { FORMAT_TIMESTAMP } from '../../../utils/Types';
6
+ import { getTemplateFieldStore } from '../../../utils/TemplateFieldStore';
6
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>';
7
8
  /**
8
9
  * Display a timestamp field.
9
10
  */
10
11
  export class VerdocsFieldTimestamp {
11
12
  constructor() {
13
+ this.fieldStore = null;
12
14
  this.templateid = '';
13
- this.field = null;
15
+ this.fieldname = '';
14
16
  this.disabled = false;
15
17
  this.editable = false;
16
18
  this.moveable = false;
17
19
  this.done = false;
18
20
  this.roleindex = 0;
19
21
  this.rerender = 0;
22
+ this.xscale = 1;
23
+ this.yscale = 1;
24
+ this.showingProperties = false;
20
25
  }
21
26
  async focusField() {
22
27
  this.el.focus();
23
28
  }
24
29
  async showSettingsPanel() {
25
- const settingsPanel = document.getElementById(`verdocs-settings-panel-${this.field.name}`);
30
+ const settingsPanel = document.getElementById(`verdocs-settings-panel-${this.fieldname}`);
26
31
  if (settingsPanel && settingsPanel.showPanel) {
27
32
  settingsPanel.showPanel();
28
33
  }
29
34
  }
30
35
  async hideSettingsPanel() {
31
- const settingsPanel = document.getElementById(`verdocs-settings-panel-${this.field.name}`);
36
+ const settingsPanel = document.getElementById(`verdocs-settings-panel-${this.fieldname}`);
32
37
  if (settingsPanel && settingsPanel.hidePanel) {
33
38
  settingsPanel.hidePanel();
34
39
  }
35
40
  // TemplateStore.updateCount++;
36
41
  }
42
+ async componentWillLoad() {
43
+ this.fieldStore = getTemplateFieldStore(this.templateid);
44
+ }
37
45
  render() {
38
- var _a, _b, _c;
39
- const settings = getFieldSettings(this.field);
46
+ var _a, _b;
47
+ const field = this.fieldStore.get(this.fieldname);
48
+ if (!field) {
49
+ return h(Fragment, null);
50
+ }
51
+ const settings = getFieldSettings(field);
40
52
  const disabled = (_b = (_a = this.disabled) !== null && _a !== void 0 ? _a : settings.disabled) !== null && _b !== void 0 ? _b : false;
41
- const backgroundColor = this.field['rgba'] || getRGBA(this.roleindex);
53
+ const backgroundColor = field['rgba'] || getRGBA(this.roleindex);
42
54
  const value = settings.value || new Date().toISOString();
43
55
  const dt = new Date(value);
44
56
  const formatted = format(dt, FORMAT_TIMESTAMP);
45
57
  if (this.done) {
46
58
  return h(Host, { class: { done: this.done } }, formatted);
47
59
  }
48
- 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,
60
+ 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,
49
61
  // TODO: It would really make more sense to show the date and time but the default width of 64px for this field
50
62
  // is encoded in a ton of existing entries in the database and is hard to change.
51
- 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: () => {
63
+ 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
+ e.stopPropagation();
65
+ this.showingProperties = !this.showingProperties;
66
+ } }), 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: () => {
52
67
  var _a;
53
- (_a = this.deleted) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: this.field.name });
68
+ (_a = this.deleted) === null || _a === void 0 ? void 0 : _a.emit({ fieldName: field.name });
54
69
  return this.hideSettingsPanel();
55
70
  }, onSettingsChanged: e => {
56
71
  var _a;
57
72
  (_a = this.settingsChanged) === null || _a === void 0 ? void 0 : _a.emit(e.detail);
58
73
  return this.hideSettingsPanel();
59
- } })))));
74
+ }, helpText: 'Time stamps are automatically set when the recipient signs the document.' })))))));
60
75
  }
61
76
  static get is() { return "verdocs-field-timestamp"; }
62
77
  static get originalStyleUrls() {
@@ -89,30 +104,23 @@ export class VerdocsFieldTimestamp {
89
104
  "reflect": false,
90
105
  "defaultValue": "''"
91
106
  },
92
- "field": {
93
- "type": "unknown",
107
+ "fieldname": {
108
+ "type": "string",
94
109
  "mutable": false,
95
110
  "complexType": {
96
- "original": "IEnvelopeField | ITemplateField | null",
97
- "resolved": "IEnvelopeField | ITemplateField",
98
- "references": {
99
- "IEnvelopeField": {
100
- "location": "import",
101
- "path": "@verdocs/js-sdk/Envelopes/Types"
102
- },
103
- "ITemplateField": {
104
- "location": "import",
105
- "path": "@verdocs/js-sdk/Templates/Types"
106
- }
107
- }
111
+ "original": "string",
112
+ "resolved": "string",
113
+ "references": {}
108
114
  },
109
115
  "required": false,
110
116
  "optional": false,
111
117
  "docs": {
112
118
  "tags": [],
113
- "text": "The document or template field to display."
119
+ "text": "The name of the field to display."
114
120
  },
115
- "defaultValue": "null"
121
+ "attribute": "fieldname",
122
+ "reflect": false,
123
+ "defaultValue": "''"
116
124
  },
117
125
  "disabled": {
118
126
  "type": "boolean",
@@ -221,9 +229,50 @@ export class VerdocsFieldTimestamp {
221
229
  "attribute": "rerender",
222
230
  "reflect": false,
223
231
  "defaultValue": "0"
232
+ },
233
+ "xscale": {
234
+ "type": "number",
235
+ "mutable": false,
236
+ "complexType": {
237
+ "original": "number",
238
+ "resolved": "number",
239
+ "references": {}
240
+ },
241
+ "required": false,
242
+ "optional": true,
243
+ "docs": {
244
+ "tags": [],
245
+ "text": "If set, the field will be be scaled horizontally by this factor."
246
+ },
247
+ "attribute": "xscale",
248
+ "reflect": false,
249
+ "defaultValue": "1"
250
+ },
251
+ "yscale": {
252
+ "type": "number",
253
+ "mutable": false,
254
+ "complexType": {
255
+ "original": "number",
256
+ "resolved": "number",
257
+ "references": {}
258
+ },
259
+ "required": false,
260
+ "optional": true,
261
+ "docs": {
262
+ "tags": [],
263
+ "text": "If set, the field will be be scaled vertically by this factor."
264
+ },
265
+ "attribute": "yscale",
266
+ "reflect": false,
267
+ "defaultValue": "1"
224
268
  }
225
269
  };
226
270
  }
271
+ static get states() {
272
+ return {
273
+ "showingProperties": {}
274
+ };
275
+ }
227
276
  static get events() {
228
277
  return [{
229
278
  "method": "settingsChanged",
@@ -1,5 +1,11 @@
1
1
  verdocs-template-field-properties {
2
+ padding: 20px;
3
+ display: block;
4
+ border-radius: 4px;
5
+ background: #ffffff;
6
+ border: 1px solid #ccc;
2
7
  font-family: "Inter", -apple-system, "Segoe UI", "Roboto", "Helvetica Neue", sans-serif;
8
+ box-shadow: 2px 2px 10px 0px #0000001f;
3
9
  }
4
10
  verdocs-template-field-properties .buttons {
5
11
  display: flex;
@@ -53,33 +53,34 @@ export class VerdocsTemplateFieldProperties {
53
53
  return;
54
54
  }
55
55
  this.templateStore = await getTemplateStore(this.endpoint, this.templateId);
56
+ createTemplateFieldStore(this.templateStore.state);
56
57
  this.fieldStore = await createTemplateFieldStore(this.templateStore.state);
58
+ // console.log('tfs', this.fieldStore?.state);
57
59
  const field = this.fieldStore.get(this.fieldName);
60
+ // console.log('gf', field);
58
61
  if (!field) {
59
62
  console.log(`[FIELD PROPERTIES] Unable to find field "${this.fieldName}" in fields`);
60
63
  }
61
64
  else {
62
65
  console.log('props', field);
63
66
  }
64
- createTemplateFieldStore(this.templateStore.state);
65
67
  this.watcher = this.fieldStore.onChange(this.fieldName, field => {
66
- var _a, _b, _c, _d;
67
68
  console.log('Field changed', field);
68
- this.type = field.type;
69
- this.name = field.name;
70
- this.label = field.label;
71
- this.group = field.name;
72
- this.roleName = field.role_name;
73
- this.required = field.required;
74
- this.fieldType = field.type;
75
- // TODO: Talk about how we want to handle labels/placeholders
76
- this.placeholder = ((_a = field.setting) === null || _a === void 0 ? void 0 : _a.placeholder) || '';
77
- this.value = ((_b = field.setting) === null || _b === void 0 ? void 0 : _b.result) || '';
78
- this.leading = ((_c = field.setting) === null || _c === void 0 ? void 0 : _c.leading) || 0;
79
- this.setting = field.setting || {};
80
- this.options = ((_d = field.setting) === null || _d === void 0 ? void 0 : _d.options) || [];
81
- this.dirty = false;
82
- this.loading = false;
69
+ // this.type = field.type;
70
+ // this.name = field.name;
71
+ // this.label = field.label;
72
+ // this.group = field.name;
73
+ // this.roleName = field.role_name;
74
+ // this.required = field.required;
75
+ // this.fieldType = field.type;
76
+ // // TODO: Talk about how we want to handle labels/placeholders
77
+ // this.placeholder = field.setting?.placeholder || '';
78
+ // this.value = field.setting?.result || '';
79
+ // this.leading = field.setting?.leading || 0;
80
+ // this.setting = field.setting || {};
81
+ // this.options = field.setting?.options || [];
82
+ // this.dirty = false;
83
+ // this.loading = false;
83
84
  });
84
85
  console.log('watcher', this.watcher);
85
86
  this.type = field.type;
@@ -146,7 +147,7 @@ export class VerdocsTemplateFieldProperties {
146
147
  options: this.options,
147
148
  };
148
149
  }
149
- console.log('FP: Will update', newProperties);
150
+ console.log('FP: Will update', this.fieldName, newProperties);
150
151
  updateField(this.endpoint, this.templateId, this.fieldName, newProperties)
151
152
  .then(field => {
152
153
  var _a, _b;
@@ -199,9 +200,8 @@ export class VerdocsTemplateFieldProperties {
199
200
  }
200
201
  updateField(newField) {
201
202
  const oldField = this.fieldStore.get(this.fieldName) || {};
202
- console.log('Updating field', newField, oldField);
203
+ console.log('Updating field', this.fieldName, newField);
203
204
  Object.assign(oldField, newField);
204
- this.fieldStore.set(this.fieldName, newField);
205
205
  }
206
206
  async handleDelete(e) {
207
207
  e.stopPropagation();
@@ -230,6 +230,7 @@ export class VerdocsTemplateFieldProperties {
230
230
  if (this.helpText && this.showingHelp) {
231
231
  return (h(Host, null, h("h6", null, capitalize(this.fieldType), " Settings ", h("div", { style: { flex: '1' } }), h("div", { class: "help-icon", innerHTML: HelpIcon, onClick: () => (this.showingHelp = false) })), h("p", { class: "instructions", innerHTML: this.helpText })));
232
232
  }
233
+ // console.log('tfp', this.templateId, this.fieldName);
233
234
  return (h(Host, null, h("h6", null, capitalize(this.fieldType.replace(/_/g, ' ')), " Settings ", h("div", { style: { flex: '1' } }), this.helpText && h("div", { class: "help-icon", innerHTML: HelpIcon, onClick: () => (this.showingHelp = true) })), h("form", { onSubmit: e => e.preventDefault(), onClick: e => e.stopPropagation(), autocomplete: "off" }, h("div", { class: "row" }, h("verdocs-text-input", { id: "verdocs-field-name", label: "Field Name", value: this.name, autocomplete: "off",
234
235
  // helpText="The internal name of the field. Must be unique, and contain only letters, numbers, and dashes. After an envelope is completed, the value entered by the signer will be tagged with this key."
235
236
  placeholder: "Field Name...", onInput: (e) => {
@@ -65,9 +65,7 @@ export class VerdocsTemplateFields {
65
65
  }
66
66
  this.templateStore = await getTemplateStore(this.endpoint, this.templateId, true);
67
67
  this.fieldStore = createTemplateFieldStore(this.templateStore.state);
68
- console.log(`[FIELDS] Loaded template ${this.templateId}`, this.templateStore.state, this.fieldStore);
69
68
  this.selectedRoleName = ((_d = (_c = (_b = (_a = this.templateStore) === 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) || '';
70
- console.log('[FIELDS] Starting with role', this.selectedRoleName);
71
69
  }
72
70
  catch (e) {
73
71
  console.log('[FIELDS] Error with preview session', e);
@@ -102,10 +100,10 @@ export class VerdocsTemplateFields {
102
100
  console.log('[FIELDS] handleFieldChange', field, e, optionId);
103
101
  this.rerender++;
104
102
  }
105
- handleFieldSettingsChange(pageInfo, field, el, newFieldData) {
103
+ handleFieldSettingsChange(pageInfo, field, el, newFieldData, oldName) {
106
104
  var _a, _b;
107
105
  // handleFieldSettingsChange(pageInfo: any, field: any, roleIndex: number, el: any, newFieldData: any) {
108
- console.log('[FIELDS] Field settings changed', field.name, newFieldData);
106
+ console.log('[FIELDS] Field settings changed', oldName, field.name, newFieldData);
109
107
  Object.assign(field, newFieldData);
110
108
  el.field = newFieldData;
111
109
  this.selectedRoleName = field.role_name;
@@ -114,17 +112,30 @@ export class VerdocsTemplateFields {
114
112
  this.rerender++;
115
113
  el.setAttribute('rerender', this.rerender);
116
114
  (_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' });
117
- console.log('[FIELDS] Re-rendering field', field.name, pageInfo.pageNumber);
115
+ // We do this to avoid dupes if the field gets renamed.
116
+ if (field.name !== oldName) {
117
+ console.log('[FIELDS] Renaming field', oldName, field.name);
118
+ el.remove();
119
+ delete this.fieldStore.state[oldName];
120
+ }
121
+ else {
122
+ console.log('[FIELDS] Updating existing field', field.name);
123
+ }
124
+ // REMINDER: Do not access el past this point! It may have been removed from the DOM.
125
+ console.log('[FIELDS] Re-rendering field', field.name, pageInfo.pageNumber, field);
118
126
  this.fieldStore.set(field.name, field);
119
- // this.reRenderField(field, pageInfo.pageNumber);
127
+ // const roleIndex = getRoleIndex(getRoleNames(this.templateStore), field.role_name);
128
+ // this.attachFieldAttributes(pageInfo, field, roleIndex, el);
129
+ this.reRenderField(field, pageInfo.pageNumber);
120
130
  // const newEl = renderDocumentField(field, pageInfo, roleIndex, {disabled: true, editable: true, draggable: true});
121
131
  // if (!newEl) {
122
132
  // return;
123
133
  // }
124
134
  }
125
135
  attachFieldAttributes(pageInfo, field, roleIndex, el) {
136
+ // console.log('afa', field);
126
137
  el.addEventListener('input', e => this.handleFieldChange(field, e));
127
- el.addEventListener('settingsChanged', e => this.handleFieldSettingsChange(pageInfo, field, el, e.detail.field));
138
+ el.addEventListener('settingsChanged', e => this.handleFieldSettingsChange(pageInfo, field, el, e.detail.field, e.detail.fieldName));
128
139
  // el.addEventListener('settingsChanged', e => this.handleFieldSettingsChange(pageInfo, field, roleIndex, el, e.detail.field));
129
140
  el.addEventListener('deleted', () => {
130
141
  var _a, _b;
@@ -143,7 +154,7 @@ export class VerdocsTemplateFields {
143
154
  }
144
155
  handlePageRendered(e) {
145
156
  const pageInfo = e.detail;
146
- console.log('[FIELDS] Page rendered', pageInfo.pageNumber, pageInfo);
157
+ // console.log('[FIELDS] Page rendered', pageInfo.pageNumber, pageInfo);
147
158
  this.cachedPageInfo[pageInfo.pageNumber] = pageInfo;
148
159
  this.pageHeights[pageInfo.pageNumber] = pageInfo.naturalHeight;
149
160
  const fields = Object.values(this.fieldStore.state).filter(field => field.page_sequence === pageInfo.pageNumber);
@@ -190,7 +201,6 @@ export class VerdocsTemplateFields {
190
201
  const name = event.target.getAttribute('name');
191
202
  const option = +(event.target.getAttribute('option') || '0');
192
203
  const field = this.fieldStore.get(name);
193
- console.log('Dropped field', name, field);
194
204
  if (!field) {
195
205
  console.log('[FIELDS] Unable to find field', name);
196
206
  return;
@@ -206,9 +216,7 @@ export class VerdocsTemplateFields {
206
216
  // "up" from the bottom (negative displacement).
207
217
  const newX = Math.max(clientRect.left - parentRect.left, 0);
208
218
  const newY = Math.max(renderedHeight - (parentRect.bottom - clientRect.bottom), 0);
209
- // console.log('Computing coordinates', {naturalWidth, width: event.rect.width, naturalHeight, height: event.rect.height, newX, newY});
210
219
  const { x, y } = this.viewCoordinatesToPageCoordinates(newX, newY, pageNumber, naturalWidth - width, naturalHeight - height);
211
- // console.log('Drop End', {x, y, newX, newY});
212
220
  switch (field.type) {
213
221
  case 'attachment':
214
222
  case 'payment':
@@ -233,12 +241,10 @@ export class VerdocsTemplateFields {
233
241
  }
234
242
  break;
235
243
  }
236
- console.log('[FIELDS] Will update', name, option, field);
244
+ console.log('[FIELDS] Will update', name, y, option, field);
237
245
  const newFieldData = await updateField(this.endpoint, this.templateId, name, field);
238
246
  const pageInfo = this.cachedPageInfo[pageNumber];
239
- // const roleIndex = getRoleIndex(getRoleNames(this.templateStore), field.role_name);
240
- this.handleFieldSettingsChange(pageInfo, field, event.target, newFieldData);
241
- // this.handleFieldSettingsChange(pageInfo, field, roleIndex, event.target, newFieldData);
247
+ this.handleFieldSettingsChange(pageInfo, field, event.target, newFieldData, name);
242
248
  event.target.removeAttribute('posX');
243
249
  event.target.removeAttribute('posY');
244
250
  }
@@ -256,7 +262,6 @@ export class VerdocsTemplateFields {
256
262
  const { xScale = 1, yScale = 1, renderedHeight = 792 } = this.cachedPageInfo[pageNumber];
257
263
  const x = Math.floor(Math.min(viewX / xScale, xMax));
258
264
  const y = Math.floor(Math.min(Math.max(renderedHeight - viewY, 0) / yScale, yMax));
259
- console.log('Computed coordinates', { x, y, viewX, viewY, xMax, yMax });
260
265
  return { x, y };
261
266
  }
262
267
  async handleClickPage(e, pageNumber) {
@@ -353,7 +358,7 @@ export class VerdocsTemplateFields {
353
358
  field.type = 'textbox';
354
359
  }
355
360
  const saved = await createField(this.endpoint, this.templateId, field);
356
- console.log('Saved field', saved);
361
+ console.log('[FIELDS] Saved field', saved);
357
362
  this.fieldStore.set(saved.name, saved);
358
363
  this.placing = null;
359
364
  (_a = this.templateUpdated) === null || _a === void 0 ? void 0 : _a.emit({ endpoint: this.endpoint, template: (_b = this.templateStore) === null || _b === void 0 ? void 0 : _b.state, event: 'added-field' });
@@ -362,7 +367,6 @@ export class VerdocsTemplateFields {
362
367
  }
363
368
  render() {
364
369
  var _a, _b, _c, _d, _e, _f, _g, _h;
365
- console.log('[FIELDS] Rendering', this.selectedRoleName);
366
370
  if (!this.endpoint.session) {
367
371
  return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
368
372
  }
@@ -372,7 +376,7 @@ export class VerdocsTemplateFields {
372
376
  }
373
377
  const selectableRoles = (_c = (_b = this.templateStore) === null || _b === void 0 ? void 0 : _b.state) === null || _c === void 0 ? void 0 : _c.roles.map(role => ({ value: role.name, label: role.name }));
374
378
  return (h(Host, { class: this.placing ? { [`placing-${this.placing}`]: true } : {}, "data-r": this.rerender, onSubmit: () => {
375
- console.log('onSubmit');
379
+ // console.log('onSubmit');
376
380
  } }, h("div", { id: "verdocs-template-fields-toolbar" }, h("div", { class: "add-for" }, "Add field:"), h("verdocs-select-input", { value: this.selectedRoleName, options: selectableRoles, onInput: (e) => (this.selectedRoleName = e.target.value) }), menuOptions.map(option => (h("verdocs-toolbar-icon", { text: option.tooltip, icon: option.icon, onClick: () => {
377
381
  // We ignore empty-tooltip entries because they're separators
378
382
  if (option.tooltip) {
@@ -2,13 +2,15 @@ import { createStore } from '@stencil/store';
2
2
  const templateFieldStores = {};
3
3
  export const getTemplateFieldStore = (templateId) => templateFieldStores[templateId];
4
4
  export const createTemplateFieldStore = (template) => {
5
- console.log('Creating template field store for template: ', template);
6
5
  let store = getTemplateFieldStore(template.id);
7
6
  if (!store) {
7
+ console.log('Creating template field store for template', template.id);
8
8
  store = createStore({});
9
9
  templateFieldStores[template.id] = store;
10
10
  }
11
11
  else {
12
+ console.log('Resetting template field store for template', template.id);
13
+ console.trace('Stack');
12
14
  store.reset();
13
15
  }
14
16
  template.fields.forEach(field => {
@@ -1,7 +1,7 @@
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 } from "./TemplateFieldStore";
4
+ import { createTemplateFieldStore, getTemplateFieldStore } from './TemplateFieldStore';
5
5
  const createTemplateStore = (templateId) => {
6
6
  const now = new Date().toISOString();
7
7
  return createStore({
@@ -69,6 +69,7 @@ export const getTemplateStore = async (endpoint, templateId, forceReload = false
69
69
  store.state.isLoaded = true;
70
70
  store.state.isError = false;
71
71
  store.state.error = undefined;
72
+ createTemplateFieldStore(template);
72
73
  }
73
74
  catch (e) {
74
75
  console.error('[TEMPLATES] Error loading template', e);
@@ -80,7 +81,10 @@ export const getTemplateStore = async (endpoint, templateId, forceReload = false
80
81
  store.state.isLoading = false;
81
82
  store.state.updateCount++;
82
83
  }
83
- createTemplateFieldStore(store.state);
84
+ else {
85
+ // Just make sure it exists
86
+ getTemplateFieldStore(templateId);
87
+ }
84
88
  return store;
85
89
  };
86
90
  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); };