@verdocs/web-sdk 1.9.41 → 1.10.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 (215) hide show
  1. package/dist/cjs/{VerdocsEndpoint-c1c80b51.js → VerdocsEndpoint-38feb32a.js} +3 -3
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/{utils-53125d26.js → utils-712ba3ec.js} +18 -0
  4. package/dist/cjs/verdocs-auth.cjs.entry.js +1 -1
  5. package/dist/cjs/verdocs-build.cjs.entry.js +4 -1
  6. package/dist/cjs/{verdocs-button-panel_3.cjs.entry.js → verdocs-button-panel_2.cjs.entry.js} +0 -19
  7. package/dist/cjs/verdocs-component-error.cjs.entry.js +20 -0
  8. package/dist/cjs/verdocs-contact-picker.cjs.entry.js +1 -1
  9. package/dist/cjs/verdocs-document-page_2.cjs.entry.js +2 -2
  10. package/dist/cjs/verdocs-envelope-sidebar.cjs.entry.js +1 -1
  11. package/dist/cjs/verdocs-field-checkbox.cjs.entry.js +1 -1
  12. package/dist/cjs/verdocs-field-date.cjs.entry.js +1 -1
  13. package/dist/cjs/verdocs-field-dropdown.cjs.entry.js +1 -1
  14. package/dist/cjs/verdocs-field-initial.cjs.entry.js +1 -1
  15. package/dist/cjs/verdocs-field-payment.cjs.entry.js +1 -1
  16. package/dist/cjs/verdocs-field-radio-button.cjs.entry.js +2 -2
  17. package/dist/cjs/verdocs-field-signature.cjs.entry.js +70 -0
  18. package/dist/cjs/verdocs-field-textarea.cjs.entry.js +1 -1
  19. package/dist/cjs/verdocs-field-textbox.cjs.entry.js +2 -2
  20. package/dist/cjs/verdocs-field-timestamp.cjs.entry.js +1 -1
  21. package/dist/cjs/verdocs-floating-menu_2.cjs.entry.js +151 -0
  22. package/dist/cjs/verdocs-preview.cjs.entry.js +2 -2
  23. package/dist/cjs/verdocs-quick-functions_3.cjs.entry.js +1 -1
  24. package/dist/cjs/verdocs-search.cjs.entry.js +1 -1
  25. package/dist/cjs/verdocs-send.cjs.entry.js +2 -2
  26. package/dist/cjs/verdocs-sign.cjs.entry.js +2 -2
  27. package/dist/cjs/{verdocs-field-signature_3.cjs.entry.js → verdocs-signature-dialog.cjs.entry.js} +0 -105
  28. package/dist/cjs/verdocs-template-create_4.cjs.entry.js +152 -37
  29. package/dist/cjs/verdocs-text-input.cjs.entry.js +25 -0
  30. package/dist/cjs/verdocs-view.cjs.entry.js +2 -2
  31. package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
  32. package/dist/collection/collection-manifest.json +2 -0
  33. package/dist/collection/components/controls/verdocs-floating-menu/verdocs-floating-menu.css +91 -0
  34. package/dist/collection/components/controls/verdocs-floating-menu/verdocs-floating-menu.js +158 -0
  35. package/dist/collection/components/controls/verdocs-floating-menu/verdocs-floating-menu.stories.js +49 -0
  36. package/dist/collection/components/controls/verdocs-toolbar-icon/verdocs-toolbar-icon.css +8 -1
  37. package/dist/collection/components/controls/verdocs-toolbar-icon/verdocs-toolbar-icon.js +29 -2
  38. package/dist/collection/components/elements/verdocs-component-error/verdocs-component-error.css +16 -0
  39. package/dist/collection/components/elements/verdocs-component-error/verdocs-component-error.js +46 -0
  40. package/dist/collection/components/elements/verdocs-document-page/verdocs-document-page.js +1 -1
  41. package/dist/collection/components/elements/verdocs-field-radio-button-group/verdocs-field-radio-button.css +2 -2
  42. package/dist/collection/components/elements/verdocs-field-textbox/verdocs-field-textbox.css +2 -3
  43. package/dist/collection/components/elements/verdocs-template-create/verdocs-template-create.js +7 -2
  44. package/dist/collection/components/elements/verdocs-template-fields/verdocs-template-fields.css +34 -41
  45. package/dist/collection/components/elements/verdocs-template-fields/verdocs-template-fields.js +128 -34
  46. package/dist/collection/components/elements/verdocs-template-properties/verdocs-template-properties.js +4 -1
  47. package/dist/collection/components/elements/verdocs-template-recipients/verdocs-template-recipients.js +1 -0
  48. package/dist/collection/components/embeds/verdocs-build/verdocs-build.js +3 -0
  49. package/dist/collection/utils/utils.js +16 -0
  50. package/dist/components/VerdocsEndpoint.js +3 -3
  51. package/dist/components/index.d.ts +2 -0
  52. package/dist/components/index.js +2 -0
  53. package/dist/components/utils.js +17 -1
  54. package/dist/components/verdocs-build.js +19 -28
  55. package/dist/components/verdocs-component-error.d.ts +11 -0
  56. package/dist/components/verdocs-component-error.js +6 -0
  57. package/dist/components/verdocs-component-error2.js +33 -0
  58. package/dist/components/verdocs-document-page2.js +1 -1
  59. package/dist/components/verdocs-field-radio-button.js +1 -1
  60. package/dist/components/verdocs-field-signature.js +116 -1
  61. package/dist/components/verdocs-field-textbox.js +1 -1
  62. package/dist/components/verdocs-floating-menu.d.ts +11 -0
  63. package/dist/components/verdocs-floating-menu.js +6 -0
  64. package/dist/components/verdocs-floating-menu2.js +125 -0
  65. package/dist/components/verdocs-template-create2.js +15 -4
  66. package/dist/components/verdocs-template-fields2.js +152 -69
  67. package/dist/components/verdocs-template-properties2.js +14 -5
  68. package/dist/components/verdocs-template-recipients2.js +1 -0
  69. package/dist/components/verdocs-toolbar-icon2.js +8 -3
  70. package/dist/docs.json +209 -36
  71. package/dist/esm/{VerdocsEndpoint-cf4392fb.js → VerdocsEndpoint-6df32d3a.js} +3 -3
  72. package/dist/esm/loader.js +1 -1
  73. package/dist/esm/{utils-188fa107.js → utils-3d95c588.js} +17 -1
  74. package/dist/esm/verdocs-auth.entry.js +1 -1
  75. package/dist/esm/verdocs-build.entry.js +4 -1
  76. package/dist/esm/{verdocs-button-panel_3.entry.js → verdocs-button-panel_2.entry.js} +1 -19
  77. package/dist/esm/verdocs-component-error.entry.js +16 -0
  78. package/dist/esm/verdocs-contact-picker.entry.js +1 -1
  79. package/dist/esm/verdocs-document-page_2.entry.js +2 -2
  80. package/dist/esm/verdocs-envelope-sidebar.entry.js +1 -1
  81. package/dist/esm/verdocs-field-checkbox.entry.js +1 -1
  82. package/dist/esm/verdocs-field-date.entry.js +1 -1
  83. package/dist/esm/verdocs-field-dropdown.entry.js +1 -1
  84. package/dist/esm/verdocs-field-initial.entry.js +1 -1
  85. package/dist/esm/verdocs-field-payment.entry.js +1 -1
  86. package/dist/esm/verdocs-field-radio-button.entry.js +2 -2
  87. package/dist/{components/verdocs-field-signature2.js → esm/verdocs-field-signature.entry.js} +12 -64
  88. package/dist/esm/verdocs-field-textarea.entry.js +1 -1
  89. package/dist/esm/verdocs-field-textbox.entry.js +2 -2
  90. package/dist/esm/verdocs-field-timestamp.entry.js +1 -1
  91. package/dist/esm/verdocs-floating-menu_2.entry.js +146 -0
  92. package/dist/esm/verdocs-preview.entry.js +2 -2
  93. package/dist/esm/verdocs-quick-functions_3.entry.js +1 -1
  94. package/dist/esm/verdocs-search.entry.js +1 -1
  95. package/dist/esm/verdocs-send.entry.js +2 -2
  96. package/dist/esm/verdocs-sign.entry.js +2 -2
  97. package/dist/esm/{verdocs-field-signature_3.entry.js → verdocs-signature-dialog.entry.js} +1 -104
  98. package/dist/esm/verdocs-template-create_4.entry.js +152 -37
  99. package/dist/esm/verdocs-text-input.entry.js +21 -0
  100. package/dist/esm/verdocs-view.entry.js +2 -2
  101. package/dist/esm/verdocs-web-sdk.js +1 -1
  102. package/dist/esm-es5/VerdocsEndpoint-6df32d3a.js +1 -0
  103. package/dist/esm-es5/loader.js +1 -1
  104. package/dist/esm-es5/utils-3d95c588.js +1 -0
  105. package/dist/esm-es5/verdocs-auth.entry.js +1 -1
  106. package/dist/esm-es5/verdocs-build.entry.js +1 -1
  107. package/dist/esm-es5/{verdocs-button-panel_3.entry.js → verdocs-button-panel_2.entry.js} +1 -1
  108. package/dist/esm-es5/verdocs-component-error.entry.js +1 -0
  109. package/dist/esm-es5/verdocs-contact-picker.entry.js +1 -1
  110. package/dist/esm-es5/verdocs-document-page_2.entry.js +1 -1
  111. package/dist/esm-es5/verdocs-envelope-sidebar.entry.js +1 -1
  112. package/dist/esm-es5/verdocs-field-checkbox.entry.js +1 -1
  113. package/dist/esm-es5/verdocs-field-date.entry.js +1 -1
  114. package/dist/esm-es5/verdocs-field-dropdown.entry.js +1 -1
  115. package/dist/esm-es5/verdocs-field-initial.entry.js +1 -1
  116. package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
  117. package/dist/esm-es5/verdocs-field-radio-button.entry.js +1 -1
  118. package/dist/esm-es5/verdocs-field-signature.entry.js +1 -0
  119. package/dist/esm-es5/verdocs-field-textarea.entry.js +1 -1
  120. package/dist/esm-es5/verdocs-field-textbox.entry.js +1 -1
  121. package/dist/esm-es5/verdocs-field-timestamp.entry.js +1 -1
  122. package/dist/esm-es5/verdocs-floating-menu_2.entry.js +1 -0
  123. package/dist/esm-es5/verdocs-preview.entry.js +1 -1
  124. package/dist/esm-es5/verdocs-quick-functions_3.entry.js +1 -1
  125. package/dist/esm-es5/verdocs-search.entry.js +1 -1
  126. package/dist/esm-es5/verdocs-send.entry.js +1 -1
  127. package/dist/esm-es5/verdocs-sign.entry.js +1 -1
  128. package/dist/esm-es5/verdocs-signature-dialog.entry.js +1 -0
  129. package/dist/esm-es5/verdocs-template-create_4.entry.js +1 -1
  130. package/dist/esm-es5/verdocs-text-input.entry.js +1 -0
  131. package/dist/esm-es5/verdocs-view.entry.js +1 -1
  132. package/dist/esm-es5/verdocs-web-sdk.js +1 -1
  133. package/dist/types/components/controls/verdocs-floating-menu/verdocs-floating-menu.d.ts +31 -0
  134. package/dist/types/components/controls/verdocs-floating-menu/verdocs-floating-menu.stories.d.ts +7 -0
  135. package/dist/types/components/controls/verdocs-toolbar-icon/verdocs-toolbar-icon.d.ts +5 -0
  136. package/dist/types/components/elements/verdocs-component-error/verdocs-component-error.d.ts +10 -0
  137. package/dist/types/components/elements/verdocs-template-fields/verdocs-template-fields.d.ts +14 -3
  138. package/dist/types/components.d.ts +60 -0
  139. package/dist/types/utils/Types.d.ts +0 -1
  140. package/dist/types/utils/utils.d.ts +2 -2
  141. package/dist/verdocs-web-sdk/{p-d729c183.system.entry.js → p-03833051.system.entry.js} +1 -1
  142. package/dist/verdocs-web-sdk/{p-7e84deff.entry.js → p-17fd7860.entry.js} +1 -1
  143. package/dist/verdocs-web-sdk/{p-824e733a.system.entry.js → p-18cf7ea1.system.entry.js} +1 -1
  144. package/dist/verdocs-web-sdk/p-1be43032.system.entry.js +1 -0
  145. package/dist/verdocs-web-sdk/{p-a229aae2.entry.js → p-1ef0501b.entry.js} +1 -1
  146. package/dist/verdocs-web-sdk/{p-fc6cb0be.system.entry.js → p-23033619.system.entry.js} +1 -1
  147. package/dist/verdocs-web-sdk/{p-1759e35b.entry.js → p-266e163c.entry.js} +1 -1
  148. package/dist/verdocs-web-sdk/p-2e4dfdc6.js +1 -0
  149. package/dist/verdocs-web-sdk/{p-c062334b.system.entry.js → p-328453a9.system.entry.js} +1 -1
  150. package/dist/verdocs-web-sdk/p-3599f81f.entry.js +1 -0
  151. package/dist/verdocs-web-sdk/{p-8cfca7ee.entry.js → p-3dbf8bec.entry.js} +1 -1
  152. package/dist/verdocs-web-sdk/{p-74e19125.system.entry.js → p-3dcd05aa.system.entry.js} +1 -1
  153. package/dist/verdocs-web-sdk/{p-aa3a42a4.system.entry.js → p-45ac2230.system.entry.js} +1 -1
  154. package/dist/verdocs-web-sdk/{p-77b92d0b.system.entry.js → p-46bb5543.system.entry.js} +1 -1
  155. package/dist/verdocs-web-sdk/{p-0fbb34f5.entry.js → p-50f82ed8.entry.js} +1 -1
  156. package/dist/verdocs-web-sdk/p-5b114f68.system.entry.js +1 -0
  157. package/dist/verdocs-web-sdk/p-5b8dbf0b.system.entry.js +1 -0
  158. package/dist/verdocs-web-sdk/p-5c7ef99f.system.entry.js +1 -0
  159. package/dist/verdocs-web-sdk/{p-83c05c68.system.entry.js → p-5d220e75.system.entry.js} +1 -1
  160. package/dist/verdocs-web-sdk/{p-d9f744ed.system.entry.js → p-621c7079.system.entry.js} +1 -1
  161. package/dist/verdocs-web-sdk/p-644cc3c3.js +1 -0
  162. package/dist/verdocs-web-sdk/{p-72b4fa6b.entry.js → p-6b205bb5.entry.js} +1 -1
  163. package/dist/verdocs-web-sdk/{p-848e564d.system.entry.js → p-787a334a.system.entry.js} +1 -1
  164. package/dist/verdocs-web-sdk/p-7b357e1a.entry.js +1 -0
  165. package/dist/verdocs-web-sdk/{p-0dd25856.system.entry.js → p-7b66bc0d.system.entry.js} +1 -1
  166. package/dist/verdocs-web-sdk/{p-f17cddc0.entry.js → p-804fbf15.entry.js} +1 -1
  167. package/dist/verdocs-web-sdk/{p-e206c61c.system.entry.js → p-838d889b.system.entry.js} +1 -1
  168. package/dist/verdocs-web-sdk/{p-556ae1ae.system.entry.js → p-86a8b6ad.system.entry.js} +1 -1
  169. package/dist/verdocs-web-sdk/{p-7f5b41a4.entry.js → p-8a2dbb48.entry.js} +1 -1
  170. package/dist/verdocs-web-sdk/p-8f50fd8e.system.entry.js +1 -0
  171. package/dist/verdocs-web-sdk/{p-2c8f6280.system.entry.js → p-8f873d8e.system.entry.js} +1 -1
  172. package/dist/verdocs-web-sdk/p-90a92236.system.entry.js +1 -0
  173. package/dist/verdocs-web-sdk/p-938a7d4e.system.entry.js +1 -0
  174. package/dist/verdocs-web-sdk/{p-d6222a3d.entry.js → p-95016ea1.entry.js} +1 -1
  175. package/dist/verdocs-web-sdk/{p-bd49e24b.entry.js → p-a140f6f9.entry.js} +1 -1
  176. package/dist/verdocs-web-sdk/{p-25cf23c1.system.entry.js → p-a1412c61.system.entry.js} +1 -1
  177. package/dist/verdocs-web-sdk/{p-7e14f782.entry.js → p-a32f90e9.entry.js} +1 -1
  178. package/dist/verdocs-web-sdk/p-a4dc6a79.system.js +1 -0
  179. package/dist/verdocs-web-sdk/p-aba1f14b.system.entry.js +1 -0
  180. package/dist/verdocs-web-sdk/{p-7d3eebb8.entry.js → p-ae3b30c6.entry.js} +1 -1
  181. package/dist/verdocs-web-sdk/{p-450c5246.system.entry.js → p-b505db92.system.entry.js} +1 -1
  182. package/dist/verdocs-web-sdk/{p-3d410f78.entry.js → p-b5c21eda.entry.js} +1 -1
  183. package/dist/verdocs-web-sdk/{p-6e52f29d.entry.js → p-b8faf8b8.entry.js} +1 -1
  184. package/dist/verdocs-web-sdk/{p-c9af569a.entry.js → p-ba23b639.entry.js} +1 -1
  185. package/dist/verdocs-web-sdk/p-c16b6ca4.system.js +1 -1
  186. package/dist/verdocs-web-sdk/p-c3ba021b.entry.js +1 -0
  187. package/dist/verdocs-web-sdk/p-c6370ca8.entry.js +1 -0
  188. package/dist/verdocs-web-sdk/{p-7330b63c.entry.js → p-ce442d55.entry.js} +1 -1
  189. package/dist/verdocs-web-sdk/p-d0c587f1.entry.js +1 -0
  190. package/dist/verdocs-web-sdk/{p-6e00d147.system.entry.js → p-d30ee967.system.entry.js} +1 -1
  191. package/dist/verdocs-web-sdk/p-d36ae684.entry.js +1 -0
  192. package/dist/verdocs-web-sdk/{p-808a2600.system.entry.js → p-d6d95682.system.entry.js} +1 -1
  193. package/dist/verdocs-web-sdk/p-d7e31573.system.js +1 -0
  194. package/dist/verdocs-web-sdk/p-d946b1b6.entry.js +1 -0
  195. package/dist/verdocs-web-sdk/{p-76f192c8.system.entry.js → p-d9ff093e.system.entry.js} +1 -1
  196. package/dist/verdocs-web-sdk/{p-b7036bc4.entry.js → p-eb68cf29.entry.js} +1 -1
  197. package/dist/verdocs-web-sdk/{p-ecaf3712.entry.js → p-ec7a9c6e.entry.js} +1 -1
  198. package/dist/verdocs-web-sdk/{p-2b0456b9.entry.js → p-f43721cf.entry.js} +1 -1
  199. package/dist/verdocs-web-sdk/{p-96ab62f2.entry.js → p-ff45cca0.entry.js} +1 -1
  200. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  201. package/package.json +2 -2
  202. package/dist/esm-es5/VerdocsEndpoint-cf4392fb.js +0 -1
  203. package/dist/esm-es5/utils-188fa107.js +0 -1
  204. package/dist/esm-es5/verdocs-field-signature_3.entry.js +0 -1
  205. package/dist/verdocs-web-sdk/p-03effe00.system.js +0 -1
  206. package/dist/verdocs-web-sdk/p-1ed1a048.entry.js +0 -1
  207. package/dist/verdocs-web-sdk/p-32d1020a.entry.js +0 -1
  208. package/dist/verdocs-web-sdk/p-4c67b1b7.system.js +0 -1
  209. package/dist/verdocs-web-sdk/p-5539dc08.js +0 -1
  210. package/dist/verdocs-web-sdk/p-773f07d3.system.entry.js +0 -1
  211. package/dist/verdocs-web-sdk/p-8a22d96a.system.entry.js +0 -1
  212. package/dist/verdocs-web-sdk/p-adac8a26.js +0 -1
  213. package/dist/verdocs-web-sdk/p-bbad56e6.entry.js +0 -1
  214. package/dist/verdocs-web-sdk/p-d5bb68c4.system.entry.js +0 -1
  215. package/dist/verdocs-web-sdk/p-e2bf56f6.system.entry.js +0 -1
