@sheerid/jslib-nightly 2.121.0-alpha.3 → 2.122.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. package/__tests__/e2e/ageMultiCountry.spec.d.ts +1 -0
  2. package/_mysheerid-preview.css +5 -5
  3. package/_mysheerid-preview.js +3079 -3065
  4. package/_mysheerid-preview.js.map +1 -1
  5. package/chunk/{EmailLoopPending-Dy8mLFvV.js → EmailLoopPending-CHILFZYc.js} +10 -10
  6. package/chunk/{EmailLoopPending-Dtf0p85F.js.map → EmailLoopPending-CHILFZYc.js.map} +1 -1
  7. package/chunk/{EmailLoopPending-Dtf0p85F.js → EmailLoopPending-Nn_H3cfS.js} +10 -10
  8. package/chunk/{EmailLoopPending-Dy8mLFvV.js.map → EmailLoopPending-Nn_H3cfS.js.map} +1 -1
  9. package/chunk/LicensedProfessionalOrganizationComponent-BYijEfDT.js +4 -4
  10. package/chunk/LicensedProfessionalOrganizationComponent-CiYU-2dW.js +4 -4
  11. package/chunk/Onfido-AyvUk6wg.js +4 -4
  12. package/chunk/{StepIDCheckLoopOnfido-CmNwFqjD.js → StepIDCheckLoopOnfido-Bl1QfUZZ.js} +10 -10
  13. package/chunk/{StepIDCheckLoopOnfido-CmNwFqjD.js.map → StepIDCheckLoopOnfido-Bl1QfUZZ.js.map} +1 -1
  14. package/chunk/{StepIDCheckLoopOnfido-DtbplNxs.js → StepIDCheckLoopOnfido-D0kpzIyk.js} +10 -10
  15. package/chunk/{StepIDCheckLoopOnfido-DtbplNxs.js.map → StepIDCheckLoopOnfido-D0kpzIyk.js.map} +1 -1
  16. package/chunk/{StepIDCheckLoopRegula-oqf-QxHT.js → StepIDCheckLoopRegula-BkTDnK3G.js} +6 -6
  17. package/chunk/{StepIDCheckLoopRegula-RoX971sR.js.map → StepIDCheckLoopRegula-BkTDnK3G.js.map} +1 -1
  18. package/chunk/{StepIDCheckLoopRegula-RoX971sR.js → StepIDCheckLoopRegula-D6freNro.js} +6 -6
  19. package/chunk/{StepIDCheckLoopRegula-oqf-QxHT.js.map → StepIDCheckLoopRegula-D6freNro.js.map} +1 -1
  20. package/chunk/{StepInactiveMilitaryPersonalInfoComponent-D4veFRlW.js → StepInactiveMilitaryPersonalInfoComponent-CooMPgH1.js} +16 -16
  21. package/chunk/{StepInactiveMilitaryPersonalInfoComponent-CTCfr5Y8.js.map → StepInactiveMilitaryPersonalInfoComponent-CooMPgH1.js.map} +1 -1
  22. package/chunk/{StepInactiveMilitaryPersonalInfoComponent-CTCfr5Y8.js → StepInactiveMilitaryPersonalInfoComponent-DTtUadmx.js} +16 -16
  23. package/chunk/{StepInactiveMilitaryPersonalInfoComponent-D4veFRlW.js.map → StepInactiveMilitaryPersonalInfoComponent-DTtUadmx.js.map} +1 -1
  24. package/chunk/ar--TDb5qE5.js +4 -4
  25. package/chunk/bg-D3cL-ciP.js +4 -4
  26. package/chunk/bn-IN-CwiPRX5T.js +4 -4
  27. package/chunk/cs-7pQwm9YC.js +4 -4
  28. package/chunk/da-C2xASa_G.js +4 -4
  29. package/chunk/de-D4nlAbMa.js +4 -4
  30. package/chunk/el-C-PZe5CV.js +4 -4
  31. package/chunk/en-GB-DXa6bdA_.js +4 -4
  32. package/chunk/es-BlLBNTpz.js +4 -4
  33. package/chunk/es-ES-inNoG-F1.js +4 -4
  34. package/chunk/fi-CcolQnAY.js +4 -4
  35. package/chunk/fr-BjHvlhn5.js +4 -4
  36. package/chunk/fr-CA-DD4NnfK-.js +4 -4
  37. package/chunk/ga-D-rK3PZy.js +4 -4
  38. package/chunk/hi-IN-B1NQdkcj.js +4 -4
  39. package/chunk/hr-CwvyeMFM.js +4 -4
  40. package/chunk/hu-BCZWPgvf.js +4 -4
  41. package/chunk/id-CRNXXELT.js +4 -4
  42. package/chunk/{index-CcRowarb.js → index-1Cpf6KJI.js} +5 -5
  43. package/chunk/{index-CcRowarb.js.map → index-1Cpf6KJI.js.map} +1 -1
  44. package/chunk/{index-DLz31Fzh.js → index-2ob_KvkC.js} +9 -9
  45. package/chunk/{index-DLz31Fzh.js.map → index-2ob_KvkC.js.map} +1 -1
  46. package/chunk/{index-B-PpnUEO.js → index-B4HIyFVA.js} +11 -11
  47. package/chunk/{index-B-PpnUEO.js.map → index-B4HIyFVA.js.map} +1 -1
  48. package/chunk/{index-B8KPM--K.js → index-B4PunPFk.js} +10 -10
  49. package/chunk/{index-C2h0Wj84.js.map → index-B4PunPFk.js.map} +1 -1
  50. package/chunk/{index-DO5Z3e-E.js → index-B5Db6m8t.js} +16 -16
  51. package/chunk/{index-BuX76GyE.js.map → index-B5Db6m8t.js.map} +1 -1
  52. package/chunk/{index-DhGg9lvf.js → index-BJg9BX3v.js} +21 -21
  53. package/chunk/{index-BDrKYann.js.map → index-BJg9BX3v.js.map} +1 -1
  54. package/chunk/{index-BDrKYann.js → index-BLIxYZFr.js} +21 -21
  55. package/chunk/{index-DhGg9lvf.js.map → index-BLIxYZFr.js.map} +1 -1
  56. package/chunk/{index-Gfy-1H7s.js → index-BU0HFLKm.js} +6 -6
  57. package/chunk/{index-CTb96lOK.js.map → index-BU0HFLKm.js.map} +1 -1
  58. package/chunk/{index-BORxVuto.js → index-Bofro8C_.js} +5 -5
  59. package/chunk/{index-BORxVuto.js.map → index-Bofro8C_.js.map} +1 -1
  60. package/chunk/{index-9OD0Bw98.js → index-BqUi3r5Z.js} +39 -39
  61. package/chunk/{index-9OD0Bw98.js.map → index-BqUi3r5Z.js.map} +1 -1
  62. package/chunk/{index-Dg8t7-dm.js → index-Br3LkCoX.js} +25 -25
  63. package/chunk/{index-B8F8N-JM.js.map → index-Br3LkCoX.js.map} +1 -1
  64. package/chunk/{index-Bmq6cJ3F.js → index-C4OCK6G0.js} +14 -14
  65. package/chunk/{index-C96ntS0u.js.map → index-C4OCK6G0.js.map} +1 -1
  66. package/chunk/{index-4APUDd8S.js → index-C8UuTatc.js} +12 -12
  67. package/chunk/{index-4APUDd8S.js.map → index-C8UuTatc.js.map} +1 -1
  68. package/chunk/{index-C2h0Wj84.js → index-CUH2uSMd.js} +10 -10
  69. package/chunk/{index-B8KPM--K.js.map → index-CUH2uSMd.js.map} +1 -1
  70. package/chunk/{index-CTb96lOK.js → index-CVEIzLov.js} +6 -6
  71. package/chunk/{index-Gfy-1H7s.js.map → index-CVEIzLov.js.map} +1 -1
  72. package/chunk/{index-DVynViqA.js → index-CcE-GFi6.js} +5 -5
  73. package/chunk/{index-CeHu2Npu.js.map → index-CcE-GFi6.js.map} +1 -1
  74. package/chunk/{index-CeHu2Npu.js → index-CjcYFvhf.js} +5 -5
  75. package/chunk/{index-DVynViqA.js.map → index-CjcYFvhf.js.map} +1 -1
  76. package/chunk/{index-DvQoVn8P.js → index-Cnc52tkD.js} +27 -27
  77. package/chunk/{index-DvQoVn8P.js.map → index-Cnc52tkD.js.map} +1 -1
  78. package/chunk/{index-B8F8N-JM.js → index-CoPQ1aC2.js} +25 -25
  79. package/chunk/{index-Dg8t7-dm.js.map → index-CoPQ1aC2.js.map} +1 -1
  80. package/chunk/{index-CHK5i4jj.js → index-Cu25bQnA.js} +11 -11
  81. package/chunk/{index-CHK5i4jj.js.map → index-Cu25bQnA.js.map} +1 -1
  82. package/chunk/{index-YSVzGeq_.js → index-CxH2IKXK.js} +27 -27
  83. package/chunk/{index-YSVzGeq_.js.map → index-CxH2IKXK.js.map} +1 -1
  84. package/chunk/{index-DKWjcFJK.js → index-CyTruyP6.js} +39 -39
  85. package/chunk/{index-DKWjcFJK.js.map → index-CyTruyP6.js.map} +1 -1
  86. package/chunk/{index-DzqRsB7_.js → index-DAE3SOJH.js} +9 -9
  87. package/chunk/{index-DzqRsB7_.js.map → index-DAE3SOJH.js.map} +1 -1
  88. package/chunk/{index-C8MQD8EK.js → index-DCTYdT7J.js} +12 -12
  89. package/chunk/{index-C8MQD8EK.js.map → index-DCTYdT7J.js.map} +1 -1
  90. package/chunk/{index-DRlGAW07.js → index-DFajPA-e.js} +11 -11
  91. package/chunk/{index-DRlGAW07.js.map → index-DFajPA-e.js.map} +1 -1
  92. package/chunk/{index-FjzhfDlx.js → index-DHtYIKVA.js} +9 -9
  93. package/chunk/{index-FjzhfDlx.js.map → index-DHtYIKVA.js.map} +1 -1
  94. package/chunk/index-DIkWpujR.js +4 -4
  95. package/chunk/{index-D_9J6arc.js → index-DJo820YY.js} +17 -17
  96. package/chunk/{index-D_9J6arc.js.map → index-DJo820YY.js.map} +1 -1
  97. package/chunk/{index-C96ntS0u.js → index-DdQD36Ht.js} +14 -14
  98. package/chunk/{index-Bmq6cJ3F.js.map → index-DdQD36Ht.js.map} +1 -1
  99. package/chunk/{index-DsgCNIS5.js → index-Dg1E2EXp.js} +17 -17
  100. package/chunk/{index-DsgCNIS5.js.map → index-Dg1E2EXp.js.map} +1 -1
  101. package/chunk/{index-BTMETMEE.js → index-DljRrdj9.js} +14 -14
  102. package/chunk/{index-BTMETMEE.js.map → index-DljRrdj9.js.map} +1 -1
  103. package/chunk/{index-CU0rkVHP.js → index-N20c5WiN.js} +5 -5
  104. package/chunk/{index-CU0rkVHP.js.map → index-N20c5WiN.js.map} +1 -1
  105. package/chunk/{index-BD_a0MZT.js → index-SwnUiXjr.js} +11 -11
  106. package/chunk/{index-BpZoH-Wz.js.map → index-SwnUiXjr.js.map} +1 -1
  107. package/chunk/{index-_t8SsXjy.js → index-dDH8B6_D.js} +14 -14
  108. package/chunk/{index-_t8SsXjy.js.map → index-dDH8B6_D.js.map} +1 -1
  109. package/chunk/{index-C8u9IJUa.js → index-huf3obhv.js} +11 -11
  110. package/chunk/{index-C8u9IJUa.js.map → index-huf3obhv.js.map} +1 -1
  111. package/chunk/{index-BpZoH-Wz.js → index-n6fChAZJ.js} +11 -11
  112. package/chunk/{index-BD_a0MZT.js.map → index-n6fChAZJ.js.map} +1 -1
  113. package/chunk/{index-BD2bjH-C.js → index-oHEY5B58.js} +5 -5
  114. package/chunk/{index-BD2bjH-C.js.map → index-oHEY5B58.js.map} +1 -1
  115. package/chunk/{index-BuX76GyE.js → index-xgVNIuKt.js} +16 -16
  116. package/chunk/{index-DO5Z3e-E.js.map → index-xgVNIuKt.js.map} +1 -1
  117. package/chunk/{index-Bi9QXN5x.js → index-zX2rojxg.js} +9 -9
  118. package/chunk/{index-Bi9QXN5x.js.map → index-zX2rojxg.js.map} +1 -1
  119. package/chunk/is-BFoDLV-f.js +4 -4
  120. package/chunk/it-B_iK-eSd.js +4 -4
  121. package/chunk/iw-DL48t5mZ.js +4 -4
  122. package/chunk/ja-C5bG2SRl.js +4 -4
  123. package/chunk/ko-CmmVl873.js +4 -4
  124. package/chunk/lo-DvBsVm-4.js +4 -4
  125. package/chunk/lt-DWoqI4gx.js +4 -4
  126. package/chunk/ms-BCHBEoqA.js +4 -4
  127. package/chunk/nl-BE-DLixID0q.js +4 -4
  128. package/chunk/nl-CeBqOv0i.js +4 -4
  129. package/chunk/no-BR2xqD23.js +4 -4
  130. package/chunk/pl-Dl77tRgW.js +4 -4
  131. package/chunk/pt-BR--SxHOWht.js +4 -4
  132. package/chunk/pt-D0bmI49-.js +4 -4
  133. package/chunk/ro-HCkS3amY.js +4 -4
  134. package/chunk/ru-BDMi1lvr.js +4 -4
  135. package/chunk/sk-C4zNHeM6.js +4 -4
  136. package/chunk/sl-BbQVw1S0.js +4 -4
  137. package/chunk/sr-8d4sC8Hd.js +4 -4
  138. package/chunk/sv-B0-e7r_0.js +4 -4
  139. package/chunk/sw-Bo9F25Vc.js +4 -4
  140. package/chunk/th-DDuVbwLh.js +4 -4
  141. package/chunk/tr-CUwkgj2T.js +4 -4
  142. package/chunk/uk-BPrGA4MJ.js +4 -4
  143. package/chunk/ur-CIgS3emx.js +4 -4
  144. package/chunk/useCollectFieldsEndpoint-DFo1yXvN.js +41 -0
  145. package/chunk/useCollectFieldsEndpoint-DFo1yXvN.js.map +1 -0
  146. package/chunk/useCollectFieldsEndpoint-DPX8CT4Y.js +45 -0
  147. package/chunk/useCollectFieldsEndpoint-DPX8CT4Y.js.map +1 -0
  148. package/chunk/{useEmailFirstExperiment-CgU-itQI.js → useEmailFirstExperiment-DH410dM-.js} +5 -5
  149. package/chunk/{useEmailFirstExperiment-BbDrKQEs.js.map → useEmailFirstExperiment-DH410dM-.js.map} +1 -1
  150. package/chunk/{useEmailFirstExperiment-BbDrKQEs.js → useEmailFirstExperiment-q-thhCji.js} +5 -5
  151. package/chunk/{useEmailFirstExperiment-CgU-itQI.js.map → useEmailFirstExperiment-q-thhCji.js.map} +1 -1
  152. package/chunk/vi-JbWizd9m.js +4 -4
  153. package/chunk/zh-DjbXrser.js +4 -4
  154. package/chunk/zh-HK-DXcspp2Y.js +4 -4
  155. package/chunk/zu-BzwZfIDF.js +4 -4
  156. package/es6.css +5 -5
  157. package/jslib.js +25 -25
  158. package/lib/{EmailLoopPending-B9dUBtoZ.js → EmailLoopPending-Bg7ralnM.js} +11 -11
  159. package/lib/{EmailLoopPending-B9dUBtoZ.js.map → EmailLoopPending-Bg7ralnM.js.map} +1 -1
  160. package/lib/{LicensedProfessionalOrganizationComponent-ClJIe1Ux.js → LicensedProfessionalOrganizationComponent-BX07hns8.js} +5 -5
  161. package/lib/{LicensedProfessionalOrganizationComponent-ClJIe1Ux.js.map → LicensedProfessionalOrganizationComponent-BX07hns8.js.map} +1 -1
  162. package/lib/Onfido-AyvUk6wg.js +4 -4
  163. package/lib/StepCollectMilitaryStatusComponent-B0YF2zOQ.js +11 -0
  164. package/lib/{StepCollectMilitaryStatusComponent-Cre33r_T.js.map → StepCollectMilitaryStatusComponent-B0YF2zOQ.js.map} +1 -1
  165. package/lib/{StepIDCheckLoopOnfido-ngOf5-Xx.js → StepIDCheckLoopOnfido-B_fFqbRn.js} +5 -5
  166. package/lib/{StepIDCheckLoopOnfido-ngOf5-Xx.js.map → StepIDCheckLoopOnfido-B_fFqbRn.js.map} +1 -1
  167. package/lib/{StepIDCheckLoopRegula-Bb2wOdiz.js → StepIDCheckLoopRegula-Ci3GoPnU.js} +5 -5
  168. package/lib/{StepIDCheckLoopRegula-Bb2wOdiz.js.map → StepIDCheckLoopRegula-Ci3GoPnU.js.map} +1 -1
  169. package/lib/{StepInactiveMilitaryPersonalInfoComponent-AXrIpJyj.js → StepInactiveMilitaryPersonalInfoComponent-DvJQ0mMc.js} +20 -20
  170. package/lib/{StepInactiveMilitaryPersonalInfoComponent-AXrIpJyj.js.map → StepInactiveMilitaryPersonalInfoComponent-DvJQ0mMc.js.map} +1 -1
  171. package/lib/{VerificationApiUtils-B20QqDjD.js → VerificationApiUtils-B-JhoJ0j.js} +5 -5
  172. package/lib/{VerificationApiUtils-B20QqDjD.js.map → VerificationApiUtils-B-JhoJ0j.js.map} +1 -1
  173. package/lib/ar--TDb5qE5.js +4 -4
  174. package/lib/bg-D3cL-ciP.js +4 -4
  175. package/lib/bn-IN-CwiPRX5T.js +4 -4
  176. package/lib/cs-7pQwm9YC.js +4 -4
  177. package/lib/da-C2xASa_G.js +4 -4
  178. package/lib/de-D4nlAbMa.js +4 -4
  179. package/lib/el-C-PZe5CV.js +4 -4
  180. package/lib/en-GB-DXa6bdA_.js +4 -4
  181. package/lib/es-BlLBNTpz.js +4 -4
  182. package/lib/es-ES-inNoG-F1.js +4 -4
  183. package/lib/{es6-BVEB0OmM.js → es6-R1Rnhb5s.js} +2537 -2523
  184. package/lib/es6-R1Rnhb5s.js.map +1 -0
  185. package/lib/fi-CcolQnAY.js +4 -4
  186. package/lib/fr-BjHvlhn5.js +4 -4
  187. package/lib/fr-CA-DD4NnfK-.js +4 -4
  188. package/lib/ga-D-rK3PZy.js +4 -4
  189. package/lib/hi-IN-B1NQdkcj.js +4 -4
  190. package/lib/hr-CwvyeMFM.js +4 -4
  191. package/lib/hu-BCZWPgvf.js +4 -4
  192. package/lib/id-CRNXXELT.js +4 -4
  193. package/lib/{index-BDIO_TGG.js → index-B9EMIs8_.js} +32 -32
  194. package/lib/{index-BDIO_TGG.js.map → index-B9EMIs8_.js.map} +1 -1
  195. package/lib/{index-B54sZItl.js → index-BZAwC0OL.js} +5 -5
  196. package/lib/{index-B54sZItl.js.map → index-BZAwC0OL.js.map} +1 -1
  197. package/lib/index-BiXaIPLs.js +11 -0
  198. package/lib/index-BiXaIPLs.js.map +1 -0
  199. package/lib/{index-CDlnxiMK.js → index-BjIojdVN.js} +19 -19
  200. package/lib/{index-CDlnxiMK.js.map → index-BjIojdVN.js.map} +1 -1
  201. package/lib/index-BxGq9oo_.js +11 -0
  202. package/lib/index-BxGq9oo_.js.map +1 -0
  203. package/lib/{index-C3NMriHe.js → index-CGssaYEJ.js} +17 -17
  204. package/lib/{index-C3NMriHe.js.map → index-CGssaYEJ.js.map} +1 -1
  205. package/lib/index-CNft279A.js +11 -0
  206. package/lib/index-CNft279A.js.map +1 -0
  207. package/lib/{index-B1Z54XFZ.js → index-CWRK0PZQ.js} +7 -7
  208. package/lib/{index-B1Z54XFZ.js.map → index-CWRK0PZQ.js.map} +1 -1
  209. package/lib/{index-DMv6rKId.js → index-CXGSpS4Q.js} +24 -24
  210. package/lib/{index-DMv6rKId.js.map → index-CXGSpS4Q.js.map} +1 -1
  211. package/lib/{index-4ThRXxxC.js → index-DAaYMZof.js} +5 -5
  212. package/lib/{index-4ThRXxxC.js.map → index-DAaYMZof.js.map} +1 -1
  213. package/lib/index-DAdvYBlI.js +11 -0
  214. package/lib/index-DAdvYBlI.js.map +1 -0
  215. package/lib/index-DIkWpujR.js +4 -4
  216. package/lib/{index-Do4REAbj.js → index-DcXP8-QG.js} +5 -5
  217. package/lib/{index-Do4REAbj.js.map → index-DcXP8-QG.js.map} +1 -1
  218. package/lib/{index-BexytaSe.js → index-DlW_bwsl.js} +20 -20
  219. package/lib/{index-BexytaSe.js.map → index-DlW_bwsl.js.map} +1 -1
  220. package/lib/{index-CCBoCEoA.js → index-DlijwYko.js} +6 -6
  221. package/lib/{index-CCBoCEoA.js.map → index-DlijwYko.js.map} +1 -1
  222. package/lib/{index-BAh1m0N5.js → index-DmFSY0_U.js} +5 -5
  223. package/lib/{index-BAh1m0N5.js.map → index-DmFSY0_U.js.map} +1 -1
  224. package/lib/{index-DwpXKtlG.js → index-DsfY64Br.js} +22 -22
  225. package/lib/{index-DwpXKtlG.js.map → index-DsfY64Br.js.map} +1 -1
  226. package/lib/{index-C9AZZgWj.js → index-DxMlPKfN.js} +5 -5
  227. package/lib/{index-C9AZZgWj.js.map → index-DxMlPKfN.js.map} +1 -1
  228. package/lib/{index-PIPvR0_T.js → index-YbWO-B52.js} +5 -5
  229. package/lib/{index-PIPvR0_T.js.map → index-YbWO-B52.js.map} +1 -1
  230. package/lib/{index-DTaiMRy5.js → index-ZIA0BP5y.js} +21 -21
  231. package/lib/{index-DTaiMRy5.js.map → index-ZIA0BP5y.js.map} +1 -1
  232. package/lib/{index-Cul2jiYE.js → index-j6OVjQxH.js} +22 -22
  233. package/lib/{index-Cul2jiYE.js.map → index-j6OVjQxH.js.map} +1 -1
  234. package/lib/{index-C7HriM7I.js → index-oc7_zRjn.js} +21 -21
  235. package/lib/{index-C7HriM7I.js.map → index-oc7_zRjn.js.map} +1 -1
  236. package/lib/{index-wdm7VTGN.js → index-whQ602dw.js} +17 -17
  237. package/lib/{index-wdm7VTGN.js.map → index-whQ602dw.js.map} +1 -1
  238. package/lib/{index-DE45lEIz.js → index-xiMdGzYX.js} +36 -36
  239. package/lib/{index-DE45lEIz.js.map → index-xiMdGzYX.js.map} +1 -1
  240. package/lib/is-BFoDLV-f.js +4 -4
  241. package/lib/it-B_iK-eSd.js +4 -4
  242. package/lib/iw-DL48t5mZ.js +4 -4
  243. package/lib/ja-C5bG2SRl.js +4 -4
  244. package/lib/ko-CmmVl873.js +4 -4
  245. package/lib/lo-DvBsVm-4.js +4 -4
  246. package/lib/lt-DWoqI4gx.js +4 -4
  247. package/lib/ms-BCHBEoqA.js +4 -4
  248. package/lib/nl-BE-DLixID0q.js +4 -4
  249. package/lib/nl-CeBqOv0i.js +4 -4
  250. package/lib/no-BR2xqD23.js +4 -4
  251. package/lib/pl-Dl77tRgW.js +4 -4
  252. package/lib/pt-BR--SxHOWht.js +4 -4
  253. package/lib/pt-D0bmI49-.js +4 -4
  254. package/lib/ro-HCkS3amY.js +4 -4
  255. package/lib/ru-BDMi1lvr.js +4 -4
  256. package/lib/sk-C4zNHeM6.js +4 -4
  257. package/lib/sl-BbQVw1S0.js +4 -4
  258. package/lib/sr-8d4sC8Hd.js +4 -4
  259. package/lib/sv-B0-e7r_0.js +4 -4
  260. package/lib/sw-Bo9F25Vc.js +4 -4
  261. package/lib/th-DDuVbwLh.js +4 -4
  262. package/lib/tr-CUwkgj2T.js +4 -4
  263. package/lib/uk-BPrGA4MJ.js +4 -4
  264. package/lib/ur-CIgS3emx.js +4 -4
  265. package/lib/useCollectFieldsEndpoint-Ct2R5q7J.js +43 -0
  266. package/lib/useCollectFieldsEndpoint-Ct2R5q7J.js.map +1 -0
  267. package/lib/{useEmailFirstExperiment-ZGzYFj1g.js → useEmailFirstExperiment-CCZ2ngZ6.js} +5 -5
  268. package/lib/{useEmailFirstExperiment-ZGzYFj1g.js.map → useEmailFirstExperiment-CCZ2ngZ6.js.map} +1 -1
  269. package/lib/vi-JbWizd9m.js +4 -4
  270. package/lib/zh-DjbXrser.js +4 -4
  271. package/lib/zh-HK-DXcspp2Y.js +4 -4
  272. package/lib/zu-BzwZfIDF.js +4 -4
  273. package/package.json +1 -1
  274. package/sheerid-install.css +4 -4
  275. package/sheerid-install.js +5 -5
  276. package/sheerid.css +5 -5
  277. package/sheerid.js +3858 -3844
  278. package/sheerid.js.map +1 -1
  279. package/src/components/FormInputs/Typeahead/TypeaheadClearButton/TypeaheadClearButtonComponent.d.ts +2 -5
  280. package/src/lib/types/types.d.ts +6 -1
  281. package/src/lib/validators/validators.d.ts +3 -0
  282. package/types-reference.zip +0 -0
  283. package/chunk/useCollectFieldsEndpoint-C5fsaYJe.js +0 -41
  284. package/chunk/useCollectFieldsEndpoint-C5fsaYJe.js.map +0 -1
  285. package/chunk/useCollectFieldsEndpoint-kmLFyUA-.js +0 -37
  286. package/chunk/useCollectFieldsEndpoint-kmLFyUA-.js.map +0 -1
  287. package/lib/StepCollectMilitaryStatusComponent-Cre33r_T.js +0 -11
  288. package/lib/es6-BVEB0OmM.js.map +0 -1
  289. package/lib/index-BWoAXq5x.js +0 -11
  290. package/lib/index-BWoAXq5x.js.map +0 -1
  291. package/lib/index-CFbwTZCk.js +0 -11
  292. package/lib/index-CFbwTZCk.js.map +0 -1
  293. package/lib/index-CMHAiHkx.js +0 -11
  294. package/lib/index-CMHAiHkx.js.map +0 -1
  295. package/lib/index-DZG2wC0t.js +0 -11
  296. package/lib/index-DZG2wC0t.js.map +0 -1
  297. package/lib/useCollectFieldsEndpoint-Do7iWmwg.js +0 -39
  298. package/lib/useCollectFieldsEndpoint-Do7iWmwg.js.map +0 -1
