@verdocs/web-sdk 6.10.6 → 6.12.1

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 (208) hide show
  1. package/dist/cjs/Environment-C3P2cz0J.js +14 -0
  2. package/dist/cjs/Environment-C3P2cz0J.js.map +1 -0
  3. package/dist/cjs/{Icons-TVvtZ5iL.js → Icons-Zdy_DFce.js} +16 -2
  4. package/dist/cjs/{Icons-TVvtZ5iL.js.map → Icons-Zdy_DFce.js.map} +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/verdocs-adopt-signature-dialog_7.cjs.entry.js +2 -2
  7. package/dist/cjs/verdocs-auth.cjs.entry.js +271 -15
  8. package/dist/cjs/verdocs-auth.cjs.entry.js.map +1 -1
  9. package/dist/cjs/verdocs-contact-picker.cjs.entry.js +12 -14
  10. package/dist/cjs/verdocs-contact-picker.cjs.entry.js.map +1 -1
  11. package/dist/cjs/verdocs-field-attachment_11.cjs.entry.js +1 -1
  12. package/dist/cjs/verdocs-field-payment.cjs.entry.js +1 -1
  13. package/dist/cjs/verdocs-file-chooser_2.cjs.entry.js +1 -1
  14. package/dist/cjs/verdocs-preview_6.cjs.entry.js +2 -2
  15. package/dist/cjs/verdocs-sign.cjs.entry.js +1 -1
  16. package/dist/cjs/verdocs-template-document-page_2.cjs.entry.js +1 -1
  17. package/dist/cjs/verdocs-template-document-page_2.cjs.entry.js.map +1 -1
  18. package/dist/cjs/verdocs-web-sdk.cjs.js +1 -1
  19. package/dist/collection/components/controls/verdocs-toolbar-icon/verdocs-toolbar-icon.css +2 -1
  20. package/dist/collection/components/embeds/verdocs-auth/verdocs-auth.css +45 -1
  21. package/dist/collection/components/embeds/verdocs-auth/verdocs-auth.js +302 -19
  22. package/dist/collection/components/embeds/verdocs-auth/verdocs-auth.js.map +1 -1
  23. package/dist/collection/components/envelopes/verdocs-contact-picker/verdocs-contact-picker.js +12 -14
  24. package/dist/collection/components/envelopes/verdocs-contact-picker/verdocs-contact-picker.js.map +1 -1
  25. package/dist/collection/utils/Environment.js +4 -7
  26. package/dist/collection/utils/Environment.js.map +1 -1
  27. package/dist/collection/utils/Icons.js +12 -0
  28. package/dist/collection/utils/Icons.js.map +1 -1
  29. package/dist/components/{p-DCZz2B7h.js → p-6RWROB9R.js} +2 -2
  30. package/dist/components/p-6RWROB9R.js.map +1 -0
  31. package/dist/components/{p-i3o08M2d.js → p-B1UVXqFA.js} +2 -2
  32. package/dist/components/{p-bPe0_Dsn.js → p-B8R4luxA.js} +2 -2
  33. package/dist/components/{p-D-TexkaT.js → p-BXaR1BSS.js} +2 -2
  34. package/dist/components/{p-DL4-aTsZ.js → p-BYLm9aol.js} +2 -2
  35. package/dist/components/{p-DiYuPnJJ.js → p-Bp88Loqg.js} +2 -2
  36. package/dist/components/{p-C43B3SP_.js → p-C7JN32A9.js} +2 -2
  37. package/dist/components/{p-BDv5kBUR.js → p-C7k2AOsW.js} +2 -2
  38. package/dist/components/p-C7k2AOsW.js.map +1 -0
  39. package/dist/components/{p-DKKsPZnz.js → p-CCr_gliS.js} +2 -2
  40. package/dist/components/{p-BELGzhZw.js → p-CFau7OiC.js} +2 -2
  41. package/dist/components/{p-zTcSNwsp.js → p-Ck4pdoyc.js} +2 -2
  42. package/dist/components/{p-DZa0rMk2.js → p-CsF979IT.js} +2 -2
  43. package/dist/components/{p-CYvB5bYX.js → p-CtNpZzq1.js} +2 -2
  44. package/dist/components/{p-B6aUlIQe.js → p-CzKj8wD_.js} +2 -2
  45. package/dist/components/{p-DiwfOWXt.js → p-DJMr11ue.js} +2 -2
  46. package/dist/components/{p-CZwyK_uo.js → p-DLo5dMNn.js} +2 -2
  47. package/dist/components/{p-D1cSgqut.js → p-D_FNSGtS.js} +2 -2
  48. package/dist/components/p-DavVixMP.js +2 -0
  49. package/dist/components/p-DavVixMP.js.map +1 -0
  50. package/dist/components/{p-K_PKw6bs.js → p-DmxiVavg.js} +2 -2
  51. package/dist/components/{p-D7oMWhqM.js → p-DrNmI7Wz.js} +2 -2
  52. package/dist/components/{p-DfIxVX8-.js → p-DubfX0n1.js} +2 -2
  53. package/dist/components/{p-Dy2CRiH8.js → p-b2u0_wDk.js} +1 -1
  54. package/dist/components/p-b2u0_wDk.js.map +1 -0
  55. package/dist/components/{p-CAGp0qKc.js → p-hxWwaOcD.js} +2 -2
  56. package/dist/components/{p-BQUZjuoP.js → p-vcHtLpWY.js} +2 -2
  57. package/dist/components/verdocs-adopt-signature-dialog.js +1 -1
  58. package/dist/components/verdocs-auth.js +1 -1
  59. package/dist/components/verdocs-auth.js.map +1 -1
  60. package/dist/components/verdocs-build.js +1 -1
  61. package/dist/components/verdocs-contact-picker.js +1 -1
  62. package/dist/components/verdocs-delegate-dialog.js +1 -1
  63. package/dist/components/verdocs-field-attachment.js +1 -1
  64. package/dist/components/verdocs-field-checkbox.js +1 -1
  65. package/dist/components/verdocs-field-date.js +1 -1
  66. package/dist/components/verdocs-field-dropdown.js +1 -1
  67. package/dist/components/verdocs-field-initial.js +1 -1
  68. package/dist/components/verdocs-field-payment.js +1 -1
  69. package/dist/components/verdocs-field-radio.js +1 -1
  70. package/dist/components/verdocs-field-signature.js +1 -1
  71. package/dist/components/verdocs-field-textarea.js +1 -1
  72. package/dist/components/verdocs-field-textbox.js +1 -1
  73. package/dist/components/verdocs-field-timestamp.js +1 -1
  74. package/dist/components/verdocs-file-chooser.js +1 -1
  75. package/dist/components/verdocs-otp-dialog.js +1 -1
  76. package/dist/components/verdocs-passcode-dialog.js +1 -1
  77. package/dist/components/verdocs-preview.js +1 -1
  78. package/dist/components/verdocs-send.js +1 -1
  79. package/dist/components/verdocs-sign.js +1 -1
  80. package/dist/components/verdocs-template-attachments.js +1 -1
  81. package/dist/components/verdocs-template-document-page.js +1 -1
  82. package/dist/components/verdocs-template-fields.js +1 -1
  83. package/dist/components/verdocs-toolbar-icon.js +1 -1
  84. package/dist/custom-elements.json +2508 -0
  85. package/dist/esm/Environment-b2u0_wDk.js +12 -0
  86. package/dist/esm/Environment-b2u0_wDk.js.map +1 -0
  87. package/dist/esm/{Icons-BU5rnXp2.js → Icons-DobS6Y7w.js} +15 -3
  88. package/dist/esm/{Icons-BU5rnXp2.js.map → Icons-DobS6Y7w.js.map} +1 -1
  89. package/dist/esm/loader.js +1 -1
  90. package/dist/esm/verdocs-adopt-signature-dialog_7.entry.js +2 -2
  91. package/dist/esm/verdocs-auth.entry.js +273 -17
  92. package/dist/esm/verdocs-auth.entry.js.map +1 -1
  93. package/dist/esm/verdocs-contact-picker.entry.js +12 -14
  94. package/dist/esm/verdocs-contact-picker.entry.js.map +1 -1
  95. package/dist/esm/verdocs-field-attachment_11.entry.js +1 -1
  96. package/dist/esm/verdocs-field-payment.entry.js +1 -1
  97. package/dist/esm/verdocs-file-chooser_2.entry.js +1 -1
  98. package/dist/esm/verdocs-preview_6.entry.js +2 -2
  99. package/dist/esm/verdocs-sign.entry.js +1 -1
  100. package/dist/esm/verdocs-template-document-page_2.entry.js +1 -1
  101. package/dist/esm/verdocs-template-document-page_2.entry.js.map +1 -1
  102. package/dist/esm/verdocs-web-sdk.js +1 -1
  103. package/dist/esm-es5/{Environment-Dy2CRiH8.js → Environment-b2u0_wDk.js} +1 -1
  104. package/dist/esm-es5/Environment-b2u0_wDk.js.map +1 -0
  105. package/dist/esm-es5/{Icons-BU5rnXp2.js → Icons-DobS6Y7w.js} +2 -2
  106. package/dist/esm-es5/{Icons-BU5rnXp2.js.map → Icons-DobS6Y7w.js.map} +1 -1
  107. package/dist/esm-es5/loader.js +1 -1
  108. package/dist/esm-es5/verdocs-adopt-signature-dialog_7.entry.js +1 -1
  109. package/dist/esm-es5/verdocs-auth.entry.js +1 -1
  110. package/dist/esm-es5/verdocs-auth.entry.js.map +1 -1
  111. package/dist/esm-es5/verdocs-contact-picker.entry.js +1 -1
  112. package/dist/esm-es5/verdocs-contact-picker.entry.js.map +1 -1
  113. package/dist/esm-es5/verdocs-field-attachment_11.entry.js +1 -1
  114. package/dist/esm-es5/verdocs-field-payment.entry.js +1 -1
  115. package/dist/esm-es5/verdocs-file-chooser_2.entry.js +1 -1
  116. package/dist/esm-es5/verdocs-preview_6.entry.js +1 -1
  117. package/dist/esm-es5/verdocs-sign.entry.js +1 -1
  118. package/dist/esm-es5/verdocs-template-document-page_2.entry.js +1 -1
  119. package/dist/esm-es5/verdocs-template-document-page_2.entry.js.map +1 -1
  120. package/dist/esm-es5/verdocs-web-sdk.js +1 -1
  121. package/dist/types/components/embeds/verdocs-auth/verdocs-auth.d.ts +31 -3
  122. package/dist/types/components.d.ts +18 -7
  123. package/dist/types/utils/Icons.d.ts +2 -0
  124. package/dist/verdocs-web-sdk/{p-869024e0.system.entry.js → p-09f5670e.system.entry.js} +2 -2
  125. package/dist/verdocs-web-sdk/p-0fb8e6e0.system.entry.js +2 -0
  126. package/dist/verdocs-web-sdk/p-0fb8e6e0.system.entry.js.map +1 -0
  127. package/dist/verdocs-web-sdk/{p-e87a29a3.system.entry.js → p-298d799f.system.entry.js} +3 -3
  128. package/dist/verdocs-web-sdk/{p-734c8a8b.entry.js → p-2a6a3bc6.entry.js} +2 -2
  129. package/dist/verdocs-web-sdk/{p-46e52384.system.entry.js → p-39c54b65.system.entry.js} +2 -2
  130. package/dist/verdocs-web-sdk/p-39c54b65.system.entry.js.map +1 -0
  131. package/dist/verdocs-web-sdk/{p-62464041.system.entry.js → p-439d36b0.system.entry.js} +2 -2
  132. package/dist/verdocs-web-sdk/{p-d95705c6.entry.js → p-4930b31d.entry.js} +2 -2
  133. package/dist/verdocs-web-sdk/{p-255e1915.entry.js → p-4e0788f9.entry.js} +2 -2
  134. package/dist/verdocs-web-sdk/p-4e0788f9.entry.js.map +1 -0
  135. package/dist/verdocs-web-sdk/{p-c6f52cd7.entry.js → p-4ea0632f.entry.js} +2 -2
  136. package/dist/verdocs-web-sdk/{p-c6f52cd7.entry.js.map → p-4ea0632f.entry.js.map} +1 -1
  137. package/dist/verdocs-web-sdk/{p-c86111fd.system.entry.js → p-5404f6bf.system.entry.js} +2 -2
  138. package/dist/verdocs-web-sdk/{p-10d47bbd.entry.js → p-5cad2422.entry.js} +2 -2
  139. package/dist/verdocs-web-sdk/{p-4aee15e6.entry.js → p-932e8b9b.entry.js} +2 -2
  140. package/dist/verdocs-web-sdk/{p-6e8ce989.system.entry.js → p-99f7a0fa.system.entry.js} +2 -2
  141. package/dist/verdocs-web-sdk/{p-GqS1qR-V.system.js → p-BHF3ByWV.system.js} +2 -2
  142. package/dist/verdocs-web-sdk/{p-GqS1qR-V.system.js.map → p-BHF3ByWV.system.js.map} +1 -1
  143. package/dist/verdocs-web-sdk/p-BdZ5Ghsa.system.js +1 -1
  144. package/dist/verdocs-web-sdk/{p-C96xjMgt.system.js → p-COHG5J4h.system.js} +1 -1
  145. package/dist/verdocs-web-sdk/p-COHG5J4h.system.js.map +1 -0
  146. package/dist/verdocs-web-sdk/{p-BU5rnXp2.js → p-DobS6Y7w.js} +2 -2
  147. package/dist/verdocs-web-sdk/{p-BU5rnXp2.js.map → p-DobS6Y7w.js.map} +1 -1
  148. package/dist/verdocs-web-sdk/{p-Dy2CRiH8.js → p-b2u0_wDk.js} +1 -1
  149. package/dist/verdocs-web-sdk/p-b2u0_wDk.js.map +1 -0
  150. package/dist/verdocs-web-sdk/{p-098b3852.system.entry.js → p-ba0d4ff5.system.entry.js} +2 -2
  151. package/dist/verdocs-web-sdk/{p-098b3852.system.entry.js.map → p-ba0d4ff5.system.entry.js.map} +1 -1
  152. package/dist/verdocs-web-sdk/p-c3e9634c.entry.js +2 -0
  153. package/dist/verdocs-web-sdk/p-c3e9634c.entry.js.map +1 -0
  154. package/dist/verdocs-web-sdk/{p-7e1f895c.entry.js → p-dd59aa9a.entry.js} +2 -2
  155. package/dist/verdocs-web-sdk/{p-c3527f3e.system.entry.js → p-f7b14409.system.entry.js} +2 -2
  156. package/dist/verdocs-web-sdk/{p-1df29abb.entry.js → p-fe404347.entry.js} +2 -2
  157. package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +1 -1
  158. package/package.json +4 -4
  159. package/dist/cjs/Environment-CUCX3aWX.js +0 -17
  160. package/dist/cjs/Environment-CUCX3aWX.js.map +0 -1
  161. package/dist/components/p-BDv5kBUR.js.map +0 -1
  162. package/dist/components/p-CYqVJ_kJ.js +0 -2
  163. package/dist/components/p-CYqVJ_kJ.js.map +0 -1
  164. package/dist/components/p-DCZz2B7h.js.map +0 -1
  165. package/dist/components/p-Dy2CRiH8.js.map +0 -1
  166. package/dist/esm/Environment-Dy2CRiH8.js +0 -15
  167. package/dist/esm/Environment-Dy2CRiH8.js.map +0 -1
  168. package/dist/esm-es5/Environment-Dy2CRiH8.js.map +0 -1
  169. package/dist/verdocs-web-sdk/p-16d655d4.system.entry.js +0 -2
  170. package/dist/verdocs-web-sdk/p-16d655d4.system.entry.js.map +0 -1
  171. package/dist/verdocs-web-sdk/p-255e1915.entry.js.map +0 -1
  172. package/dist/verdocs-web-sdk/p-43ee0267.entry.js +0 -2
  173. package/dist/verdocs-web-sdk/p-43ee0267.entry.js.map +0 -1
  174. package/dist/verdocs-web-sdk/p-46e52384.system.entry.js.map +0 -1
  175. package/dist/verdocs-web-sdk/p-C96xjMgt.system.js.map +0 -1
  176. package/dist/verdocs-web-sdk/p-Dy2CRiH8.js.map +0 -1
  177. /package/dist/components/{p-i3o08M2d.js.map → p-B1UVXqFA.js.map} +0 -0
  178. /package/dist/components/{p-bPe0_Dsn.js.map → p-B8R4luxA.js.map} +0 -0
  179. /package/dist/components/{p-D-TexkaT.js.map → p-BXaR1BSS.js.map} +0 -0
  180. /package/dist/components/{p-DL4-aTsZ.js.map → p-BYLm9aol.js.map} +0 -0
  181. /package/dist/components/{p-DiYuPnJJ.js.map → p-Bp88Loqg.js.map} +0 -0
  182. /package/dist/components/{p-C43B3SP_.js.map → p-C7JN32A9.js.map} +0 -0
  183. /package/dist/components/{p-DKKsPZnz.js.map → p-CCr_gliS.js.map} +0 -0
  184. /package/dist/components/{p-BELGzhZw.js.map → p-CFau7OiC.js.map} +0 -0
  185. /package/dist/components/{p-zTcSNwsp.js.map → p-Ck4pdoyc.js.map} +0 -0
  186. /package/dist/components/{p-DZa0rMk2.js.map → p-CsF979IT.js.map} +0 -0
  187. /package/dist/components/{p-CYvB5bYX.js.map → p-CtNpZzq1.js.map} +0 -0
  188. /package/dist/components/{p-B6aUlIQe.js.map → p-CzKj8wD_.js.map} +0 -0
  189. /package/dist/components/{p-DiwfOWXt.js.map → p-DJMr11ue.js.map} +0 -0
  190. /package/dist/components/{p-CZwyK_uo.js.map → p-DLo5dMNn.js.map} +0 -0
  191. /package/dist/components/{p-D1cSgqut.js.map → p-D_FNSGtS.js.map} +0 -0
  192. /package/dist/components/{p-K_PKw6bs.js.map → p-DmxiVavg.js.map} +0 -0
  193. /package/dist/components/{p-D7oMWhqM.js.map → p-DrNmI7Wz.js.map} +0 -0
  194. /package/dist/components/{p-DfIxVX8-.js.map → p-DubfX0n1.js.map} +0 -0
  195. /package/dist/components/{p-CAGp0qKc.js.map → p-hxWwaOcD.js.map} +0 -0
  196. /package/dist/components/{p-BQUZjuoP.js.map → p-vcHtLpWY.js.map} +0 -0
  197. /package/dist/verdocs-web-sdk/{p-869024e0.system.entry.js.map → p-09f5670e.system.entry.js.map} +0 -0
  198. /package/dist/verdocs-web-sdk/{p-e87a29a3.system.entry.js.map → p-298d799f.system.entry.js.map} +0 -0
  199. /package/dist/verdocs-web-sdk/{p-734c8a8b.entry.js.map → p-2a6a3bc6.entry.js.map} +0 -0
  200. /package/dist/verdocs-web-sdk/{p-62464041.system.entry.js.map → p-439d36b0.system.entry.js.map} +0 -0
  201. /package/dist/verdocs-web-sdk/{p-d95705c6.entry.js.map → p-4930b31d.entry.js.map} +0 -0
  202. /package/dist/verdocs-web-sdk/{p-c86111fd.system.entry.js.map → p-5404f6bf.system.entry.js.map} +0 -0
  203. /package/dist/verdocs-web-sdk/{p-10d47bbd.entry.js.map → p-5cad2422.entry.js.map} +0 -0
  204. /package/dist/verdocs-web-sdk/{p-4aee15e6.entry.js.map → p-932e8b9b.entry.js.map} +0 -0
  205. /package/dist/verdocs-web-sdk/{p-6e8ce989.system.entry.js.map → p-99f7a0fa.system.entry.js.map} +0 -0
  206. /package/dist/verdocs-web-sdk/{p-7e1f895c.entry.js.map → p-dd59aa9a.entry.js.map} +0 -0
  207. /package/dist/verdocs-web-sdk/{p-c3527f3e.system.entry.js.map → p-f7b14409.system.entry.js.map} +0 -0
  208. /package/dist/verdocs-web-sdk/{p-1df29abb.entry.js.map → p-fe404347.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"verdocs-auth.cjs.entry.js","mappings":"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","names":["VerdocsEndpoint","VerdocsToast","convertToE164","createProfile","SDKError","verifyEmail","authenticate","getMyUser","resendVerification","resetPassword","h"],"sources":["src/components/embeds/verdocs-auth/verdocs-auth.scss?tag=verdocs-auth","src/components/embeds/verdocs-auth/verdocs-auth.tsx"],"sourcesContent":["@import '../../../theme.scss';\n\nverdocs-auth {\n font-family: $verdocs-primary-font;\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n\n .form {\n width: 350px;\n display: flex;\n padding: 20px;\n max-width: 90%;\n align-items: center;\n flex-direction: column;\n box-sizing: border-box;\n justify-content: center;\n background: $verdocs-grey-4;\n }\n\n .logo {\n width: 128px;\n max-width: 100%;\n margin: 20px 0 30px;\n }\n\n h3 {\n color: $verdocs-grey-0;\n text-align: center;\n font-weight: 400;\n font-size: 18px;\n line-height: 1.75;\n margin: 0;\n }\n\n em {\n font-size: 14px;\n margin: 15px 0;\n }\n\n .buttons {\n gap: 20px;\n margin: 20px 0 0 0;\n display: flex;\n flex-direction: row;\n justify-content: center;\n }\n\n .status-result {\n display: none;\n\n &.debug {\n white-space: pre-wrap;\n font-size: 14px;\n background: #fff;\n padding: 10px;\n display: block;\n flex-direction: row;\n justify-content: center;\n }\n }\n\n form {\n width: 100%;\n }\n\n verdocs-text-input {\n margin-bottom: 10px;\n }\n\n .account-option {\n gap: 8px;\n margin: 20px 0 8px 0;\n display: flex;\n flex-direction: row;\n }\n\n p {\n color: $verdocs-grey-0;\n margin: 1em 0;\n font-size: 14px;\n }\n\n // Our <p>s are in a flex layout which prevents margins from collapsing because each item creates its own row\n p + p {\n margin-top: 0;\n }\n\n verdocs-help-icon {\n margin-top: 18px;\n display: flex;\n width: 32px;\n height: 32px;\n flex: 0 0 32px;\n }\n\n .already-have {\n color: $verdocs-grey-0;\n margin: 0.5em 0;\n font-size: 14px;\n text-align: center;\n }\n\n .service-agreement {\n font-size: 12px;\n color: #777;\n\n a {\n color: $verdocs-grey-0;\n }\n }\n}\n","import {Component, Prop, State, h, Event, EventEmitter} from '@stencil/core';\nimport {verifyEmail, IAuthenticateResponse, getMyUser, IProfile, convertToE164} from '@verdocs/js-sdk';\nimport {TSession, VerdocsEndpoint, createProfile, authenticate, resendVerification, resetPassword} from '@verdocs/js-sdk';\nimport {VerdocsToast} from '../../../utils/Toast';\nimport {SDKError} from '../../../utils/errors';\n\nexport interface IAuthStatus {\n authenticated: boolean;\n session: TSession;\n profile: IProfile | null;\n}\n\n/**\n * Display an authentication dialog that allows the user to login or sign up. If the user is\n * already authenticated with a valid session, this component will hide itself and fire the\n * success callback immediately. It is up to the host application to render the next appropriate\n * view for the application.\n *\n * To simplify UI development, a visibility flag can force this component to never display. This\n * allows you to subscribe to notifications from client apps without calling the lower-level JS SDK.\n *\n * This embed is responsive / mobile-friendly, but the calling application should provide at\n * least a 300px wide container to allow sufficient space for the required forms.\n *\n * ```ts\n * <verdocs-auth\n * onAuthenticated={({ detail }) => console.log('Authentication state:', detail) }\n * onSdkError={({ detail }) => { console.log('SDK error', detail) }\n * />\n * ```\n */\n@Component({\n tag: 'verdocs-auth',\n styleUrl: 'verdocs-auth.scss',\n shadow: false,\n})\nexport class VerdocsAuth {\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * Normally, if the user has a valid session, this embed will be invisible, otherwise it will display\n * login / signup forms. If this is set to false, this embed will be invisible in both cases. Apps may\n * use this to verify if a user has a valid session without needing a separate call to Verdocs JS SDK.\n */\n @Prop() visible: boolean = true;\n\n /**\n * By default, a Verdocs logo will be displayed above the login/signup forms. This may be used to\n * override its source. (Alternatively, you may simply hide it via CSS overrides.) Logos should be\n * in SVG format for best results.\n */\n @Prop() logo: string = 'https://app.verdocs.com/assets/blue-logo.svg';\n\n /**\n * The display mode to start in.\n */\n @Prop({mutable: true}) displayMode: 'login' | 'forgot' | 'reset' | 'signup' | 'verify' = 'login';\n\n /**\n * Event fired when session authentication process has completed. Check the event\n * contents for completion status. This event will always be called at least once,\n * when the component is first rendered.\n */\n @Event({composed: true}) authenticated: EventEmitter<IAuthStatus>;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n @State() org_name: string = '';\n @State() first_name: string = '';\n @State() last_name: string = '';\n @State() email: string = '';\n @State() phone: string = '';\n @State() verificationCode: string = '';\n @State() newPassword: string = '';\n @State() password: string = '';\n @State() confirmpass: string = '';\n @State() submitting: boolean = false;\n @State() resendDisabled = false;\n @State() session: TSession = null;\n @State() profile: IProfile | null = null;\n\n resendDisabledTimer = null;\n\n // We can't instantly log in on the default endpoint because other listeners might see\n // its events and incorrectly trigger before we're done. So we manage our own temp\n // endpoint and pass the final tokens to the default once we're ready.\n tempAuthEndpoint = new VerdocsEndpoint({\n baseURL: VerdocsEndpoint.getDefault().getBaseURL(),\n persist: false,\n });\n\n componentWillLoad() {\n this.endpoint.loadSession();\n this.applyHashDisplayMode();\n\n // We need to listen to the hashchange to know when we're being sent to #forgot\n if (typeof window !== 'undefined') {\n window.addEventListener('hashchange', this.handleHashChange);\n }\n\n VerdocsEndpoint.getDefault().onSessionChanged((_endpoint, session, profile) => {\n this.session = session;\n this.profile = profile;\n if (session) {\n this.authenticated?.emit({authenticated: true, session, profile});\n } else {\n this.authenticated?.emit({authenticated: false, session, profile});\n }\n });\n }\n\n disconnectedCallback() {\n if (typeof window !== 'undefined') {\n window.removeEventListener('hashchange', this.handleHashChange);\n }\n }\n\n handleHashChange = () => {\n this.applyHashDisplayMode();\n };\n\n applyHashDisplayMode() {\n if (typeof window === 'undefined') {\n return;\n }\n\n const hash = (window.location.hash || '').replace(/^#/, '').toLowerCase();\n if (hash === 'forgot') {\n this.displayMode = 'forgot';\n }\n }\n\n isPasswordComplex(password: string) {\n const isUppercase = (ch: string) => /[A-Z]/.test(ch);\n const isLowercase = (ch: string) => /[a-z]/.test(ch);\n const isSpecialChar = (ch: string) => /[`!@#$%^&*()_\\-+=\\[\\]{};':\"\\\\|,.<>\\/?~ ]/.test(ch);\n let countOfUpperCase = 0,\n countOfLowerCase = 0,\n countOfSpecialChar = 0;\n for (let i = 0; i < password.length; i++) {\n let ch = password.charAt(i);\n if (isUppercase(ch)) countOfUpperCase++;\n else if (isLowercase(ch)) countOfLowerCase++;\n else if (isSpecialChar(ch)) countOfSpecialChar++;\n }\n return password.length >= 8 && countOfLowerCase > 0 && countOfUpperCase > 0 && countOfSpecialChar > 0;\n }\n\n handleSignup() {\n if (!this.isPasswordComplex(this.password)) {\n VerdocsToast('Password must be at least 8 characters long and contain at least one uppercase, one lowercase, and one special character.', {style: 'error'});\n return;\n }\n\n if (this.password !== this.confirmpass) {\n VerdocsToast('Passwords do not match.', {style: 'error'});\n return;\n }\n\n this.submitting = true;\n this.tempAuthEndpoint.clearSession();\n const formattedPhone = convertToE164(this.phone);\n const localeData = Intl.DateTimeFormat().resolvedOptions();\n\n createProfile(this.tempAuthEndpoint, {\n email: this.email,\n password: this.password,\n first_name: this.first_name,\n last_name: this.last_name,\n org_name: this.org_name,\n phone: formattedPhone,\n timezone: localeData.timeZone,\n locale: localeData.locale,\n })\n .then(r => {\n console.log('[AUTH] Profile creation result', r);\n this.tempAuthEndpoint.setToken(r.access_token);\n // We can't clearForms because we need email to stick around\n this.password = '';\n this.phone = '';\n this.first_name = '';\n this.last_name = '';\n this.org_name = '';\n this.displayMode = 'verify';\n this.submitting = false;\n })\n .catch(e => {\n console.log('[AUTH] Signup error', e.response);\n this.submitting = false;\n this.authenticated?.emit({authenticated: false, profile: null, session: null});\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n\n VerdocsToast('Signup failed: ' + e.response?.data?.error || 'Unknown Error', {style: 'error'});\n });\n }\n\n async handleVerification() {\n this.submitting = true;\n\n try {\n this.submitting = false;\n const verificationResult = await verifyEmail(this.tempAuthEndpoint, {email: this.email, token: this.verificationCode});\n VerdocsToast('Thank you for verifying your email address.', {style: 'success'});\n this.completeLogin(verificationResult);\n } catch (e) {\n this.submitting = false;\n console.log('Verification error', e);\n VerdocsToast('Verification error, please check the code and try again.');\n }\n }\n\n completeLogin(result: IAuthenticateResponse) {\n this.clearForms();\n this.tempAuthEndpoint.clearSession();\n this.endpoint.setToken(result.access_token);\n }\n\n async loginAndCheckVerification() {\n if (this.submitting) {\n return;\n }\n\n this.submitting = true;\n this.tempAuthEndpoint.clearSession();\n\n try {\n this.submitting = false;\n const authResult = await authenticate(this.tempAuthEndpoint, {username: this.email.trim(), password: this.password, grant_type: 'password'});\n console.log('[AUTH] Authenticated, checking email verification');\n this.tempAuthEndpoint.setToken(authResult.access_token);\n\n const user = await getMyUser(this.tempAuthEndpoint);\n\n if (!user.email_verified) {\n console.log('[AUTH] Logged in, pending email address verification');\n this.displayMode = 'verify';\n } else {\n console.log('[AUTH] Email address is verified, completing login');\n this.completeLogin(authResult);\n }\n } catch (e) {\n this.submitting = false;\n console.log('[AUTH] Auth failure', e.response?.data || e);\n VerdocsToast('Login failed. Please check your credentials and try again.', {style: 'error'});\n }\n }\n\n clearForms() {\n this.submitting = false;\n this.resendDisabled = false;\n this.email = '';\n this.phone = '';\n this.password = '';\n this.newPassword = '';\n this.confirmpass = '';\n this.verificationCode = '';\n this.first_name = '';\n this.last_name = '';\n this.org_name = '';\n }\n\n handleLogout() {\n console.log('logging out');\n this.endpoint.clearSession();\n this.tempAuthEndpoint.clearSession();\n this.clearForms();\n this.displayMode = 'login';\n }\n\n handleResendVerification() {\n // Avoid the user just click-spamming this pathway. The server rate-limits this anyway so it's not a\n // security issue but it's a poor user experience to allow it.\n this.resendDisabled = true;\n this.resendDisabledTimer = setTimeout(() => {\n this.resendDisabled = false;\n this.resendDisabledTimer = null;\n }, 30000);\n\n resendVerification(this.tempAuthEndpoint)\n .then(r => {\n console.log('[AUTH] Verification request resent', r);\n VerdocsToast('Please check your email for a verification code.', {style: 'info'});\n })\n .catch((e: any) => {\n console.log('[AUTH] Unable to resend verification', e);\n VerdocsToast('Unable to resend code. Please try again later.', {style: 'error'});\n });\n }\n\n handleResendReset() {\n // Avoid the user just click-spamming this pathway. The server rate-limits this anyway so it's not a\n // security issue but it's a poor user experience to allow it.\n this.resendDisabled = true;\n this.resendDisabledTimer = setTimeout(() => {\n this.resendDisabled = false;\n this.resendDisabledTimer = null;\n }, 30000);\n\n resetPassword(this.tempAuthEndpoint, {email: this.email})\n .then(r => {\n console.log('[AUTH] Resend-code request resent', r);\n VerdocsToast('Please check your email again for a verification code.', {style: 'info'});\n })\n .catch((e: any) => {\n console.log('[AUTH] Unable to resend reset request', e);\n VerdocsToast('Unable to resend code. Please try again later.', {style: 'error'});\n });\n }\n\n async handleResetGetCode() {\n this.submitting = true;\n this.confirmpass = '';\n this.newPassword = '';\n\n try {\n this.submitting = false;\n const result = await resetPassword(this.endpoint, {email: this.email});\n console.log('[AUTH] Reset result', result);\n VerdocsToast('Please check your email inbox for a password reset code.', {style: 'success'});\n this.verificationCode = '';\n this.confirmpass = '';\n this.newPassword = '';\n this.displayMode = 'reset';\n } catch (e) {\n this.submitting = false;\n console.log('Reset request error', e);\n VerdocsToast('Request failed. Please check your email address and try again.');\n }\n }\n\n async handleResetPassword() {\n if (!this.isPasswordComplex(this.newPassword)) {\n VerdocsToast('Password must be at least 8 characters long and contain at least one uppercase, one lowercase, and one special character.', {style: 'error'});\n return;\n }\n\n if (this.newPassword !== this.confirmpass) {\n VerdocsToast('Passwords do not match.', {style: 'error'});\n return;\n }\n\n this.submitting = true;\n try {\n this.submitting = false;\n const resetResult = await resetPassword(this.endpoint, {email: this.email, code: this.verificationCode, new_password: this.newPassword});\n console.log('reset result', resetResult);\n VerdocsToast('Your password has been reset. You may now use your new password to login.', {style: 'success'});\n this.verificationCode = '';\n this.confirmpass = '';\n this.newPassword = '';\n this.password = '';\n this.displayMode = 'login';\n } catch (e) {\n this.submitting = false;\n console.log('Verification error', e);\n VerdocsToast('Verification error, please check the code and try again.');\n }\n }\n\n async handleReset() {\n this.submitting = true;\n\n try {\n const result = await resetPassword(this.endpoint, {email: this.email});\n console.log('[AUTH] Reset sent', result);\n this.submitting = false;\n this.displayMode = 'login';\n VerdocsToast('If your email address is registered, you will receive instructions on resetting your password shortly.', {style: 'info'});\n } catch (e) {\n console.log('[AUTH] Unable to reset password', e);\n this.submitting = false;\n VerdocsToast('Unable to reset password. Please check your email address and try again.', {style: 'error'});\n }\n }\n\n render() {\n if (!this.visible) {\n return <div style={{display: 'none'}}>Authenticated</div>;\n }\n\n if (this.session) {\n return (\n <verdocs-button\n label=\"Sign Out\"\n disabled={this.submitting}\n onClick={() => this.handleLogout()}\n style={{display: 'flex', justifyContent: 'center', margin: '30px auto 0'}}\n />\n );\n }\n\n if (this.displayMode === 'signup') {\n const invalid = this.submitting || !this.first_name || !this.last_name || !this.email || !this.password || !this.confirmpass || !this.org_name;\n\n return (\n <div class=\"form\">\n <a href=\"https://verdocs.com/en/\">\n <img src={this.logo} alt=\"Verdocs Logo\" class=\"logo\" />\n </a>\n\n <h3>Sign up for a free account</h3>\n <div class=\"already-have\">\n Already have an account?\n <verdocs-button label=\"Log In\" variant=\"text\" onClick={() => (this.displayMode = 'login')} disabled={this.submitting} />\n </div>\n\n <form onSubmit={() => this.handleSignup()}>\n <div style={{display: 'flex', flexDirection: 'row', columnGap: '20px'}}>\n <verdocs-text-input\n label=\"First Name\"\n autocomplete=\"first\"\n required={true}\n value={this.first_name}\n onInput={(e: any) => (this.first_name = e.target.value)}\n disabled={this.submitting}\n />\n <verdocs-text-input\n label=\"Last Name\"\n autocomplete=\"last\"\n required={true}\n value={this.last_name}\n onInput={(e: any) => (this.last_name = e.target.value)}\n disabled={this.submitting}\n />\n </div>\n <verdocs-text-input\n label=\"Email Address\"\n autocomplete=\"email\"\n required={true}\n value={this.email}\n onInput={(e: any) => (this.email = e.target.value)}\n disabled={this.submitting}\n />\n <verdocs-text-input\n label=\"Password\"\n type=\"password\"\n required={true}\n autocomplete=\"new-password\"\n value={this.password}\n onInput={(e: any) => (this.password = e.target.value)}\n disabled={this.submitting}\n />\n <verdocs-text-input\n label=\"Confirm Password\"\n type=\"password\"\n required={true}\n autocomplete=\"off\"\n value={this.confirmpass}\n onInput={(e: any) => (this.confirmpass = e.target.value)}\n disabled={this.submitting}\n />\n <verdocs-text-input\n label=\"Phone Number\"\n type=\"tel\"\n required={true}\n autocomplete=\"phone\"\n value={this.phone}\n onInput={(e: any) => (this.phone = e.target.value)}\n disabled={this.submitting}\n />\n <verdocs-text-input\n label=\"Organization Name\"\n autocomplete=\"org\"\n required={true}\n value={this.org_name}\n onInput={(e: any) => (this.org_name = e.target.value)}\n disabled={this.submitting}\n style={{flex: '1'}}\n />\n\n <div class=\"service-agreement\">\n By clicking the Create Account button, you agree to the{' '}\n <a href=\"https://verdocs.com/eula\" target=\"_blank\">\n End User License Agreement\n </a>\n . Learn about how we use and protect your data and how you can opt-out in our{' '}\n <a href=\"https://verdocs.com/privacy-policy\" target=\"_blank\">\n Privacy Policy\n </a>\n .\n </div>\n\n <div style={{marginTop: '30px'}} />\n\n <verdocs-button\n label=\"Next\"\n disabled={invalid}\n onClick={invalid ? () => {} : () => this.handleSignup()}\n style={{display: 'flex', justifyContent: 'center', margin: '30px auto 0'}}\n />\n </form>\n </div>\n );\n }\n\n if (this.displayMode === 'verify') {\n return (\n <div class=\"form\">\n <form onSubmit={() => this.handleVerification()}>\n <p>Please check your e-mail inbox for a verification code and enter it below.</p>\n\n <verdocs-text-input\n label=\"Verification Code\"\n required={true}\n value={this.verificationCode}\n onInput={(e: any) => (this.verificationCode = e.target.value)}\n disabled={this.submitting}\n />\n\n <div class=\"buttons\">\n <verdocs-button label=\"Sign Out\" variant=\"outline\" disabled={this.submitting} onClick={() => this.handleLogout()} />\n <verdocs-button label=\"Verify\" disabled={this.submitting || !this.verificationCode || this.verificationCode.length !== 6} onClick={() => this.handleVerification()} />\n </div>\n <div class=\"buttons\">\n <verdocs-button variant=\"text\" label=\"Resend Code\" disabled={this.resendDisabled || this.submitting} onClick={() => this.handleResendVerification()} />\n </div>\n </form>\n </div>\n );\n }\n\n if (this.displayMode === 'forgot') {\n return (\n <div class=\"form\">\n <a href=\"https://verdocs.com/en/\">\n <img src={this.logo} alt=\"Verdocs Logo\" class=\"logo\" />\n </a>\n\n <h3>Forgot your password?</h3>\n\n <p>\n Enter your e-mail address below. If the e-mail address is valid, a password reset code will be sent to your inbox. Please allow up to 15 minutes to arrive, and check\n your spam folder if you do not receive the message.\n </p>\n\n <form onSubmit={() => this.handleResetGetCode()}>\n <verdocs-text-input\n label=\"Email Address\"\n autocomplete=\"email\"\n required={true}\n value={this.email}\n onInput={(e: any) => (this.email = e.target.value)}\n disabled={this.submitting}\n />\n\n <div style={{marginTop: '30px'}} />\n\n <div class=\"buttons\">\n <verdocs-button size=\"small\" label=\"Cancel\" variant=\"outline\" disabled={this.submitting} onClick={() => (this.displayMode = 'login')} />\n <verdocs-button size=\"small\" label=\"Request Code\" disabled={this.submitting} onClick={() => this.handleResetGetCode()} />\n </div>\n </form>\n </div>\n );\n }\n\n if (this.displayMode === 'reset') {\n return (\n <div class=\"form\">\n <a href=\"https://verdocs.com/en/\">\n <img src={this.logo} alt=\"Verdocs Logo\" class=\"logo\" />\n </a>\n\n <h3>Forgot your password?</h3>\n\n <p>\n Enter your e-mail address below, and reset instructions will be sent to your Inbox. Please allow up to 15 minutes to arrive. Check your spam folder if you do not\n receive the message.\n </p>\n\n <form onSubmit={() => this.handleResetPassword()}>\n <verdocs-text-input\n label=\"Verification Code\"\n required={true}\n value={this.verificationCode}\n onInput={(e: any) => (this.verificationCode = e.target.value)}\n disabled={this.submitting}\n />\n <verdocs-text-input\n label=\"Password\"\n type=\"password\"\n required={true}\n autocomplete=\"off\"\n value={this.newPassword}\n onInput={(e: any) => (this.newPassword = e.target.value)}\n disabled={this.submitting}\n />\n <verdocs-text-input\n label=\"Confirm Password\"\n type=\"password\"\n required={true}\n autocomplete=\"off\"\n value={this.confirmpass}\n onInput={(e: any) => (this.confirmpass = e.target.value)}\n disabled={this.submitting}\n />\n\n <div style={{marginTop: '30px'}} />\n\n <div class=\"buttons\">\n <verdocs-button label=\"Cancel\" variant=\"outline\" disabled={this.submitting} onClick={() => (this.displayMode = 'login')} />\n <verdocs-button label=\"Reset\" disabled={this.submitting} onClick={() => this.handleResetPassword()} />\n </div>\n\n <div class=\"buttons\">\n <verdocs-button variant=\"text\" label=\"Resend Code\" disabled={this.resendDisabled || this.submitting} onClick={() => this.handleResendReset()} />\n </div>\n </form>\n </div>\n );\n }\n\n return (\n <div class=\"form\">\n <a href=\"https://verdocs.com/en/\">\n <img src={this.logo} alt=\"Verdocs Logo\" class=\"logo\" />\n </a>\n\n <h3>Log in to your account</h3>\n <div class=\"already-have\">\n Don't have an account?\n <verdocs-button label=\"Sign Up\" variant=\"text\" onClick={() => (this.displayMode = 'signup')} disabled={this.submitting} />\n </div>\n\n <form onSubmit={() => this.loginAndCheckVerification()}>\n <verdocs-text-input label=\"Email\" autocomplete=\"username\" value={this.email} onInput={(e: any) => (this.email = e.target.value)} disabled={this.submitting} />\n <verdocs-text-input\n label=\"Password\"\n type=\"password\"\n autocomplete=\"current-password\"\n value={this.password}\n onInput={(e: any) => (this.password = e.target.value)}\n disabled={this.submitting}\n />\n\n <verdocs-button\n label=\"Forgot Your Password?\"\n variant=\"text\"\n onClick={() => (this.displayMode = 'forgot')}\n disabled={this.submitting}\n style={{display: 'flex', justifyContent: 'center', margin: '10px auto 20px'}}\n />\n\n <verdocs-button\n label=\"Login\"\n disabled={this.submitting}\n onClick={() => this.loginAndCheckVerification()}\n style={{display: 'flex', justifyContent: 'center', margin: '10px auto 0'}}\n />\n </form>\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"verdocs-auth.cjs.entry.js","mappings":"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","names":["VerdocsEndpoint","getSocialProviders","VerdocsToast","convertToE164","createProfile","SDKError","verifyEmail","getMyUser","authenticate","isMFARequired","createCodeVerifier","createCodeChallenge","getSocialLoginUrl","resendVerification","resetPassword","h","GoogleIcon","MicrosoftIcon"],"sources":["src/components/embeds/verdocs-auth/verdocs-auth.scss?tag=verdocs-auth","src/components/embeds/verdocs-auth/verdocs-auth.tsx"],"sourcesContent":["@import '../../../theme.scss';\n\nverdocs-auth {\n font-family: $verdocs-primary-font;\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n\n .form {\n width: 350px;\n display: flex;\n padding: 20px;\n max-width: 90%;\n align-items: center;\n flex-direction: column;\n box-sizing: border-box;\n justify-content: center;\n background: $verdocs-grey-4;\n }\n\n .logo {\n width: 128px;\n max-width: 100%;\n margin: 20px 0 30px;\n }\n\n h3 {\n color: $verdocs-grey-0;\n text-align: center;\n font-weight: 400;\n font-size: 18px;\n line-height: 1.75;\n margin: 0 0 20px 0;\n }\n\n em {\n font-size: 14px;\n margin: 15px 0;\n }\n\n .buttons {\n gap: 20px;\n margin: 20px 0 0 0;\n display: flex;\n flex-direction: row;\n justify-content: center;\n }\n\n .status-result {\n display: none;\n\n &.debug {\n white-space: pre-wrap;\n font-size: 14px;\n background: #fff;\n padding: 10px;\n display: block;\n flex-direction: row;\n justify-content: center;\n }\n }\n\n form {\n width: 100%;\n }\n\n verdocs-text-input {\n margin-bottom: 10px;\n }\n\n .account-option {\n gap: 8px;\n margin: 20px 0 8px 0;\n display: flex;\n flex-direction: row;\n }\n\n p {\n color: $verdocs-grey-0;\n margin: 1em 0;\n font-size: 14px;\n }\n\n // Our <p>s are in a flex layout which prevents margins from collapsing because each item creates its own row\n p + p {\n margin-top: 0;\n }\n\n verdocs-help-icon {\n margin-top: 18px;\n display: flex;\n width: 32px;\n height: 32px;\n flex: 0 0 32px;\n }\n\n .already-have {\n color: $verdocs-grey-0;\n margin: 0.5em 0;\n font-size: 14px;\n text-align: center;\n }\n\n .service-agreement {\n font-size: 12px;\n color: #777;\n\n a {\n color: $verdocs-grey-0;\n }\n }\n\n .providers {\n width: 100%;\n\n verdocs-button {\n display: block;\n margin-bottom: 10px;\n\n button.outline {\n position: relative;\n border-color: $verdocs-grey-2;\n\n &:disabled {\n border-color: $verdocs-grey-2;\n }\n }\n\n .icon.start {\n position: absolute;\n left: 16px;\n margin: 0;\n display: flex;\n align-items: center;\n\n svg {\n width: 18px;\n height: 18px;\n }\n }\n }\n }\n\n .divider {\n gap: 8px;\n color: #777;\n display: flex;\n font-size: 12px;\n margin: 28px 0;\n align-items: center;\n flex-direction: row;\n\n .divider-line {\n flex: 1;\n height: 1px;\n background: $verdocs-grey-2;\n }\n }\n\n .mfa-error {\n color: $verdocs-red-1;\n font-size: 14px;\n margin: 0 0 8px;\n }\n}\n","import {Component, Prop, State, h, Event, EventEmitter, Element} from '@stencil/core';\nimport {TSession, VerdocsEndpoint, createProfile, authenticate, resendVerification, resetPassword} from '@verdocs/js-sdk';\nimport {isMFARequired, getSocialProviders, getSocialLoginUrl, createCodeVerifier, createCodeChallenge} from '@verdocs/js-sdk';\nimport {verifyEmail, IAuthenticateResponse, getMyUser, IProfile, convertToE164, ISocialProviders, TSocialLoginProvider} from '@verdocs/js-sdk';\nimport {GoogleIcon, MicrosoftIcon} from '../../../utils/Icons';\nimport {VerdocsToast} from '../../../utils/Toast';\nimport {SDKError} from '../../../utils/errors';\n\nexport interface IAuthStatus {\n authenticated: boolean;\n session: TSession;\n profile: IProfile | null;\n}\n\nconst MFA_CODE_ERROR = 'Invalid code. Please try again.';\nconst SOCIAL_START_ERROR = 'Unable to start sign-in sequence. Please try again.';\nconst SOCIAL_LOGIN_KEY = 'vdocs-social-login';\n\ninterface ISocialLoginAttempt {\n verifier: string;\n state: string;\n provider: TSocialLoginProvider;\n}\n\nconst SOCIAL_ERROR_MESSAGES: Record<string, string> = {\n email_unverified: 'That account does not have a verified email address.',\n corporate_email_required: 'Please use your corporate email address to create an account.',\n account_locked: 'That account is locked. Please contact support@verdocs.com.',\n provider_error: 'That provider could not sign you in. Please try again.',\n access_denied: 'Sign-in was canceled.',\n};\n\nconst socialErrorMessage = (code: string) => SOCIAL_ERROR_MESSAGES[code] || 'Unable to sign in. Please try again.';\n\nconst readSocialLoginAttempt = (): ISocialLoginAttempt | null => {\n try {\n const stored = window.sessionStorage.getItem(SOCIAL_LOGIN_KEY);\n return stored ? (JSON.parse(stored) as ISocialLoginAttempt) : null;\n } catch {\n return null;\n }\n};\n\nconst clearSocialLoginAttempt = () => {\n try {\n window.sessionStorage.removeItem(SOCIAL_LOGIN_KEY);\n } catch {\n // Third-party embeds may block sessionStorage. It's OK.\n }\n};\n\n// Prevent replays on a reload\nconst cleanSocialLoginParams = (names: string[]) => {\n const url = new URL(window.location.href);\n names.forEach(name => url.searchParams.delete(name));\n window.history.replaceState({}, '', `${url.pathname}${url.search}${url.hash}`);\n};\n\nconst currentReturnUri = () => `${window.location.origin}${window.location.pathname}`;\n\nconst formatRecoveryCode = (value: string) => {\n const cleaned = value\n .toLowerCase()\n .replace(/[^a-z0-9]/g, '')\n .slice(0, 8);\n return cleaned.length > 4 ? `${cleaned.slice(0, 4)}-${cleaned.slice(4)}` : cleaned;\n};\n\n/**\n * Display an authentication dialog that allows the user to login or sign up. If the user is\n * already authenticated with a valid session, this component will hide itself and fire the\n * success callback immediately. It is up to the host application to render the next appropriate\n * view for the application.\n *\n * To simplify UI development, a visibility flag can force this component to never display. This\n * allows you to subscribe to notifications from client apps without calling the lower-level JS SDK.\n *\n * This embed is responsive and mobile-friendly, but the calling application should provide at\n * least a 300px wide container to allow sufficient space for the required forms.\n *\n * ```ts\n * <verdocs-auth\n * onAuthenticated={({ detail }) => console.log('Authentication state:', detail) }\n * onSdkError={({ detail }) => { console.log('SDK error', detail) }\n * />\n * ```\n */\n@Component({\n tag: 'verdocs-auth',\n styleUrl: 'verdocs-auth.scss',\n shadow: false,\n})\nexport class VerdocsAuth {\n @Element() el: HTMLElement;\n\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * Normally, if the user has a valid session, this embed will be invisible, otherwise it will display\n * login / signup forms. If this is set to false, this embed will be invisible in both cases. Apps may\n * use this to verify if a user has a valid session without needing a separate call to Verdocs JS SDK.\n */\n @Prop() visible: boolean = true;\n\n /**\n * By default, a Verdocs logo will be displayed above the login/signup forms. This may be used to\n * override its source. (Alternatively, you may simply hide it via CSS overrides.) Logos should be\n * in SVG format for best results.\n */\n @Prop() logo: string = 'https://app.verdocs.com/assets/blue-logo.svg';\n\n /**\n * The display mode to start in.\n */\n @Prop({mutable: true}) displayMode: 'login' | 'forgot' | 'reset' | 'signup' | 'verify' | 'mfa' = 'login';\n\n /**\n * Social auth is disabled by default because these are redirect flows that require allowable redirect_uri\n * destinations be pre-registered. These will only work on Verdocs sites/apps, so third-party developers\n * should not turn this on unless instructed to by Verdocs Support.\n */\n @Prop() showSocialLogins: boolean = false;\n\n /**\n * Event fired when session authentication process has completed. Check the event\n * contents for completion status. This event will always be called at least once,\n * when the component is first rendered.\n */\n @Event({composed: true}) authenticated: EventEmitter<IAuthStatus>;\n\n /**\n * Event fired if an error occurs. The event details will contain information about the error. Most errors will\n * terminate the process, and the calling application should correct the condition and re-render the component.\n */\n @Event({composed: true}) sdkError: EventEmitter<SDKError>;\n\n @State() org_name: string = '';\n @State() first_name: string = '';\n @State() last_name: string = '';\n @State() email: string = '';\n @State() phone: string = '';\n @State() verificationCode: string = '';\n @State() newPassword: string = '';\n @State() password: string = '';\n @State() confirmpass: string = '';\n @State() submitting: boolean = false;\n @State() resendDisabled = false;\n @State() session: TSession = null;\n @State() profile: IProfile | null = null;\n @State() providers: ISocialProviders = {google: false, microsoft: false};\n @State() mfaToken: string = '';\n @State() mfaCode: string = '';\n @State() recoveryCode: string = '';\n @State() useRecoveryCode: boolean = false;\n @State() mfaError: string = '';\n\n resendDisabledTimer = null;\n mfaFocusPending = false;\n\n // We can't instantly log in on the default endpoint because other listeners might see\n // its events and incorrectly trigger before we're done. So we manage our own temp\n // endpoint and pass the final tokens to the default once we're ready.\n tempAuthEndpoint = new VerdocsEndpoint({\n baseURL: VerdocsEndpoint.getDefault().getBaseURL(),\n persist: false,\n });\n\n componentWillLoad() {\n this.endpoint.loadSession();\n this.applyHashDisplayMode();\n\n // We need to listen to the hashchange to know when we're being sent to #forgot\n if (typeof window !== 'undefined') {\n window.addEventListener('hashchange', this.handleHashChange);\n }\n\n VerdocsEndpoint.getDefault().onSessionChanged((_endpoint, session, profile) => {\n this.session = session;\n this.profile = profile;\n if (session) {\n this.authenticated?.emit({authenticated: true, session, profile});\n } else {\n this.authenticated?.emit({authenticated: false, session, profile});\n }\n });\n\n if (this.showSocialLogins) {\n getSocialProviders(this.endpoint)\n .then(providers => {\n this.providers = providers;\n })\n .catch(() => undefined);\n }\n\n this.handleSocialLoginReturn();\n }\n\n componentDidRender() {\n if (this.displayMode !== 'mfa') {\n return;\n }\n\n const input = this.el.querySelector('.mfa-input input') as HTMLInputElement | null;\n if (!input) {\n return;\n }\n\n if (!this.useRecoveryCode) {\n input.setAttribute('inputmode', 'numeric');\n } else {\n input.removeAttribute('inputmode');\n }\n\n if (this.mfaFocusPending) {\n this.mfaFocusPending = false;\n input.focus();\n }\n }\n\n disconnectedCallback() {\n if (typeof window !== 'undefined') {\n window.removeEventListener('hashchange', this.handleHashChange);\n }\n }\n\n handleHashChange = () => {\n this.applyHashDisplayMode();\n };\n\n applyHashDisplayMode() {\n if (typeof window === 'undefined') {\n return;\n }\n\n const hash = (window.location.hash || '').replace(/^#/, '').toLowerCase();\n if (hash === 'forgot') {\n this.displayMode = 'forgot';\n }\n }\n\n isPasswordComplex(password: string) {\n const isUppercase = (ch: string) => /[A-Z]/.test(ch);\n const isLowercase = (ch: string) => /[a-z]/.test(ch);\n const isSpecialChar = (ch: string) => /[`!@#$%^&*()_\\-+=\\[\\]{};':\"\\\\|,.<>\\/?~ ]/.test(ch);\n let countOfUpperCase = 0,\n countOfLowerCase = 0,\n countOfSpecialChar = 0;\n for (let i = 0; i < password.length; i++) {\n let ch = password.charAt(i);\n if (isUppercase(ch)) countOfUpperCase++;\n else if (isLowercase(ch)) countOfLowerCase++;\n else if (isSpecialChar(ch)) countOfSpecialChar++;\n }\n return password.length >= 8 && countOfLowerCase > 0 && countOfUpperCase > 0 && countOfSpecialChar > 0;\n }\n\n handleSignup() {\n if (!this.isPasswordComplex(this.password)) {\n VerdocsToast('Password must be at least 8 characters long and contain at least one uppercase, one lowercase, and one special character.', {style: 'error'});\n return;\n }\n\n if (this.password !== this.confirmpass) {\n VerdocsToast('Passwords do not match.', {style: 'error'});\n return;\n }\n\n this.submitting = true;\n this.tempAuthEndpoint.clearSession();\n const formattedPhone = convertToE164(this.phone);\n const localeData = Intl.DateTimeFormat().resolvedOptions();\n\n createProfile(this.tempAuthEndpoint, {\n email: this.email,\n password: this.password,\n first_name: this.first_name,\n last_name: this.last_name,\n org_name: this.org_name,\n phone: formattedPhone,\n timezone: localeData.timeZone,\n locale: localeData.locale,\n })\n .then(r => {\n console.log('[AUTH] Profile creation result', r);\n this.tempAuthEndpoint.setToken(r.access_token);\n // We can't clearForms because we need email to stick around\n this.password = '';\n this.phone = '';\n this.first_name = '';\n this.last_name = '';\n this.org_name = '';\n this.displayMode = 'verify';\n this.submitting = false;\n })\n .catch(e => {\n console.log('[AUTH] Signup error', e.response);\n this.submitting = false;\n this.authenticated?.emit({authenticated: false, profile: null, session: null});\n this.sdkError?.emit(new SDKError(e.message, e.response?.status, e.response?.data));\n\n VerdocsToast('Signup failed: ' + e.response?.data?.error || 'Unknown Error', {style: 'error'});\n });\n }\n\n async handleVerification() {\n this.submitting = true;\n\n try {\n this.submitting = false;\n const verificationResult = await verifyEmail(this.tempAuthEndpoint, {email: this.email, token: this.verificationCode});\n VerdocsToast('Thank you for verifying your email address.', {style: 'success'});\n this.completeLogin(verificationResult);\n } catch (e) {\n this.submitting = false;\n console.log('Verification error', e);\n VerdocsToast('Verification error, please check the code and try again.');\n }\n }\n\n completeLogin(result: IAuthenticateResponse) {\n this.clearForms();\n this.displayMode = 'login';\n this.tempAuthEndpoint.clearSession();\n this.endpoint.setToken(result.access_token);\n }\n\n async finishLogin(authResult: IAuthenticateResponse) {\n console.log('[AUTH] Authenticated, checking email verification');\n this.tempAuthEndpoint.setToken(authResult.access_token);\n\n const user = await getMyUser(this.tempAuthEndpoint);\n this.submitting = false;\n\n if (!user.email_verified) {\n console.log('[AUTH] Logged in, pending email address verification');\n this.displayMode = 'verify';\n } else {\n console.log('[AUTH] Email address is verified, completing login');\n this.completeLogin(authResult);\n }\n }\n\n async loginAndCheckVerification() {\n if (this.submitting) {\n return;\n }\n\n this.submitting = true;\n this.tempAuthEndpoint.clearSession();\n\n try {\n const authResult = await authenticate(this.tempAuthEndpoint, {username: this.email.trim(), password: this.password, grant_type: 'password'});\n await this.finishLogin(authResult);\n } catch (e) {\n if (isMFARequired(e)) {\n this.startMFA(e.response.data.mfa_token);\n return;\n }\n\n this.submitting = false;\n console.log('[AUTH] Auth failure', e.response?.data || e);\n VerdocsToast('Login failed. Please check your credentials and try again.', {style: 'error'});\n }\n }\n\n startMFA(token: string) {\n this.mfaToken = token;\n this.mfaCode = '';\n this.recoveryCode = '';\n this.useRecoveryCode = false;\n this.mfaError = '';\n this.submitting = false;\n this.mfaFocusPending = true;\n this.displayMode = 'mfa';\n }\n\n returnToLogin() {\n this.mfaToken = '';\n this.mfaCode = '';\n this.recoveryCode = '';\n this.useRecoveryCode = false;\n this.mfaError = '';\n this.password = '';\n this.submitting = false;\n this.displayMode = 'login';\n }\n\n handleMFAFailure(e: any) {\n this.submitting = false;\n this.mfaCode = '';\n this.recoveryCode = '';\n\n // Failed attempts require a fresh token\n if (isMFARequired(e)) {\n this.mfaToken = e.response.data.mfa_token;\n this.mfaError = MFA_CODE_ERROR;\n return;\n }\n\n if (e?.response?.status === 401) {\n this.returnToLogin();\n VerdocsToast('Your sign-in timed out. Enter your password again.', {style: 'error'});\n return;\n }\n\n this.mfaError = MFA_CODE_ERROR;\n }\n\n async submitMFA(code: string, isRecoveryCode: boolean) {\n if (this.submitting || !code) {\n return;\n }\n\n this.submitting = true;\n this.mfaError = '';\n this.tempAuthEndpoint.clearSession();\n\n try {\n const authResult = await authenticate(\n this.tempAuthEndpoint,\n isRecoveryCode\n ? {grant_type: 'urn:verdocs:params:oauth:grant-type:mfa-recovery-code', mfa_token: this.mfaToken, recovery_code: code}\n : {grant_type: 'urn:verdocs:params:oauth:grant-type:mfa-otp', mfa_token: this.mfaToken, otp: code},\n );\n await this.finishLogin(authResult);\n } catch (e) {\n this.handleMFAFailure(e);\n }\n }\n\n handleVerifyMFA() {\n this.submitMFA(this.useRecoveryCode ? this.recoveryCode : this.mfaCode, this.useRecoveryCode).catch(() => undefined);\n }\n\n handleMFACodeInput(target: HTMLInputElement) {\n const digits = (target.value || '').replace(/\\D/g, '').slice(0, 6);\n if (target.value !== digits) {\n target.value = digits;\n }\n this.mfaCode = digits;\n\n // Auto-submit once 6 digits are entered\n if (digits.length === 6) {\n this.submitMFA(digits, false).catch(() => undefined);\n }\n }\n\n handleRecoveryCodeInput(target: HTMLInputElement) {\n const formatted = formatRecoveryCode(target.value || '');\n if (target.value !== formatted) {\n target.value = formatted;\n }\n this.recoveryCode = formatted;\n }\n\n toggleRecoveryCode() {\n this.useRecoveryCode = !this.useRecoveryCode;\n this.mfaCode = '';\n this.recoveryCode = '';\n this.mfaError = '';\n this.mfaFocusPending = true;\n }\n\n handleSocialLogin(provider: TSocialLoginProvider) {\n try {\n const verifier = createCodeVerifier();\n const state = createCodeVerifier();\n\n createCodeChallenge(verifier)\n .then(codeChallenge => {\n const attempt: ISocialLoginAttempt = {verifier, state, provider};\n window.sessionStorage.setItem(SOCIAL_LOGIN_KEY, JSON.stringify(attempt));\n window.location.assign(getSocialLoginUrl(this.endpoint, provider, {returnUri: currentReturnUri(), codeChallenge, state}));\n })\n .catch(() => VerdocsToast(SOCIAL_START_ERROR, {style: 'error'}));\n } catch {\n VerdocsToast(SOCIAL_START_ERROR, {style: 'error'});\n }\n }\n\n handleSocialLoginReturn() {\n if (typeof window === 'undefined') {\n return;\n }\n\n const params = new URLSearchParams(window.location.search);\n const loginCode = params.get('login_code');\n const state = params.get('state');\n const error = params.get('error');\n\n if (!loginCode && !error) {\n return;\n }\n\n const attempt = readSocialLoginAttempt();\n\n // `error` doesn't give us the whole picture\n if (!loginCode && !attempt) {\n return;\n }\n\n clearSocialLoginAttempt();\n cleanSocialLoginParams(loginCode ? ['login_code', 'state'] : ['error']);\n\n if (error) {\n VerdocsToast(socialErrorMessage(error), {style: 'error'});\n return;\n }\n\n if (!attempt || attempt.state !== state) {\n VerdocsToast('Sign-in could not be verified. Try again.', {style: 'error'});\n return;\n }\n\n this.exchangeLoginCode(loginCode, attempt.verifier);\n }\n\n exchangeLoginCode(loginCode: string, codeVerifier: string) {\n this.submitting = true;\n this.tempAuthEndpoint.clearSession();\n\n authenticate(this.tempAuthEndpoint, {grant_type: 'urn:verdocs:params:oauth:grant-type:login-code', login_code: loginCode, code_verifier: codeVerifier})\n .then(authResult => this.finishLogin(authResult))\n .catch(e => {\n if (isMFARequired(e)) {\n this.startMFA(e.response.data.mfa_token);\n return;\n }\n\n this.submitting = false;\n console.log('[AUTH] Social login failure', e.response?.data || e);\n VerdocsToast('Sign-in failed. Please try again.', {style: 'error'});\n });\n }\n\n clearForms() {\n this.submitting = false;\n this.resendDisabled = false;\n this.mfaToken = '';\n this.mfaCode = '';\n this.recoveryCode = '';\n this.useRecoveryCode = false;\n this.mfaError = '';\n this.email = '';\n this.phone = '';\n this.password = '';\n this.newPassword = '';\n this.confirmpass = '';\n this.verificationCode = '';\n this.first_name = '';\n this.last_name = '';\n this.org_name = '';\n }\n\n handleLogout() {\n console.log('logging out');\n this.endpoint.clearSession();\n this.tempAuthEndpoint.clearSession();\n this.clearForms();\n this.displayMode = 'login';\n }\n\n handleResendVerification() {\n // Avoid the user just click-spamming this pathway. The server rate-limits this anyway so it's not a\n // security issue but it's a poor user experience to allow it.\n this.resendDisabled = true;\n this.resendDisabledTimer = setTimeout(() => {\n this.resendDisabled = false;\n this.resendDisabledTimer = null;\n }, 30000);\n\n resendVerification(this.tempAuthEndpoint)\n .then(r => {\n console.log('[AUTH] Verification request resent', r);\n VerdocsToast('Please check your email for a verification code.', {style: 'info'});\n })\n .catch((e: any) => {\n console.log('[AUTH] Unable to resend verification', e);\n VerdocsToast('Unable to resend code. Please try again later.', {style: 'error'});\n });\n }\n\n handleResendReset() {\n // Avoid the user just click-spamming this pathway. The server rate-limits this anyway so it's not a\n // security issue but it's a poor user experience to allow it.\n this.resendDisabled = true;\n this.resendDisabledTimer = setTimeout(() => {\n this.resendDisabled = false;\n this.resendDisabledTimer = null;\n }, 30000);\n\n resetPassword(this.tempAuthEndpoint, {email: this.email})\n .then(r => {\n console.log('[AUTH] Resend-code request resent', r);\n VerdocsToast('Please check your email again for a verification code.', {style: 'info'});\n })\n .catch((e: any) => {\n console.log('[AUTH] Unable to resend reset request', e);\n VerdocsToast('Unable to resend code. Please try again later.', {style: 'error'});\n });\n }\n\n async handleResetGetCode() {\n this.submitting = true;\n this.confirmpass = '';\n this.newPassword = '';\n\n try {\n this.submitting = false;\n const result = await resetPassword(this.endpoint, {email: this.email});\n console.log('[AUTH] Reset result', result);\n VerdocsToast('Please check your email inbox for a password reset code.', {style: 'success'});\n this.verificationCode = '';\n this.confirmpass = '';\n this.newPassword = '';\n this.displayMode = 'reset';\n } catch (e) {\n this.submitting = false;\n console.log('Reset request error', e);\n VerdocsToast('Request failed. Please check your email address and try again.');\n }\n }\n\n async handleResetPassword() {\n if (!this.isPasswordComplex(this.newPassword)) {\n VerdocsToast('Password must be at least 8 characters long and contain at least one uppercase, one lowercase, and one special character.', {style: 'error'});\n return;\n }\n\n if (this.newPassword !== this.confirmpass) {\n VerdocsToast('Passwords do not match.', {style: 'error'});\n return;\n }\n\n this.submitting = true;\n try {\n this.submitting = false;\n const resetResult = await resetPassword(this.endpoint, {email: this.email, code: this.verificationCode, new_password: this.newPassword});\n console.log('reset result', resetResult);\n VerdocsToast('Your password has been reset. You may now use your new password to login.', {style: 'success'});\n this.verificationCode = '';\n this.confirmpass = '';\n this.newPassword = '';\n this.password = '';\n this.displayMode = 'login';\n } catch (e) {\n this.submitting = false;\n console.log('Verification error', e);\n VerdocsToast('Verification error, please check the code and try again.');\n }\n }\n\n async handleReset() {\n this.submitting = true;\n\n try {\n const result = await resetPassword(this.endpoint, {email: this.email});\n console.log('[AUTH] Reset sent', result);\n this.submitting = false;\n this.displayMode = 'login';\n VerdocsToast('If your email address is registered, you will receive instructions on resetting your password shortly.', {style: 'info'});\n } catch (e) {\n console.log('[AUTH] Unable to reset password', e);\n this.submitting = false;\n VerdocsToast('Unable to reset password. Please check your email address and try again.', {style: 'error'});\n }\n }\n\n renderProviderButtons() {\n if (!this.showSocialLogins || (!this.providers.google && !this.providers.microsoft)) {\n return null;\n }\n\n return (\n <div class=\"providers\">\n {this.providers.google && (\n <verdocs-button\n label=\"Continue with Google\"\n variant=\"outline\"\n class=\"provider-google\"\n startIcon={GoogleIcon}\n disabled={this.submitting}\n onClick={() => this.handleSocialLogin('google')}\n />\n )}\n {this.providers.microsoft && (\n <verdocs-button\n label=\"Continue with Microsoft\"\n variant=\"outline\"\n class=\"provider-microsoft\"\n startIcon={MicrosoftIcon}\n disabled={this.submitting}\n onClick={() => this.handleSocialLogin('microsoft')}\n />\n )}\n\n <div class=\"divider\">\n <div class=\"divider-line\" />\n or\n <div class=\"divider-line\" />\n </div>\n </div>\n );\n }\n\n render() {\n if (!this.visible) {\n return <div style={{display: 'none'}}>Authenticated</div>;\n }\n\n if (this.session) {\n return (\n <verdocs-button\n label=\"Sign Out\"\n disabled={this.submitting}\n onClick={() => this.handleLogout()}\n style={{display: 'flex', justifyContent: 'center', margin: '30px auto 0'}}\n />\n );\n }\n\n if (this.displayMode === 'mfa') {\n const enteredCode = this.useRecoveryCode ? this.recoveryCode : this.mfaCode;\n const codeComplete = this.useRecoveryCode ? this.recoveryCode.replace('-', '').length === 8 : this.mfaCode.length === 6;\n\n return (\n <div class=\"form\">\n <a href=\"https://verdocs.com/en/\">\n <img src={this.logo} alt=\"Verdocs Logo\" class=\"logo\" />\n </a>\n\n <h3>Two-factor authentication</h3>\n\n <p>\n {this.useRecoveryCode\n ? 'Enter one of the backup codes you saved when you turned on multi-factor authentication.'\n : 'Enter the six-digit code from your authenticator app.'}\n </p>\n\n <form\n onSubmit={(e: Event) => {\n e.preventDefault();\n this.handleVerifyMFA();\n }}\n >\n {this.useRecoveryCode ? (\n <verdocs-text-input\n class=\"mfa-input\"\n label=\"Backup code\"\n placeholder=\"xxxx-xxxx\"\n autocomplete=\"one-time-code\"\n value={this.recoveryCode}\n onInput={(e: any) => this.handleRecoveryCodeInput(e.target)}\n disabled={this.submitting}\n />\n ) : (\n <verdocs-text-input\n class=\"mfa-input\"\n label=\"Authentication code\"\n autocomplete=\"one-time-code\"\n value={this.mfaCode}\n onInput={(e: any) => this.handleMFACodeInput(e.target)}\n disabled={this.submitting}\n />\n )}\n\n {this.mfaError && (\n <div role=\"alert\" class=\"mfa-error\">\n {this.mfaError}\n </div>\n )}\n\n <div class=\"buttons\">\n <verdocs-button label=\"Cancel\" variant=\"outline\" disabled={this.submitting} onClick={() => this.returnToLogin()} />\n <verdocs-button label=\"Verify\" disabled={this.submitting || !codeComplete || !enteredCode} onClick={() => this.handleVerifyMFA()} />\n </div>\n\n <div class=\"buttons\">\n <verdocs-button\n variant=\"text\"\n size=\"small\"\n label={this.useRecoveryCode ? 'Use your authenticator app instead' : 'Use a backup code instead'}\n disabled={this.submitting}\n onClick={() => this.toggleRecoveryCode()}\n />\n </div>\n </form>\n </div>\n );\n }\n\n if (this.displayMode === 'signup') {\n const invalid = this.submitting || !this.first_name || !this.last_name || !this.email || !this.password || !this.confirmpass || !this.org_name;\n\n return (\n <div class=\"form\">\n <a href=\"https://verdocs.com/en/\">\n <img src={this.logo} alt=\"Verdocs Logo\" class=\"logo\" />\n </a>\n\n <h3>Sign up for a free account</h3>\n <div class=\"already-have\">\n Already have an account?\n <verdocs-button label=\"Log In\" variant=\"text\" onClick={() => (this.displayMode = 'login')} disabled={this.submitting} />\n </div>\n\n {this.renderProviderButtons()}\n\n <form onSubmit={() => this.handleSignup()}>\n <div style={{display: 'flex', flexDirection: 'row', columnGap: '20px'}}>\n <verdocs-text-input\n label=\"First Name\"\n autocomplete=\"first\"\n required={true}\n value={this.first_name}\n onInput={(e: any) => (this.first_name = e.target.value)}\n disabled={this.submitting}\n />\n <verdocs-text-input\n label=\"Last Name\"\n autocomplete=\"last\"\n required={true}\n value={this.last_name}\n onInput={(e: any) => (this.last_name = e.target.value)}\n disabled={this.submitting}\n />\n </div>\n <verdocs-text-input\n label=\"Email Address\"\n autocomplete=\"email\"\n required={true}\n value={this.email}\n onInput={(e: any) => (this.email = e.target.value)}\n disabled={this.submitting}\n />\n <verdocs-text-input\n label=\"Password\"\n type=\"password\"\n required={true}\n autocomplete=\"new-password\"\n value={this.password}\n onInput={(e: any) => (this.password = e.target.value)}\n disabled={this.submitting}\n />\n <verdocs-text-input\n label=\"Confirm Password\"\n type=\"password\"\n required={true}\n autocomplete=\"off\"\n value={this.confirmpass}\n onInput={(e: any) => (this.confirmpass = e.target.value)}\n disabled={this.submitting}\n />\n <verdocs-text-input\n label=\"Phone Number\"\n type=\"tel\"\n required={true}\n autocomplete=\"phone\"\n value={this.phone}\n onInput={(e: any) => (this.phone = e.target.value)}\n disabled={this.submitting}\n />\n <verdocs-text-input\n label=\"Organization Name\"\n autocomplete=\"org\"\n required={true}\n value={this.org_name}\n onInput={(e: any) => (this.org_name = e.target.value)}\n disabled={this.submitting}\n style={{flex: '1'}}\n />\n\n <div class=\"service-agreement\">\n By clicking the Create Account button, you agree to the{' '}\n <a href=\"https://verdocs.com/eula\" target=\"_blank\">\n End User License Agreement\n </a>\n . Learn about how we use and protect your data and how you can opt-out in our{' '}\n <a href=\"https://verdocs.com/privacy-policy\" target=\"_blank\">\n Privacy Policy\n </a>\n .\n </div>\n\n <div style={{marginTop: '30px'}} />\n\n <verdocs-button\n label=\"Next\"\n disabled={invalid}\n onClick={invalid ? () => {} : () => this.handleSignup()}\n style={{display: 'flex', justifyContent: 'center', margin: '30px auto 0'}}\n />\n </form>\n </div>\n );\n }\n\n if (this.displayMode === 'verify') {\n return (\n <div class=\"form\">\n <form onSubmit={() => this.handleVerification()}>\n <p>Please check your e-mail inbox for a verification code and enter it below.</p>\n\n <verdocs-text-input\n label=\"Verification Code\"\n required={true}\n value={this.verificationCode}\n onInput={(e: any) => (this.verificationCode = e.target.value)}\n disabled={this.submitting}\n />\n\n <div class=\"buttons\">\n <verdocs-button label=\"Sign Out\" variant=\"outline\" disabled={this.submitting} onClick={() => this.handleLogout()} />\n <verdocs-button label=\"Verify\" disabled={this.submitting || !this.verificationCode || this.verificationCode.length !== 6} onClick={() => this.handleVerification()} />\n </div>\n <div class=\"buttons\">\n <verdocs-button variant=\"text\" label=\"Resend Code\" disabled={this.resendDisabled || this.submitting} onClick={() => this.handleResendVerification()} />\n </div>\n </form>\n </div>\n );\n }\n\n if (this.displayMode === 'forgot') {\n return (\n <div class=\"form\">\n <a href=\"https://verdocs.com/en/\">\n <img src={this.logo} alt=\"Verdocs Logo\" class=\"logo\" />\n </a>\n\n <h3>Forgot your password?</h3>\n\n <p>\n Enter your e-mail address below. If the e-mail address is valid, a password reset code will be sent to your inbox. Please allow up to 15 minutes to arrive, and check\n your spam folder if you do not receive the message.\n </p>\n\n <form onSubmit={() => this.handleResetGetCode()}>\n <verdocs-text-input\n label=\"Email Address\"\n autocomplete=\"email\"\n required={true}\n value={this.email}\n onInput={(e: any) => (this.email = e.target.value)}\n disabled={this.submitting}\n />\n\n <div style={{marginTop: '30px'}} />\n\n <div class=\"buttons\">\n <verdocs-button size=\"small\" label=\"Cancel\" variant=\"outline\" disabled={this.submitting} onClick={() => (this.displayMode = 'login')} />\n <verdocs-button size=\"small\" label=\"Request Code\" disabled={this.submitting} onClick={() => this.handleResetGetCode()} />\n </div>\n </form>\n </div>\n );\n }\n\n if (this.displayMode === 'reset') {\n return (\n <div class=\"form\">\n <a href=\"https://verdocs.com/en/\">\n <img src={this.logo} alt=\"Verdocs Logo\" class=\"logo\" />\n </a>\n\n <h3>Forgot your password?</h3>\n\n <p>\n Enter your e-mail address below, and reset instructions will be sent to your Inbox. Please allow up to 15 minutes to arrive. Check your spam folder if you do not\n receive the message.\n </p>\n\n <form onSubmit={() => this.handleResetPassword()}>\n <verdocs-text-input\n label=\"Verification Code\"\n required={true}\n value={this.verificationCode}\n onInput={(e: any) => (this.verificationCode = e.target.value)}\n disabled={this.submitting}\n />\n <verdocs-text-input\n label=\"Password\"\n type=\"password\"\n required={true}\n autocomplete=\"off\"\n value={this.newPassword}\n onInput={(e: any) => (this.newPassword = e.target.value)}\n disabled={this.submitting}\n />\n <verdocs-text-input\n label=\"Confirm Password\"\n type=\"password\"\n required={true}\n autocomplete=\"off\"\n value={this.confirmpass}\n onInput={(e: any) => (this.confirmpass = e.target.value)}\n disabled={this.submitting}\n />\n\n <div style={{marginTop: '30px'}} />\n\n <div class=\"buttons\">\n <verdocs-button label=\"Cancel\" variant=\"outline\" disabled={this.submitting} onClick={() => (this.displayMode = 'login')} />\n <verdocs-button label=\"Reset\" disabled={this.submitting} onClick={() => this.handleResetPassword()} />\n </div>\n\n <div class=\"buttons\">\n <verdocs-button variant=\"text\" label=\"Resend Code\" disabled={this.resendDisabled || this.submitting} onClick={() => this.handleResendReset()} />\n </div>\n </form>\n </div>\n );\n }\n\n return (\n <div class=\"form\">\n <a href=\"https://verdocs.com/en/\">\n <img src={this.logo} alt=\"Verdocs Logo\" class=\"logo\" />\n </a>\n\n <h3>Log in to your account</h3>\n\n {this.renderProviderButtons()}\n\n <form onSubmit={() => this.loginAndCheckVerification()}>\n <verdocs-text-input label=\"Email\" autocomplete=\"username\" value={this.email} onInput={(e: any) => (this.email = e.target.value)} disabled={this.submitting} />\n <verdocs-text-input\n label=\"Password\"\n type=\"password\"\n autocomplete=\"current-password\"\n value={this.password}\n onInput={(e: any) => (this.password = e.target.value)}\n disabled={this.submitting}\n />\n\n <verdocs-button\n label=\"Forgot Your Password?\"\n variant=\"text\"\n onClick={() => (this.displayMode = 'forgot')}\n disabled={this.submitting}\n style={{display: 'flex', justifyContent: 'center', margin: '0 auto 20px'}}\n />\n\n <verdocs-button\n label=\"Login\"\n disabled={this.submitting}\n onClick={() => this.loginAndCheckVerification()}\n style={{display: 'flex', justifyContent: 'center', margin: '10px auto 0'}}\n />\n\n <verdocs-button\n label=\"Sign Up\"\n variant=\"outline\"\n disabled={this.submitting}\n onClick={() => (this.displayMode = 'signup')}\n style={{display: 'flex', justifyContent: 'center', margin: '10px auto 0'}}\n />\n </form>\n </div>\n );\n }\n}\n"],"version":3}
@@ -60,10 +60,8 @@ const VerdocsContactPicker = class {
60
60
  this.auth_methods = this.templateRole.auth_methods || [];
61
61
  this.passcode = this.templateRole.passcode || '';
62
62
  }
63
- // Entitlements only gate the OPTIONAL methods (SMS, KBA, ID). Passcode and Email are always
64
- // offered, so a failure here must not block them: without this catch the await rejects,
65
- // authMethodsLoading stays true forever, and the user sees a spinner where every verification
66
- // option should be. Degrade to "no optional entitlements" instead.
63
+ // Entitlements only gate optional methods like KBA. We need error handling here in case the getActiveEntitlements
64
+ // call fails or we stay loading forever.
67
65
  this.activeEntitlements = await jsSdk.getActiveEntitlements(this.endpoint).catch(e => {
68
66
  console.warn('[CONTACT PICKER] Unable to load entitlements, continuing with base auth methods only', e);
69
67
  return {};
@@ -137,46 +135,46 @@ const VerdocsContactPicker = class {
137
135
  if (!!this.activeEntitlements.id_auth) {
138
136
  verificationOptions.push({ label: 'ID Check', value: 'id' });
139
137
  }
140
- return (index.h("form", { key: '70e2a9e4eb9e9da4bd9f491648d81fd30f9a34a6', onSubmit: e => e.preventDefault(),
138
+ return (index.h("form", { key: '6709871235915b9c57af981cb4ab8560c040c29f', onSubmit: e => e.preventDefault(),
141
139
  // onClick={e => e.stopPropagation()}
142
- autocomplete: "off" }, index.h("div", { key: '9134b3e8bcd2c59f8773ad3db7bdd04d52d9cbf7', class: "row" }, index.h("label", { key: '455c784b89b96afddb46dcde9bd760e3b36c890d', htmlFor: this.firstNameFieldId }, "Name:"), index.h("div", { key: '802e5786743df37c017f6aab4061b01db4207988', class: "names-row" }, index.h("input", { key: '5ee405fd8487c8f2539ede7ccf26e76bb96c3932', id: this.firstNameFieldId, name: this.firstNameFieldId, type: "text", "data-lpignore": "true", autocomplete: "blocked", "aria-autocomplete": "none", value: this.first_name, placeholder: "First...", onFocus: () => {
140
+ autocomplete: "off" }, index.h("div", { key: 'b4792f8bf7a38bd1eca0a684da63e06607b29d4a', class: "row" }, index.h("label", { key: '75f1386774dcf2dba1ae074e2ef86b9d04525763', htmlFor: this.firstNameFieldId }, "Name:"), index.h("div", { key: '36916fdd64584ef209620a6311c4db381e55ea82', class: "names-row" }, index.h("input", { key: '8ab3867864dad6e2726a09666e8c3334f6bbc713', id: this.firstNameFieldId, name: this.firstNameFieldId, type: "text", "data-lpignore": "true", autocomplete: "blocked", "aria-autocomplete": "none", value: this.first_name, placeholder: "First...", onFocus: () => {
143
141
  // Give the blur event a chance to hide it first if going between first/last
144
142
  setTimeout(() => {
145
143
  var _a;
146
144
  this.showSuggestions = ((_a = this.contactSuggestions) === null || _a === void 0 ? void 0 : _a.length) > 0;
147
145
  }, 100);
148
- }, onInput: e => this.handleFirstNameChange(e) }), index.h("input", { key: '2de6301b850c7d0986b0418bbb737b0f9e04849f', id: this.lastNameFieldId, name: this.lastNameFieldId, type: "text", "data-lpignore": "true", autocomplete: "blocked", "aria-autocomplete": "none", value: this.last_name, placeholder: "Last...", onFocus: () => {
146
+ }, onInput: e => this.handleFirstNameChange(e) }), index.h("input", { key: '000acb6f26cfa8a78105b211df519ef3851dc474', id: this.lastNameFieldId, name: this.lastNameFieldId, type: "text", "data-lpignore": "true", autocomplete: "blocked", "aria-autocomplete": "none", value: this.last_name, placeholder: "Last...", onFocus: () => {
149
147
  // Give the blur event a chance to hide it first if going between first/last
150
148
  setTimeout(() => {
151
149
  var _a;
152
150
  this.showSuggestions = ((_a = this.contactSuggestions) === null || _a === void 0 ? void 0 : _a.length) > 0;
153
151
  }, 100);
154
- }, onInput: e => this.handleLastNameChange(e) })), this.showSuggestions && (index.h("verdocs-portal", { key: '39c6ccb8a231fe9e01fbd99aebc3e7625dfeef17', anchor: this.firstNameFieldId, onClickAway: () => {
152
+ }, onInput: e => this.handleLastNameChange(e) })), this.showSuggestions && (index.h("verdocs-portal", { key: '4e9c8ee57f464fcf09578430e1fe09981e87bafc', anchor: this.firstNameFieldId, onClickAway: () => {
155
153
  this.showSuggestions = false;
156
154
  document.querySelectorAll(`.verdocs-portal-wrapper`).forEach(el => el.remove());
157
- }, id: "verdocs-contact-picker-suggestions" }, index.h("div", { key: 'bbabbff5428faeb5cef999f422d441d3e66fdf62', class: "dropdown" }, this.contactSuggestions
155
+ }, id: "verdocs-contact-picker-suggestions" }, index.h("div", { key: '5cbf60f0f1186f318f686ef6bdc8d791072e4d41', class: "dropdown" }, this.contactSuggestions
158
156
  .filter(suggestion => { var _a; return !this.first_name || ((_a = suggestion.first_name) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(this.first_name.toLowerCase())); })
159
157
  .map(suggestion => {
160
158
  var _a;
161
159
  return (index.h("div", { key: (_a = suggestion.id) !== null && _a !== void 0 ? _a : suggestion.email, class: "suggestion", onClick: e => this.handleSelectSuggestion(e, suggestion) }, suggestion.picture ? index.h("img", { alt: "Avatar", class: "avatar", src: suggestion.picture }) : index.h("div", { class: "avatar", innerHTML: addrBookIcon }), index.h("div", { class: "details" }, index.h("div", { class: "name" }, jsSdk.formatFullName(suggestion)), suggestion.email && index.h("div", { class: "destination" }, suggestion.email), suggestion.phone && index.h("div", { class: "destination" }, suggestion.phone))));
162
- }))))), index.h("div", { key: '31c843f59d029535c1006c682f76d8b18f885dc3', class: "row" }, index.h("label", { key: '540a430d827ec0b44fc2d56d4f2cb5938d663236', htmlFor: this.emailFieldId }, "Email:"), index.h("input", { key: '055b0ecaee8f361a4f222cbaeedcdcfbf536a5cb', id: this.emailFieldId, name: this.emailFieldId, type: "text", "data-lpignore": "true", autoComplete: "blocked", "aria-autocomplete": "none", value: this.email, placeholder: "Invite/verify via email...", onFocus: () => (this.showSuggestions = false), onInput: (e) => (this.email = e.target.value) })), hasSMSAuth && (index.h("div", { key: 'b9c6dd3118c6eba736add88b35e68ff79715e44d', class: "row" }, index.h("label", { key: 'ff687e318625a8cde98b208bf72b111d48659acc', htmlFor: this.phoneFieldId }, "Phone:"), index.h("input", { key: '3c6f09760be62cedde15b43a1d34bbd8c2960600', id: this.phoneFieldId, name: this.phoneFieldId, type: "text", "data-lpignore": "true", autoComplete: "blocked", "aria-autocomplete": "none", value: this.phone, placeholder: "Invite/verify via SMS...", onFocus: () => (this.showSuggestions = false), onInput: (e) => {
160
+ }))))), index.h("div", { key: '3d6aaa5e5bd3f0bc5681c4b788f222b6dfb45584', class: "row" }, index.h("label", { key: '67e9b6d47602d8c455a46e47b94bf008d2ac3a4e', htmlFor: this.emailFieldId }, "Email:"), index.h("input", { key: 'b65569322f9a9864fe82ac3371ffcf4e769b69f1', id: this.emailFieldId, name: this.emailFieldId, type: "text", "data-lpignore": "true", autoComplete: "blocked", "aria-autocomplete": "none", value: this.email, placeholder: "Invite/verify via email...", onFocus: () => (this.showSuggestions = false), onInput: (e) => (this.email = e.target.value) })), hasSMSAuth && (index.h("div", { key: 'defed17223c457db6eea0aff5c13598a70882157', class: "row" }, index.h("label", { key: '7a06bd13e92cd70c51f23228bbe4ed5be59919bb', htmlFor: this.phoneFieldId }, "Phone:"), index.h("input", { key: '770012fd3d838449afa88309f7b003c600e10a1c', id: this.phoneFieldId, name: this.phoneFieldId, type: "text", "data-lpignore": "true", autoComplete: "blocked", "aria-autocomplete": "none", value: this.phone, placeholder: "Invite/verify via SMS...", onFocus: () => (this.showSuggestions = false), onInput: (e) => {
163
161
  this.phone = utils.convertToE164(e.target.value);
164
- } }))), index.h(index.Fragment, { key: '2b652dbfb48a4b0360c2b6e536158492ef06125b' }, verificationOptions.length > 0 && (index.h("div", { key: '589c42562ec9e834680969803d747f6e94d00ec2', class: "row pin-code" }, index.h("label", { key: '189c3562f5e0ed7599a816d0300b5fe3c96741cb' }, "Verification Methods:"), this.authMethodsLoading ? (index.h("verdocs-spinner", { size: 10, mode: "dark", style: { margin: 'auto' } })) : (index.h("div", null, verificationOptions.map((option, i) => (index.h("div", { class: "option" }, index.h("verdocs-checkbox", { size: "small", id: `verdocs-multi-select-opt-${i}`, value: option.value, checked: this.auth_methods.includes(option.value), onInput: (e) => {
162
+ } }))), index.h(index.Fragment, { key: 'e0071e7e2fb5521685c8863dab279f31089bf20e' }, verificationOptions.length > 0 && (index.h("div", { key: '7f769fdb13d206c769b813eef2c68e810bc635f3', class: "row pin-code" }, index.h("label", { key: '4ebf33f0821f3b1f2a63ac918d3d2923b8f38e38' }, "Verification Methods:"), this.authMethodsLoading ? (index.h("verdocs-spinner", { size: 10, mode: "dark", style: { margin: 'auto' } })) : (index.h("div", null, verificationOptions.map((option, i) => (index.h("div", { class: "option" }, index.h("verdocs-checkbox", { size: "small", id: `verdocs-multi-select-opt-${i}`, value: option.value, checked: this.auth_methods.includes(option.value), onInput: (e) => {
165
163
  if (e.target.checked) {
166
164
  this.auth_methods = [...this.auth_methods, option.value];
167
165
  }
168
166
  else {
169
167
  this.auth_methods = this.auth_methods.filter(selected => selected !== option.value);
170
168
  }
171
- } }), index.h("label", { htmlFor: `verdocs-multi-select-option-${i}` }, option.label)))))))), this.auth_methods.includes('passcode') && (index.h("div", { key: '6e12581d825a0c8089e20015d1d96fb6a182cdb5', class: "row pin-code" }, index.h("label", { key: 'e728bc75adcf8f8a322628c1a38f612d3dd2d2dc', htmlFor: this.phoneFieldId }, "Passcode:"), index.h("input", { key: '59afa58c6563d4fa9a1cb7e65409370fb685d1db', id: "verdocs-passcode", name: "verdocs-passcode", type: "text", "data-lpignore": "true", autocomplete: "blocked", "aria-autocomplete": "none", value: this.passcode, placeholder: "4-8 digits recommended...", onFocus: () => (this.showSuggestions = false), onInput: (e) => (this.passcode = e.target.value) })))), index.h("div", { key: 'eca3f9921286dba2e5d3ba02f0b886e3d179a23f', class: "row pin-code" }, index.h("label", { key: '04e26414864324205e2ee71173aac15b46350b7e', style: { marginTop: '6px' } }, "Options:"), index.h("div", { key: 'f8df70196098a3462df02933d7d7c51cac5c856b' }, index.h("div", { key: '09f4d4f88a355d19ae560203020c9639fe88280e', class: "option" }, index.h("verdocs-checkbox", { key: 'e71d71be949fc96c1c074dcbb58ff121c4c3fd05', size: "small", id: "verdocs-delegator", checked: this.delegator, disabled: this.name_locked, onInput: (e) => {
169
+ } }), index.h("label", { htmlFor: `verdocs-multi-select-option-${i}` }, option.label)))))))), this.auth_methods.includes('passcode') && (index.h("div", { key: '79feab0e29cbfbbb825f285a995d21576732bb8a', class: "row pin-code" }, index.h("label", { key: '7fd8dd8c3f254e9d6eba0e657f3a02f0fd47b05e', htmlFor: this.phoneFieldId }, "Passcode:"), index.h("input", { key: 'a9d0055ca2669776bc465ed4d7a1ce414bb628a4', id: "verdocs-passcode", name: "verdocs-passcode", type: "text", "data-lpignore": "true", autocomplete: "blocked", "aria-autocomplete": "none", value: this.passcode, placeholder: "4-8 digits recommended...", onFocus: () => (this.showSuggestions = false), onInput: (e) => (this.passcode = e.target.value) })))), index.h("div", { key: '71101e3ae9adab93ffde79f43431ab91657df8cd', class: "row pin-code" }, index.h("label", { key: '312a0dafe35171d1ebc61e62f868e2fdcd8a8e8d', style: { marginTop: '6px' } }, "Options:"), index.h("div", { key: '38341490838ffe88ee03800e886d46b163f1d21a' }, index.h("div", { key: '68fbb6b02029ba082da5db49687989e2d0228235', class: "option" }, index.h("verdocs-checkbox", { key: '57c933a6ebc171d8a0c86452ff26504270175463', size: "small", id: "verdocs-delegator", checked: this.delegator, disabled: this.name_locked, onInput: (e) => {
172
170
  this.delegator = e.target.checked;
173
171
  if (this.delegator)
174
172
  this.name_locked = false;
175
- } }), index.h("label", { key: 'b83381a0c733b2fc19502ee1fb64462c77eb20f2', htmlFor: "verdocs-delegator" }, "May delegate signing")), index.h("div", { key: 'd3f59732383cded91c3c9d0431001ce27b1998b8', class: "option" }, index.h("verdocs-checkbox", { key: '9c0acbf0601728bf4498e2fe3c89232ee4e9448c', size: "small", id: "verdocs-name-locked", checked: this.name_locked, disabled: this.delegator, onInput: (e) => {
173
+ } }), index.h("label", { key: '8d4bbaef0ca5cea8100777fa37d520f1bd5a1d1e', htmlFor: "verdocs-delegator" }, "May delegate signing")), index.h("div", { key: 'd1278133af51917475ae1778c28da315072ca4a6', class: "option" }, index.h("verdocs-checkbox", { key: '32f6401902c5f850f52c58fb06def2d16fc65e99', size: "small", id: "verdocs-name-locked", checked: this.name_locked, disabled: this.delegator, onInput: (e) => {
176
174
  this.name_locked = e.target.checked;
177
175
  if (this.name_locked)
178
176
  this.delegator = false;
179
- } }), index.h("label", { key: 'df906c6274917b04c471aa00eedf8fad9b9c15a1', htmlFor: "verdocs-name-locked" }, "Name locked")))), index.h("div", { key: '74e5e6004872803e50c315540c6dc66957d6b9b0', class: "row message" }, index.h("label", { key: '36557fd5a7ccd14cd5fae192bf3bfaaf9f39c136', htmlFor: "verdocs-contact-picker-message" }, "Message:"), index.h("textarea", { key: 'c362c8a6b1953330f128bfc5083749060d17727c', id: "verdocs-contact-picker-message", name: "verdocs-contact-picker-message", "data-lpignore": "true", autocomplete: "blocked", placeholder: "Optional message to include in invitation...", onFocus: () => (this.showSuggestions = false), onInput: (e) => (this.message = e.target.value) }, this.message)), index.h("div", { key: '8864df6dba12af9cc9e476398368f3482ab4982f', class: "buttons" }, index.h("div", { key: 'f09409d3f75a7f04dcb4a93189d098dbc68177c4', class: "flex-fill" }), index.h("verdocs-button", { key: '17a564f49e64ec50a3ef201e0aa5b662ab0f0522', variant: "outline", label: "Cancel", size: "small", onClick: e => this.handleCancel(e) }), index.h("verdocs-button", { key: 'c731fb4642166fc0b682894cb71f4e41fe7b48e7', label: "OK", size: "small", disabled: !canSubmit, onClick: !canSubmit ? () => { } : e => this.handleSubmit(e) }))));
177
+ } }), index.h("label", { key: '82d3cb3a2c48c66e8dd4bf917e35ed85327d994d', htmlFor: "verdocs-name-locked" }, "Name locked")))), index.h("div", { key: '01f4e93445daee8493eb67f41640865753db54bb', class: "row message" }, index.h("label", { key: '499b65b9368abe5f355ece31825fdd6b92905b55', htmlFor: "verdocs-contact-picker-message" }, "Message:"), index.h("textarea", { key: '817c16d982edb9af18f8ebee829ed77068d431b5', id: "verdocs-contact-picker-message", name: "verdocs-contact-picker-message", "data-lpignore": "true", autocomplete: "blocked", placeholder: "Optional message to include in invitation...", onFocus: () => (this.showSuggestions = false), onInput: (e) => (this.message = e.target.value) }, this.message)), index.h("div", { key: '044a45c3a9ba57334c6e10f12e0b1f19ce5c3403', class: "buttons" }, index.h("div", { key: '6aa3536c73eef3852f7d483deee3773413167f5d', class: "flex-fill" }), index.h("verdocs-button", { key: '7dc65ba7bcb927c9822cc19d00b3a74278db8688', variant: "outline", label: "Cancel", size: "small", onClick: e => this.handleCancel(e) }), index.h("verdocs-button", { key: '7f3434aa2547d87ad2a54610374bec0511aa7940', label: "OK", size: "small", disabled: !canSubmit, onClick: !canSubmit ? () => { } : e => this.handleSubmit(e) }))));
180
178
  }
181
179
  };
182
180
  VerdocsContactPicker.style = verdocsContactPickerCss();
@@ -1 +1 @@
1
- {"file":"verdocs-contact-picker.cjs.entry.js","mappings":"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","names":["VerdocsEndpoint","formatFullName","getActiveEntitlements","isValidEmail","h","convertToE164","Fragment"],"sources":["src/components/envelopes/verdocs-contact-picker/verdocs-contact-picker.scss?tag=verdocs-contact-picker","src/components/envelopes/verdocs-contact-picker/verdocs-contact-picker.tsx"],"sourcesContent":["@import '../../../theme.scss';\n\nverdocs-contact-picker {\n display: block;\n border: 1px solid #ebebeb;\n background-color: $verdocs-grey-4;\n font-family: $verdocs-primary-font;\n box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.1);\n\n form {\n gap: 12px;\n width: 300px;\n padding: 12px;\n display: flex;\n flex-direction: column;\n background-color: $verdocs-grey-3;\n\n .row {\n gap: 8px;\n display: flex;\n position: relative;\n flex-direction: row;\n align-items: flex-start;\n\n .option {\n gap: 4px;\n display: flex;\n padding: 5px 8px;\n align-items: center;\n flex-direction: row;\n text-wrap: nowrap;\n }\n }\n\n .names-row {\n gap: 8px;\n display: flex;\n flex-direction: row;\n\n > input {\n font-size: 14px;\n width: 88px;\n }\n }\n\n .pin-code {\n gap: 8px;\n display: flex;\n align-items: flex-start;\n flex-direction: row;\n\n > input {\n flex: 0 0 197px;\n font-size: 14px;\n //margin-left: 88px;\n }\n }\n\n .address {\n gap: 8px;\n display: flex;\n align-items: center;\n flex-direction: row;\n\n > input {\n flex: 1;\n font-size: 14px;\n //margin-left: 88px;\n }\n }\n\n .zip-code {\n gap: 8px;\n display: flex;\n align-items: center;\n flex-direction: row;\n\n > input {\n flex: 1;\n font-size: 14px;\n //margin-left: 88px;\n }\n }\n\n label {\n display: flex;\n flex: 0 0 80px;\n font-size: 13px;\n font-weight: 500;\n color: $verdocs-bg-4;\n }\n\n .row.message textarea {\n width: 100%;\n padding: 5px 7px;\n border-radius: 4px;\n font-family: $verdocs-primary-font;\n }\n\n input {\n flex: 1;\n padding: 6px;\n font-size: 14px;\n border-radius: 3px;\n //background: #00000005;\n border: 1px solid $border-color-extralight;\n\n &:focus {\n outline: none;\n }\n }\n }\n\n .buttons {\n display: flex;\n column-gap: 6px;\n margin-top: 16px;\n flex-direction: row;\n\n .flex-fill {\n flex: 1;\n }\n }\n\n ::placeholder {\n color: $verdocs-bg-2;\n }\n\n // @see https://community.logmein.com/t5/LastPass-Support-Discussions/placeholder-text-overrides-data-lpignore-quot-true-quot/td-p/295135\n // LastPass is ignoring the data-lpignore attribute in some cases\n [data-lastpass-icon-root] {\n display: none !important;\n }\n}\n\n#verdocs-contact-picker-suggestions {\n .dropdown {\n max-height: 225px;\n overflow-y: scroll;\n background: #ffffff;\n font-family: $verdocs-primary-font;\n box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.1);\n\n .suggestion {\n display: flex;\n padding: 6px 12px;\n align-items: center;\n flex-direction: row;\n\n svg {\n width: 32px;\n height: 32px;\n }\n\n .avatar {\n width: 32px;\n height: 32px;\n flex: 0 0 32px;\n margin-right: 8px;\n border-radius: 100%;\n }\n\n .details {\n display: flex;\n flex-direction: column;\n }\n\n .name {\n font-size: 16px;\n font-weight: 500;\n margin-bottom: 3px;\n color: $verdocs-grey-0;\n }\n\n .destination {\n font-size: 14px;\n margin-bottom: 3px;\n color: $verdocs-grey-1;\n }\n\n &:hover {\n background: #eee;\n cursor: pointer;\n }\n }\n }\n}\n","import {Component, h, Event, EventEmitter, Fragment, Prop, State} from '@stencil/core';\nimport {formatFullName, getActiveEntitlements, IEntitlement, IProfile, IRecipient, isValidEmail, TEntitlement, TRecipientAuthMethod, VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {convertToE164} from '../../../utils/utils';\n\nconst addrBookIcon = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-book-user\"><path d=\"M15 13a3 3 0 1 0-6 0\"/><path d=\"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\"/><circle cx=\"12\" cy=\"8\" r=\"2\"/></svg>`;\n\nexport interface IContactSearchEvent {\n query: string;\n}\n\nexport interface IContactSelectEvent {\n first_name: string;\n last_name: string;\n email: string;\n phone: string;\n message: string;\n delegator: boolean;\n name_locked: boolean;\n auth_methods: TRecipientAuthMethod[];\n passcode: string;\n address: string;\n zip: string;\n}\n\nexport type TPickerContact = Partial<IProfile>;\n\n/**\n * Display a contact picker suitable for filling out Recipient objects when sending Envelopes.\n *\n * This picker can also be integrated with a backend to provide contact list / suggestion / address-book style behavior. As the\n * user interacts with the component, the text entered in the name fields is sent back to the parent via the `searchContacts` event.\n * The parent can use that text as a query string to call a backend to obtain appropriate contacts to show. This list may also be\n * hard-coded ahead of time to provide the user with smart suggestions on initial display, such as \"Recently Used\" contacts, or\n * to always display the user's own contact record.\n *\n * ```ts\n * <verdocs-contact-picker\n * templateRole={role}\n * contactSuggestions={[]}\n * onNext={e => console.log('Contact completed', e.detail)}\n * />\n * ```\n */\n@Component({\n tag: 'verdocs-contact-picker',\n styleUrl: 'verdocs-contact-picker.scss',\n shadow: false,\n})\nexport class VerdocsContactPicker {\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The role that this contact will be assigned to.\n */\n @Prop() templateRole: Partial<IRecipient> | null = null;\n\n /**\n * If set, suggestions will be displayed in a drop-down list to the user. It is recommended that the number\n * of suggestions be limited to the 5 best matching records.\n */\n @Prop() contactSuggestions: TPickerContact[] = [];\n\n /**\n * Event fired when the user enters text in the search field. The calling application may use this to update\n * the `contactSuggestions` property.\n */\n @Event({composed: true}) searchContacts: EventEmitter<IContactSearchEvent>;\n\n /**\n * Event fired when the step is cancelled. This is called exit to avoid conflicts with the JS-reserved \"cancel\" event name.\n */\n @Event({composed: true}) exit: EventEmitter;\n\n /**\n * Event fired when the user changes the type.\n */\n @Event({composed: true}) next: EventEmitter<IContactSelectEvent>;\n\n @State() first_name: string;\n @State() last_name: string;\n @State() email: string;\n @State() phone: string;\n @State() zip: string;\n @State() address: string;\n @State() message: string;\n @State() showSuggestions: boolean = false;\n @State() showMessage: boolean = false;\n @State() delegator: boolean = false;\n @State() name_locked: boolean = false;\n @State() auth_methods: TRecipientAuthMethod[] = [];\n @State() passcode: string = '';\n\n @State() firstNameFieldId = `verdocs-contact-picker-firstname-${Math.random().toString(36).substring(2, 11)}`;\n @State() lastNameFieldId = `verdocs-contact-picker-lastname-${Math.random().toString(36).substring(2, 11)}`;\n @State() emailFieldId = `verdocs-contact-picker-email-${Math.random().toString(36).substring(2, 11)}`;\n @State() phoneFieldId = `verdocs-contact-picker-phone-${Math.random().toString(36).substring(2, 11)}`;\n\n @State() activeEntitlements: Partial<Record<TEntitlement, IEntitlement>> = {};\n @State() authMethodsLoading: boolean = true\n\n async componentWillLoad() {\n this.endpoint.loadSession();\n\n if (this.templateRole) {\n const fullName = formatFullName(this.templateRole);\n const nameComponents = fullName.split(' ');\n const firstName = this.templateRole.first_name || nameComponents.shift() || '';\n const lastName = this.templateRole.last_name || nameComponents.join(' ') || '';\n this.first_name = firstName;\n this.last_name = lastName;\n\n this.email = this.templateRole.email || '';\n this.phone = this.templateRole.phone || '';\n // delegator and name_locked are mutually exclusive; delegator takes precedence if both are somehow set\n this.delegator = this.templateRole.delegator || false;\n this.name_locked = this.delegator ? false : (this.templateRole.name_locked || false);\n this.message = this.templateRole.message || '';\n this.showMessage = this.message !== '';\n this.auth_methods = this.templateRole.auth_methods || [];\n this.passcode = this.templateRole.passcode || '';\n }\n\n // Entitlements only gate the OPTIONAL methods (SMS, KBA, ID). Passcode and Email are always\n // offered, so a failure here must not block them: without this catch the await rejects,\n // authMethodsLoading stays true forever, and the user sees a spinner where every verification\n // option should be. Degrade to \"no optional entitlements\" instead.\n this.activeEntitlements = await getActiveEntitlements(this.endpoint).catch(e => {\n console.warn('[CONTACT PICKER] Unable to load entitlements, continuing with base auth methods only', e);\n return {} as Partial<Record<TEntitlement, IEntitlement>>;\n });\n this.authMethodsLoading = false;\n console.log('[CONTACT PICKER] Loaded entitlements', this.activeEntitlements);\n }\n\n handleFirstNameChange(e: any) {\n this.first_name = e.target.value;\n this.searchContacts?.emit({query: this.first_name});\n }\n\n handleLastNameChange(e: any) {\n this.last_name = e.target.value;\n this.searchContacts?.emit({query: this.last_name});\n }\n\n handleCancel(e: any) {\n e.stopPropagation();\n this.showSuggestions = false;\n this.exit?.emit();\n }\n\n handleSubmit(e: any) {\n e.stopPropagation();\n\n this.showSuggestions = false;\n this.next?.emit({\n first_name: this.first_name,\n last_name: this.last_name,\n email: this.email,\n phone: this.phone,\n message: this.message,\n delegator: this.delegator,\n name_locked: this.name_locked,\n auth_methods: this.auth_methods,\n passcode: this.passcode,\n address: this.address,\n zip: this.zip,\n });\n }\n\n handleSelectSuggestion(e: any, suggestion: TPickerContact) {\n e.stopPropagation();\n\n this.first_name = suggestion.first_name;\n this.last_name = suggestion.last_name;\n this.email = suggestion.email;\n this.phone = suggestion.phone;\n this.showSuggestions = false;\n }\n\n // The reason for the random names/IDs is to disable browser autocomplete. We set the autocomplete tags but many browsers ignore them\n // and show a duplicate autocomplete picker on top of our own.\n render() {\n // const hasBasics = this.first_name && this.last_name && (isValidEmail(this.email) || isValidPhone(this.phone));\n const hasBasics = this.first_name && this.last_name && isValidEmail(this.email);\n const hasAuthRequirements =\n !this.auth_methods.length ||\n (this.auth_methods.includes('passcode') && !!this.passcode) ||\n (this.auth_methods.includes('kba') && !!this.first_name && !!this.last_name) ||\n (this.auth_methods.includes('email') && !!this.email) ||\n (this.auth_methods.includes('sms') && !!this.phone);\n const canSubmit = hasBasics && hasAuthRequirements;\n const hasSMSAuth = !!this.activeEntitlements.sms_auth\n\n const verificationOptions = [];\n\n verificationOptions.push({label: 'Passcode', value: 'passcode'});\n verificationOptions.push({label: 'Email', value: 'email'});\n\n if (hasSMSAuth) {\n verificationOptions.push({label: 'SMS (One-Time Code)', value: 'sms'});\n }\n\n if (!!this.activeEntitlements.kba_auth) {\n verificationOptions.push({label: 'Knowledge-Based (KBA)', value: 'kba'});\n }\n\n if (!!this.activeEntitlements.id_auth) {\n verificationOptions.push({label: 'ID Check', value: 'id'});\n }\n\n return (\n <form\n onSubmit={e => e.preventDefault()}\n // onClick={e => e.stopPropagation()}\n autocomplete=\"off\"\n >\n <div class=\"row\">\n <label htmlFor={this.firstNameFieldId}>Name:</label>\n <div class=\"names-row\">\n <input\n id={this.firstNameFieldId}\n name={this.firstNameFieldId}\n type=\"text\"\n data-lpignore=\"true\"\n autocomplete=\"blocked\"\n aria-autocomplete=\"none\"\n value={this.first_name}\n placeholder=\"First...\"\n onFocus={() => {\n // Give the blur event a chance to hide it first if going between first/last\n setTimeout(() => {\n this.showSuggestions = this.contactSuggestions?.length > 0;\n }, 100);\n }}\n onInput={e => this.handleFirstNameChange(e)}\n />\n <input\n id={this.lastNameFieldId}\n name={this.lastNameFieldId}\n type=\"text\"\n data-lpignore=\"true\"\n autocomplete=\"blocked\"\n aria-autocomplete=\"none\"\n value={this.last_name}\n placeholder=\"Last...\"\n onFocus={() => {\n // Give the blur event a chance to hide it first if going between first/last\n setTimeout(() => {\n this.showSuggestions = this.contactSuggestions?.length > 0;\n }, 100);\n }}\n onInput={e => this.handleLastNameChange(e)}\n />\n </div>\n\n {this.showSuggestions && (\n <verdocs-portal\n anchor={this.firstNameFieldId}\n onClickAway={() => {\n this.showSuggestions = false;\n document.querySelectorAll(`.verdocs-portal-wrapper`).forEach(el => el.remove());\n }}\n id=\"verdocs-contact-picker-suggestions\"\n >\n <div class=\"dropdown\">\n {this.contactSuggestions\n .filter(suggestion => !this.first_name || suggestion.first_name?.toLowerCase().includes(this.first_name.toLowerCase()))\n .map(suggestion => (\n <div key={suggestion.id ?? suggestion.email} class=\"suggestion\" onClick={e => this.handleSelectSuggestion(e, suggestion)}>\n {suggestion.picture ? <img alt=\"Avatar\" class=\"avatar\" src={suggestion.picture} /> : <div class=\"avatar\" innerHTML={addrBookIcon} />}\n <div class=\"details\">\n <div class=\"name\">{formatFullName(suggestion)}</div>\n {suggestion.email && <div class=\"destination\">{suggestion.email}</div>}\n {suggestion.phone && <div class=\"destination\">{suggestion.phone}</div>}\n </div>\n </div>\n ))}\n </div>\n </verdocs-portal>\n )}\n </div>\n\n <div class=\"row\">\n <label htmlFor={this.emailFieldId}>Email:</label>\n <input\n id={this.emailFieldId}\n name={this.emailFieldId}\n type=\"text\"\n data-lpignore=\"true\"\n autoComplete=\"blocked\"\n aria-autocomplete=\"none\"\n value={this.email}\n placeholder=\"Invite/verify via email...\"\n onFocus={() => (this.showSuggestions = false)}\n onInput={(e: any) => (this.email = e.target.value)}\n />\n </div>\n\n {hasSMSAuth && (\n <div class=\"row\">\n <label htmlFor={this.phoneFieldId}>Phone:</label>\n <input\n id={this.phoneFieldId}\n name={this.phoneFieldId}\n type=\"text\"\n data-lpignore=\"true\"\n autoComplete=\"blocked\"\n aria-autocomplete=\"none\"\n value={this.phone}\n placeholder=\"Invite/verify via SMS...\"\n onFocus={() => (this.showSuggestions = false)}\n onInput={(e: any) => {\n this.phone = convertToE164(e.target.value);\n }}\n />\n </div>\n )}\n\n <Fragment>\n {verificationOptions.length > 0 && (\n <div class=\"row pin-code\">\n <label>Verification Methods:</label>\n {this.authMethodsLoading ? (\n <verdocs-spinner size={10} mode=\"dark\" style={{margin: 'auto'}} />\n ) : (\n <div>\n {verificationOptions.map((option, i) => (\n <div class=\"option\">\n <verdocs-checkbox\n size=\"small\"\n id={`verdocs-multi-select-opt-${i}`}\n value={option.value}\n checked={this.auth_methods.includes(option.value)}\n onInput={(e: any) => {\n if (e.target.checked) {\n this.auth_methods = [...this.auth_methods, option.value];\n } else {\n this.auth_methods = this.auth_methods.filter(selected => selected !== option.value);\n }\n }}\n />\n <label htmlFor={`verdocs-multi-select-option-${i}`}>{option.label}</label>\n </div>\n ))}\n </div>\n )} \n </div>\n )}\n\n {this.auth_methods.includes('passcode') && (\n <div class=\"row pin-code\">\n <label htmlFor={this.phoneFieldId}>Passcode:</label>\n <input\n id=\"verdocs-passcode\"\n name=\"verdocs-passcode\"\n type=\"text\"\n data-lpignore=\"true\"\n autocomplete=\"blocked\"\n aria-autocomplete=\"none\"\n value={this.passcode}\n placeholder=\"4-8 digits recommended...\"\n onFocus={() => (this.showSuggestions = false)}\n onInput={(e: any) => (this.passcode = e.target.value)}\n />\n </div>\n )}\n </Fragment>\n\n <div class=\"row pin-code\">\n <label style={{marginTop: '6px'}}>Options:</label>\n <div>\n <div class=\"option\">\n <verdocs-checkbox\n size=\"small\"\n id=\"verdocs-delegator\"\n checked={this.delegator}\n disabled={this.name_locked}\n onInput={(e: any) => {\n this.delegator = e.target.checked;\n if (this.delegator) this.name_locked = false;\n }}\n />\n <label htmlFor=\"verdocs-delegator\">May delegate signing</label>\n </div>\n <div class=\"option\">\n <verdocs-checkbox\n size=\"small\"\n id=\"verdocs-name-locked\"\n checked={this.name_locked}\n disabled={this.delegator}\n onInput={(e: any) => {\n this.name_locked = e.target.checked;\n if (this.name_locked) this.delegator = false;\n }}\n />\n <label htmlFor=\"verdocs-name-locked\">Name locked</label>\n </div>\n </div>\n </div>\n\n <div class=\"row message\">\n <label htmlFor=\"verdocs-contact-picker-message\">Message:</label>\n <textarea\n id=\"verdocs-contact-picker-message\"\n name=\"verdocs-contact-picker-message\"\n data-lpignore=\"true\"\n autocomplete=\"blocked\"\n placeholder=\"Optional message to include in invitation...\"\n onFocus={() => (this.showSuggestions = false)}\n onInput={(e: any) => (this.message = e.target.value)}\n >\n {this.message}\n </textarea>\n </div>\n\n <div class=\"buttons\">\n <div class=\"flex-fill\" />\n\n <verdocs-button variant=\"outline\" label=\"Cancel\" size=\"small\" onClick={e => this.handleCancel(e)} />\n <verdocs-button label=\"OK\" size=\"small\" disabled={!canSubmit} onClick={!canSubmit ? () => {} : e => this.handleSubmit(e)} />\n </div>\n </form>\n );\n }\n}\n"],"version":3}
1
+ {"file":"verdocs-contact-picker.cjs.entry.js","mappings":"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","names":["VerdocsEndpoint","formatFullName","getActiveEntitlements","isValidEmail","h","convertToE164","Fragment"],"sources":["src/components/envelopes/verdocs-contact-picker/verdocs-contact-picker.scss?tag=verdocs-contact-picker","src/components/envelopes/verdocs-contact-picker/verdocs-contact-picker.tsx"],"sourcesContent":["@import '../../../theme.scss';\n\nverdocs-contact-picker {\n display: block;\n border: 1px solid #ebebeb;\n background-color: $verdocs-grey-4;\n font-family: $verdocs-primary-font;\n box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.1);\n\n form {\n gap: 12px;\n width: 300px;\n padding: 12px;\n display: flex;\n flex-direction: column;\n background-color: $verdocs-grey-3;\n\n .row {\n gap: 8px;\n display: flex;\n position: relative;\n flex-direction: row;\n align-items: flex-start;\n\n .option {\n gap: 4px;\n display: flex;\n padding: 5px 8px;\n align-items: center;\n flex-direction: row;\n text-wrap: nowrap;\n }\n }\n\n .names-row {\n gap: 8px;\n display: flex;\n flex-direction: row;\n\n > input {\n font-size: 14px;\n width: 88px;\n }\n }\n\n .pin-code {\n gap: 8px;\n display: flex;\n align-items: flex-start;\n flex-direction: row;\n\n > input {\n flex: 0 0 197px;\n font-size: 14px;\n //margin-left: 88px;\n }\n }\n\n .address {\n gap: 8px;\n display: flex;\n align-items: center;\n flex-direction: row;\n\n > input {\n flex: 1;\n font-size: 14px;\n //margin-left: 88px;\n }\n }\n\n .zip-code {\n gap: 8px;\n display: flex;\n align-items: center;\n flex-direction: row;\n\n > input {\n flex: 1;\n font-size: 14px;\n //margin-left: 88px;\n }\n }\n\n label {\n display: flex;\n flex: 0 0 80px;\n font-size: 13px;\n font-weight: 500;\n color: $verdocs-bg-4;\n }\n\n .row.message textarea {\n width: 100%;\n padding: 5px 7px;\n border-radius: 4px;\n font-family: $verdocs-primary-font;\n }\n\n input {\n flex: 1;\n padding: 6px;\n font-size: 14px;\n border-radius: 3px;\n //background: #00000005;\n border: 1px solid $border-color-extralight;\n\n &:focus {\n outline: none;\n }\n }\n }\n\n .buttons {\n display: flex;\n column-gap: 6px;\n margin-top: 16px;\n flex-direction: row;\n\n .flex-fill {\n flex: 1;\n }\n }\n\n ::placeholder {\n color: $verdocs-bg-2;\n }\n\n // @see https://community.logmein.com/t5/LastPass-Support-Discussions/placeholder-text-overrides-data-lpignore-quot-true-quot/td-p/295135\n // LastPass is ignoring the data-lpignore attribute in some cases\n [data-lastpass-icon-root] {\n display: none !important;\n }\n}\n\n#verdocs-contact-picker-suggestions {\n .dropdown {\n max-height: 225px;\n overflow-y: scroll;\n background: #ffffff;\n font-family: $verdocs-primary-font;\n box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.1);\n\n .suggestion {\n display: flex;\n padding: 6px 12px;\n align-items: center;\n flex-direction: row;\n\n svg {\n width: 32px;\n height: 32px;\n }\n\n .avatar {\n width: 32px;\n height: 32px;\n flex: 0 0 32px;\n margin-right: 8px;\n border-radius: 100%;\n }\n\n .details {\n display: flex;\n flex-direction: column;\n }\n\n .name {\n font-size: 16px;\n font-weight: 500;\n margin-bottom: 3px;\n color: $verdocs-grey-0;\n }\n\n .destination {\n font-size: 14px;\n margin-bottom: 3px;\n color: $verdocs-grey-1;\n }\n\n &:hover {\n background: #eee;\n cursor: pointer;\n }\n }\n }\n}\n","import {Component, h, Event, EventEmitter, Fragment, Prop, State} from '@stencil/core';\nimport {formatFullName, getActiveEntitlements, IEntitlement, IProfile, IRecipient, isValidEmail, TEntitlement, TRecipientAuthMethod, VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {convertToE164} from '../../../utils/utils';\n\nconst addrBookIcon = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-book-user\"><path d=\"M15 13a3 3 0 1 0-6 0\"/><path d=\"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\"/><circle cx=\"12\" cy=\"8\" r=\"2\"/></svg>`;\n\nexport interface IContactSearchEvent {\n query: string;\n}\n\nexport interface IContactSelectEvent {\n first_name: string;\n last_name: string;\n email: string;\n phone: string;\n message: string;\n delegator: boolean;\n name_locked: boolean;\n auth_methods: TRecipientAuthMethod[];\n passcode: string;\n address: string;\n zip: string;\n}\n\nexport type TPickerContact = Partial<IProfile>;\n\n/**\n * Display a contact picker suitable for filling out Recipient objects when sending Envelopes.\n *\n * This picker can also be integrated with a backend to provide contact list / suggestion / address-book style behavior. As the\n * user interacts with the component, the text entered in the name fields is sent back to the parent via the `searchContacts` event.\n * The parent can use that text as a query string to call a backend to obtain appropriate contacts to show. This list may also be\n * hard-coded ahead of time to provide the user with smart suggestions on initial display, such as \"Recently Used\" contacts, or\n * to always display the user's own contact record.\n *\n * ```ts\n * <verdocs-contact-picker\n * templateRole={role}\n * contactSuggestions={[]}\n * onNext={e => console.log('Contact completed', e.detail)}\n * />\n * ```\n */\n@Component({\n tag: 'verdocs-contact-picker',\n styleUrl: 'verdocs-contact-picker.scss',\n shadow: false,\n})\nexport class VerdocsContactPicker {\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * The role that this contact will be assigned to.\n */\n @Prop() templateRole: Partial<IRecipient> | null = null;\n\n /**\n * If set, suggestions will be displayed in a drop-down list to the user. It is recommended that the number\n * of suggestions be limited to the 5 best matching records.\n */\n @Prop() contactSuggestions: TPickerContact[] = [];\n\n /**\n * Event fired when the user enters text in the search field. The calling application may use this to update\n * the `contactSuggestions` property.\n */\n @Event({composed: true}) searchContacts: EventEmitter<IContactSearchEvent>;\n\n /**\n * Event fired when the step is cancelled. This is called exit to avoid conflicts with the JS-reserved \"cancel\" event name.\n */\n @Event({composed: true}) exit: EventEmitter;\n\n /**\n * Event fired when the user changes the type.\n */\n @Event({composed: true}) next: EventEmitter<IContactSelectEvent>;\n\n @State() first_name: string;\n @State() last_name: string;\n @State() email: string;\n @State() phone: string;\n @State() zip: string;\n @State() address: string;\n @State() message: string;\n @State() showSuggestions: boolean = false;\n @State() showMessage: boolean = false;\n @State() delegator: boolean = false;\n @State() name_locked: boolean = false;\n @State() auth_methods: TRecipientAuthMethod[] = [];\n @State() passcode: string = '';\n\n @State() firstNameFieldId = `verdocs-contact-picker-firstname-${Math.random().toString(36).substring(2, 11)}`;\n @State() lastNameFieldId = `verdocs-contact-picker-lastname-${Math.random().toString(36).substring(2, 11)}`;\n @State() emailFieldId = `verdocs-contact-picker-email-${Math.random().toString(36).substring(2, 11)}`;\n @State() phoneFieldId = `verdocs-contact-picker-phone-${Math.random().toString(36).substring(2, 11)}`;\n\n @State() activeEntitlements: Partial<Record<TEntitlement, IEntitlement>> = {};\n @State() authMethodsLoading: boolean = true\n\n async componentWillLoad() {\n this.endpoint.loadSession();\n\n if (this.templateRole) {\n const fullName = formatFullName(this.templateRole);\n const nameComponents = fullName.split(' ');\n const firstName = this.templateRole.first_name || nameComponents.shift() || '';\n const lastName = this.templateRole.last_name || nameComponents.join(' ') || '';\n this.first_name = firstName;\n this.last_name = lastName;\n\n this.email = this.templateRole.email || '';\n this.phone = this.templateRole.phone || '';\n // delegator and name_locked are mutually exclusive; delegator takes precedence if both are somehow set\n this.delegator = this.templateRole.delegator || false;\n this.name_locked = this.delegator ? false : (this.templateRole.name_locked || false);\n this.message = this.templateRole.message || '';\n this.showMessage = this.message !== '';\n this.auth_methods = this.templateRole.auth_methods || [];\n this.passcode = this.templateRole.passcode || '';\n }\n\n // Entitlements only gate optional methods like KBA. We need error handling here in case the getActiveEntitlements\n // call fails or we stay loading forever.\n this.activeEntitlements = await getActiveEntitlements(this.endpoint).catch(e => {\n console.warn('[CONTACT PICKER] Unable to load entitlements, continuing with base auth methods only', e);\n return {} as Partial<Record<TEntitlement, IEntitlement>>;\n });\n\n this.authMethodsLoading = false;\n console.log('[CONTACT PICKER] Loaded entitlements', this.activeEntitlements);\n }\n\n handleFirstNameChange(e: any) {\n this.first_name = e.target.value;\n this.searchContacts?.emit({query: this.first_name});\n }\n\n handleLastNameChange(e: any) {\n this.last_name = e.target.value;\n this.searchContacts?.emit({query: this.last_name});\n }\n\n handleCancel(e: any) {\n e.stopPropagation();\n this.showSuggestions = false;\n this.exit?.emit();\n }\n\n handleSubmit(e: any) {\n e.stopPropagation();\n\n this.showSuggestions = false;\n this.next?.emit({\n first_name: this.first_name,\n last_name: this.last_name,\n email: this.email,\n phone: this.phone,\n message: this.message,\n delegator: this.delegator,\n name_locked: this.name_locked,\n auth_methods: this.auth_methods,\n passcode: this.passcode,\n address: this.address,\n zip: this.zip,\n });\n }\n\n handleSelectSuggestion(e: any, suggestion: TPickerContact) {\n e.stopPropagation();\n\n this.first_name = suggestion.first_name;\n this.last_name = suggestion.last_name;\n this.email = suggestion.email;\n this.phone = suggestion.phone;\n this.showSuggestions = false;\n }\n\n // The reason for the random names/IDs is to disable browser autocomplete. We set the autocomplete tags but many browsers ignore them\n // and show a duplicate autocomplete picker on top of our own.\n render() {\n // const hasBasics = this.first_name && this.last_name && (isValidEmail(this.email) || isValidPhone(this.phone));\n const hasBasics = this.first_name && this.last_name && isValidEmail(this.email);\n const hasAuthRequirements =\n !this.auth_methods.length ||\n (this.auth_methods.includes('passcode') && !!this.passcode) ||\n (this.auth_methods.includes('kba') && !!this.first_name && !!this.last_name) ||\n (this.auth_methods.includes('email') && !!this.email) ||\n (this.auth_methods.includes('sms') && !!this.phone);\n const canSubmit = hasBasics && hasAuthRequirements;\n const hasSMSAuth = !!this.activeEntitlements.sms_auth\n\n const verificationOptions = [];\n\n verificationOptions.push({label: 'Passcode', value: 'passcode'});\n verificationOptions.push({label: 'Email', value: 'email'});\n\n if (hasSMSAuth) {\n verificationOptions.push({label: 'SMS (One-Time Code)', value: 'sms'});\n }\n\n if (!!this.activeEntitlements.kba_auth) {\n verificationOptions.push({label: 'Knowledge-Based (KBA)', value: 'kba'});\n }\n\n if (!!this.activeEntitlements.id_auth) {\n verificationOptions.push({label: 'ID Check', value: 'id'});\n }\n\n return (\n <form\n onSubmit={e => e.preventDefault()}\n // onClick={e => e.stopPropagation()}\n autocomplete=\"off\"\n >\n <div class=\"row\">\n <label htmlFor={this.firstNameFieldId}>Name:</label>\n <div class=\"names-row\">\n <input\n id={this.firstNameFieldId}\n name={this.firstNameFieldId}\n type=\"text\"\n data-lpignore=\"true\"\n autocomplete=\"blocked\"\n aria-autocomplete=\"none\"\n value={this.first_name}\n placeholder=\"First...\"\n onFocus={() => {\n // Give the blur event a chance to hide it first if going between first/last\n setTimeout(() => {\n this.showSuggestions = this.contactSuggestions?.length > 0;\n }, 100);\n }}\n onInput={e => this.handleFirstNameChange(e)}\n />\n <input\n id={this.lastNameFieldId}\n name={this.lastNameFieldId}\n type=\"text\"\n data-lpignore=\"true\"\n autocomplete=\"blocked\"\n aria-autocomplete=\"none\"\n value={this.last_name}\n placeholder=\"Last...\"\n onFocus={() => {\n // Give the blur event a chance to hide it first if going between first/last\n setTimeout(() => {\n this.showSuggestions = this.contactSuggestions?.length > 0;\n }, 100);\n }}\n onInput={e => this.handleLastNameChange(e)}\n />\n </div>\n\n {this.showSuggestions && (\n <verdocs-portal\n anchor={this.firstNameFieldId}\n onClickAway={() => {\n this.showSuggestions = false;\n document.querySelectorAll(`.verdocs-portal-wrapper`).forEach(el => el.remove());\n }}\n id=\"verdocs-contact-picker-suggestions\"\n >\n <div class=\"dropdown\">\n {this.contactSuggestions\n .filter(suggestion => !this.first_name || suggestion.first_name?.toLowerCase().includes(this.first_name.toLowerCase()))\n .map(suggestion => (\n <div key={suggestion.id ?? suggestion.email} class=\"suggestion\" onClick={e => this.handleSelectSuggestion(e, suggestion)}>\n {suggestion.picture ? <img alt=\"Avatar\" class=\"avatar\" src={suggestion.picture} /> : <div class=\"avatar\" innerHTML={addrBookIcon} />}\n <div class=\"details\">\n <div class=\"name\">{formatFullName(suggestion)}</div>\n {suggestion.email && <div class=\"destination\">{suggestion.email}</div>}\n {suggestion.phone && <div class=\"destination\">{suggestion.phone}</div>}\n </div>\n </div>\n ))}\n </div>\n </verdocs-portal>\n )}\n </div>\n\n <div class=\"row\">\n <label htmlFor={this.emailFieldId}>Email:</label>\n <input\n id={this.emailFieldId}\n name={this.emailFieldId}\n type=\"text\"\n data-lpignore=\"true\"\n autoComplete=\"blocked\"\n aria-autocomplete=\"none\"\n value={this.email}\n placeholder=\"Invite/verify via email...\"\n onFocus={() => (this.showSuggestions = false)}\n onInput={(e: any) => (this.email = e.target.value)}\n />\n </div>\n\n {hasSMSAuth && (\n <div class=\"row\">\n <label htmlFor={this.phoneFieldId}>Phone:</label>\n <input\n id={this.phoneFieldId}\n name={this.phoneFieldId}\n type=\"text\"\n data-lpignore=\"true\"\n autoComplete=\"blocked\"\n aria-autocomplete=\"none\"\n value={this.phone}\n placeholder=\"Invite/verify via SMS...\"\n onFocus={() => (this.showSuggestions = false)}\n onInput={(e: any) => {\n this.phone = convertToE164(e.target.value);\n }}\n />\n </div>\n )}\n\n <Fragment>\n {verificationOptions.length > 0 && (\n <div class=\"row pin-code\">\n <label>Verification Methods:</label>\n {this.authMethodsLoading ? (\n <verdocs-spinner size={10} mode=\"dark\" style={{margin: 'auto'}} />\n ) : (\n <div>\n {verificationOptions.map((option, i) => (\n <div class=\"option\">\n <verdocs-checkbox\n size=\"small\"\n id={`verdocs-multi-select-opt-${i}`}\n value={option.value}\n checked={this.auth_methods.includes(option.value)}\n onInput={(e: any) => {\n if (e.target.checked) {\n this.auth_methods = [...this.auth_methods, option.value];\n } else {\n this.auth_methods = this.auth_methods.filter(selected => selected !== option.value);\n }\n }}\n />\n <label htmlFor={`verdocs-multi-select-option-${i}`}>{option.label}</label>\n </div>\n ))}\n </div>\n )}\n </div>\n )}\n\n {this.auth_methods.includes('passcode') && (\n <div class=\"row pin-code\">\n <label htmlFor={this.phoneFieldId}>Passcode:</label>\n <input\n id=\"verdocs-passcode\"\n name=\"verdocs-passcode\"\n type=\"text\"\n data-lpignore=\"true\"\n autocomplete=\"blocked\"\n aria-autocomplete=\"none\"\n value={this.passcode}\n placeholder=\"4-8 digits recommended...\"\n onFocus={() => (this.showSuggestions = false)}\n onInput={(e: any) => (this.passcode = e.target.value)}\n />\n </div>\n )}\n </Fragment>\n\n <div class=\"row pin-code\">\n <label style={{marginTop: '6px'}}>Options:</label>\n <div>\n <div class=\"option\">\n <verdocs-checkbox\n size=\"small\"\n id=\"verdocs-delegator\"\n checked={this.delegator}\n disabled={this.name_locked}\n onInput={(e: any) => {\n this.delegator = e.target.checked;\n if (this.delegator) this.name_locked = false;\n }}\n />\n <label htmlFor=\"verdocs-delegator\">May delegate signing</label>\n </div>\n <div class=\"option\">\n <verdocs-checkbox\n size=\"small\"\n id=\"verdocs-name-locked\"\n checked={this.name_locked}\n disabled={this.delegator}\n onInput={(e: any) => {\n this.name_locked = e.target.checked;\n if (this.name_locked) this.delegator = false;\n }}\n />\n <label htmlFor=\"verdocs-name-locked\">Name locked</label>\n </div>\n </div>\n </div>\n\n <div class=\"row message\">\n <label htmlFor=\"verdocs-contact-picker-message\">Message:</label>\n <textarea\n id=\"verdocs-contact-picker-message\"\n name=\"verdocs-contact-picker-message\"\n data-lpignore=\"true\"\n autocomplete=\"blocked\"\n placeholder=\"Optional message to include in invitation...\"\n onFocus={() => (this.showSuggestions = false)}\n onInput={(e: any) => (this.message = e.target.value)}\n >\n {this.message}\n </textarea>\n </div>\n\n <div class=\"buttons\">\n <div class=\"flex-fill\" />\n\n <verdocs-button variant=\"outline\" label=\"Cancel\" size=\"small\" onClick={e => this.handleCancel(e)} />\n <verdocs-button label=\"OK\" size=\"small\" disabled={!canSubmit} onClick={!canSubmit ? () => {} : e => this.handleSubmit(e)} />\n </div>\n </form>\n );\n }\n}\n"],"version":3}
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-DLmnUl1_.js');
4
4
  var interact_min = require('./interact.min-CPZxI9Hv.js');
5
- var Icons = require('./Icons-TVvtZ5iL.js');
5
+ var Icons = require('./Icons-Zdy_DFce.js');
6
6
  var Datastore = require('./Datastore-C-Pojt3E.js');
7
7
  var index$1 = require('./index-FVA5WPhX.js');
8
8
  var en = require('./en-B5Y8bwF8.js');
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-DLmnUl1_.js');
4
4
  var interact_min = require('./interact.min-CPZxI9Hv.js');
5
- var Icons = require('./Icons-TVvtZ5iL.js');
5
+ var Icons = require('./Icons-Zdy_DFce.js');
6
6
  var Datastore = require('./Datastore-C-Pojt3E.js');
7
7
  require('./_commonjsHelpers-CFO10eej.js');
8
8
  require('@verdocs/js-sdk');