@@ -1,8 +1,8 @@
1
1
  import interact from 'interactjs';
2
2
  import { VerdocsEndpoint } from '@verdocs/js-sdk';
3
- import { getRGBA } from '@verdocs/js-sdk/Utils/Colors';
3
+ import { createField, editField } from '@verdocs/js-sdk/Templates/Fields';
4
4
  import { h, Host } from '@stencil/core';
5
- import { getRoleIndex, renderDocumentField, updateCssTransform } from '../../../utils/utils';
5
+ import { defaultHeight, defaultWidth, getRoleIndex, renderDocumentField, updateCssTransform } from '../../../utils/utils';
6
6
  import TemplateStore from '../../../utils/templateStore';
7
7
  import { loadTemplate } from '../../../utils/Templates';
8
8
  import { SDKError } from '../../../utils/errors';
@@ -13,14 +13,31 @@ const iconRadio = '<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24
13
13
  const iconDatepicker = '<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"><path d="M7.6 13.925q-.55 0-.925-.375t-.375-.925q0-.55.375-.937.375-.388.925-.388t.925.388q.375.387.375.937t-.375.925q-.375.375-.925.375Zm4.4 0q-.55 0-.925-.375t-.375-.925q0-.55.375-.937.375-.388.925-.388t.925.388q.375.387.375.937t-.375.925q-.375.375-.925.375Zm4.4 0q-.55 0-.925-.375t-.375-.925q0-.55.375-.937.375-.388.925-.388t.925.388q.375.387.375.937t-.375.925q-.375.375-.925.375ZM5.3 22.85q-1.325 0-2.238-.912-.912-.913-.912-2.238V6.3q0-1.325.912-2.238.913-.912 2.238-.912H6v-2h2.575v2h6.85v-2H18v2h.7q1.325 0 2.238.912.912.913.912 2.238v13.4q0 1.325-.912 2.238-.913.912-2.238.912Zm0-3.15h13.4V10H5.3v9.7ZM5.3 8h13.4V6.3H5.3Zm0 0V6.3 8Z"/></svg>';