@@ -4,10 +4,10 @@
4
4
  * This file is not intended for use in other contexts and there are no guarantees about its behavior outside of MySheerID.
5
5
  */
6
6
  /**
7
- * VERSION: 2.121.0-alpha.3
8
- * BUILD_TIMESTAMP: 1754419929745
9
- * BUILD_DATE: Tue Aug 05 2025 18:52:09 GMT+0000 (Coordinated Universal Time)
10
- * BUILD_COMMIT: 091dfb82603775b7de0bf8cf799f963fc4950e98
7
+ * VERSION: 2.122.0-alpha.0
8
+ * BUILD_TIMESTAMP: 1754933341077
9
+ * BUILD_DATE: Mon Aug 11 2025 17:29:01 GMT+0000 (Coordinated Universal Time)
10
+ * BUILD_COMMIT: 75bc9dd94c884c271e125927543152b3642e70d8
11
11
  */
12
12
  const e = {
13
13
  "defaultMessages.ACTIVE_DUTY": "V aktívnej službe",
@@ -4,10 +4,10 @@
4
4
  * This file is not intended for use in other contexts and there are no guarantees about its behavior outside of MySheerID.
5
5
  */
6
6
  /**
7
- * VERSION: 2.121.0-alpha.3
8
- * BUILD_TIMESTAMP: 1754419929745
9
- * BUILD_DATE: Tue Aug 05 2025 18:52:09 GMT+0000 (Coordinated Universal Time)
10
- * BUILD_COMMIT: 091dfb82603775b7de0bf8cf799f963fc4950e98
7
+ * VERSION: 2.122.0-alpha.0
8
+ * BUILD_TIMESTAMP: 1754933341077
9
+ * BUILD_DATE: Mon Aug 11 2025 17:29:01 GMT+0000 (Coordinated Universal Time)
10
+ * BUILD_COMMIT: 75bc9dd94c884c271e125927543152b3642e70d8
11
11
  */
12
12
  const e = {
13
13
  "defaultMessages.ACTIVE_DUTY": "Aktivna služba",
@@ -4,10 +4,10 @@
4
4
  * This file is not intended for use in other contexts and there are no guarantees about its behavior outside of MySheerID.
5
5
  */
6
6
  /**
7
- * VERSION: 2.121.0-alpha.3
8
- * BUILD_TIMESTAMP: 1754419929745
9
- * BUILD_DATE: Tue Aug 05 2025 18:52:09 GMT+0000 (Coordinated Universal Time)
10
- * BUILD_COMMIT: 091dfb82603775b7de0bf8cf799f963fc4950e98
7
+ * VERSION: 2.122.0-alpha.0
8
+ * BUILD_TIMESTAMP: 1754933341077
9
+ * BUILD_DATE: Mon Aug 11 2025 17:29:01 GMT+0000 (Coordinated Universal Time)
10
+ * BUILD_COMMIT: 75bc9dd94c884c271e125927543152b3642e70d8
11
11
  */
12
12
  const e = {
13
13
  "defaultMessages.ACTIVE_DUTY": "Активна војна служба",
@@ -4,10 +4,10 @@
4
4
  * This file is not intended for use in other contexts and there are no guarantees about its behavior outside of MySheerID.
5
5
  */
6
6
  /**
7
- * VERSION: 2.121.0-alpha.3
8
- * BUILD_TIMESTAMP: 1754419929745
9
- * BUILD_DATE: Tue Aug 05 2025 18:52:09 GMT+0000 (Coordinated Universal Time)
10
- * BUILD_COMMIT: 091dfb82603775b7de0bf8cf799f963fc4950e98
7
+ * VERSION: 2.122.0-alpha.0
8
+ * BUILD_TIMESTAMP: 1754933341077
9
+ * BUILD_DATE: Mon Aug 11 2025 17:29:01 GMT+0000 (Coordinated Universal Time)
10
+ * BUILD_COMMIT: 75bc9dd94c884c271e125927543152b3642e70d8
11
11
  */
12
12
  const e = {
13
13
  "defaultMessages.ACTIVE_DUTY": "Aktiv Tjänst",
@@ -4,10 +4,10 @@
4
4
  * This file is not intended for use in other contexts and there are no guarantees about its behavior outside of MySheerID.
5
5
  */
6
6
  /**
7
- * VERSION: 2.121.0-alpha.3
8
- * BUILD_TIMESTAMP: 1754419929745
9
- * BUILD_DATE: Tue Aug 05 2025 18:52:09 GMT+0000 (Coordinated Universal Time)
10
- * BUILD_COMMIT: 091dfb82603775b7de0bf8cf799f963fc4950e98
7
+ * VERSION: 2.122.0-alpha.0
8
+ * BUILD_TIMESTAMP: 1754933341077
9
+ * BUILD_DATE: Mon Aug 11 2025 17:29:01 GMT+0000 (Coordinated Universal Time)
10
+ * BUILD_COMMIT: 75bc9dd94c884c271e125927543152b3642e70d8
11
11
  */
12
12
  const a = {
13
13
  "defaultMessages.ACTIVE_DUTY": "Mwanajeshi wa Wakati Wote",
@@ -4,10 +4,10 @@
4
4
  * This file is not intended for use in other contexts and there are no guarantees about its behavior outside of MySheerID.
5
5
  */
6
6
  /**
7
- * VERSION: 2.121.0-alpha.3
8
- * BUILD_TIMESTAMP: 1754419929745
9
- * BUILD_DATE: Tue Aug 05 2025 18:52:09 GMT+0000 (Coordinated Universal Time)
10
- * BUILD_COMMIT: 091dfb82603775b7de0bf8cf799f963fc4950e98
7
+ * VERSION: 2.122.0-alpha.0
8
+ * BUILD_TIMESTAMP: 1754933341077
9
+ * BUILD_DATE: Mon Aug 11 2025 17:29:01 GMT+0000 (Coordinated Universal Time)
10
+ * BUILD_COMMIT: 75bc9dd94c884c271e125927543152b3642e70d8
11
11
  */
12
12
  const e = {
13
13
  "defaultMessages.ACTIVE_DUTY": "ประจำการ",
@@ -4,10 +4,10 @@
4
4
  * This file is not intended for use in other contexts and there are no guarantees about its behavior outside of MySheerID.
5
5
  */
6
6
  /**
7
- * VERSION: 2.121.0-alpha.3
8
- * BUILD_TIMESTAMP: 1754419929745
9
- * BUILD_DATE: Tue Aug 05 2025 18:52:09 GMT+0000 (Coordinated Universal Time)
10
- * BUILD_COMMIT: 091dfb82603775b7de0bf8cf799f963fc4950e98
7
+ * VERSION: 2.122.0-alpha.0
8
+ * BUILD_TIMESTAMP: 1754933341077
9
+ * BUILD_DATE: Mon Aug 11 2025 17:29:01 GMT+0000 (Coordinated Universal Time)
10
+ * BUILD_COMMIT: 75bc9dd94c884c271e125927543152b3642e70d8
11
11
  */
12
12
  const e = {
13
13
  "defaultMessages.ACTIVE_DUTY": "Faal Görev",
@@ -4,10 +4,10 @@
4
4
  * This file is not intended for use in other contexts and there are no guarantees about its behavior outside of MySheerID.
5
5
  */
6
6
  /**
7
- * VERSION: 2.121.0-alpha.3
8
- * BUILD_TIMESTAMP: 1754419929745
9
- * BUILD_DATE: Tue Aug 05 2025 18:52:09 GMT+0000 (Coordinated Universal Time)
10
- * BUILD_COMMIT: 091dfb82603775b7de0bf8cf799f963fc4950e98
7
+ * VERSION: 2.122.0-alpha.0
8
+ * BUILD_TIMESTAMP: 1754933341077
9
+ * BUILD_DATE: Mon Aug 11 2025 17:29:01 GMT+0000 (Coordinated Universal Time)
10
+ * BUILD_COMMIT: 75bc9dd94c884c271e125927543152b3642e70d8
11
11
  */
12
12
  const e = {
13
13
  "defaultMessages.ACTIVE_DUTY": "Дійсна служба",
@@ -4,10 +4,10 @@
4
4
  * This file is not intended for use in other contexts and there are no guarantees about its behavior outside of MySheerID.
5
5
  */
6
6
  /**
7
- * VERSION: 2.121.0-alpha.3
8
- * BUILD_TIMESTAMP: 1754419929745
9
- * BUILD_DATE: Tue Aug 05 2025 18:52:09 GMT+0000 (Coordinated Universal Time)
10
- * BUILD_COMMIT: 091dfb82603775b7de0bf8cf799f963fc4950e98
7
+ * VERSION: 2.122.0-alpha.0
8
+ * BUILD_TIMESTAMP: 1754933341077
9
+ * BUILD_DATE: Mon Aug 11 2025 17:29:01 GMT+0000 (Coordinated Universal Time)
10
+ * BUILD_COMMIT: 75bc9dd94c884c271e125927543152b3642e70d8
11
11
  */
12
12
  const e = {
13
13
  "defaultMessages.ACTIVE_DUTY": "سرگرم ڈیوٹی",
@@ -0,0 +1,41 @@
1
+
2
+ /**
3
+ * VERSION: 2.122.0-alpha.0
4
+ * BUILD_TIMESTAMP: 1754933295331
5
+ * BUILD_DATE: Mon Aug 11 2025 17:28:15 GMT+0000 (Coordinated Universal Time)
6
+ * BUILD_COMMIT: 75bc9dd94c884c271e125927543152b3642e70d8
7
+ */
8
+ import { u as g, R as o, c as m, d as r, l as b } from "../sheerid.js";
9
+ const E = ({
10
+ verificationId: a,
11
+ currentStep: l,
12
+ viewModel: s,
13
+ defaultRequiredFields: d = []
14
+ }) => {
15
+ var i;
16
+ const u = g(), F = "status" in s ? s.status : void 0, [p, C] = o.useState(d), [f, q] = o.useState([]), y = (t) => p.some((e) => e.key === t), R = (t) => f.some((e) => e.key === t);
17
+ return o.useEffect(() => {
18
+ const t = new AbortController();
19
+ return (async () => {
20
+ try {
21
+ const e = await m(
22
+ a,
23
+ l,
24
+ s
25
+ ), c = r(() => e.fieldsToCollect.required, []), n = r(() => e.fieldsToCollect.optional, []);
26
+ t.signal.aborted || (C(c), q(n), u({
27
+ type: "COLLECT_FIELDS",
28
+ requiredFields: c,
29
+ optionalFields: n
30
+ }));
31
+ } catch (e) {
32
+ b.error(`Failed to determine fields to collect: ${e}`, l);
33
+ }
34
+ })(), () => {
35
+ t.abort();
36
+ };
37
+ }, [(i = s.countryChoice) == null ? void 0 : i.value, F]), { isFieldRequired: y, isFieldOptional: R };
38
+ };
39
+ export {
40
+ E as u
41
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCollectFieldsEndpoint-DFo1yXvN.js","sources":["../../src/lib/ServerApi/useCollectFieldsEndpoint.ts"],"sourcesContent":["import React from \"react\";\nimport {\n CollectFieldsResponse,\n FieldDescription,\n VerificationStep,\n PersonalInfoViewModel,\n CollectFieldsAction,\n} from \"../types/types\";\nimport { getSafe } from \"../utils/getSafe\";\nimport { logger } from \"../utils/logger/logger\";\nimport { getFieldsToCollect } from \"./VerificationApiUtils\";\nimport { useAppDispatch } from \"../state/contextHooks\";\n\nexport const useCollectFieldsEndpoint = <VM extends PersonalInfoViewModel = PersonalInfoViewModel>({\n verificationId,\n currentStep,\n viewModel,\n defaultRequiredFields = [],\n}: {\n verificationId: string;\n currentStep: VerificationStep;\n viewModel: VM;\n defaultRequiredFields?: FieldDescription[];\n}) => {\n const dispatch = useAppDispatch();\n const status = \"status\" in viewModel ? viewModel.status : undefined;\n\n const [requiredFields, setRequiredFields] =\n React.useState<FieldDescription[]>(defaultRequiredFields);\n const [optionalFields, setOptionalFields] = React.useState<FieldDescription[]>([]);\n\n const isFieldRequired = (key: keyof VM) => requiredFields.some((field) => field.key === key);\n const isFieldOptional = (key: keyof VM) => optionalFields.some((field) => field.key === key);\n\n React.useEffect(() => {\n const abortController = new AbortController();\n\n (async () => {\n try {\n const collectFieldsResponse: CollectFieldsResponse = await getFieldsToCollect(\n verificationId,\n currentStep,\n viewModel,\n );\n const newRequiredFields = getSafe(() => collectFieldsResponse.fieldsToCollect.required, []);\n const newOptionalFields = getSafe(() => collectFieldsResponse.fieldsToCollect.optional, []);\n\n if (!abortController.signal.aborted) {\n setRequiredFields(newRequiredFields);\n setOptionalFields(newOptionalFields);\n\n // Dispatch the field requirements to the reducer\n const collectFieldsAction: CollectFieldsAction = {\n type: \"COLLECT_FIELDS\",\n requiredFields: newRequiredFields,\n optionalFields: newOptionalFields,\n };\n dispatch(collectFieldsAction);\n }\n } catch (error) {\n logger.error(`Failed to determine fields to collect: ${error}`, currentStep);\n }\n })();\n\n // Cleanup function\n return () => {\n abortController.abort();\n };\n }, [viewModel.countryChoice?.value, status]);\n\n return { isFieldRequired, isFieldOptional };\n};\n"],"names":["useCollectFieldsEndpoint","verificationId","currentStep","viewModel","defaultRequiredFields","dispatch","useAppDispatch","status","requiredFields","setRequiredFields","React","optionalFields","setOptionalFields","isFieldRequired","key","field","isFieldOptional","abortController","collectFieldsResponse","getFieldsToCollect","newRequiredFields","getSafe","newOptionalFields","error","logger","_a"],"mappings":";AAaO,MAAMA,IAA2B,CAA2D;AAAA,EACjG,gBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,uBAAAC,IAAwB,CAAA;AAC1B,MAKM;;AACJ,QAAMC,IAAWC,EAAe,GAC1BC,IAAS,YAAYJ,IAAYA,EAAU,SAAS,QAEpD,CAACK,GAAgBC,CAAiB,IACtCC,EAAM,SAA6BN,CAAqB,GACpD,CAACO,GAAgBC,CAAiB,IAAIF,EAAM,SAA6B,CAAA,CAAE,GAE3EG,IAAkB,CAACC,MAAkBN,EAAe,KAAK,CAACO,MAAUA,EAAM,QAAQD,CAAG,GACrFE,IAAkB,CAACF,MAAkBH,EAAe,KAAK,CAACI,MAAUA,EAAM,QAAQD,CAAG;AAE3F,SAAAJ,EAAM,UAAU,MAAM;AACd,UAAAO,IAAkB,IAAI,gBAAgB;AAE5C,YAAC,YAAY;AACP,UAAA;AACF,cAAMC,IAA+C,MAAMC;AAAA,UACzDlB;AAAA,UACAC;AAAA,UACAC;AAAA,QACF,GACMiB,IAAoBC,EAAQ,MAAMH,EAAsB,gBAAgB,UAAU,EAAE,GACpFI,IAAoBD,EAAQ,MAAMH,EAAsB,gBAAgB,UAAU,EAAE;AAEtF,QAACD,EAAgB,OAAO,YAC1BR,EAAkBW,CAAiB,GACnCR,EAAkBU,CAAiB,GAQnCjB,EALiD;AAAA,UAC/C,MAAM;AAAA,UACN,gBAAgBe;AAAA,UAChB,gBAAgBE;AAAA,QAClB,CAC4B;AAAA,eAEvBC,GAAO;AACd,QAAAC,EAAO,MAAM,0CAA0CD,CAAK,IAAIrB,CAAW;AAAA,MAAA;AAAA,IAC7E,GACC,GAGI,MAAM;AACX,MAAAe,EAAgB,MAAM;AAAA,IACxB;AAAA,KACC,EAACQ,IAAAtB,EAAU,kBAAV,gBAAAsB,EAAyB,OAAOlB,CAAM,CAAC,GAEpC,EAAE,iBAAAM,GAAiB,iBAAAG,EAAgB;AAC5C;"}
@@ -0,0 +1,45 @@
1
+
2
+ /**
3
+ * WARNING: This file is intended to be used within MySheerID.
4
+ * This file is not intended for use in other contexts and there are no guarantees about its behavior outside of MySheerID.
5
+ */
6
+ /**
7
+ * VERSION: 2.122.0-alpha.0
8
+ * BUILD_TIMESTAMP: 1754933341077
9
+ * BUILD_DATE: Mon Aug 11 2025 17:29:01 GMT+0000 (Coordinated Universal Time)
10
+ * BUILD_COMMIT: 75bc9dd94c884c271e125927543152b3642e70d8
11
+ */
12
+ import { u as g, R as o, c as m, d as r, l as b } from "../_mysheerid-preview.js";
13
+ const E = ({
14
+ verificationId: a,
15
+ currentStep: l,
16
+ viewModel: s,
17
+ defaultRequiredFields: d = []
18
+ }) => {
19
+ var i;
20
+ const u = g(), F = "status" in s ? s.status : void 0, [p, C] = o.useState(d), [f, q] = o.useState([]), y = (t) => p.some((e) => e.key === t), R = (t) => f.some((e) => e.key === t);
21
+ return o.useEffect(() => {
22
+ const t = new AbortController();
23
+ return (async () => {
24
+ try {
25
+ const e = await m(
26
+ a,
27
+ l,
28
+ s
29
+ ), c = r(() => e.fieldsToCollect.required, []), n = r(() => e.fieldsToCollect.optional, []);
30
+ t.signal.aborted || (C(c), q(n), u({
31
+ type: "COLLECT_FIELDS",
32
+ requiredFields: c,
33
+ optionalFields: n
34
+ }));
35
+ } catch (e) {
36
+ b.error(`Failed to determine fields to collect: ${e}`, l);
37
+ }
38
+ })(), () => {
39
+ t.abort();
40
+ };
41
+ }, [(i = s.countryChoice) == null ? void 0 : i.value, F]), { isFieldRequired: y, isFieldOptional: R };
42
+ };
43
+ export {
44
+ E as u
45
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCollectFieldsEndpoint-DPX8CT4Y.js","sources":["../../src/lib/ServerApi/useCollectFieldsEndpoint.ts"],"sourcesContent":["import React from \"react\";\nimport {\n CollectFieldsResponse,\n FieldDescription,\n VerificationStep,\n PersonalInfoViewModel,\n CollectFieldsAction,\n} from \"../types/types\";\nimport { getSafe } from \"../utils/getSafe\";\nimport { logger } from \"../utils/logger/logger\";\nimport { getFieldsToCollect } from \"./VerificationApiUtils\";\nimport { useAppDispatch } from \"../state/contextHooks\";\n\nexport const useCollectFieldsEndpoint = <VM extends PersonalInfoViewModel = PersonalInfoViewModel>({\n verificationId,\n currentStep,\n viewModel,\n defaultRequiredFields = [],\n}: {\n verificationId: string;\n currentStep: VerificationStep;\n viewModel: VM;\n defaultRequiredFields?: FieldDescription[];\n}) => {\n const dispatch = useAppDispatch();\n const status = \"status\" in viewModel ? viewModel.status : undefined;\n\n const [requiredFields, setRequiredFields] =\n React.useState<FieldDescription[]>(defaultRequiredFields);\n const [optionalFields, setOptionalFields] = React.useState<FieldDescription[]>([]);\n\n const isFieldRequired = (key: keyof VM) => requiredFields.some((field) => field.key === key);\n const isFieldOptional = (key: keyof VM) => optionalFields.some((field) => field.key === key);\n\n React.useEffect(() => {\n const abortController = new AbortController();\n\n (async () => {\n try {\n const collectFieldsResponse: CollectFieldsResponse = await getFieldsToCollect(\n verificationId,\n currentStep,\n viewModel,\n );\n const newRequiredFields = getSafe(() => collectFieldsResponse.fieldsToCollect.required, []);\n const newOptionalFields = getSafe(() => collectFieldsResponse.fieldsToCollect.optional, []);\n\n if (!abortController.signal.aborted) {\n setRequiredFields(newRequiredFields);\n setOptionalFields(newOptionalFields);\n\n // Dispatch the field requirements to the reducer\n const collectFieldsAction: CollectFieldsAction = {\n type: \"COLLECT_FIELDS\",\n requiredFields: newRequiredFields,\n optionalFields: newOptionalFields,\n };\n dispatch(collectFieldsAction);\n }\n } catch (error) {\n logger.error(`Failed to determine fields to collect: ${error}`, currentStep);\n }\n })();\n\n // Cleanup function\n return () => {\n abortController.abort();\n };\n }, [viewModel.countryChoice?.value, status]);\n\n return { isFieldRequired, isFieldOptional };\n};\n"],"names":["useCollectFieldsEndpoint","verificationId","currentStep","viewModel","defaultRequiredFields","dispatch","useAppDispatch","status","requiredFields","setRequiredFields","React","optionalFields","setOptionalFields","isFieldRequired","key","field","isFieldOptional","abortController","collectFieldsResponse","getFieldsToCollect","newRequiredFields","getSafe","newOptionalFields","error","logger","_a"],"mappings":";AAaO,MAAMA,IAA2B,CAA2D;AAAA,EACjG,gBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,uBAAAC,IAAwB,CAAA;AAC1B,MAKM;;AACJ,QAAMC,IAAWC,EAAe,GAC1BC,IAAS,YAAYJ,IAAYA,EAAU,SAAS,QAEpD,CAACK,GAAgBC,CAAiB,IACtCC,EAAM,SAA6BN,CAAqB,GACpD,CAACO,GAAgBC,CAAiB,IAAIF,EAAM,SAA6B,CAAA,CAAE,GAE3EG,IAAkB,CAACC,MAAkBN,EAAe,KAAK,CAACO,MAAUA,EAAM,QAAQD,CAAG,GACrFE,IAAkB,CAACF,MAAkBH,EAAe,KAAK,CAACI,MAAUA,EAAM,QAAQD,CAAG;AAE3F,SAAAJ,EAAM,UAAU,MAAM;AACd,UAAAO,IAAkB,IAAI,gBAAgB;AAE5C,YAAC,YAAY;AACP,UAAA;AACF,cAAMC,IAA+C,MAAMC;AAAA,UACzDlB;AAAA,UACAC;AAAA,UACAC;AAAA,QACF,GACMiB,IAAoBC,EAAQ,MAAMH,EAAsB,gBAAgB,UAAU,EAAE,GACpFI,IAAoBD,EAAQ,MAAMH,EAAsB,gBAAgB,UAAU,EAAE;AAEtF,QAACD,EAAgB,OAAO,YAC1BR,EAAkBW,CAAiB,GACnCR,EAAkBU,CAAiB,GAQnCjB,EALiD;AAAA,UAC/C,MAAM;AAAA,UACN,gBAAgBe;AAAA,UAChB,gBAAgBE;AAAA,QAClB,CAC4B;AAAA,eAEvBC,GAAO;AACd,QAAAC,EAAO,MAAM,0CAA0CD,CAAK,IAAIrB,CAAW;AAAA,MAAA;AAAA,IAC7E,GACC,GAGI,MAAM;AACX,MAAAe,EAAgB,MAAM;AAAA,IACxB;AAAA,KACC,EAACQ,IAAAtB,EAAU,kBAAV,gBAAAsB,EAAyB,OAAOlB,CAAM,CAAC,GAEpC,EAAE,iBAAAM,GAAiB,iBAAAG,EAAgB;AAC5C;"}
@@ -1,11 +1,11 @@
1
1
 
2
2
  /**
3
- * VERSION: 2.121.0-alpha.3
4
- * BUILD_TIMESTAMP: 1754419875332
5
- * BUILD_DATE: Tue Aug 05 2025 18:51:15 GMT+0000 (Coordinated Universal Time)
6
- * BUILD_COMMIT: 091dfb82603775b7de0bf8cf799f963fc4950e98
3
+ * VERSION: 2.122.0-alpha.0
4
+ * BUILD_TIMESTAMP: 1754933295331
5
+ * BUILD_DATE: Mon Aug 11 2025 17:28:15 GMT+0000 (Coordinated Universal Time)
6
+ * BUILD_COMMIT: 75bc9dd94c884c271e125927543152b3642e70d8
7
7
  */
8
- import { s as l, j as i, b as d, an as R, ao as L, l as E, ap as B, aq as H, ai as q, ar as I, as as G, at as J, au as K, a as Y, av as z, aw as W } from "../sheerid.js";
8
+ import { t as l, j as i, b as d, ao as R, ap as L, l as E, aq as B, ar as H, aj as q, as as I, at as G, au as J, av as K, a as Y, aw as z, ax as W } from "../sheerid.js";
9
9
  const V = ({
10
10
  title: t,
11
11
  message: s,
@@ -1 +1 @@
1
- {"version":3,"file":"useEmailFirstExperiment-BbDrKQEs.js","sources":["../../src/components/FormFields/EmailFirstCollectInfo/EmailMessageComponent.tsx","../../src/components/FormFields/EmailFirstCollectInfo/types.ts","../../src/components/FormFields/EmailFirstCollectInfo/EmailLookupResponseMessageComponent.tsx","../../src/lib/ServerApi/VerificationHelpRequestApi.ts","../../src/components/FormFields/EmailFirstCollectInfo/useEmailFirstExperiment.ts"],"sourcesContent":["import React, { useState } from \"react\";\nimport { FormattedHTMLMessage } from \"react-intl\";\n\ninterface EmailMessageComponentProps {\n title?: string | React.ReactNode;\n message?: string | React.ReactNode;\n closing?: string | React.ReactNode;\n helpRequestResponse?: \"green\" | \"blue\";\n onResendClick?: () => Promise<void>;\n}\n\nconst EmailMessageComponent = ({\n title,\n message,\n closing,\n helpRequestResponse = \"blue\",\n onResendClick,\n}: EmailMessageComponentProps) => {\n const [hasSent, setHasSent] = useState(false);\n\n const handleClick = async () => {\n if (onResendClick) {\n await onResendClick();\n setHasSent(true);\n }\n };\n\n return (\n <div\n className={\n helpRequestResponse === \"green\"\n ? \"sid-email-msg-container sid-l-horz-center sid-l-space-top-md sid-email-msg-container--bg-green\"\n : \"sid-email-msg-container sid-l-horz-center sid-l-space-top-md sid-email-msg-container--bg-blue\"\n }\n >\n <div className=\"sid-email-msg-container__title\">{title}</div>\n <div className=\"sid-email-msg-container__content\">{message}</div>\n <div className=\"sid-email-msg-container__content sid-email-msg-container__closing\">\n {closing}\n </div>\n <div className=\"sid-email-resend-area\">\n <button\n type=\"button\"\n className={\n hasSent\n ? \"sid-email-resend-area__button sid-email-resend-area__button__sent\"\n : \"sid-email-resend-area__button\"\n }\n onClick={handleClick}\n disabled={hasSent}\n >\n <FormattedHTMLMessage\n id={\n hasSent\n ? \"step.personalInfo.emailFirstCollectInfo.sent\"\n : \"step.personalInfo.emailFirstCollectInfo.sendAgain\"\n }\n defaultMessage={hasSent ? \"Sent!\" : \"Send Again\"}\n />\n </button>\n </div>\n </div>\n );\n};\n\nexport { EmailMessageComponent };\n","export enum EmailLookupStatus {\n FOUND = \"existingVerificationFound\",\n NOT_FOUND = \"existingVerificationNotFound\",\n PENDING = \"pendingVerification\",\n REJECTED = \"rejectedVerification\",\n ALREADY_INITIATED = \"emailResendAlreadyInitiated\",\n}\n\nexport type EmailLookupResponse = {\n status: EmailLookupStatus;\n message: string | null;\n};\n\nexport type EmailFirstCollectInfoStep =\n | \"message-dimmed-fields\"\n | \"no-message-dimmed-fields\"\n | \"control\"\n | \"default\";\n\nexport interface VerificationHelpRequestApiResponse {\n systemErrorMessage?: string;\n currentStep?: string;\n status?: number;\n}\n","import React from \"react\";\nimport { FormattedHTMLMessage } from \"react-intl\";\nimport { EmailMessageComponent } from \"./EmailMessageComponent\";\nimport { EmailLookupResponse, EmailLookupStatus } from \"./types\";\n\ninterface EmailLookupResponseMessagesProps {\n emailLookupResponse: EmailLookupResponse | null;\n onResendClick?: () => Promise<void>;\n onHandleClickLink?: () => Promise<void>;\n}\n\nconst EmailLookupResponseMessages: React.FC<EmailLookupResponseMessagesProps> = ({\n emailLookupResponse,\n onResendClick = async () => {},\n onHandleClickLink = async () => {},\n}) => {\n if (\n emailLookupResponse.status === EmailLookupStatus.FOUND &&\n emailLookupResponse.message === \"success\"\n ) {\n return (\n <EmailMessageComponent\n title={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.existingVerificationFound.title\"\n defaultMessage=\"You've been here before!\"\n />\n }\n message={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.existingVerificationFound.message\"\n defaultMessage=\"Verify@sheerid.com re-sent your confirmation email with details on redeeming your verified offer.\"\n />\n }\n closing={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.existingVerificationFound.closing\"\n defaultMessage=\"Enjoy!\"\n />\n }\n helpRequestResponse=\"green\"\n onResendClick={onResendClick}\n />\n );\n }\n if (\n emailLookupResponse.status === EmailLookupStatus.FOUND &&\n emailLookupResponse.message !== \"success\"\n ) {\n return (\n <>\n <EmailMessageComponent\n title={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.pendingVerification.title\"\n defaultMessage=\"Looks like you started.\"\n />\n }\n message={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.pendingVerification.message\"\n defaultMessage=\"This email is associated with a verification in the works.\"\n />\n }\n closing={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.pendingVerification.closing\"\n defaultMessage=\"Verify@sheerid.com re-sent our last email to you with next steps.\"\n />\n }\n helpRequestResponse=\"blue\"\n onResendClick={onResendClick}\n />\n <div className=\"sid-email-first__need-changes sid-h-small-text\">\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.needChanges\"\n defaultMessage=\"Need to make changes?\"\n />\n <button\n type=\"submit\"\n className=\"sid-email-first__need-changes-link sid-link\"\n onClick={onHandleClickLink}\n >\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.proceedHere\"\n defaultMessage=\"Proceed here\"\n />\n </button>\n </div>\n </>\n );\n }\n\n return null;\n};\n\nexport default EmailLookupResponseMessages;\n","import { logger } from \"../utils/logger/logger\";\nimport {\n EmailLookupResponse,\n EmailLookupStatus,\n VerificationHelpRequestApiResponse,\n} from \"../../components/FormFields/EmailFirstCollectInfo/types\";\nimport { getVerificationHelpUrl } from \"./ApiUrls\";\nimport { DatabaseId } from \"../types/types\";\nimport { fetchWithTimeout } from \"./Network\";\nimport { EventName, recordGaEvent } from \"../GoogleAnalytics/ga\";\n\nconst defaultJsonHeaders = {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n};\n/**\n * Endpoint to support email-first functionality.\n * Look up a verification, return status and trigger notifier(s)\n *\n * @param programId Your programId from my.sheerid.com\n * @param emailAddress Email Address used for the verification.\n */\nexport const submitVerificationHelpRequest = async (\n programId: DatabaseId,\n emailAddress: string = undefined,\n headers = {},\n): Promise<VerificationHelpRequestApiResponse> => {\n const url = getVerificationHelpUrl();\n const requestBody = {\n emailAddress,\n programId,\n };\n\n try {\n const response = await fetchWithTimeout(url, {\n headers: { ...defaultJsonHeaders, ...headers },\n method: \"POST\",\n body: JSON.stringify(requestBody),\n });\n\n const responseJson = await response.json();\n return { ...responseJson, status: response.status };\n } catch (error) {\n logger.error(\"Error in submitVerificationHelpRequest:\", error);\n return {\n systemErrorMessage: \"An error occurred during the request.\",\n status: 500,\n };\n }\n};\n\nexport async function handleSubmitVerificationHelpRequest(\n programId: string,\n email: string,\n): Promise<EmailLookupResponse> {\n try {\n const resp: VerificationHelpRequestApiResponse = await submitVerificationHelpRequest(\n programId,\n email,\n );\n let status: EmailLookupStatus = EmailLookupStatus.PENDING;\n let message: string | null = null;\n\n if (resp.status === 500) {\n status = EmailLookupStatus.NOT_FOUND;\n message = \"Error during lookup.\";\n } else if (resp.status === 404 || resp.status === 429) {\n status = EmailLookupStatus.NOT_FOUND;\n } else if (resp.status === 400) {\n status = EmailLookupStatus.ALREADY_INITIATED;\n } else if (resp.status === 200) {\n if (resp.currentStep === \"error\" || resp.currentStep === \"docReviewLimitExceeded\") {\n status = EmailLookupStatus.NOT_FOUND;\n message = \"An error occurred during verification.\";\n } else if (\n resp.currentStep === \"pending\" ||\n resp.currentStep === \"consolation\" ||\n resp.currentStep === \"loading\"\n ) {\n status = EmailLookupStatus.PENDING;\n message = \"pending\";\n } else if (!resp.currentStep.toLowerCase().startsWith(\"collect\")) {\n status = EmailLookupStatus.FOUND;\n message = resp.currentStep;\n } else {\n message = \"Unexpected API response.\";\n }\n }\n recordGaEvent({ eventName: EventName.VERIFICATION_HELP, params: { status, programId } });\n return { status, message };\n } catch (error) {\n logger.error(\"Error submitting verification help request:\", error);\n return {\n status: EmailLookupStatus.PENDING,\n message: \"Error during lookup.\",\n };\n }\n}\n","import { useState, useCallback, useEffect, useMemo } from \"react\";\nimport {\n COLLECT_INFO_SUBMISSION_TIME,\n COLLECT_INFO_SUBMIT,\n useMetrics,\n} from \"@/components/FeatureFlags/useMetrics\";\nimport {\n Organization,\n StudentPersonalInfoViewModel,\n TeacherPersonalInfoViewModel,\n VerificationService,\n} from \"../../../lib/types/types\";\nimport { logger } from \"../../../lib/utils/logger/logger\";\nimport { handleSubmitVerificationHelpRequest } from \"../../../lib/ServerApi/VerificationHelpRequestApi\";\nimport { EmailLookupResponse, EmailLookupStatus } from \"./types\";\nimport { getEmailValidationError } from \"../../../lib/validators/validators\";\nimport { useFlag } from \"../../FeatureFlags/hooks\";\nimport { getOrgSearchUrl } from \"../../../lib/ProgramTheme/programThemeGetters\";\nimport { getDomainFromEmail } from \"../../../lib/utils/routing/Url\";\nimport { fetchOrganization } from \"../../../lib/ServerApi/OrganizationApiClient\";\n\nexport function useEmailFirstExperiment(programId: string, email: string, segment: string) {\n const [isLoading, setIsLoading] = useState(false);\n const [emailLookupResponse, setEmailLookupResponse] = useState<EmailLookupResponse | null>(null);\n const emailFirstCollectInfoStep = useFlag(\"collect-info-step-email-first\");\n const isEmailUpTop = emailFirstCollectInfoStep === \"no-message-dimmed-fields\";\n const [bypassEmailLookup, setBypassEmailLookup] = useState(false);\n const [hasBlurred, setHasBlurred] = useState(false);\n const [hasKeyPressed, setHasKeyPressed] = useState(false);\n const [emailInputState, setEmailInputState] = useState({\n emailLookupResponse: null,\n hasBlurred: false,\n hasKeyPressed: false,\n isValidEmail: !getEmailValidationError(email),\n });\n const { userDidConvert } = useMetrics(segment);\n\n const updateEmailState = useCallback((newEmail: string) => {\n const isValid = !getEmailValidationError(newEmail);\n setEmailInputState((prevState) => ({\n ...prevState,\n emailLookupResponse: newEmail !== \"\" && isValid ? null : prevState.emailLookupResponse,\n hasBlurred: false,\n hasKeyPressed: false,\n isValidEmail: isValid,\n }));\n }, []);\n\n useEffect(() => {\n updateEmailState(email);\n }, [email, updateEmailState]);\n\n const enableFormFields = useMemo(\n () =>\n email !== \"\" &&\n emailInputState.isValidEmail &&\n (!isEmailUpTop || emailLookupResponse?.status === EmailLookupStatus.NOT_FOUND),\n [email, emailInputState.isValidEmail, isEmailUpTop, emailLookupResponse],\n );\n\n const showFormFields = useMemo(\n () =>\n (email === \"\" ||\n (typeof email === \"string\" && email.length >= 1) ||\n emailLookupResponse?.status === null) &&\n (emailLookupResponse?.status === EmailLookupStatus.NOT_FOUND ||\n ![\n EmailLookupStatus.ALREADY_INITIATED,\n EmailLookupStatus.FOUND,\n EmailLookupStatus.PENDING,\n EmailLookupStatus.REJECTED,\n ].includes(emailLookupResponse?.status)),\n [email, emailLookupResponse],\n );\n\n const emailOnBlur = useCallback(async () => {\n if (!emailInputState.isValidEmail || bypassEmailLookup || hasKeyPressed) return;\n setHasBlurred(true);\n setBypassEmailLookup(false);\n setIsLoading(true);\n try {\n const response = await handleSubmitVerificationHelpRequest(programId, email);\n if (response.status === EmailLookupStatus.FOUND) {\n userDidConvert(COLLECT_INFO_SUBMIT, COLLECT_INFO_SUBMISSION_TIME);\n }\n setEmailLookupResponse(response);\n } catch (error) {\n logger.error(\"Error during email lookup:\", error);\n } finally {\n setIsLoading(false);\n }\n }, [programId, email, bypassEmailLookup, hasKeyPressed, emailInputState.isValidEmail]);\n\n const emailOnKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (hasBlurred) return;\n if (event.key === \"Enter\") {\n setHasKeyPressed(true);\n emailOnBlur();\n }\n },\n [emailOnBlur, hasBlurred],\n );\n\n const handleResendClick = useCallback(async () => {\n setIsLoading(true);\n try {\n const response: EmailLookupResponse = await handleSubmitVerificationHelpRequest(\n programId,\n email,\n );\n setEmailLookupResponse(response);\n } catch (error) {\n logger.error(\"Error resending email:\", error);\n } finally {\n setIsLoading(false);\n }\n }, [programId, email, segment]);\n\n const handleOnClickProceedHere = useCallback(async () => {\n if (!emailInputState.isValidEmail) return;\n setBypassEmailLookup(true);\n setEmailLookupResponse({\n status: EmailLookupStatus.NOT_FOUND,\n message: \"makeChanges\",\n });\n }, [emailInputState.isValidEmail]);\n\n const getOrgByDomain = useCallback(\n async (verificationService: VerificationService): Promise<Organization | undefined> => {\n if (!verificationService) return undefined;\n\n const orgSearchUrl = getOrgSearchUrl(\n verificationService.viewModel as\n | StudentPersonalInfoViewModel\n | TeacherPersonalInfoViewModel,\n verificationService.programTheme,\n );\n\n const emailDomain = getDomainFromEmail(email);\n const orgDomainMatch = new URL(orgSearchUrl);\n orgDomainMatch.searchParams.set(\"domain\", emailDomain);\n\n const response = await fetchOrganization(orgDomainMatch.toString());\n\n return response && response.length === 1 ? response[0] : undefined;\n },\n [email],\n );\n\n if (!isEmailUpTop) {\n return {\n isEmailUpTop,\n isEmailValidationLoading: false,\n showOtherFields: true,\n disableOtherFields: false,\n emailLookupResponse: null,\n showEmailLookupResponseMessages: false,\n showFormFields: true,\n emailOnBlur: () => {},\n emailOnKeyDown: () => {},\n handleResendClick: () => Promise.resolve(),\n emailFirstCollectInfoStep,\n isValidEmail: !getEmailValidationError(email),\n getOrgByDomain: async () => undefined,\n enableFormFields: true,\n };\n }\n\n return {\n isEmailUpTop,\n isEmailValidationLoading: isLoading,\n emailLookupResponse,\n showEmailLookupResponseMessages: !!emailLookupResponse,\n showFormFields,\n emailOnBlur,\n emailOnKeyDown,\n handleResendClick,\n emailFirstCollectInfoStep,\n isValidEmail: emailInputState.isValidEmail,\n getOrgByDomain,\n enableFormFields,\n handleOnClickProceedHere,\n };\n}\n"],"names":["EmailMessageComponent","title","message","closing","helpRequestResponse","onResendClick","hasSent","setHasSent","useState","handleClick","jsxs","jsx","FormattedHTMLMessage","EmailLookupStatus","EmailLookupResponseMessages","emailLookupResponse","onHandleClickLink","Fragment","defaultJsonHeaders","submitVerificationHelpRequest","programId","emailAddress","headers","url","getVerificationHelpUrl","requestBody","response","fetchWithTimeout","error","logger","handleSubmitVerificationHelpRequest","email","resp","status","recordGaEvent","EventName","useEmailFirstExperiment","segment","isLoading","setIsLoading","setEmailLookupResponse","emailFirstCollectInfoStep","useFlag","isEmailUpTop","bypassEmailLookup","setBypassEmailLookup","hasBlurred","setHasBlurred","hasKeyPressed","setHasKeyPressed","emailInputState","setEmailInputState","getEmailValidationError","userDidConvert","useMetrics","updateEmailState","useCallback","newEmail","isValid","prevState","useEffect","enableFormFields","useMemo","showFormFields","emailOnBlur","COLLECT_INFO_SUBMIT","COLLECT_INFO_SUBMISSION_TIME","emailOnKeyDown","event","handleResendClick","handleOnClickProceedHere","getOrgByDomain","verificationService","orgSearchUrl","getOrgSearchUrl","emailDomain","getDomainFromEmail","orgDomainMatch","fetchOrganization"],"mappings":"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"}
1
+ {"version":3,"file":"useEmailFirstExperiment-DH410dM-.js","sources":["../../src/components/FormFields/EmailFirstCollectInfo/EmailMessageComponent.tsx","../../src/components/FormFields/EmailFirstCollectInfo/types.ts","../../src/components/FormFields/EmailFirstCollectInfo/EmailLookupResponseMessageComponent.tsx","../../src/lib/ServerApi/VerificationHelpRequestApi.ts","../../src/components/FormFields/EmailFirstCollectInfo/useEmailFirstExperiment.ts"],"sourcesContent":["import React, { useState } from \"react\";\nimport { FormattedHTMLMessage } from \"react-intl\";\n\ninterface EmailMessageComponentProps {\n title?: string | React.ReactNode;\n message?: string | React.ReactNode;\n closing?: string | React.ReactNode;\n helpRequestResponse?: \"green\" | \"blue\";\n onResendClick?: () => Promise<void>;\n}\n\nconst EmailMessageComponent = ({\n title,\n message,\n closing,\n helpRequestResponse = \"blue\",\n onResendClick,\n}: EmailMessageComponentProps) => {\n const [hasSent, setHasSent] = useState(false);\n\n const handleClick = async () => {\n if (onResendClick) {\n await onResendClick();\n setHasSent(true);\n }\n };\n\n return (\n <div\n className={\n helpRequestResponse === \"green\"\n ? \"sid-email-msg-container sid-l-horz-center sid-l-space-top-md sid-email-msg-container--bg-green\"\n : \"sid-email-msg-container sid-l-horz-center sid-l-space-top-md sid-email-msg-container--bg-blue\"\n }\n >\n <div className=\"sid-email-msg-container__title\">{title}</div>\n <div className=\"sid-email-msg-container__content\">{message}</div>\n <div className=\"sid-email-msg-container__content sid-email-msg-container__closing\">\n {closing}\n </div>\n <div className=\"sid-email-resend-area\">\n <button\n type=\"button\"\n className={\n hasSent\n ? \"sid-email-resend-area__button sid-email-resend-area__button__sent\"\n : \"sid-email-resend-area__button\"\n }\n onClick={handleClick}\n disabled={hasSent}\n >\n <FormattedHTMLMessage\n id={\n hasSent\n ? \"step.personalInfo.emailFirstCollectInfo.sent\"\n : \"step.personalInfo.emailFirstCollectInfo.sendAgain\"\n }\n defaultMessage={hasSent ? \"Sent!\" : \"Send Again\"}\n />\n </button>\n </div>\n </div>\n );\n};\n\nexport { EmailMessageComponent };\n","export enum EmailLookupStatus {\n FOUND = \"existingVerificationFound\",\n NOT_FOUND = \"existingVerificationNotFound\",\n PENDING = \"pendingVerification\",\n REJECTED = \"rejectedVerification\",\n ALREADY_INITIATED = \"emailResendAlreadyInitiated\",\n}\n\nexport type EmailLookupResponse = {\n status: EmailLookupStatus;\n message: string | null;\n};\n\nexport type EmailFirstCollectInfoStep =\n | \"message-dimmed-fields\"\n | \"no-message-dimmed-fields\"\n | \"control\"\n | \"default\";\n\nexport interface VerificationHelpRequestApiResponse {\n systemErrorMessage?: string;\n currentStep?: string;\n status?: number;\n}\n","import React from \"react\";\nimport { FormattedHTMLMessage } from \"react-intl\";\nimport { EmailMessageComponent } from \"./EmailMessageComponent\";\nimport { EmailLookupResponse, EmailLookupStatus } from \"./types\";\n\ninterface EmailLookupResponseMessagesProps {\n emailLookupResponse: EmailLookupResponse | null;\n onResendClick?: () => Promise<void>;\n onHandleClickLink?: () => Promise<void>;\n}\n\nconst EmailLookupResponseMessages: React.FC<EmailLookupResponseMessagesProps> = ({\n emailLookupResponse,\n onResendClick = async () => {},\n onHandleClickLink = async () => {},\n}) => {\n if (\n emailLookupResponse.status === EmailLookupStatus.FOUND &&\n emailLookupResponse.message === \"success\"\n ) {\n return (\n <EmailMessageComponent\n title={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.existingVerificationFound.title\"\n defaultMessage=\"You've been here before!\"\n />\n }\n message={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.existingVerificationFound.message\"\n defaultMessage=\"Verify@sheerid.com re-sent your confirmation email with details on redeeming your verified offer.\"\n />\n }\n closing={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.existingVerificationFound.closing\"\n defaultMessage=\"Enjoy!\"\n />\n }\n helpRequestResponse=\"green\"\n onResendClick={onResendClick}\n />\n );\n }\n if (\n emailLookupResponse.status === EmailLookupStatus.FOUND &&\n emailLookupResponse.message !== \"success\"\n ) {\n return (\n <>\n <EmailMessageComponent\n title={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.pendingVerification.title\"\n defaultMessage=\"Looks like you started.\"\n />\n }\n message={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.pendingVerification.message\"\n defaultMessage=\"This email is associated with a verification in the works.\"\n />\n }\n closing={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.pendingVerification.closing\"\n defaultMessage=\"Verify@sheerid.com re-sent our last email to you with next steps.\"\n />\n }\n helpRequestResponse=\"blue\"\n onResendClick={onResendClick}\n />\n <div className=\"sid-email-first__need-changes sid-h-small-text\">\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.needChanges\"\n defaultMessage=\"Need to make changes?\"\n />\n <button\n type=\"submit\"\n className=\"sid-email-first__need-changes-link sid-link\"\n onClick={onHandleClickLink}\n >\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.proceedHere\"\n defaultMessage=\"Proceed here\"\n />\n </button>\n </div>\n </>\n );\n }\n\n return null;\n};\n\nexport default EmailLookupResponseMessages;\n","import { logger } from \"../utils/logger/logger\";\nimport {\n EmailLookupResponse,\n EmailLookupStatus,\n VerificationHelpRequestApiResponse,\n} from \"../../components/FormFields/EmailFirstCollectInfo/types\";\nimport { getVerificationHelpUrl } from \"./ApiUrls\";\nimport { DatabaseId } from \"../types/types\";\nimport { fetchWithTimeout } from \"./Network\";\nimport { EventName, recordGaEvent } from \"../GoogleAnalytics/ga\";\n\nconst defaultJsonHeaders = {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n};\n/**\n * Endpoint to support email-first functionality.\n * Look up a verification, return status and trigger notifier(s)\n *\n * @param programId Your programId from my.sheerid.com\n * @param emailAddress Email Address used for the verification.\n */\nexport const submitVerificationHelpRequest = async (\n programId: DatabaseId,\n emailAddress: string = undefined,\n headers = {},\n): Promise<VerificationHelpRequestApiResponse> => {\n const url = getVerificationHelpUrl();\n const requestBody = {\n emailAddress,\n programId,\n };\n\n try {\n const response = await fetchWithTimeout(url, {\n headers: { ...defaultJsonHeaders, ...headers },\n method: \"POST\",\n body: JSON.stringify(requestBody),\n });\n\n const responseJson = await response.json();\n return { ...responseJson, status: response.status };\n } catch (error) {\n logger.error(\"Error in submitVerificationHelpRequest:\", error);\n return {\n systemErrorMessage: \"An error occurred during the request.\",\n status: 500,\n };\n }\n};\n\nexport async function handleSubmitVerificationHelpRequest(\n programId: string,\n email: string,\n): Promise<EmailLookupResponse> {\n try {\n const resp: VerificationHelpRequestApiResponse = await submitVerificationHelpRequest(\n programId,\n email,\n );\n let status: EmailLookupStatus = EmailLookupStatus.PENDING;\n let message: string | null = null;\n\n if (resp.status === 500) {\n status = EmailLookupStatus.NOT_FOUND;\n message = \"Error during lookup.\";\n } else if (resp.status === 404 || resp.status === 429) {\n status = EmailLookupStatus.NOT_FOUND;\n } else if (resp.status === 400) {\n status = EmailLookupStatus.ALREADY_INITIATED;\n } else if (resp.status === 200) {\n if (resp.currentStep === \"error\" || resp.currentStep === \"docReviewLimitExceeded\") {\n status = EmailLookupStatus.NOT_FOUND;\n message = \"An error occurred during verification.\";\n } else if (\n resp.currentStep === \"pending\" ||\n resp.currentStep === \"consolation\" ||\n resp.currentStep === \"loading\"\n ) {\n status = EmailLookupStatus.PENDING;\n message = \"pending\";\n } else if (!resp.currentStep.toLowerCase().startsWith(\"collect\")) {\n status = EmailLookupStatus.FOUND;\n message = resp.currentStep;\n } else {\n message = \"Unexpected API response.\";\n }\n }\n recordGaEvent({ eventName: EventName.VERIFICATION_HELP, params: { status, programId } });\n return { status, message };\n } catch (error) {\n logger.error(\"Error submitting verification help request:\", error);\n return {\n status: EmailLookupStatus.PENDING,\n message: \"Error during lookup.\",\n };\n }\n}\n","import { useState, useCallback, useEffect, useMemo } from \"react\";\nimport {\n COLLECT_INFO_SUBMISSION_TIME,\n COLLECT_INFO_SUBMIT,\n useMetrics,\n} from \"@/components/FeatureFlags/useMetrics\";\nimport {\n Organization,\n StudentPersonalInfoViewModel,\n TeacherPersonalInfoViewModel,\n VerificationService,\n} from \"../../../lib/types/types\";\nimport { logger } from \"../../../lib/utils/logger/logger\";\nimport { handleSubmitVerificationHelpRequest } from \"../../../lib/ServerApi/VerificationHelpRequestApi\";\nimport { EmailLookupResponse, EmailLookupStatus } from \"./types\";\nimport { getEmailValidationError } from \"../../../lib/validators/validators\";\nimport { useFlag } from \"../../FeatureFlags/hooks\";\nimport { getOrgSearchUrl } from \"../../../lib/ProgramTheme/programThemeGetters\";\nimport { getDomainFromEmail } from \"../../../lib/utils/routing/Url\";\nimport { fetchOrganization } from \"../../../lib/ServerApi/OrganizationApiClient\";\n\nexport function useEmailFirstExperiment(programId: string, email: string, segment: string) {\n const [isLoading, setIsLoading] = useState(false);\n const [emailLookupResponse, setEmailLookupResponse] = useState<EmailLookupResponse | null>(null);\n const emailFirstCollectInfoStep = useFlag(\"collect-info-step-email-first\");\n const isEmailUpTop = emailFirstCollectInfoStep === \"no-message-dimmed-fields\";\n const [bypassEmailLookup, setBypassEmailLookup] = useState(false);\n const [hasBlurred, setHasBlurred] = useState(false);\n const [hasKeyPressed, setHasKeyPressed] = useState(false);\n const [emailInputState, setEmailInputState] = useState({\n emailLookupResponse: null,\n hasBlurred: false,\n hasKeyPressed: false,\n isValidEmail: !getEmailValidationError(email),\n });\n const { userDidConvert } = useMetrics(segment);\n\n const updateEmailState = useCallback((newEmail: string) => {\n const isValid = !getEmailValidationError(newEmail);\n setEmailInputState((prevState) => ({\n ...prevState,\n emailLookupResponse: newEmail !== \"\" && isValid ? null : prevState.emailLookupResponse,\n hasBlurred: false,\n hasKeyPressed: false,\n isValidEmail: isValid,\n }));\n }, []);\n\n useEffect(() => {\n updateEmailState(email);\n }, [email, updateEmailState]);\n\n const enableFormFields = useMemo(\n () =>\n email !== \"\" &&\n emailInputState.isValidEmail &&\n (!isEmailUpTop || emailLookupResponse?.status === EmailLookupStatus.NOT_FOUND),\n [email, emailInputState.isValidEmail, isEmailUpTop, emailLookupResponse],\n );\n\n const showFormFields = useMemo(\n () =>\n (email === \"\" ||\n (typeof email === \"string\" && email.length >= 1) ||\n emailLookupResponse?.status === null) &&\n (emailLookupResponse?.status === EmailLookupStatus.NOT_FOUND ||\n ![\n EmailLookupStatus.ALREADY_INITIATED,\n EmailLookupStatus.FOUND,\n EmailLookupStatus.PENDING,\n EmailLookupStatus.REJECTED,\n ].includes(emailLookupResponse?.status)),\n [email, emailLookupResponse],\n );\n\n const emailOnBlur = useCallback(async () => {\n if (!emailInputState.isValidEmail || bypassEmailLookup || hasKeyPressed) return;\n setHasBlurred(true);\n setBypassEmailLookup(false);\n setIsLoading(true);\n try {\n const response = await handleSubmitVerificationHelpRequest(programId, email);\n if (response.status === EmailLookupStatus.FOUND) {\n userDidConvert(COLLECT_INFO_SUBMIT, COLLECT_INFO_SUBMISSION_TIME);\n }\n setEmailLookupResponse(response);\n } catch (error) {\n logger.error(\"Error during email lookup:\", error);\n } finally {\n setIsLoading(false);\n }\n }, [programId, email, bypassEmailLookup, hasKeyPressed, emailInputState.isValidEmail]);\n\n const emailOnKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (hasBlurred) return;\n if (event.key === \"Enter\") {\n setHasKeyPressed(true);\n emailOnBlur();\n }\n },\n [emailOnBlur, hasBlurred],\n );\n\n const handleResendClick = useCallback(async () => {\n setIsLoading(true);\n try {\n const response: EmailLookupResponse = await handleSubmitVerificationHelpRequest(\n programId,\n email,\n );\n setEmailLookupResponse(response);\n } catch (error) {\n logger.error(\"Error resending email:\", error);\n } finally {\n setIsLoading(false);\n }\n }, [programId, email, segment]);\n\n const handleOnClickProceedHere = useCallback(async () => {\n if (!emailInputState.isValidEmail) return;\n setBypassEmailLookup(true);\n setEmailLookupResponse({\n status: EmailLookupStatus.NOT_FOUND,\n message: \"makeChanges\",\n });\n }, [emailInputState.isValidEmail]);\n\n const getOrgByDomain = useCallback(\n async (verificationService: VerificationService): Promise<Organization | undefined> => {\n if (!verificationService) return undefined;\n\n const orgSearchUrl = getOrgSearchUrl(\n verificationService.viewModel as\n | StudentPersonalInfoViewModel\n | TeacherPersonalInfoViewModel,\n verificationService.programTheme,\n );\n\n const emailDomain = getDomainFromEmail(email);\n const orgDomainMatch = new URL(orgSearchUrl);\n orgDomainMatch.searchParams.set(\"domain\", emailDomain);\n\n const response = await fetchOrganization(orgDomainMatch.toString());\n\n return response && response.length === 1 ? response[0] : undefined;\n },\n [email],\n );\n\n if (!isEmailUpTop) {\n return {\n isEmailUpTop,\n isEmailValidationLoading: false,\n showOtherFields: true,\n disableOtherFields: false,\n emailLookupResponse: null,\n showEmailLookupResponseMessages: false,\n showFormFields: true,\n emailOnBlur: () => {},\n emailOnKeyDown: () => {},\n handleResendClick: () => Promise.resolve(),\n emailFirstCollectInfoStep,\n isValidEmail: !getEmailValidationError(email),\n getOrgByDomain: async () => undefined,\n enableFormFields: true,\n };\n }\n\n return {\n isEmailUpTop,\n isEmailValidationLoading: isLoading,\n emailLookupResponse,\n showEmailLookupResponseMessages: !!emailLookupResponse,\n showFormFields,\n emailOnBlur,\n emailOnKeyDown,\n handleResendClick,\n emailFirstCollectInfoStep,\n isValidEmail: emailInputState.isValidEmail,\n getOrgByDomain,\n enableFormFields,\n handleOnClickProceedHere,\n };\n}\n"],"names":["EmailMessageComponent","title","message","closing","helpRequestResponse","onResendClick","hasSent","setHasSent","useState","handleClick","jsxs","jsx","FormattedHTMLMessage","EmailLookupStatus","EmailLookupResponseMessages","emailLookupResponse","onHandleClickLink","Fragment","defaultJsonHeaders","submitVerificationHelpRequest","programId","emailAddress","headers","url","getVerificationHelpUrl","requestBody","response","fetchWithTimeout","error","logger","handleSubmitVerificationHelpRequest","email","resp","status","recordGaEvent","EventName","useEmailFirstExperiment","segment","isLoading","setIsLoading","setEmailLookupResponse","emailFirstCollectInfoStep","useFlag","isEmailUpTop","bypassEmailLookup","setBypassEmailLookup","hasBlurred","setHasBlurred","hasKeyPressed","setHasKeyPressed","emailInputState","setEmailInputState","getEmailValidationError","userDidConvert","useMetrics","updateEmailState","useCallback","newEmail","isValid","prevState","useEffect","enableFormFields","useMemo","showFormFields","emailOnBlur","COLLECT_INFO_SUBMIT","COLLECT_INFO_SUBMISSION_TIME","emailOnKeyDown","event","handleResendClick","handleOnClickProceedHere","getOrgByDomain","verificationService","orgSearchUrl","getOrgSearchUrl","emailDomain","getDomainFromEmail","orgDomainMatch","fetchOrganization"],"mappings":";AAWA,MAAMA,IAAwB,CAAC;AAAA,EAC7B,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,qBAAAC,IAAsB;AAAA,EACtB,eAAAC;AACF,MAAkC;AAChC,QAAM,CAACC,GAASC,CAAU,IAAIC,EAAAA,SAAS,EAAK,GAEtCC,IAAc,YAAY;AAC9B,IAAIJ,MACF,MAAMA,EAAc,GACpBE,EAAW,EAAI;AAAA,EAEnB;AAGE,SAAAG,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WACEN,MAAwB,UACpB,mGACA;AAAA,MAGN,UAAA;AAAA,QAACO,gBAAAA,EAAA,IAAA,OAAA,EAAI,WAAU,kCAAkC,UAAMV,GAAA;AAAA,QACtDU,gBAAAA,EAAA,IAAA,OAAA,EAAI,WAAU,oCAAoC,UAAQT,GAAA;AAAA,QAC1DS,gBAAAA,EAAA,IAAA,OAAA,EAAI,WAAU,qEACZ,UACHR,GAAA;AAAA,QACAQ,gBAAAA,EAAAA,IAAC,OAAI,EAAA,WAAU,yBACb,UAAAA,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,WACEL,IACI,sEACA;AAAA,YAEN,SAASG;AAAA,YACT,UAAUH;AAAA,YAEV,UAAAK,gBAAAA,EAAA;AAAA,cAACC;AAAA,cAAA;AAAA,gBACC,IACEN,IACI,iDACA;AAAA,gBAEN,gBAAgBA,IAAU,UAAU;AAAA,cAAA;AAAA,YAAA;AAAA,UACtC;AAAA,QAAA,EAEJ,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;AC/DY,IAAAO,sBAAAA,OACVA,EAAA,QAAQ,6BACRA,EAAA,YAAY,gCACZA,EAAA,UAAU,uBACVA,EAAA,WAAW,wBACXA,EAAA,oBAAoB,+BALVA,IAAAA,KAAA,CAAA,CAAA;ACWZ,MAAMC,IAA0E,CAAC;AAAA,EAC/E,qBAAAC;AAAA,EACA,eAAAV,IAAgB,YAAY;AAAA,EAAC;AAAA,EAC7B,mBAAAW,IAAoB,YAAY;AAAA,EAAA;AAClC,MAEID,EAAoB,WAAWF,EAAkB,SACjDE,EAAoB,YAAY,YAG9BJ,gBAAAA,EAAA;AAAA,EAACX;AAAA,EAAA;AAAA,IACC,OACEW,gBAAAA,EAAA;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,IAAG;AAAA,QACH,gBAAe;AAAA,MAAA;AAAA,IACjB;AAAA,IAEF,SACED,gBAAAA,EAAA;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,IAAG;AAAA,QACH,gBAAe;AAAA,MAAA;AAAA,IACjB;AAAA,IAEF,SACED,gBAAAA,EAAA;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,IAAG;AAAA,QACH,gBAAe;AAAA,MAAA;AAAA,IACjB;AAAA,IAEF,qBAAoB;AAAA,IACpB,eAAAP;AAAA,EAAA;AACF,IAIFU,EAAoB,WAAWF,EAAkB,SACjDE,EAAoB,YAAY,YAI5BL,gBAAAA,EAAA,KAAAO,YAAA,EAAA,UAAA;AAAA,EAAAN,gBAAAA,EAAA;AAAA,IAACX;AAAA,IAAA;AAAA,MACC,OACEW,gBAAAA,EAAA;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,IAAG;AAAA,UACH,gBAAe;AAAA,QAAA;AAAA,MACjB;AAAA,MAEF,SACED,gBAAAA,EAAA;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,IAAG;AAAA,UACH,gBAAe;AAAA,QAAA;AAAA,MACjB;AAAA,MAEF,SACED,gBAAAA,EAAA;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,IAAG;AAAA,UACH,gBAAe;AAAA,QAAA;AAAA,MACjB;AAAA,MAEF,qBAAoB;AAAA,MACpB,eAAAP;AAAA,IAAA;AAAA,EACF;AAAA,EACAK,gBAAAA,EAAAA,KAAC,OAAI,EAAA,WAAU,kDACb,UAAA;AAAA,IAAAC,gBAAAA,EAAA;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,IAAG;AAAA,QACH,gBAAe;AAAA,MAAA;AAAA,IACjB;AAAA,IACAD,gBAAAA,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAU;AAAA,QACV,SAASK;AAAA,QAET,UAAAL,gBAAAA,EAAA;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,IAAG;AAAA,YACH,gBAAe;AAAA,UAAA;AAAA,QAAA;AAAA,MACjB;AAAA,IAAA;AAAA,EACF,EACF,CAAA;AAAA,GACF,IAIG,MClFHM,IAAqB;AAAA,EACzB,QAAQ;AAAA,EACR,gBAAgB;AAClB,GAQaC,IAAgC,OAC3CC,GACAC,IAAuB,QACvBC,IAAU,CAAA,MACsC;AAChD,QAAMC,IAAMC,EAAuB,GAC7BC,IAAc;AAAA,IAClB,cAAAJ;AAAA,IACA,WAAAD;AAAA,EACF;AAEI,MAAA;AACI,UAAAM,IAAW,MAAMC,EAAiBJ,GAAK;AAAA,MAC3C,SAAS,EAAE,GAAGL,GAAoB,GAAGI,EAAQ;AAAA,MAC7C,QAAQ;AAAA,MACR,MAAM,KAAK,UAAUG,CAAW;AAAA,IAAA,CACjC;AAGD,WAAO,EAAE,GADY,MAAMC,EAAS,KAAK,GACf,QAAQA,EAAS,OAAO;AAAA,WAC3CE,GAAO;AACP,WAAAC,EAAA,MAAM,2CAA2CD,CAAK,GACtD;AAAA,MACL,oBAAoB;AAAA,MACpB,QAAQ;AAAA,IACV;AAAA,EAAA;AAEJ;AAEsB,eAAAE,EACpBV,GACAW,GAC8B;AAC1B,MAAA;AACF,UAAMC,IAA2C,MAAMb;AAAA,MACrDC;AAAA,MACAW;AAAA,IACF;AACA,QAAIE,IAA4BpB,EAAkB,SAC9CX,IAAyB;AAEzB,WAAA8B,EAAK,WAAW,OAClBC,IAASpB,EAAkB,WACjBX,IAAA,0BACD8B,EAAK,WAAW,OAAOA,EAAK,WAAW,MAChDC,IAASpB,EAAkB,YAClBmB,EAAK,WAAW,MACzBC,IAASpB,EAAkB,oBAClBmB,EAAK,WAAW,QACrBA,EAAK,gBAAgB,WAAWA,EAAK,gBAAgB,4BACvDC,IAASpB,EAAkB,WACjBX,IAAA,4CAEV8B,EAAK,gBAAgB,aACrBA,EAAK,gBAAgB,iBACrBA,EAAK,gBAAgB,aAErBC,IAASpB,EAAkB,SACjBX,IAAA,aACA8B,EAAK,YAAY,cAAc,WAAW,SAAS,IAInD9B,IAAA,8BAHV+B,IAASpB,EAAkB,OAC3BX,IAAU8B,EAAK,eAKLE,EAAA,EAAE,WAAWC,EAAU,mBAAmB,QAAQ,EAAE,QAAAF,GAAQ,WAAAb,EAAU,GAAG,GAChF,EAAE,QAAAa,GAAQ,SAAA/B,EAAQ;AAAA,WAClB0B,GAAO;AACP,WAAAC,EAAA,MAAM,+CAA+CD,CAAK,GAC1D;AAAA,MACL,QAAQf,EAAkB;AAAA,MAC1B,SAAS;AAAA,IACX;AAAA,EAAA;AAEJ;AC5EgB,SAAAuB,GAAwBhB,GAAmBW,GAAeM,GAAiB;AACzF,QAAM,CAACC,GAAWC,CAAY,IAAI/B,EAAAA,SAAS,EAAK,GAC1C,CAACO,GAAqByB,CAAsB,IAAIhC,EAAAA,SAAqC,IAAI,GACzFiC,IAA4BC,EAAQ,+BAA+B,GACnEC,IAAeF,MAA8B,4BAC7C,CAACG,GAAmBC,CAAoB,IAAIrC,EAAAA,SAAS,EAAK,GAC1D,CAACsC,GAAYC,CAAa,IAAIvC,EAAAA,SAAS,EAAK,GAC5C,CAACwC,GAAeC,CAAgB,IAAIzC,EAAAA,SAAS,EAAK,GAClD,CAAC0C,GAAiBC,CAAkB,IAAI3C,WAAS;AAAA,IACrD,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,cAAc,CAAC4C,EAAwBrB,CAAK;AAAA,EAAA,CAC7C,GACK,EAAE,gBAAAsB,EAAA,IAAmBC,EAAWjB,CAAO,GAEvCkB,IAAmBC,cAAY,CAACC,MAAqB;AACnD,UAAAC,IAAU,CAACN,EAAwBK,CAAQ;AACjD,IAAAN,EAAmB,CAACQ,OAAe;AAAA,MACjC,GAAGA;AAAA,MACH,qBAAqBF,MAAa,MAAMC,IAAU,OAAOC,EAAU;AAAA,MACnE,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,cAAcD;AAAA,IAAA,EACd;AAAA,EACJ,GAAG,EAAE;AAELE,EAAAA,EAAAA,UAAU,MAAM;AACd,IAAAL,EAAiBxB,CAAK;AAAA,EAAA,GACrB,CAACA,GAAOwB,CAAgB,CAAC;AAE5B,QAAMM,IAAmBC,EAAA;AAAA,IACvB,MACE/B,MAAU,MACVmB,EAAgB,iBACf,CAACP,MAAgB5B,KAAA,gBAAAA,EAAqB,YAAWF,EAAkB;AAAA,IACtE,CAACkB,GAAOmB,EAAgB,cAAcP,GAAc5B,CAAmB;AAAA,EACzE,GAEMgD,IAAiBD,EAAA;AAAA,IACrB,OACG/B,MAAU,MACR,OAAOA,KAAU,YAAYA,EAAM,UAAU,MAC9ChB,KAAA,gBAAAA,EAAqB,YAAW,WACjCA,KAAA,gBAAAA,EAAqB,YAAWF,EAAkB,aACjD,CAAC;AAAA,MACCA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,MAClBA,EAAkB;AAAA,IAAA,EAClB,SAASE,KAAA,gBAAAA,EAAqB,MAAM;AAAA,IAC1C,CAACgB,GAAOhB,CAAmB;AAAA,EAC7B,GAEMiD,IAAcR,EAAAA,YAAY,YAAY;AAC1C,QAAI,GAACN,EAAgB,gBAAgBN,KAAqBI,IAC1D;AAAA,MAAAD,EAAc,EAAI,GAClBF,EAAqB,EAAK,GAC1BN,EAAa,EAAI;AACb,UAAA;AACF,cAAMb,IAAW,MAAMI,EAAoCV,GAAWW,CAAK;AACvE,QAAAL,EAAS,WAAWb,EAAkB,SACxCwC,EAAeY,GAAqBC,CAA4B,GAElE1B,EAAuBd,CAAQ;AAAA,eACxBE,GAAO;AACP,QAAAC,EAAA,MAAM,8BAA8BD,CAAK;AAAA,MAAA,UAChD;AACA,QAAAW,EAAa,EAAK;AAAA,MAAA;AAAA;AAAA,EACpB,GACC,CAACnB,GAAWW,GAAOa,GAAmBI,GAAeE,EAAgB,YAAY,CAAC,GAE/EiB,IAAiBX,EAAA;AAAA,IACrB,CAACY,MAAiD;AAChD,MAAItB,KACAsB,EAAM,QAAQ,YAChBnB,EAAiB,EAAI,GACTe,EAAA;AAAA,IAEhB;AAAA,IACA,CAACA,GAAalB,CAAU;AAAA,EAC1B,GAEMuB,IAAoBb,EAAAA,YAAY,YAAY;AAChD,IAAAjB,EAAa,EAAI;AACb,QAAA;AACF,YAAMb,IAAgC,MAAMI;AAAA,QAC1CV;AAAA,QACAW;AAAA,MACF;AACA,MAAAS,EAAuBd,CAAQ;AAAA,aACxBE,GAAO;AACP,MAAAC,EAAA,MAAM,0BAA0BD,CAAK;AAAA,IAAA,UAC5C;AACA,MAAAW,EAAa,EAAK;AAAA,IAAA;AAAA,EAEnB,GAAA,CAACnB,GAAWW,GAAOM,CAAO,CAAC,GAExBiC,IAA2Bd,EAAAA,YAAY,YAAY;AACnD,IAACN,EAAgB,iBACrBL,EAAqB,EAAI,GACFL,EAAA;AAAA,MACrB,QAAQ3B,EAAkB;AAAA,MAC1B,SAAS;AAAA,IAAA,CACV;AAAA,EAAA,GACA,CAACqC,EAAgB,YAAY,CAAC,GAE3BqB,IAAiBf,EAAA;AAAA,IACrB,OAAOgB,MAAgF;AACjF,UAAA,CAACA,EAA4B;AAEjC,YAAMC,IAAeC;AAAA,QACnBF,EAAoB;AAAA,QAGpBA,EAAoB;AAAA,MACtB,GAEMG,IAAcC,EAAmB7C,CAAK,GACtC8C,IAAiB,IAAI,IAAIJ,CAAY;AAC5B,MAAAI,EAAA,aAAa,IAAI,UAAUF,CAAW;AAErD,YAAMjD,IAAW,MAAMoD,EAAkBD,EAAe,UAAU;AAElE,aAAOnD,KAAYA,EAAS,WAAW,IAAIA,EAAS,CAAC,IAAI;AAAA,IAC3D;AAAA,IACA,CAACK,CAAK;AAAA,EACR;AAEA,SAAKY,IAmBE;AAAA,IACL,cAAAA;AAAA,IACA,0BAA0BL;AAAA,IAC1B,qBAAAvB;AAAA,IACA,iCAAiC,CAAC,CAACA;AAAA,IACnC,gBAAAgD;AAAA,IACA,aAAAC;AAAA,IACA,gBAAAG;AAAA,IACA,mBAAAE;AAAA,IACA,2BAAA5B;AAAA,IACA,cAAcS,EAAgB;AAAA,IAC9B,gBAAAqB;AAAA,IACA,kBAAAV;AAAA,IACA,0BAAAS;AAAA,EACF,IAhCS;AAAA,IACL,cAAA3B;AAAA,IACA,0BAA0B;AAAA,IAC1B,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,iCAAiC;AAAA,IACjC,gBAAgB;AAAA,IAChB,aAAa,MAAM;AAAA,IAAC;AAAA,IACpB,gBAAgB,MAAM;AAAA,IAAC;AAAA,IACvB,mBAAmB,MAAM,QAAQ,QAAQ;AAAA,IACzC,2BAAAF;AAAA,IACA,cAAc,CAACW,EAAwBrB,CAAK;AAAA,IAC5C,gBAAgB,YAAA;AAAA;AAAA,IAChB,kBAAkB;AAAA,EACpB;AAkBJ;"}
@@ -4,12 +4,12 @@
4
4
  * This file is not intended for use in other contexts and there are no guarantees about its behavior outside of MySheerID.
5
5
  */
6
6
  /**
7
- * VERSION: 2.121.0-alpha.3
8
- * BUILD_TIMESTAMP: 1754419929745
9
- * BUILD_DATE: Tue Aug 05 2025 18:52:09 GMT+0000 (Coordinated Universal Time)
10
- * BUILD_COMMIT: 091dfb82603775b7de0bf8cf799f963fc4950e98
7
+ * VERSION: 2.122.0-alpha.0
8
+ * BUILD_TIMESTAMP: 1754933341077
9
+ * BUILD_DATE: Mon Aug 11 2025 17:29:01 GMT+0000 (Coordinated Universal Time)
10
+ * BUILD_COMMIT: 75bc9dd94c884c271e125927543152b3642e70d8
11
11
  */
12
- import { s as l, j as i, b as d, an as R, ao as L, l as E, ap as B, aq as H, ai as q, ar as I, as as G, at as J, au as K, a as Y, av as z, aw as W } from "../_mysheerid-preview.js";
12
+ import { t as l, j as i, b as d, ao as R, ap as L, l as E, aq as B, ar as H, aj as q, as as I, at as G, au as J, av as K, a as Y, aw as z, ax as W } from "../_mysheerid-preview.js";
13
13
  const V = ({
14
14
  title: t,
15
15
  message: s,
@@ -1 +1 @@
1
- {"version":3,"file":"useEmailFirstExperiment-CgU-itQI.js","sources":["../../src/components/FormFields/EmailFirstCollectInfo/EmailMessageComponent.tsx","../../src/components/FormFields/EmailFirstCollectInfo/types.ts","../../src/components/FormFields/EmailFirstCollectInfo/EmailLookupResponseMessageComponent.tsx","../../src/lib/ServerApi/VerificationHelpRequestApi.ts","../../src/components/FormFields/EmailFirstCollectInfo/useEmailFirstExperiment.ts"],"sourcesContent":["import React, { useState } from \"react\";\nimport { FormattedHTMLMessage } from \"react-intl\";\n\ninterface EmailMessageComponentProps {\n title?: string | React.ReactNode;\n message?: string | React.ReactNode;\n closing?: string | React.ReactNode;\n helpRequestResponse?: \"green\" | \"blue\";\n onResendClick?: () => Promise<void>;\n}\n\nconst EmailMessageComponent = ({\n title,\n message,\n closing,\n helpRequestResponse = \"blue\",\n onResendClick,\n}: EmailMessageComponentProps) => {\n const [hasSent, setHasSent] = useState(false);\n\n const handleClick = async () => {\n if (onResendClick) {\n await onResendClick();\n setHasSent(true);\n }\n };\n\n return (\n <div\n className={\n helpRequestResponse === \"green\"\n ? \"sid-email-msg-container sid-l-horz-center sid-l-space-top-md sid-email-msg-container--bg-green\"\n : \"sid-email-msg-container sid-l-horz-center sid-l-space-top-md sid-email-msg-container--bg-blue\"\n }\n >\n <div className=\"sid-email-msg-container__title\">{title}</div>\n <div className=\"sid-email-msg-container__content\">{message}</div>\n <div className=\"sid-email-msg-container__content sid-email-msg-container__closing\">\n {closing}\n </div>\n <div className=\"sid-email-resend-area\">\n <button\n type=\"button\"\n className={\n hasSent\n ? \"sid-email-resend-area__button sid-email-resend-area__button__sent\"\n : \"sid-email-resend-area__button\"\n }\n onClick={handleClick}\n disabled={hasSent}\n >\n <FormattedHTMLMessage\n id={\n hasSent\n ? \"step.personalInfo.emailFirstCollectInfo.sent\"\n : \"step.personalInfo.emailFirstCollectInfo.sendAgain\"\n }\n defaultMessage={hasSent ? \"Sent!\" : \"Send Again\"}\n />\n </button>\n </div>\n </div>\n );\n};\n\nexport { EmailMessageComponent };\n","export enum EmailLookupStatus {\n FOUND = \"existingVerificationFound\",\n NOT_FOUND = \"existingVerificationNotFound\",\n PENDING = \"pendingVerification\",\n REJECTED = \"rejectedVerification\",\n ALREADY_INITIATED = \"emailResendAlreadyInitiated\",\n}\n\nexport type EmailLookupResponse = {\n status: EmailLookupStatus;\n message: string | null;\n};\n\nexport type EmailFirstCollectInfoStep =\n | \"message-dimmed-fields\"\n | \"no-message-dimmed-fields\"\n | \"control\"\n | \"default\";\n\nexport interface VerificationHelpRequestApiResponse {\n systemErrorMessage?: string;\n currentStep?: string;\n status?: number;\n}\n","import React from \"react\";\nimport { FormattedHTMLMessage } from \"react-intl\";\nimport { EmailMessageComponent } from \"./EmailMessageComponent\";\nimport { EmailLookupResponse, EmailLookupStatus } from \"./types\";\n\ninterface EmailLookupResponseMessagesProps {\n emailLookupResponse: EmailLookupResponse | null;\n onResendClick?: () => Promise<void>;\n onHandleClickLink?: () => Promise<void>;\n}\n\nconst EmailLookupResponseMessages: React.FC<EmailLookupResponseMessagesProps> = ({\n emailLookupResponse,\n onResendClick = async () => {},\n onHandleClickLink = async () => {},\n}) => {\n if (\n emailLookupResponse.status === EmailLookupStatus.FOUND &&\n emailLookupResponse.message === \"success\"\n ) {\n return (\n <EmailMessageComponent\n title={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.existingVerificationFound.title\"\n defaultMessage=\"You've been here before!\"\n />\n }\n message={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.existingVerificationFound.message\"\n defaultMessage=\"Verify@sheerid.com re-sent your confirmation email with details on redeeming your verified offer.\"\n />\n }\n closing={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.existingVerificationFound.closing\"\n defaultMessage=\"Enjoy!\"\n />\n }\n helpRequestResponse=\"green\"\n onResendClick={onResendClick}\n />\n );\n }\n if (\n emailLookupResponse.status === EmailLookupStatus.FOUND &&\n emailLookupResponse.message !== \"success\"\n ) {\n return (\n <>\n <EmailMessageComponent\n title={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.pendingVerification.title\"\n defaultMessage=\"Looks like you started.\"\n />\n }\n message={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.pendingVerification.message\"\n defaultMessage=\"This email is associated with a verification in the works.\"\n />\n }\n closing={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.pendingVerification.closing\"\n defaultMessage=\"Verify@sheerid.com re-sent our last email to you with next steps.\"\n />\n }\n helpRequestResponse=\"blue\"\n onResendClick={onResendClick}\n />\n <div className=\"sid-email-first__need-changes sid-h-small-text\">\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.needChanges\"\n defaultMessage=\"Need to make changes?\"\n />\n <button\n type=\"submit\"\n className=\"sid-email-first__need-changes-link sid-link\"\n onClick={onHandleClickLink}\n >\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.proceedHere\"\n defaultMessage=\"Proceed here\"\n />\n </button>\n </div>\n </>\n );\n }\n\n return null;\n};\n\nexport default EmailLookupResponseMessages;\n","import { logger } from \"../utils/logger/logger\";\nimport {\n EmailLookupResponse,\n EmailLookupStatus,\n VerificationHelpRequestApiResponse,\n} from \"../../components/FormFields/EmailFirstCollectInfo/types\";\nimport { getVerificationHelpUrl } from \"./ApiUrls\";\nimport { DatabaseId } from \"../types/types\";\nimport { fetchWithTimeout } from \"./Network\";\nimport { EventName, recordGaEvent } from \"../GoogleAnalytics/ga\";\n\nconst defaultJsonHeaders = {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n};\n/**\n * Endpoint to support email-first functionality.\n * Look up a verification, return status and trigger notifier(s)\n *\n * @param programId Your programId from my.sheerid.com\n * @param emailAddress Email Address used for the verification.\n */\nexport const submitVerificationHelpRequest = async (\n programId: DatabaseId,\n emailAddress: string = undefined,\n headers = {},\n): Promise<VerificationHelpRequestApiResponse> => {\n const url = getVerificationHelpUrl();\n const requestBody = {\n emailAddress,\n programId,\n };\n\n try {\n const response = await fetchWithTimeout(url, {\n headers: { ...defaultJsonHeaders, ...headers },\n method: \"POST\",\n body: JSON.stringify(requestBody),\n });\n\n const responseJson = await response.json();\n return { ...responseJson, status: response.status };\n } catch (error) {\n logger.error(\"Error in submitVerificationHelpRequest:\", error);\n return {\n systemErrorMessage: \"An error occurred during the request.\",\n status: 500,\n };\n }\n};\n\nexport async function handleSubmitVerificationHelpRequest(\n programId: string,\n email: string,\n): Promise<EmailLookupResponse> {\n try {\n const resp: VerificationHelpRequestApiResponse = await submitVerificationHelpRequest(\n programId,\n email,\n );\n let status: EmailLookupStatus = EmailLookupStatus.PENDING;\n let message: string | null = null;\n\n if (resp.status === 500) {\n status = EmailLookupStatus.NOT_FOUND;\n message = \"Error during lookup.\";\n } else if (resp.status === 404 || resp.status === 429) {\n status = EmailLookupStatus.NOT_FOUND;\n } else if (resp.status === 400) {\n status = EmailLookupStatus.ALREADY_INITIATED;\n } else if (resp.status === 200) {\n if (resp.currentStep === \"error\" || resp.currentStep === \"docReviewLimitExceeded\") {\n status = EmailLookupStatus.NOT_FOUND;\n message = \"An error occurred during verification.\";\n } else if (\n resp.currentStep === \"pending\" ||\n resp.currentStep === \"consolation\" ||\n resp.currentStep === \"loading\"\n ) {\n status = EmailLookupStatus.PENDING;\n message = \"pending\";\n } else if (!resp.currentStep.toLowerCase().startsWith(\"collect\")) {\n status = EmailLookupStatus.FOUND;\n message = resp.currentStep;\n } else {\n message = \"Unexpected API response.\";\n }\n }\n recordGaEvent({ eventName: EventName.VERIFICATION_HELP, params: { status, programId } });\n return { status, message };\n } catch (error) {\n logger.error(\"Error submitting verification help request:\", error);\n return {\n status: EmailLookupStatus.PENDING,\n message: \"Error during lookup.\",\n };\n }\n}\n","import { useState, useCallback, useEffect, useMemo } from \"react\";\nimport {\n COLLECT_INFO_SUBMISSION_TIME,\n COLLECT_INFO_SUBMIT,\n useMetrics,\n} from \"@/components/FeatureFlags/useMetrics\";\nimport {\n Organization,\n StudentPersonalInfoViewModel,\n TeacherPersonalInfoViewModel,\n VerificationService,\n} from \"../../../lib/types/types\";\nimport { logger } from \"../../../lib/utils/logger/logger\";\nimport { handleSubmitVerificationHelpRequest } from \"../../../lib/ServerApi/VerificationHelpRequestApi\";\nimport { EmailLookupResponse, EmailLookupStatus } from \"./types\";\nimport { getEmailValidationError } from \"../../../lib/validators/validators\";\nimport { useFlag } from \"../../FeatureFlags/hooks\";\nimport { getOrgSearchUrl } from \"../../../lib/ProgramTheme/programThemeGetters\";\nimport { getDomainFromEmail } from \"../../../lib/utils/routing/Url\";\nimport { fetchOrganization } from \"../../../lib/ServerApi/OrganizationApiClient\";\n\nexport function useEmailFirstExperiment(programId: string, email: string, segment: string) {\n const [isLoading, setIsLoading] = useState(false);\n const [emailLookupResponse, setEmailLookupResponse] = useState<EmailLookupResponse | null>(null);\n const emailFirstCollectInfoStep = useFlag(\"collect-info-step-email-first\");\n const isEmailUpTop = emailFirstCollectInfoStep === \"no-message-dimmed-fields\";\n const [bypassEmailLookup, setBypassEmailLookup] = useState(false);\n const [hasBlurred, setHasBlurred] = useState(false);\n const [hasKeyPressed, setHasKeyPressed] = useState(false);\n const [emailInputState, setEmailInputState] = useState({\n emailLookupResponse: null,\n hasBlurred: false,\n hasKeyPressed: false,\n isValidEmail: !getEmailValidationError(email),\n });\n const { userDidConvert } = useMetrics(segment);\n\n const updateEmailState = useCallback((newEmail: string) => {\n const isValid = !getEmailValidationError(newEmail);\n setEmailInputState((prevState) => ({\n ...prevState,\n emailLookupResponse: newEmail !== \"\" && isValid ? null : prevState.emailLookupResponse,\n hasBlurred: false,\n hasKeyPressed: false,\n isValidEmail: isValid,\n }));\n }, []);\n\n useEffect(() => {\n updateEmailState(email);\n }, [email, updateEmailState]);\n\n const enableFormFields = useMemo(\n () =>\n email !== \"\" &&\n emailInputState.isValidEmail &&\n (!isEmailUpTop || emailLookupResponse?.status === EmailLookupStatus.NOT_FOUND),\n [email, emailInputState.isValidEmail, isEmailUpTop, emailLookupResponse],\n );\n\n const showFormFields = useMemo(\n () =>\n (email === \"\" ||\n (typeof email === \"string\" && email.length >= 1) ||\n emailLookupResponse?.status === null) &&\n (emailLookupResponse?.status === EmailLookupStatus.NOT_FOUND ||\n ![\n EmailLookupStatus.ALREADY_INITIATED,\n EmailLookupStatus.FOUND,\n EmailLookupStatus.PENDING,\n EmailLookupStatus.REJECTED,\n ].includes(emailLookupResponse?.status)),\n [email, emailLookupResponse],\n );\n\n const emailOnBlur = useCallback(async () => {\n if (!emailInputState.isValidEmail || bypassEmailLookup || hasKeyPressed) return;\n setHasBlurred(true);\n setBypassEmailLookup(false);\n setIsLoading(true);\n try {\n const response = await handleSubmitVerificationHelpRequest(programId, email);\n if (response.status === EmailLookupStatus.FOUND) {\n userDidConvert(COLLECT_INFO_SUBMIT, COLLECT_INFO_SUBMISSION_TIME);\n }\n setEmailLookupResponse(response);\n } catch (error) {\n logger.error(\"Error during email lookup:\", error);\n } finally {\n setIsLoading(false);\n }\n }, [programId, email, bypassEmailLookup, hasKeyPressed, emailInputState.isValidEmail]);\n\n const emailOnKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (hasBlurred) return;\n if (event.key === \"Enter\") {\n setHasKeyPressed(true);\n emailOnBlur();\n }\n },\n [emailOnBlur, hasBlurred],\n );\n\n const handleResendClick = useCallback(async () => {\n setIsLoading(true);\n try {\n const response: EmailLookupResponse = await handleSubmitVerificationHelpRequest(\n programId,\n email,\n );\n setEmailLookupResponse(response);\n } catch (error) {\n logger.error(\"Error resending email:\", error);\n } finally {\n setIsLoading(false);\n }\n }, [programId, email, segment]);\n\n const handleOnClickProceedHere = useCallback(async () => {\n if (!emailInputState.isValidEmail) return;\n setBypassEmailLookup(true);\n setEmailLookupResponse({\n status: EmailLookupStatus.NOT_FOUND,\n message: \"makeChanges\",\n });\n }, [emailInputState.isValidEmail]);\n\n const getOrgByDomain = useCallback(\n async (verificationService: VerificationService): Promise<Organization | undefined> => {\n if (!verificationService) return undefined;\n\n const orgSearchUrl = getOrgSearchUrl(\n verificationService.viewModel as\n | StudentPersonalInfoViewModel\n | TeacherPersonalInfoViewModel,\n verificationService.programTheme,\n );\n\n const emailDomain = getDomainFromEmail(email);\n const orgDomainMatch = new URL(orgSearchUrl);\n orgDomainMatch.searchParams.set(\"domain\", emailDomain);\n\n const response = await fetchOrganization(orgDomainMatch.toString());\n\n return response && response.length === 1 ? response[0] : undefined;\n },\n [email],\n );\n\n if (!isEmailUpTop) {\n return {\n isEmailUpTop,\n isEmailValidationLoading: false,\n showOtherFields: true,\n disableOtherFields: false,\n emailLookupResponse: null,\n showEmailLookupResponseMessages: false,\n showFormFields: true,\n emailOnBlur: () => {},\n emailOnKeyDown: () => {},\n handleResendClick: () => Promise.resolve(),\n emailFirstCollectInfoStep,\n isValidEmail: !getEmailValidationError(email),\n getOrgByDomain: async () => undefined,\n enableFormFields: true,\n };\n }\n\n return {\n isEmailUpTop,\n isEmailValidationLoading: isLoading,\n emailLookupResponse,\n showEmailLookupResponseMessages: !!emailLookupResponse,\n showFormFields,\n emailOnBlur,\n emailOnKeyDown,\n handleResendClick,\n emailFirstCollectInfoStep,\n isValidEmail: emailInputState.isValidEmail,\n getOrgByDomain,\n enableFormFields,\n handleOnClickProceedHere,\n };\n}\n"],"names":["EmailMessageComponent","title","message","closing","helpRequestResponse","onResendClick","hasSent","setHasSent","useState","handleClick","jsxs","jsx","FormattedHTMLMessage","EmailLookupStatus","EmailLookupResponseMessages","emailLookupResponse","onHandleClickLink","Fragment","defaultJsonHeaders","submitVerificationHelpRequest","programId","emailAddress","headers","url","getVerificationHelpUrl","requestBody","response","fetchWithTimeout","error","logger","handleSubmitVerificationHelpRequest","email","resp","status","recordGaEvent","EventName","useEmailFirstExperiment","segment","isLoading","setIsLoading","setEmailLookupResponse","emailFirstCollectInfoStep","useFlag","isEmailUpTop","bypassEmailLookup","setBypassEmailLookup","hasBlurred","setHasBlurred","hasKeyPressed","setHasKeyPressed","emailInputState","setEmailInputState","getEmailValidationError","userDidConvert","useMetrics","updateEmailState","useCallback","newEmail","isValid","prevState","useEffect","enableFormFields","useMemo","showFormFields","emailOnBlur","COLLECT_INFO_SUBMIT","COLLECT_INFO_SUBMISSION_TIME","emailOnKeyDown","event","handleResendClick","handleOnClickProceedHere","getOrgByDomain","verificationService","orgSearchUrl","getOrgSearchUrl","emailDomain","getDomainFromEmail","orgDomainMatch","fetchOrganization"],"mappings":"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"}
1
+ {"version":3,"file":"useEmailFirstExperiment-q-thhCji.js","sources":["../../src/components/FormFields/EmailFirstCollectInfo/EmailMessageComponent.tsx","../../src/components/FormFields/EmailFirstCollectInfo/types.ts","../../src/components/FormFields/EmailFirstCollectInfo/EmailLookupResponseMessageComponent.tsx","../../src/lib/ServerApi/VerificationHelpRequestApi.ts","../../src/components/FormFields/EmailFirstCollectInfo/useEmailFirstExperiment.ts"],"sourcesContent":["import React, { useState } from \"react\";\nimport { FormattedHTMLMessage } from \"react-intl\";\n\ninterface EmailMessageComponentProps {\n title?: string | React.ReactNode;\n message?: string | React.ReactNode;\n closing?: string | React.ReactNode;\n helpRequestResponse?: \"green\" | \"blue\";\n onResendClick?: () => Promise<void>;\n}\n\nconst EmailMessageComponent = ({\n title,\n message,\n closing,\n helpRequestResponse = \"blue\",\n onResendClick,\n}: EmailMessageComponentProps) => {\n const [hasSent, setHasSent] = useState(false);\n\n const handleClick = async () => {\n if (onResendClick) {\n await onResendClick();\n setHasSent(true);\n }\n };\n\n return (\n <div\n className={\n helpRequestResponse === \"green\"\n ? \"sid-email-msg-container sid-l-horz-center sid-l-space-top-md sid-email-msg-container--bg-green\"\n : \"sid-email-msg-container sid-l-horz-center sid-l-space-top-md sid-email-msg-container--bg-blue\"\n }\n >\n <div className=\"sid-email-msg-container__title\">{title}</div>\n <div className=\"sid-email-msg-container__content\">{message}</div>\n <div className=\"sid-email-msg-container__content sid-email-msg-container__closing\">\n {closing}\n </div>\n <div className=\"sid-email-resend-area\">\n <button\n type=\"button\"\n className={\n hasSent\n ? \"sid-email-resend-area__button sid-email-resend-area__button__sent\"\n : \"sid-email-resend-area__button\"\n }\n onClick={handleClick}\n disabled={hasSent}\n >\n <FormattedHTMLMessage\n id={\n hasSent\n ? \"step.personalInfo.emailFirstCollectInfo.sent\"\n : \"step.personalInfo.emailFirstCollectInfo.sendAgain\"\n }\n defaultMessage={hasSent ? \"Sent!\" : \"Send Again\"}\n />\n </button>\n </div>\n </div>\n );\n};\n\nexport { EmailMessageComponent };\n","export enum EmailLookupStatus {\n FOUND = \"existingVerificationFound\",\n NOT_FOUND = \"existingVerificationNotFound\",\n PENDING = \"pendingVerification\",\n REJECTED = \"rejectedVerification\",\n ALREADY_INITIATED = \"emailResendAlreadyInitiated\",\n}\n\nexport type EmailLookupResponse = {\n status: EmailLookupStatus;\n message: string | null;\n};\n\nexport type EmailFirstCollectInfoStep =\n | \"message-dimmed-fields\"\n | \"no-message-dimmed-fields\"\n | \"control\"\n | \"default\";\n\nexport interface VerificationHelpRequestApiResponse {\n systemErrorMessage?: string;\n currentStep?: string;\n status?: number;\n}\n","import React from \"react\";\nimport { FormattedHTMLMessage } from \"react-intl\";\nimport { EmailMessageComponent } from \"./EmailMessageComponent\";\nimport { EmailLookupResponse, EmailLookupStatus } from \"./types\";\n\ninterface EmailLookupResponseMessagesProps {\n emailLookupResponse: EmailLookupResponse | null;\n onResendClick?: () => Promise<void>;\n onHandleClickLink?: () => Promise<void>;\n}\n\nconst EmailLookupResponseMessages: React.FC<EmailLookupResponseMessagesProps> = ({\n emailLookupResponse,\n onResendClick = async () => {},\n onHandleClickLink = async () => {},\n}) => {\n if (\n emailLookupResponse.status === EmailLookupStatus.FOUND &&\n emailLookupResponse.message === \"success\"\n ) {\n return (\n <EmailMessageComponent\n title={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.existingVerificationFound.title\"\n defaultMessage=\"You've been here before!\"\n />\n }\n message={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.existingVerificationFound.message\"\n defaultMessage=\"Verify@sheerid.com re-sent your confirmation email with details on redeeming your verified offer.\"\n />\n }\n closing={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.existingVerificationFound.closing\"\n defaultMessage=\"Enjoy!\"\n />\n }\n helpRequestResponse=\"green\"\n onResendClick={onResendClick}\n />\n );\n }\n if (\n emailLookupResponse.status === EmailLookupStatus.FOUND &&\n emailLookupResponse.message !== \"success\"\n ) {\n return (\n <>\n <EmailMessageComponent\n title={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.pendingVerification.title\"\n defaultMessage=\"Looks like you started.\"\n />\n }\n message={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.pendingVerification.message\"\n defaultMessage=\"This email is associated with a verification in the works.\"\n />\n }\n closing={\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.pendingVerification.closing\"\n defaultMessage=\"Verify@sheerid.com re-sent our last email to you with next steps.\"\n />\n }\n helpRequestResponse=\"blue\"\n onResendClick={onResendClick}\n />\n <div className=\"sid-email-first__need-changes sid-h-small-text\">\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.needChanges\"\n defaultMessage=\"Need to make changes?\"\n />\n <button\n type=\"submit\"\n className=\"sid-email-first__need-changes-link sid-link\"\n onClick={onHandleClickLink}\n >\n <FormattedHTMLMessage\n id=\"step.personalInfo.emailFirstCollectInfo.proceedHere\"\n defaultMessage=\"Proceed here\"\n />\n </button>\n </div>\n </>\n );\n }\n\n return null;\n};\n\nexport default EmailLookupResponseMessages;\n","import { logger } from \"../utils/logger/logger\";\nimport {\n EmailLookupResponse,\n EmailLookupStatus,\n VerificationHelpRequestApiResponse,\n} from \"../../components/FormFields/EmailFirstCollectInfo/types\";\nimport { getVerificationHelpUrl } from \"./ApiUrls\";\nimport { DatabaseId } from \"../types/types\";\nimport { fetchWithTimeout } from \"./Network\";\nimport { EventName, recordGaEvent } from \"../GoogleAnalytics/ga\";\n\nconst defaultJsonHeaders = {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n};\n/**\n * Endpoint to support email-first functionality.\n * Look up a verification, return status and trigger notifier(s)\n *\n * @param programId Your programId from my.sheerid.com\n * @param emailAddress Email Address used for the verification.\n */\nexport const submitVerificationHelpRequest = async (\n programId: DatabaseId,\n emailAddress: string = undefined,\n headers = {},\n): Promise<VerificationHelpRequestApiResponse> => {\n const url = getVerificationHelpUrl();\n const requestBody = {\n emailAddress,\n programId,\n };\n\n try {\n const response = await fetchWithTimeout(url, {\n headers: { ...defaultJsonHeaders, ...headers },\n method: \"POST\",\n body: JSON.stringify(requestBody),\n });\n\n const responseJson = await response.json();\n return { ...responseJson, status: response.status };\n } catch (error) {\n logger.error(\"Error in submitVerificationHelpRequest:\", error);\n return {\n systemErrorMessage: \"An error occurred during the request.\",\n status: 500,\n };\n }\n};\n\nexport async function handleSubmitVerificationHelpRequest(\n programId: string,\n email: string,\n): Promise<EmailLookupResponse> {\n try {\n const resp: VerificationHelpRequestApiResponse = await submitVerificationHelpRequest(\n programId,\n email,\n );\n let status: EmailLookupStatus = EmailLookupStatus.PENDING;\n let message: string | null = null;\n\n if (resp.status === 500) {\n status = EmailLookupStatus.NOT_FOUND;\n message = \"Error during lookup.\";\n } else if (resp.status === 404 || resp.status === 429) {\n status = EmailLookupStatus.NOT_FOUND;\n } else if (resp.status === 400) {\n status = EmailLookupStatus.ALREADY_INITIATED;\n } else if (resp.status === 200) {\n if (resp.currentStep === \"error\" || resp.currentStep === \"docReviewLimitExceeded\") {\n status = EmailLookupStatus.NOT_FOUND;\n message = \"An error occurred during verification.\";\n } else if (\n resp.currentStep === \"pending\" ||\n resp.currentStep === \"consolation\" ||\n resp.currentStep === \"loading\"\n ) {\n status = EmailLookupStatus.PENDING;\n message = \"pending\";\n } else if (!resp.currentStep.toLowerCase().startsWith(\"collect\")) {\n status = EmailLookupStatus.FOUND;\n message = resp.currentStep;\n } else {\n message = \"Unexpected API response.\";\n }\n }\n recordGaEvent({ eventName: EventName.VERIFICATION_HELP, params: { status, programId } });\n return { status, message };\n } catch (error) {\n logger.error(\"Error submitting verification help request:\", error);\n return {\n status: EmailLookupStatus.PENDING,\n message: \"Error during lookup.\",\n };\n }\n}\n","import { useState, useCallback, useEffect, useMemo } from \"react\";\nimport {\n COLLECT_INFO_SUBMISSION_TIME,\n COLLECT_INFO_SUBMIT,\n useMetrics,\n} from \"@/components/FeatureFlags/useMetrics\";\nimport {\n Organization,\n StudentPersonalInfoViewModel,\n TeacherPersonalInfoViewModel,\n VerificationService,\n} from \"../../../lib/types/types\";\nimport { logger } from \"../../../lib/utils/logger/logger\";\nimport { handleSubmitVerificationHelpRequest } from \"../../../lib/ServerApi/VerificationHelpRequestApi\";\nimport { EmailLookupResponse, EmailLookupStatus } from \"./types\";\nimport { getEmailValidationError } from \"../../../lib/validators/validators\";\nimport { useFlag } from \"../../FeatureFlags/hooks\";\nimport { getOrgSearchUrl } from \"../../../lib/ProgramTheme/programThemeGetters\";\nimport { getDomainFromEmail } from \"../../../lib/utils/routing/Url\";\nimport { fetchOrganization } from \"../../../lib/ServerApi/OrganizationApiClient\";\n\nexport function useEmailFirstExperiment(programId: string, email: string, segment: string) {\n const [isLoading, setIsLoading] = useState(false);\n const [emailLookupResponse, setEmailLookupResponse] = useState<EmailLookupResponse | null>(null);\n const emailFirstCollectInfoStep = useFlag(\"collect-info-step-email-first\");\n const isEmailUpTop = emailFirstCollectInfoStep === \"no-message-dimmed-fields\";\n const [bypassEmailLookup, setBypassEmailLookup] = useState(false);\n const [hasBlurred, setHasBlurred] = useState(false);\n const [hasKeyPressed, setHasKeyPressed] = useState(false);\n const [emailInputState, setEmailInputState] = useState({\n emailLookupResponse: null,\n hasBlurred: false,\n hasKeyPressed: false,\n isValidEmail: !getEmailValidationError(email),\n });\n const { userDidConvert } = useMetrics(segment);\n\n const updateEmailState = useCallback((newEmail: string) => {\n const isValid = !getEmailValidationError(newEmail);\n setEmailInputState((prevState) => ({\n ...prevState,\n emailLookupResponse: newEmail !== \"\" && isValid ? null : prevState.emailLookupResponse,\n hasBlurred: false,\n hasKeyPressed: false,\n isValidEmail: isValid,\n }));\n }, []);\n\n useEffect(() => {\n updateEmailState(email);\n }, [email, updateEmailState]);\n\n const enableFormFields = useMemo(\n () =>\n email !== \"\" &&\n emailInputState.isValidEmail &&\n (!isEmailUpTop || emailLookupResponse?.status === EmailLookupStatus.NOT_FOUND),\n [email, emailInputState.isValidEmail, isEmailUpTop, emailLookupResponse],\n );\n\n const showFormFields = useMemo(\n () =>\n (email === \"\" ||\n (typeof email === \"string\" && email.length >= 1) ||\n emailLookupResponse?.status === null) &&\n (emailLookupResponse?.status === EmailLookupStatus.NOT_FOUND ||\n ![\n EmailLookupStatus.ALREADY_INITIATED,\n EmailLookupStatus.FOUND,\n EmailLookupStatus.PENDING,\n EmailLookupStatus.REJECTED,\n ].includes(emailLookupResponse?.status)),\n [email, emailLookupResponse],\n );\n\n const emailOnBlur = useCallback(async () => {\n if (!emailInputState.isValidEmail || bypassEmailLookup || hasKeyPressed) return;\n setHasBlurred(true);\n setBypassEmailLookup(false);\n setIsLoading(true);\n try {\n const response = await handleSubmitVerificationHelpRequest(programId, email);\n if (response.status === EmailLookupStatus.FOUND) {\n userDidConvert(COLLECT_INFO_SUBMIT, COLLECT_INFO_SUBMISSION_TIME);\n }\n setEmailLookupResponse(response);\n } catch (error) {\n logger.error(\"Error during email lookup:\", error);\n } finally {\n setIsLoading(false);\n }\n }, [programId, email, bypassEmailLookup, hasKeyPressed, emailInputState.isValidEmail]);\n\n const emailOnKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (hasBlurred) return;\n if (event.key === \"Enter\") {\n setHasKeyPressed(true);\n emailOnBlur();\n }\n },\n [emailOnBlur, hasBlurred],\n );\n\n const handleResendClick = useCallback(async () => {\n setIsLoading(true);\n try {\n const response: EmailLookupResponse = await handleSubmitVerificationHelpRequest(\n programId,\n email,\n );\n setEmailLookupResponse(response);\n } catch (error) {\n logger.error(\"Error resending email:\", error);\n } finally {\n setIsLoading(false);\n }\n }, [programId, email, segment]);\n\n const handleOnClickProceedHere = useCallback(async () => {\n if (!emailInputState.isValidEmail) return;\n setBypassEmailLookup(true);\n setEmailLookupResponse({\n status: EmailLookupStatus.NOT_FOUND,\n message: \"makeChanges\",\n });\n }, [emailInputState.isValidEmail]);\n\n const getOrgByDomain = useCallback(\n async (verificationService: VerificationService): Promise<Organization | undefined> => {\n if (!verificationService) return undefined;\n\n const orgSearchUrl = getOrgSearchUrl(\n verificationService.viewModel as\n | StudentPersonalInfoViewModel\n | TeacherPersonalInfoViewModel,\n verificationService.programTheme,\n );\n\n const emailDomain = getDomainFromEmail(email);\n const orgDomainMatch = new URL(orgSearchUrl);\n orgDomainMatch.searchParams.set(\"domain\", emailDomain);\n\n const response = await fetchOrganization(orgDomainMatch.toString());\n\n return response && response.length === 1 ? response[0] : undefined;\n },\n [email],\n );\n\n if (!isEmailUpTop) {\n return {\n isEmailUpTop,\n isEmailValidationLoading: false,\n showOtherFields: true,\n disableOtherFields: false,\n emailLookupResponse: null,\n showEmailLookupResponseMessages: false,\n showFormFields: true,\n emailOnBlur: () => {},\n emailOnKeyDown: () => {},\n handleResendClick: () => Promise.resolve(),\n emailFirstCollectInfoStep,\n isValidEmail: !getEmailValidationError(email),\n getOrgByDomain: async () => undefined,\n enableFormFields: true,\n };\n }\n\n return {\n isEmailUpTop,\n isEmailValidationLoading: isLoading,\n emailLookupResponse,\n showEmailLookupResponseMessages: !!emailLookupResponse,\n showFormFields,\n emailOnBlur,\n emailOnKeyDown,\n handleResendClick,\n emailFirstCollectInfoStep,\n isValidEmail: emailInputState.isValidEmail,\n getOrgByDomain,\n enableFormFields,\n handleOnClickProceedHere,\n };\n}\n"],"names":["EmailMessageComponent","title","message","closing","helpRequestResponse","onResendClick","hasSent","setHasSent","useState","handleClick","jsxs","jsx","FormattedHTMLMessage","EmailLookupStatus","EmailLookupResponseMessages","emailLookupResponse","onHandleClickLink","Fragment","defaultJsonHeaders","submitVerificationHelpRequest","programId","emailAddress","headers","url","getVerificationHelpUrl","requestBody","response","fetchWithTimeout","error","logger","handleSubmitVerificationHelpRequest","email","resp","status","recordGaEvent","EventName","useEmailFirstExperiment","segment","isLoading","setIsLoading","setEmailLookupResponse","emailFirstCollectInfoStep","useFlag","isEmailUpTop","bypassEmailLookup","setBypassEmailLookup","hasBlurred","setHasBlurred","hasKeyPressed","setHasKeyPressed","emailInputState","setEmailInputState","getEmailValidationError","userDidConvert","useMetrics","updateEmailState","useCallback","newEmail","isValid","prevState","useEffect","enableFormFields","useMemo","showFormFields","emailOnBlur","COLLECT_INFO_SUBMIT","COLLECT_INFO_SUBMISSION_TIME","emailOnKeyDown","event","handleResendClick","handleOnClickProceedHere","getOrgByDomain","verificationService","orgSearchUrl","getOrgSearchUrl","emailDomain","getDomainFromEmail","orgDomainMatch","fetchOrganization"],"mappings":"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"}
@@ -4,10 +4,10 @@
4
4
  * This file is not intended for use in other contexts and there are no guarantees about its behavior outside of MySheerID.
5
5
  */
6
6
  /**
7
- * VERSION: 2.121.0-alpha.3
8
- * BUILD_TIMESTAMP: 1754419929745
9
- * BUILD_DATE: Tue Aug 05 2025 18:52:09 GMT+0000 (Coordinated Universal Time)
10
- * BUILD_COMMIT: 091dfb82603775b7de0bf8cf799f963fc4950e98
7
+ * VERSION: 2.122.0-alpha.0
8
+ * BUILD_TIMESTAMP: 1754933341077
9
+ * BUILD_DATE: Mon Aug 11 2025 17:29:01 GMT+0000 (Coordinated Universal Time)
10
+ * BUILD_COMMIT: 75bc9dd94c884c271e125927543152b3642e70d8
11
11
  */
12
12
  const e = {
13
13
  "defaultMessages.ACTIVE_DUTY": "Đang Tại Ngũ",
@@ -4,10 +4,10 @@
4
4
  * This file is not intended for use in other contexts and there are no guarantees about its behavior outside of MySheerID.
5
5
  */
6
6
  /**
7
- * VERSION: 2.121.0-alpha.3
8
- * BUILD_TIMESTAMP: 1754419929745
9
- * BUILD_DATE: Tue Aug 05 2025 18:52:09 GMT+0000 (Coordinated Universal Time)
10
- * BUILD_COMMIT: 091dfb82603775b7de0bf8cf799f963fc4950e98
7
+ * VERSION: 2.122.0-alpha.0
8
+ * BUILD_TIMESTAMP: 1754933341077
9
+ * BUILD_DATE: Mon Aug 11 2025 17:29:01 GMT+0000 (Coordinated Universal Time)
10
+ * BUILD_COMMIT: 75bc9dd94c884c271e125927543152b3642e70d8
11
11
  */
12
12
  const e = {
13
13
  "defaultMessages.ACTIVE_DUTY": "现役",
@@ -4,10 +4,10 @@
4
4
  * This file is not intended for use in other contexts and there are no guarantees about its behavior outside of MySheerID.
5
5
  */
6
6
  /**
7
- * VERSION: 2.121.0-alpha.3
8
- * BUILD_TIMESTAMP: 1754419929745
9
- * BUILD_DATE: Tue Aug 05 2025 18:52:09 GMT+0000 (Coordinated Universal Time)
10
- * BUILD_COMMIT: 091dfb82603775b7de0bf8cf799f963fc4950e98
7
+ * VERSION: 2.122.0-alpha.0
8
+ * BUILD_TIMESTAMP: 1754933341077
9
+ * BUILD_DATE: Mon Aug 11 2025 17:29:01 GMT+0000 (Coordinated Universal Time)
10
+ * BUILD_COMMIT: 75bc9dd94c884c271e125927543152b3642e70d8
11
11
  */
12
12
  const e = {
13
13
  "defaultMessages.ACTIVE_DUTY": "現役",