14
14
  const iconSignature = '<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"><path d="m9.225 21.225 4.65-4.65h8.45v4.65Zm-5.35-2.2H5.05l8.5-8.5-1.175-1.175-8.5 8.5Zm14.25-9.95L13.8 4.8l1.325-1.325q.625-.65 1.525-.663.9-.012 1.6.663l1.225 1.175q.675.675.663 1.562-.013.888-.663 1.513ZM16.7 10.55 6 21.225H1.675V16.9L12.35 6.225Zm-3.725-.625-.6-.575 1.175 1.175Z"/></svg>';
15
15
  const iconInitial = '<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"><path d="M6.225 20.775V7h-5V3.225H15V7h-5v13.775Zm9.775 0v-8h-3V9h9.775v3.775h-3v8Z"/></svg>';
16
+ const menuOptions = [
17
+ { id: 'attachment', tooltip: 'Attachment', icon: 'A' },
18
+ { id: 'checkbox', tooltip: 'Check Box', icon: iconCheck },
19
+ { id: 'date', tooltip: 'Date', icon: iconDatepicker },
20
+ { id: 'dropdown', tooltip: 'Dropdown', icon: 'O' },
21
+ { id: 'initial', tooltip: 'Initials', icon: iconInitial },
22
+ { id: 'payment', tooltip: 'Payment', icon: 'P' },
23
+ { id: 'radio', tooltip: 'Radio Button', icon: iconRadio },
24
+ { id: 'signature', tooltip: 'Signature', icon: iconSignature },
25
+ { id: 'textarea', tooltip: 'Text Area', icon: iconMultiline },
26
+ { id: 'textbox', tooltip: 'Text Box', icon: iconSingleline },
27
+ { id: 'timestamp', tooltip: 'Timestamp', icon: 'X' },
28
+ ];
16
29
  /**
17
30
  * Displays a builder experience for laying out fields in a template. Note that this experience requires a large display area to
18
31
  * present all of the required controls, so it is primarily intended to be used in desktop environments.
19
32
  */
20
33
  export class VerdocsTemplateFields {
21
34
  constructor() {
35
+ this.pageHeights = {};
36
+ this.cachedPageInfo = {};
22
37
  this.endpoint = VerdocsEndpoint.getDefault();
23
38
  this.templateId = null;
39
+ this.placing = null;
40
+ this.selectedRoleName = '';
24
41
  }
25
42
  async componentWillLoad() {
26
43
  var _a, _b, _c, _d, _e, _f;
@@ -30,9 +47,15 @@ export class VerdocsTemplateFields {
30
47
  console.log(`[FIELDS] Missing required template ID ${this.templateId}`);
31
48
  return;
32
49
  }
50
+ if (!this.endpoint.session) {
51
+ console.log('[BUILD] Unable to start builder session, must be authenticated');
52
+ return;
53
+ }
33
54
  try {
34
- console.log(`[FIELDS] Loading template ${this.templateId}`);
55
+ console.log(`[FIELDS] Loading template ${this.templateId}`, this.endpoint.session);
35
56
  await loadTemplate(this.endpoint, this.templateId);
57
+ this.selectedRoleName = TemplateStore.roleNames[0];
58
+ console.log('Starting with role', this.selectedRoleName);
36
59
  }
37
60
  catch (e) {
38
61
  console.log('[FIELDS] Error loading template', e);
@@ -45,30 +68,40 @@ export class VerdocsTemplateFields {
45
68
  }
46
69
  }
47
70
  componentDidRender() {
48
- // console.log('rendered', this.page0El, this.toolbarEl);
49
- // console.log('w', this.page0El.clientWidth);
50
- // console.log('t', this.toolbarEl.clientWidth);
51
71
  interact.dynamicDrop(true);
52
- this.toolbarEl.style.width = `${this.page0El.clientWidth}px`;
53
72
  }
54
73
  async handleFieldChange(field, e, optionId) {
55
74
  console.log('[FIELDS] handleFieldChange', field, e, optionId);
56
75
  }
76
+ attachFieldAttributes(pageInfo, field, roleIndex, el) {
77
+ el.addEventListener('input', e => this.handleFieldChange(field, e));
78
+ el.setAttribute('roleindex', roleIndex);
79
+ el.setAttribute('pageNumber', pageInfo.pageNumber);
80
+ el.setAttribute('xScale', pageInfo.xScale);
81
+ el.setAttribute('yScale', pageInfo.yScale);
82
+ el.setAttribute('name', field.name);
83
+ }
57
84
  handlePageRendered(e) {
58
85
  const pageInfo = e.detail;
59
86
  console.log('[FIELDS] Page rendered', pageInfo);
87
+ this.cachedPageInfo[pageInfo.pageNumber] = pageInfo;
88
+ this.pageHeights[pageInfo.pageNumber] = pageInfo.naturalHeight;
89
+ console.log('tsf', pageInfo.pageNumber, TemplateStore.fields);
60
90
  const fields = TemplateStore.fields.filter(field => field.page_sequence === pageInfo.pageNumber);
61
91
  // const fields = this.fields.filter(field => field.page_sequence === pageInfo.renderedPage.pageNumber);
62
92
  console.log('[FIELDS] Fields on page', fields);
63
93
  fields.forEach(field => {
64
- const el = renderDocumentField(field, pageInfo, getRoleIndex(TemplateStore.roleNames, field.role_name), { disabled: true, editable: true, draggable: true });
94
+ const roleIndex = getRoleIndex(TemplateStore.roleNames, field.role_name);
95
+ const el = renderDocumentField(field, pageInfo, roleIndex, { disabled: true, editable: true, draggable: true });
65
96
  if (!el) {
66
97
  return;
67
98
  }
68
- el.addEventListener('input', e => this.handleFieldChange(field, e));
69
- el.addEventListener('recipientChanged', e => el.setAttribute('roleindex', getRoleIndex(TemplateStore.roleNames, e.detail)));
70
- el.setAttribute('xScale', pageInfo.xScale);
71
- el.setAttribute('yScale', pageInfo.yScale);
99
+ if (Array.isArray(el)) {
100
+ el.map(e => this.attachFieldAttributes(pageInfo, field, roleIndex, e));
101
+ }
102
+ else {
103
+ this.attachFieldAttributes(pageInfo, field, roleIndex, el);
104
+ }
72
105
  interact(el).draggable({
73
106
  listeners: {
74
107
  start(event) {
@@ -85,42 +118,97 @@ export class VerdocsTemplateFields {
85
118
  event.target.setAttribute('posy', newY);
86
119
  updateCssTransform(event.target, 'translate', `${newX}px, ${newY}px`);
87
120
  },
88
- end(event) {
89
- console.log('[FIELDS] Drag ended', event);
90
- // event.target.setAttribute('posX', 0);
91
- // event.target.setAttribute('posy', 0);
92
- // updateCssTransform(event.target, 'translate', `${0}px, ${0}px`);
93
- },
121
+ end: this.handleMoveField.bind(this),
94
122
  },
95
123
  });
96
124
  });
97
125
  }
126
+ async handleMoveField(e) {
127
+ const pageNumber = e.target.getAttribute('pageNumber');
128
+ const { naturalWidth = 612, naturalHeight = 792, renderedHeight = 792 } = this.cachedPageInfo[pageNumber];
129
+ console.log('[FIELDS] Drag ended', pageNumber, e.target);
130
+ const clientRect = e.target.getBoundingClientRect();
131
+ const parent = e.target.parentElement;
132
+ const parentRect = parent.getBoundingClientRect();
133
+ // These two being backwards is not a mistake. Left measures "over" from the left (positive displacement) while bottom measures
134
+ // "up" from the bottom (negative displacement).
135
+ const newX = Math.max(clientRect.left - parentRect.left, 0);
136
+ const newY = Math.max(renderedHeight - (parentRect.bottom - clientRect.bottom), 0);
137
+ const { x, y } = this.viewCoordinatesToPageCoordinates(newX, newY, pageNumber, naturalWidth - e.rect.width, naturalHeight - e.rect.height);
138
+ const name = e.target.getAttribute('name');
139
+ const field = TemplateStore.fields.find(field => field.name === name);
140
+ if (field) {
141
+ field.setting.x = x;
142
+ field.setting.y = y;
143
+ const edited = await editField(this.endpoint, this.templateId, name, field);
144
+ console.log('edited field', edited);
145
+ this.handlePageRendered({ detail: this.cachedPageInfo[pageNumber] });
146
+ }
147
+ }
148
+ generateFieldName(type, pageNumber) {
149
+ var _a;
150
+ const page = (_a = TemplateStore.template.pages) === null || _a === void 0 ? void 0 : _a[pageNumber - 1];
151
+ const fields = (page === null || page === void 0 ? void 0 : page.fields) || [];
152
+ return `${type}P${pageNumber}-${fields.length}`;
153
+ }
154
+ // Scale the X,Y clicks to the virtual page dimensions. Also ensure the field doesn't go off the page.
155
+ viewCoordinatesToPageCoordinates(viewX, viewY, pageNumber, xMax, yMax) {
156
+ const { xScale = 1, yScale = 1, renderedHeight = 792 } = this.cachedPageInfo[pageNumber];
157
+ const x = Math.floor(Math.min(viewX / xScale, xMax));
158
+ const y = Math.floor(Math.min(Math.max(renderedHeight - viewY, 0) / yScale, yMax));
159
+ return { x, y };
160
+ }
161
+ async handleClickPage(e, page) {
162
+ if (this.placing) {
163
+ const pageNumber = page.sequence;
164
+ const clickedX = e.offsetX;
165
+ const clickedY = e.offsetY;
166
+ const width = defaultWidth({ type: this.placing });
167
+ const height = defaultHeight({ type: this.placing });
168
+ const { naturalWidth = 612, naturalHeight = 792 } = this.cachedPageInfo[pageNumber];
169
+ const { x, y } = this.viewCoordinatesToPageCoordinates(clickedX, clickedY, pageNumber, naturalWidth - width, naturalHeight - height);
170
+ const field = {
171
+ name: this.generateFieldName(this.placing, pageNumber),
172
+ role_name: this.selectedRoleName,
173
+ template_id: this.templateId,
174
+ type: this.placing,
175
+ required: true,
176
+ page_sequence: pageNumber,
177
+ validator: null,
178
+ setting: {
179
+ width,
180
+ height,
181
+ x,
182
+ y,
183
+ result: '',
184
+ },
185
+ };
186
+ const saved = await createField(this.endpoint, this.templateId, field);
187
+ console.log('Saved field', saved);
188
+ TemplateStore.fields.push(saved);
189
+ this.placing = null;
190
+ this.handlePageRendered({ detail: this.cachedPageInfo[pageNumber] });
191
+ }
192
+ }
98
193
  render() {
99
- const testField = {
100
- template_id: '',
101
- name: 'test',
102
- role_name: 'Recipient 1',
103
- type: 'textbox',
104
- required: true,
105
- setting: {
106
- x: 0,
107
- y: 0,
108
- },
109
- page_sequence: 0,
110
- };
194
+ if (!this.endpoint.session) {
195
+ return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
196
+ }
111
197
  // TODO: Render a better error
112
198
  if (TemplateStore.loading || !TemplateStore.template) {
113
199
  return (h(Host, null, h("verdocs-loader", null)));
114
200
  }
115
201
  const pages = [...TemplateStore.template.pages];
116
202
  pages.sort((a, b) => a.sequence - b.sequence);
117
- return (h(Host, null, h("div", { class: "fields-bar", ref: el => (this.toolbarEl = el) }, h("div", { class: "label" }, "Add Field:"), h("verdocs-toolbar-icon", { icon: iconSingleline, text: "Single-line Text Box", onClick: () => console.log('single press') }), h("verdocs-toolbar-icon", { icon: iconMultiline, text: "Multi-line Text Box", onClick: () => console.log('multi press') }), h("verdocs-toolbar-icon", { icon: iconCheck, text: "Checkbox", onClick: () => console.log('check press') }), h("verdocs-toolbar-icon", { icon: iconRadio, text: "Radio Button", onClick: () => console.log('radio press') }), h("verdocs-toolbar-icon", { icon: iconDatepicker, text: "Date Picker", onClick: () => console.log('date press') }), h("verdocs-toolbar-icon", { icon: iconSignature, text: "Signature", onClick: () => console.log('signature press') }), h("verdocs-toolbar-icon", { icon: iconInitial, text: "Initials", onClick: () => console.log('initial press') }), h("div", { style: { flex: '1' } }), h("button", { onClick: () => { var _a; return (_a = this.next) === null || _a === void 0 ? void 0 : _a.emit(TemplateStore.template); }, disabled: true, class: "operation" }, "Save"), h("button", { onClick: () => { var _a; return (_a = this.cancel) === null || _a === void 0 ? void 0 : _a.emit(); }, class: "operation" }, "Close")), h("div", { class: "page-0", ref: el => (this.page0El = el) }, h("div", { class: "user-placed-fields" }, h("div", { class: "title" }, "User-Placed Fields"), h("verdocs-field-signature", { field: testField, style: { width: '82px', height: '41px', left: '20px', top: '40px', transform: 'scale(1,1)', backgroundColor: getRGBA(0) }, moveable: true, editable: true }))), h("div", { class: "pages" }, pages.map(page => {
118
- console.log('rendering page', page);
119
- return (h("verdocs-document-page", { pageImageUri: page.display_uri, virtualWidth: 612, virtualHeight: 792, pageNumber: page.sequence, onPageRendered: e => this.handlePageRendered(e), layers: [
203
+ return (h(Host, { class: this.placing ? { [`placing-${this.placing}`]: true } : {} }, h("div", { class: "pages" }, pages.map(page => {
204
+ // console.log('rendering page', page);
205
+ return (h("verdocs-document-page", { pageImageUri: page.display_uri, virtualWidth: 612, virtualHeight: 792, onClick: (e) => this.handleClickPage(e, page), pageNumber: page.sequence, onPageRendered: e => this.handlePageRendered(e), layers: [
120
206
  { name: 'page', type: 'canvas' },
121
207
  { name: 'controls', type: 'div' },
122
208
  ] }));
123
- }))));
209
+ })), h("verdocs-floating-menu", { options: menuOptions, onOptionSelected: e => {
210
+ this.placing = e.detail.id;
211
+ } })));
124
212
  }
125
213
  static get is() { return "verdocs-template-fields"; }
126
214
  static get originalStyleUrls() {
@@ -176,6 +264,12 @@ export class VerdocsTemplateFields {
176
264
  }
177
265
  };
178
266
  }
267
+ static get states() {
268
+ return {
269
+ "placing": {},
270
+ "selectedRoleName": {}
271
+ };
272
+ }
179
273
  static get events() {
180
274
  return [{
181
275
  "method": "next",
@@ -1,5 +1,5 @@
1
1
  import { VerdocsEndpoint } from '@verdocs/js-sdk';
2
- import { h } from '@stencil/core';
2
+ import { h, Host } from '@stencil/core';
3
3
  import { getTemplate } from '@verdocs/js-sdk/Templates/Templates';
4
4
  import { SDKError } from '../../../utils/errors';
5
5
  import TemplateStore from '../../../utils/templateStore';
@@ -54,6 +54,9 @@ export class VerdocsTemplateProperties {
54
54
  });
55
55
  }
56
56
  render() {
57
+ if (!this.endpoint.session) {
58
+ return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
59
+ }
57
60
  return (h("form", { onSubmit: e => e.preventDefault(), onClick: e => e.stopPropagation(), autocomplete: "off" }, h("h5", null, "Template Name"), h("fieldset", null, h("verdocs-text-input", { value: this.name, autocomplete: "off", onInput: (e) => (this.name = e.target.value) })), h("h5", null, "Reminders"), h("fieldset", null, h("div", { class: "input-row" }, h("label", null, "Send Automatic Reminders"), h("verdocs-checkbox", { name: "automatic-reminders", checked: this.sendReminders, value: "on", onInput: (e) => (this.sendReminders = e.target.checked) })), h("div", { class: "input-row" }, h("label", null, "Days Before First Reminder"), h("verdocs-text-input", { value: this.firstReminderDays, onInput: (e) => (this.firstReminderDays = e.target.value) })), h("div", { class: "input-row" }, h("label", null, "Days Between Reminders"), h("verdocs-text-input", { value: this.reminderDays, onInput: (e) => (this.reminderDays = e.target.value) }))), h("h5", null, "Template Visibility"), h("fieldset", null, h("div", { class: "radio-row" }, h("verdocs-radio-button", { name: "visibility", checked: true, value: "private", onChange: () => (this.visibility = 'private') }), h("label", { htmlFor: "verdocs-radio-button-visibility-private" }, h("div", { class: "title" }, "Private"), h("div", { class: "description" }, "Only you can share and use this template"))), h("div", { class: "radio-row" }, h("verdocs-radio-button", { name: "visibility", checked: true, value: "shared", onChange: () => (this.visibility = 'shared') }), h("label", { htmlFor: "verdocs-radio-button-visibility-shared" }, h("div", { class: "title" }, "Shared to your organization"), h("div", { class: "description" }, "Give access to your organization to share and use this template"))), h("div", { class: "radio-row" }, h("verdocs-radio-button", { name: "visibility", checked: true, value: "shared_public", onChange: () => (this.visibility = 'shared_public') }), h("label", { htmlFor: "verdocs-radio-button-visibility-shared_public" }, h("div", { class: "title" }, "Shared to your organization and Public"), h("div", { class: "description" }, "Give access to your organization to share this template, and anyone on the Web can find and use this template"))), h("div", { class: "radio-row" }, h("verdocs-radio-button", { name: "visibility", checked: this.visibility === 'public', value: "public", onChange: () => (this.visibility = 'public') }), h("label", { htmlFor: "verdocs-radio-button-visibility-public" }, h("div", { class: "title" }, "Public"), h("div", { class: "description" }, "Anyone on the Web can find and use this template")))), h("div", { class: "buttons" }, h("div", { class: "flex-fill" }), h("verdocs-button", { variant: "outline", label: "Cancel", size: "small", onClick: e => this.handleCancel(e) }), h("verdocs-button", { label: "OK", size: "small", onClick: e => this.handleSubmit(e) }))));
58
61
  }
59
62
  static get is() { return "verdocs-template-properties"; }
@@ -48,6 +48,7 @@ export class VerdocsTemplateRecipients {
48
48
  this.orderedRoles = [];
49
49
  }
50
50
  componentWillLoad() {
51
+ this.endpoint.loadSession();
51
52
  if (this.templateRole) {
52
53
  this.name = this.templateRole.full_name || '';
53
54
  this.email = this.templateRole.email || '';
@@ -53,6 +53,9 @@ export class VerdocsBuild {
53
53
  this.step = 'fields';
54
54
  }
55
55
  render() {
56
+ if (!this.endpoint.session) {
57
+ return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
58
+ }
56
59
  return (h(Host, null, this.step === 'create' && h("verdocs-template-create", { onCancel: e => this.handleCancel(e), onNext: e => this.handleTemplateCreated(e) }), this.step === 'properties' && h("verdocs-template-properties", { onCancel: e => this.handleCancel(e), onNext: e => this.handlePropertiesUpdated(e) }), this.step === 'recipients' && h("verdocs-template-recipients", { onCancel: e => this.handleCancel(e), onNext: e => this.handleRecipientsUpdated(e) }), this.step === 'fields' && h("verdocs-template-fields", { onCancel: e => this.handleCancel(e), onNext: e => this.handleCancel(e) })));
57
60
  }
58
61
  static get is() { return "verdocs-build"; }
@@ -3,6 +3,14 @@ import { Envelopes } from '@verdocs/js-sdk/Envelopes';
3
3
  import { downloadBlob } from '@verdocs/js-sdk/Utils/Files';
4
4
  export const defaultWidth = (field) => {
5
5
  switch (field.type) {
6
+ case 'textbox':
7
+ return 150;
8
+ case 'timestamp':
9
+ return 64;
10
+ case 'date':
11
+ return 64;
12
+ case 'dropdown':
13
+ return 64;
6
14
  case 'attachment':
7
15
  case 'payment':
8
16
  return 24;
@@ -20,6 +28,14 @@ export const defaultWidth = (field) => {
20
28
  };
21
29
  export const defaultHeight = (field) => {
22
30
  switch (field.type) {
31
+ case 'textbox':
32
+ return 15;
33
+ case 'timestamp':
34
+ return 15;
35
+ case 'date':
36
+ return 15;
37
+ case 'dropdown':
38
+ return 15;
23
39
  case 'attachment':
24
40
  case 'payment':
25
41
  return 24;
@@ -959,7 +959,7 @@ function toFormData(obj, formData, options) {
959
959
  value = JSON.stringify(value);
960
960
  } else if (
961
961
  (utils.isArray(value) && isFlatArray(value)) ||
962
- (utils.isFileList(value) || utils.endsWith(key, '[]') && (arr = utils.toArray(value))
962
+ ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))
963
963
  )) {
964
964
  // eslint-disable-next-line no-param-reassign
965
965
  key = removeBrackets(key);
@@ -1713,7 +1713,7 @@ class AxiosHeaders {
1713
1713
  if (header) {
1714
1714
  const key = utils.findKey(this, header);
1715
1715
 
1716
- return !!(key && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
1716
+ return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
1717
1717
  }
1718
1718
 
1719
1719
  return false;
@@ -2601,7 +2601,7 @@ function mergeConfig(config1, config2) {
2601
2601
  return config;
2602
2602
  }
2603
2603
 
2604
- const VERSION = "1.3.0";
2604
+ const VERSION = "1.3.1";
2605
2605
 
2606
2606
  const validators$1 = {};
2607
2607
 
@@ -4,6 +4,7 @@ export { VerdocsBuild as VerdocsBuild } from '../types/components/embeds/verdocs
4
4
  export { VerdocsButton as VerdocsButton } from '../types/components/controls/verdocs-button/verdocs-button';
5
5
  export { VerdocsButtonPanel as VerdocsButtonPanel } from '../types/components/controls/verdocs-button-panel/verdocs-button-panel';
6
6
  export { VerdocsCheckbox as VerdocsCheckbox } from '../types/components/controls/verdocs-checkbox/verdocs-checkbox';
7
+ export { VerdocsComponentError as VerdocsComponentError } from '../types/components/elements/verdocs-component-error/verdocs-component-error';
7
8
  export { VerdocsContactPicker as VerdocsContactPicker } from '../types/components/elements/verdocs-contact-picker/verdocs-contact-picker';
8
9
  export { VerdocsDocumentPage as VerdocsDocumentPage } from '../types/components/elements/verdocs-document-page/verdocs-document-page';
9
10
  export { VerdocsDropdown as VerdocsDropdown } from '../types/components/controls/verdocs-dropdown/verdocs-dropdown';
@@ -19,6 +20,7 @@ export { VerdocsFieldSignature as VerdocsFieldSignature } from '../types/compone
19
20
  export { VerdocsFieldTextarea as VerdocsFieldTextarea } from '../types/components/elements/verdocs-field-textarea/verdocs-field-textarea';
20
21
  export { VerdocsFieldTextbox as VerdocsFieldTextbox } from '../types/components/elements/verdocs-field-textbox/verdocs-field-textbox';
21
22
  export { VerdocsFieldTimestamp as VerdocsFieldTimestamp } from '../types/components/elements/verdocs-field-timestamp/verdocs-field-timestamp';
23
+ export { VerdocsFloatingMenu as VerdocsFloatingMenu } from '../types/components/controls/verdocs-floating-menu/verdocs-floating-menu';
22
24
  export { VerdocsHelpIcon as VerdocsHelpIcon } from '../types/components/controls/verdocs-help-icon/verdocs-help-icon';
23
25
  export { VerdocsInitialDialog as VerdocsInitialDialog } from '../types/components/dialogs/verdocs-initial-dialog/verdocs-initial-dialog';
24
26
  export { VerdocsKbaDialog as VerdocsKbaDialog } from '../types/components/dialogs/verdocs-kba-dialog/verdocs-kba-dialog';
@@ -4,6 +4,7 @@ export { VerdocsBuild, defineCustomElement as defineCustomElementVerdocsBuild }
4
4
  export { VerdocsButton, defineCustomElement as defineCustomElementVerdocsButton } from './verdocs-button.js';
5
5
  export { VerdocsButtonPanel, defineCustomElement as defineCustomElementVerdocsButtonPanel } from './verdocs-button-panel.js';
6
6
  export { VerdocsCheckbox, defineCustomElement as defineCustomElementVerdocsCheckbox } from './verdocs-checkbox.js';
7
+ export { VerdocsComponentError, defineCustomElement as defineCustomElementVerdocsComponentError } from './verdocs-component-error.js';
7
8
  export { VerdocsContactPicker, defineCustomElement as defineCustomElementVerdocsContactPicker } from './verdocs-contact-picker.js';
8
9
  export { VerdocsDocumentPage, defineCustomElement as defineCustomElementVerdocsDocumentPage } from './verdocs-document-page.js';
9
10
  export { VerdocsDropdown, defineCustomElement as defineCustomElementVerdocsDropdown } from './verdocs-dropdown.js';
@@ -19,6 +20,7 @@ export { VerdocsFieldSignature, defineCustomElement as defineCustomElementVerdoc
19
20
  export { VerdocsFieldTextarea, defineCustomElement as defineCustomElementVerdocsFieldTextarea } from './verdocs-field-textarea.js';
20
21
  export { VerdocsFieldTextbox, defineCustomElement as defineCustomElementVerdocsFieldTextbox } from './verdocs-field-textbox.js';
21
22
  export { VerdocsFieldTimestamp, defineCustomElement as defineCustomElementVerdocsFieldTimestamp } from './verdocs-field-timestamp.js';
23
+ export { VerdocsFloatingMenu, defineCustomElement as defineCustomElementVerdocsFloatingMenu } from './verdocs-floating-menu.js';
22
24
  export { VerdocsHelpIcon, defineCustomElement as defineCustomElementVerdocsHelpIcon } from './verdocs-help-icon.js';
23
25
  export { VerdocsInitialDialog, defineCustomElement as defineCustomElementVerdocsInitialDialog } from './verdocs-initial-dialog.js';
24
26
  export { VerdocsKbaDialog, defineCustomElement as defineCustomElementVerdocsKbaDialog } from './verdocs-kba-dialog.js';
@@ -7,6 +7,14 @@ function rescale(r, n) {
7
7
 
8
8
  const defaultWidth = (field) => {
9
9
  switch (field.type) {
10
+ case 'textbox':
11
+ return 150;
12
+ case 'timestamp':
13
+ return 64;
14
+ case 'date':
15
+ return 64;
16
+ case 'dropdown':
17
+ return 64;
10
18
  case 'attachment':
11
19
  case 'payment':
12
20
  return 24;
@@ -24,6 +32,14 @@ const defaultWidth = (field) => {
24
32
  };
25
33
  const defaultHeight = (field) => {
26
34
  switch (field.type) {
35
+ case 'textbox':
36
+ return 15;
37
+ case 'timestamp':
38
+ return 15;
39
+ case 'date':
40
+ return 15;
41
+ case 'dropdown':
42
+ return 15;
27
43
  case 'attachment':
28
44
  case 'payment':
29
45
  return 24;
@@ -226,4 +242,4 @@ const throttle = (f, delay) => {
226
242
  };
227
243
  };
228
244
 
229
- export { getRoleIndex as a, getFieldId as b, updateCssTransform as c, getFieldSettings as g, renderDocumentField as r, savePDF as s, throttle as t, updateDocumentFieldValue as u };
245
+ export { getRoleIndex as a, getFieldId as b, updateCssTransform as c, defaultWidth as d, defaultHeight as e, getFieldSettings as g, renderDocumentField as r, savePDF as s, throttle as t, updateDocumentFieldValue as u };
@@ -3,16 +3,14 @@ import './Types.js';
3
3
  import { V as VerdocsEndpoint } from './VerdocsEndpoint.js';
4
4
  import { l as loadTemplate } from './Templates.js';
5
5
  import { S as SDKError } from './errors.js';
6
- import { d as defineCustomElement$i } from './verdocs-button2.js';
7
- import { d as defineCustomElement$h } from './verdocs-button-panel2.js';
8
- import { d as defineCustomElement$g } from './verdocs-checkbox2.js';
9
- import { d as defineCustomElement$f } from './verdocs-document-page2.js';
10
- import { d as defineCustomElement$e } from './verdocs-field-signature2.js';
11
- import { d as defineCustomElement$d } from './verdocs-help-icon2.js';
12
- import { d as defineCustomElement$c } from './verdocs-loader2.js';
13
- import { d as defineCustomElement$b } from './verdocs-radio-button2.js';
14
- import { d as defineCustomElement$a } from './verdocs-select-input2.js';
15
- import { d as defineCustomElement$9 } from './verdocs-signature-dialog2.js';
6
+ import { d as defineCustomElement$g } from './verdocs-button2.js';
7
+ import { d as defineCustomElement$f } from './verdocs-checkbox2.js';
8
+ import { d as defineCustomElement$e } from './verdocs-component-error2.js';
9
+ import { d as defineCustomElement$d } from './verdocs-document-page2.js';
10
+ import { d as defineCustomElement$c } from './verdocs-floating-menu2.js';
11
+ import { d as defineCustomElement$b } from './verdocs-help-icon2.js';
12
+ import { d as defineCustomElement$a } from './verdocs-loader2.js';
13
+ import { d as defineCustomElement$9 } from './verdocs-radio-button2.js';
16
14
  import { d as defineCustomElement$8 } from './verdocs-template-create2.js';
17
15
  import { d as defineCustomElement$7 } from './verdocs-template-fields2.js';
18
16
  import { d as defineCustomElement$6 } from './verdocs-template-properties2.js';
@@ -74,6 +72,9 @@ const VerdocsBuild$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
74
72
  this.step = 'fields';
75
73
  }
76
74
  render() {
75
+ if (!this.endpoint.session) {
76
+ return (h(Host, null, h("verdocs-component-error", { message: "You must be authenticated to use this module." })));
77
+ }
77
78
  return (h(Host, null, this.step === 'create' && h("verdocs-template-create", { onCancel: e => this.handleCancel(e), onNext: e => this.handleTemplateCreated(e) }), this.step === 'properties' && h("verdocs-template-properties", { onCancel: e => this.handleCancel(e), onNext: e => this.handlePropertiesUpdated(e) }), this.step === 'recipients' && h("verdocs-template-recipients", { onCancel: e => this.handleCancel(e), onNext: e => this.handleRecipientsUpdated(e) }), this.step === 'fields' && h("verdocs-template-fields", { onCancel: e => this.handleCancel(e), onNext: e => this.handleCancel(e) })));
78
79
  }
79
80
  static get style() { return verdocsBuildCss; }
@@ -88,7 +89,7 @@ function defineCustomElement$1() {
88
89
  if (typeof customElements === "undefined") {
89
90
  return;
90
91
  }
91
- const components = ["verdocs-build", "verdocs-button", "verdocs-button-panel", "verdocs-checkbox", "verdocs-document-page", "verdocs-field-signature", "verdocs-help-icon", "verdocs-loader", "verdocs-radio-button", "verdocs-select-input", "verdocs-signature-dialog", "verdocs-template-create", "verdocs-template-fields", "verdocs-template-properties", "verdocs-template-recipients", "verdocs-template-sender-dialog", "verdocs-text-input", "verdocs-toolbar-icon"];
92
+ const components = ["verdocs-build", "verdocs-button", "verdocs-checkbox", "verdocs-component-error", "verdocs-document-page", "verdocs-floating-menu", "verdocs-help-icon", "verdocs-loader", "verdocs-radio-button", "verdocs-template-create", "verdocs-template-fields", "verdocs-template-properties", "verdocs-template-recipients", "verdocs-template-sender-dialog", "verdocs-text-input", "verdocs-toolbar-icon"];
92
93
  components.forEach(tagName => { switch (tagName) {
93
94
  case "verdocs-build":
94
95
  if (!customElements.get(tagName)) {
@@ -96,51 +97,41 @@ function defineCustomElement$1() {
96
97
  }
97
98
  break;
98
99
  case "verdocs-button":
99
- if (!customElements.get(tagName)) {
100
- defineCustomElement$i();
101
- }
102
- break;
103
- case "verdocs-button-panel":
104
- if (!customElements.get(tagName)) {
105
- defineCustomElement$h();
106
- }
107
- break;
108
- case "verdocs-checkbox":
109
100
  if (!customElements.get(tagName)) {
110
101
  defineCustomElement$g();
111
102
  }
112
103
  break;
113
- case "verdocs-document-page":
104
+ case "verdocs-checkbox":
114
105
  if (!customElements.get(tagName)) {
115
106
  defineCustomElement$f();
116
107
  }
117
108
  break;
118
- case "verdocs-field-signature":
109
+ case "verdocs-component-error":
119
110
  if (!customElements.get(tagName)) {
120
111
  defineCustomElement$e();
121
112
  }
122
113
  break;
123
- case "verdocs-help-icon":
114
+ case "verdocs-document-page":
124
115
  if (!customElements.get(tagName)) {
125
116
  defineCustomElement$d();
126
117
  }
127
118
  break;
128
- case "verdocs-loader":
119
+ case "verdocs-floating-menu":
129
120
  if (!customElements.get(tagName)) {
130
121
  defineCustomElement$c();
131
122
  }
132
123
  break;
133
- case "verdocs-radio-button":
124
+ case "verdocs-help-icon":
134
125
  if (!customElements.get(tagName)) {
135
126
  defineCustomElement$b();
136
127
  }
137
128
  break;
138
- case "verdocs-select-input":
129
+ case "verdocs-loader":
139
130
  if (!customElements.get(tagName)) {
140
131
  defineCustomElement$a();
141
132
  }
142
133
  break;
143
- case "verdocs-signature-dialog":
134
+ case "verdocs-radio-button":
144
135
  if (!customElements.get(tagName)) {
145
136
  defineCustomElement$9();
146
137
  }
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface VerdocsComponentError extends Components.VerdocsComponentError, HTMLElement {}
4
+ export const VerdocsComponentError: {
5
+ prototype: VerdocsComponentError;
6
+ new (): VerdocsComponentError;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,6 @@
1
+ import { V as VerdocsComponentError$1, d as defineCustomElement$1 } from './verdocs-component-error2.js';
2
+
3
+ const VerdocsComponentError = VerdocsComponentError$1;
4
+ const defineCustomElement = defineCustomElement$1;
5
+
6
+ export { VerdocsComponentError, defineCustomElement };
@@ -0,0 +1,33 @@
1
+ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
+
3
+ const verdocsComponentErrorCss = "verdocs-component-error{font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif;display:-ms-flexbox;display:flex;padding:15px;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}verdocs-component-error .inner{-ms-flex:1;flex:1;height:300px;display:-ms-flexbox;display:flex;font-size:18px;background:#ffffff;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}";
4
+
5
+ const VerdocsComponentError = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
6
+ constructor() {
7
+ super();
8
+ this.__registerHost();
9
+ this.message = '';
10
+ }
11
+ render() {
12
+ return (h(Host, null, h("div", { class: "inner" }, this.message)));
13
+ }
14
+ static get style() { return verdocsComponentErrorCss; }
15
+ }, [0, "verdocs-component-error", {
16
+ "message": [1]
17
+ }]);
18
+ function defineCustomElement() {
19
+ if (typeof customElements === "undefined") {
20
+ return;
21
+ }
22
+ const components = ["verdocs-component-error"];
23
+ components.forEach(tagName => { switch (tagName) {
24
+ case "verdocs-component-error":
25
+ if (!customElements.get(tagName)) {
26
+ customElements.define(tagName, VerdocsComponentError);
27
+ }
28
+ break;
29
+ } });
30
+ }
31
+ defineCustomElement();
32
+
33
+ export { VerdocsComponentError as V, defineCustomElement as d };
@@ -49,7 +49,7 @@ const VerdocsDocumentPage = /*@__PURE__*/ proxyCustomElement(class extends HTMLE
49
49
  return;
50
50
  }
51
51
  this.pageRendered.emit({
52
- container: this.container,
52
+ // container: this.container,
53
53
  containerId: this.containerId,
54
54
  pageNumber: this.pageNumber,
55
55
  virtualWidth: this.virtualWidth,
@@ -2,7 +2,7 @@ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal
2
2
  import { g as getRGBA } from './Colors.js';
3
3
  import { g as getFieldSettings } from './utils.js';
4
4
 
5
- const verdocsFieldRadioButtonCss = "verdocs-field-radio-button{font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif;width:14px;height:14px;display:block;font-size:11px;position:relative;background-color:transparent;-webkit-transform-origin:bottom left;transform-origin:bottom left;border-radius:100%}verdocs-field-radio-button svg{margin-top:4px}verdocs-field-radio-button.disabled{opacity:0.5}verdocs-field-radio-button.disabled.done{opacity:1}verdocs-field-radio-button.done input[type=radio]{margin:0;padding:0;width:10px;height:10px}verdocs-field-radio-button:not(.done) input[type=radio]{position:absolute;opacity:0}verdocs-field-radio-button:not(.done) input[type=radio]+label:before{content:\"\";border-radius:100%;border:1px solid rgba(0, 0, 0, 0.6);display:inline-block;width:10px;height:10px;position:absolute;left:1px;top:1px;cursor:pointer;text-align:center;-webkit-transition:all 250ms ease;transition:all 250ms ease}verdocs-field-radio-button:not(.done) input[type=radio]:checked+label:before{background-color:#55bc81;-webkit-box-shadow:inset 0 0 0 2px #f5f5fa;box-shadow:inset 0 0 0 2px #f5f5fa}verdocs-field-radio-button:not(.done) input[type=radio]:focus+label:before{outline:none;border-color:#55bc81}verdocs-field-radio-button:not(.done) input[type=radio]:disabled+label:before{-webkit-box-shadow:inset 0 0 0 4px #f5f5fa;box-shadow:inset 0 0 0 4px #f5f5fa;border-color:#a0a0d0;background:#a0a0d0}verdocs-field-radio-button:not(.done) input[type=radio]+label:empty:before{margin-right:0}verdocs-field-radio-button.required input[type=radio]+label:before{border:1px solid #cc0000}verdocs-field-radio-button.hide{display:none}verdocs-field-radio-button.focused{-webkit-animation:verdocs-field-pulse 0.75s 2;animation:verdocs-field-pulse 0.75s 2}";
5
+ const verdocsFieldRadioButtonCss = "verdocs-field-radio-button{font-family:\"Inter\", -apple-system, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", sans-serif;width:12px;height:12px;display:block;font-size:11px;position:relative;background-color:transparent;-webkit-transform-origin:bottom left;transform-origin:bottom left;border-radius:100%}verdocs-field-radio-button svg{margin-top:4px}verdocs-field-radio-button.disabled{opacity:0.5}verdocs-field-radio-button.disabled.done{opacity:1}verdocs-field-radio-button.done input[type=radio]{margin:0;padding:0;width:10px;height:10px}verdocs-field-radio-button:not(.done) input[type=radio]{position:absolute;opacity:0}verdocs-field-radio-button:not(.done) input[type=radio]+label:before{content:\"\";border-radius:100%;border:1px solid rgba(0, 0, 0, 0.6);display:inline-block;width:10px;height:10px;position:absolute;left:1px;top:1px;cursor:pointer;text-align:center;-webkit-transition:all 250ms ease;transition:all 250ms ease}verdocs-field-radio-button:not(.done) input[type=radio]:checked+label:before{background-color:#55bc81;-webkit-box-shadow:inset 0 0 0 2px #f5f5fa;box-shadow:inset 0 0 0 2px #f5f5fa}verdocs-field-radio-button:not(.done) input[type=radio]:focus+label:before{outline:none;border-color:#55bc81}verdocs-field-radio-button:not(.done) input[type=radio]:disabled+label:before{-webkit-box-shadow:inset 0 0 0 4px #f5f5fa;box-shadow:inset 0 0 0 4px #f5f5fa;border-color:#a0a0d0;background:#a0a0d0}verdocs-field-radio-button:not(.done) input[type=radio]+label:empty:before{margin-right:0}verdocs-field-radio-button.required input[type=radio]+label:before{border:1px solid #cc0000}verdocs-field-radio-button.hide{display:none}verdocs-field-radio-button.focused{-webkit-animation:verdocs-field-pulse 0.75s 2;animation:verdocs-field-pulse 0.75s 2}";
6
6
 
7
7
  const RadioIconUnselected = `<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg>`;
8
8
  const RadioIconSelected = `<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24"><path d="M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg>`;