@sheerid/jslib 2.275.0 → 2.277.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 (462) hide show
  1. package/_mysheerid-preview.css +4 -4
  2. package/_mysheerid-preview.js +873 -869
  3. package/_mysheerid-preview.js.map +1 -1
  4. package/chunk/{AddressComponent-DeQlodxe.js → AddressComponent-C3iwf09x.js} +7 -7
  5. package/chunk/{AddressComponent-BGFbAsvK.js.map → AddressComponent-C3iwf09x.js.map} +1 -1
  6. package/chunk/{AddressComponent-BGFbAsvK.js → AddressComponent-oDHvr6bn.js} +7 -7
  7. package/chunk/{AddressComponent-DeQlodxe.js.map → AddressComponent-oDHvr6bn.js.map} +1 -1
  8. package/chunk/{AnnouncingHeader-D01_AW-Z.js → AnnouncingHeader-CCVSQeQR.js} +6 -6
  9. package/chunk/{AnnouncingHeader-Ces-_Aei.js.map → AnnouncingHeader-CCVSQeQR.js.map} +1 -1
  10. package/chunk/{AnnouncingHeader-Ces-_Aei.js → AnnouncingHeader-YPjBYzsZ.js} +6 -6
  11. package/chunk/{AnnouncingHeader-D01_AW-Z.js.map → AnnouncingHeader-YPjBYzsZ.js.map} +1 -1
  12. package/chunk/{ApiUrls-CHE6ck1K.js → ApiUrls-BEuqNxHS.js} +12 -8
  13. package/chunk/ApiUrls-BEuqNxHS.js.map +1 -0
  14. package/chunk/ApiUrls-C93kMsSC.js +44 -0
  15. package/chunk/ApiUrls-C93kMsSC.js.map +1 -0
  16. package/chunk/{BirthDateComponent-DA7yEebd.js → BirthDateComponent-MZDnneXy.js} +8 -8
  17. package/chunk/{BirthDateComponent-BzelVdwE.js.map → BirthDateComponent-MZDnneXy.js.map} +1 -1
  18. package/chunk/{BirthDateComponent-BzelVdwE.js → BirthDateComponent-f9e4it7x.js} +8 -8
  19. package/chunk/{BirthDateComponent-DA7yEebd.js.map → BirthDateComponent-f9e4it7x.js.map} +1 -1
  20. package/chunk/{CaptchaComponent-CaHSH2GC.js → CaptchaComponent-CCq7YSum.js} +137 -136
  21. package/chunk/CaptchaComponent-CCq7YSum.js.map +1 -0
  22. package/chunk/{CaptchaComponent-DD6kFSw9.js → CaptchaComponent-hqx9tSkk.js} +136 -135
  23. package/chunk/CaptchaComponent-hqx9tSkk.js.map +1 -0
  24. package/chunk/{ChangeLocaleComponent-BcCMSbju.js → ChangeLocaleComponent-CKKK4OcA.js} +8 -8
  25. package/chunk/{ChangeLocaleComponent-BcCMSbju.js.map → ChangeLocaleComponent-CKKK4OcA.js.map} +1 -1
  26. package/chunk/{ChangeLocaleComponent-l5uhn4km.js → ChangeLocaleComponent-DtJjnuBc.js} +8 -8
  27. package/chunk/{ChangeLocaleComponent-l5uhn4km.js.map → ChangeLocaleComponent-DtJjnuBc.js.map} +1 -1
  28. package/chunk/{City-C1CWD14n.js → City-CUVEjTrI.js} +7 -7
  29. package/chunk/{City-BJB8URp9.js.map → City-CUVEjTrI.js.map} +1 -1
  30. package/chunk/{City-BJB8URp9.js → City-Drub1WX8.js} +7 -7
  31. package/chunk/{City-C1CWD14n.js.map → City-Drub1WX8.js.map} +1 -1
  32. package/chunk/{CollegeNameComponent-CN-yzFPS.js → CollegeNameComponent-4QYMIIcd.js} +9 -9
  33. package/chunk/{CollegeNameComponent-CBZS1qbH.js.map → CollegeNameComponent-4QYMIIcd.js.map} +1 -1
  34. package/chunk/{CollegeNameComponent-CBZS1qbH.js → CollegeNameComponent-C47D3rO4.js} +9 -9
  35. package/chunk/{CollegeNameComponent-CN-yzFPS.js.map → CollegeNameComponent-C47D3rO4.js.map} +1 -1
  36. package/chunk/{CopyToClipboardComponent-CWCaNcMS.js → CopyToClipboardComponent-DGi3bxV2.js} +9 -9
  37. package/chunk/{CopyToClipboardComponent-C4DDGwe8.js.map → CopyToClipboardComponent-DGi3bxV2.js.map} +1 -1
  38. package/chunk/{CopyToClipboardComponent-C4DDGwe8.js → CopyToClipboardComponent-cLuyXFes.js} +9 -9
  39. package/chunk/{CopyToClipboardComponent-CWCaNcMS.js.map → CopyToClipboardComponent-cLuyXFes.js.map} +1 -1
  40. package/chunk/CountryComponentWrapper-B3Ki9bAz.js +78 -0
  41. package/chunk/CountryComponentWrapper-B3Ki9bAz.js.map +1 -0
  42. package/chunk/CountryComponentWrapper-DeR9PrA2.js +82 -0
  43. package/chunk/CountryComponentWrapper-DeR9PrA2.js.map +1 -0
  44. package/chunk/{DischargeDateComponent-NhaY0FfR.js → DischargeDateComponent-Btg3v71t.js} +21 -21
  45. package/chunk/{DischargeDateComponent-NhaY0FfR.js.map → DischargeDateComponent-Btg3v71t.js.map} +1 -1
  46. package/chunk/{DischargeDateComponent-BWErN092.js → DischargeDateComponent-CqKUrGE0.js} +21 -21
  47. package/chunk/{DischargeDateComponent-BWErN092.js.map → DischargeDateComponent-CqKUrGE0.js.map} +1 -1
  48. package/chunk/{DriverLicenseNumberComponent-CFbngokf.js → DriverLicenseNumberComponent-B2arYwHU.js} +7 -7
  49. package/chunk/{DriverLicenseNumberComponent-CFbngokf.js.map → DriverLicenseNumberComponent-B2arYwHU.js.map} +1 -1
  50. package/chunk/{DriverLicenseNumberComponent-Cfjxx2ik.js → DriverLicenseNumberComponent-ByNoEq6v.js} +7 -7
  51. package/chunk/{DriverLicenseNumberComponent-Cfjxx2ik.js.map → DriverLicenseNumberComponent-ByNoEq6v.js.map} +1 -1
  52. package/chunk/{EmailLoopPending-DsovStZB.js → EmailLoopPending-HyZBgisU.js} +25 -25
  53. package/chunk/{EmailLoopPending-CKVWdwQ0.js.map → EmailLoopPending-HyZBgisU.js.map} +1 -1
  54. package/chunk/{EmailLoopPending-CKVWdwQ0.js → EmailLoopPending-ojWCBFjq.js} +24 -24
  55. package/chunk/{EmailLoopPending-DsovStZB.js.map → EmailLoopPending-ojWCBFjq.js.map} +1 -1
  56. package/chunk/{ExtraMessage-CpDDdKiN.js → ExtraMessage-BXxlQROb.js} +7 -7
  57. package/chunk/{ExtraMessage-CpDDdKiN.js.map → ExtraMessage-BXxlQROb.js.map} +1 -1
  58. package/chunk/{ExtraMessage-DNuEH_rP.js → ExtraMessage-PLTUBdhw.js} +7 -7
  59. package/chunk/{ExtraMessage-DNuEH_rP.js.map → ExtraMessage-PLTUBdhw.js.map} +1 -1
  60. package/chunk/{FirstResponderOrganizationComponent-BwVToZUo.js → FirstResponderOrganizationComponent-BiI8JG49.js} +8 -8
  61. package/chunk/{FirstResponderOrganizationComponent-BwVToZUo.js.map → FirstResponderOrganizationComponent-BiI8JG49.js.map} +1 -1
  62. package/chunk/{FirstResponderOrganizationComponent-NdnMGarL.js → FirstResponderOrganizationComponent-BwzXdBV-.js} +8 -8
  63. package/chunk/{FirstResponderOrganizationComponent-NdnMGarL.js.map → FirstResponderOrganizationComponent-BwzXdBV-.js.map} +1 -1
  64. package/chunk/{FormFieldInputSelect-C81cxxxF.js → FormFieldInputSelect-C6OyLsWL.js} +7 -7
  65. package/chunk/{FormFieldInputSelect-C81cxxxF.js.map → FormFieldInputSelect-C6OyLsWL.js.map} +1 -1
  66. package/chunk/{FormFieldInputSelect-ChTWVZ0h.js → FormFieldInputSelect-Cl4QZ12h.js} +7 -7
  67. package/chunk/{FormFieldInputSelect-ChTWVZ0h.js.map → FormFieldInputSelect-Cl4QZ12h.js.map} +1 -1
  68. package/chunk/{FormFieldLayout-CuxYu2-h.js → FormFieldLayout-C4SCdGBC.js} +8 -17
  69. package/chunk/FormFieldLayout-C4SCdGBC.js.map +1 -0
  70. package/chunk/{FormFieldLayout-BPBIL09f.js → FormFieldLayout-Cj_v9kYa.js} +8 -17
  71. package/chunk/FormFieldLayout-Cj_v9kYa.js.map +1 -0
  72. package/chunk/{FormFieldText-Qen7EAhG.js → FormFieldText-BbdrtNh_.js} +7 -7
  73. package/chunk/{FormFieldText-BTWjkwwz.js.map → FormFieldText-BbdrtNh_.js.map} +1 -1
  74. package/chunk/{FormFieldText-BTWjkwwz.js → FormFieldText-Gf13Luq7.js} +7 -7
  75. package/chunk/{FormFieldText-Qen7EAhG.js.map → FormFieldText-Gf13Luq7.js.map} +1 -1
  76. package/chunk/{FormFieldTypeahead-C8HgVKr6.js → FormFieldTypeahead-DTFxOQnf.js} +70 -70
  77. package/chunk/{FormFieldTypeahead-C8HgVKr6.js.map → FormFieldTypeahead-DTFxOQnf.js.map} +1 -1
  78. package/chunk/{FormFieldTypeahead-CAjM5rBm.js → FormFieldTypeahead-DbrQgvbJ.js} +85 -85
  79. package/chunk/{FormFieldTypeahead-CAjM5rBm.js.map → FormFieldTypeahead-DbrQgvbJ.js.map} +1 -1
  80. package/chunk/{FormFooterComponent-BdT7rv1y.js → FormFooterComponent-B2W5vjOS.js} +1949 -1942
  81. package/chunk/{FormFooterComponent-BdT7rv1y.js.map → FormFooterComponent-B2W5vjOS.js.map} +1 -1
  82. package/chunk/{FormFooterComponent-B_Wh4HXO.js → FormFooterComponent-CaOt9TQw.js} +196 -189
  83. package/chunk/FormFooterComponent-CaOt9TQw.js.map +1 -0
  84. package/chunk/{FormSelectChoice-qC0WYy1y.js → FormSelectChoice-C4LlT7fR.js} +19 -30
  85. package/chunk/FormSelectChoice-C4LlT7fR.js.map +1 -0
  86. package/chunk/{FormSelectChoice-cr9QsYX9.js → FormSelectChoice-CClt04rV.js} +19 -30
  87. package/chunk/FormSelectChoice-CClt04rV.js.map +1 -0
  88. package/chunk/{InputText-C8Mt-ybW.js → InputText-BXPuBlPq.js} +7 -7
  89. package/chunk/{InputText-Bw9hR6-E.js.map → InputText-BXPuBlPq.js.map} +1 -1
  90. package/chunk/{InputText-Bw9hR6-E.js → InputText-h_myNeHr.js} +7 -7
  91. package/chunk/{InputText-C8Mt-ybW.js.map → InputText-h_myNeHr.js.map} +1 -1
  92. package/chunk/{LicensedProfessionalOrganizationComponent-Qr_OcT4S.js → LicensedProfessionalOrganizationComponent-wJSn67h6.js} +8 -8
  93. package/chunk/{LicensedProfessionalOrganizationComponent-DD5D6T1j.js.map → LicensedProfessionalOrganizationComponent-wJSn67h6.js.map} +1 -1
  94. package/chunk/{LicensedProfessionalOrganizationComponent-DD5D6T1j.js → LicensedProfessionalOrganizationComponent-wfXwXvVc.js} +8 -8
  95. package/chunk/{LicensedProfessionalOrganizationComponent-Qr_OcT4S.js.map → LicensedProfessionalOrganizationComponent-wfXwXvVc.js.map} +1 -1
  96. package/chunk/{LogoComponent-BbW4WS1K.js → LogoComponent-Do8K5ydz.js} +6 -6
  97. package/chunk/{LogoComponent-BbW4WS1K.js.map → LogoComponent-Do8K5ydz.js.map} +1 -1
  98. package/chunk/{LogoComponent-CRfZyj0K.js → LogoComponent-Dx1G-rzE.js} +6 -6
  99. package/chunk/{LogoComponent-CRfZyj0K.js.map → LogoComponent-Dx1G-rzE.js.map} +1 -1
  100. package/chunk/{LowIncomeOrganizationComponent-C-ILtROJ.js → LowIncomeOrganizationComponent-C3Dc7HeO.js} +20 -20
  101. package/chunk/{LowIncomeOrganizationComponent-C-ILtROJ.js.map → LowIncomeOrganizationComponent-C3Dc7HeO.js.map} +1 -1
  102. package/chunk/{LowIncomeOrganizationComponent-ChuZO5oy.js → LowIncomeOrganizationComponent-D8RlrBXa.js} +20 -20
  103. package/chunk/{LowIncomeOrganizationComponent-ChuZO5oy.js.map → LowIncomeOrganizationComponent-D8RlrBXa.js.map} +1 -1
  104. package/chunk/{MedicalProfessionalOrganizationComponent-wF2iUUU3.js → MedicalProfessionalOrganizationComponent-BlEmZTpI.js} +8 -8
  105. package/chunk/{MedicalProfessionalOrganizationComponent-QlMPcO92.js.map → MedicalProfessionalOrganizationComponent-BlEmZTpI.js.map} +1 -1
  106. package/chunk/{MedicalProfessionalOrganizationComponent-QlMPcO92.js → MedicalProfessionalOrganizationComponent-DS1iVIfQ.js} +8 -8
  107. package/chunk/{MedicalProfessionalOrganizationComponent-wF2iUUU3.js.map → MedicalProfessionalOrganizationComponent-DS1iVIfQ.js.map} +1 -1
  108. package/chunk/{MemberIdComponent-DbvTJcos.js → MemberIdComponent-5OnkQeLm.js} +7 -7
  109. package/chunk/{MemberIdComponent-CuflPh6q.js.map → MemberIdComponent-5OnkQeLm.js.map} +1 -1
  110. package/chunk/{MemberIdComponent-CuflPh6q.js → MemberIdComponent-sR9aGDN4.js} +7 -7
  111. package/chunk/{MemberIdComponent-DbvTJcos.js.map → MemberIdComponent-sR9aGDN4.js.map} +1 -1
  112. package/chunk/{MembershipOrganizationComponent-CvpHrQlx.js → MembershipOrganizationComponent-BrbunU1_.js} +8 -8
  113. package/chunk/{MembershipOrganizationComponent-CvpHrQlx.js.map → MembershipOrganizationComponent-BrbunU1_.js.map} +1 -1
  114. package/chunk/{MembershipOrganizationComponent-rAlof4zj.js → MembershipOrganizationComponent-UqzaA4bV.js} +8 -8
  115. package/chunk/{MembershipOrganizationComponent-rAlof4zj.js.map → MembershipOrganizationComponent-UqzaA4bV.js.map} +1 -1
  116. package/chunk/Onfido-CTCgAwnB.js +4 -4
  117. package/chunk/{PersonalInfoStepSubmitButton-D55ut5Yp.js → PersonalInfoStepSubmitButton-DA3ceOLw.js} +27 -25
  118. package/chunk/PersonalInfoStepSubmitButton-DA3ceOLw.js.map +1 -0
  119. package/chunk/{PersonalInfoStepSubmitButton-C7QmpcVd.js → PersonalInfoStepSubmitButton-D_Y9q0Iy.js} +19 -17
  120. package/chunk/PersonalInfoStepSubmitButton-D_Y9q0Iy.js.map +1 -0
  121. package/chunk/{PersonalInfoStepWrapper-CQ-P1pon.js → PersonalInfoStepWrapper-6neTJTQD.js} +7 -7
  122. package/chunk/{PersonalInfoStepWrapper-CQ-P1pon.js.map → PersonalInfoStepWrapper-6neTJTQD.js.map} +1 -1
  123. package/chunk/{PersonalInfoStepWrapper-C3OKK8Mh.js → PersonalInfoStepWrapper-Dsb0Qcv5.js} +21 -21
  124. package/chunk/{PersonalInfoStepWrapper-C3OKK8Mh.js.map → PersonalInfoStepWrapper-Dsb0Qcv5.js.map} +1 -1
  125. package/chunk/{PostalCodeComponent-Cd3MQUvZ.js → PostalCodeComponent-BhBBSAL-.js} +7 -7
  126. package/chunk/{PostalCodeComponent-Bs9KyOzc.js.map → PostalCodeComponent-BhBBSAL-.js.map} +1 -1
  127. package/chunk/{PostalCodeComponent-Bs9KyOzc.js → PostalCodeComponent-DKC3DspF.js} +7 -7
  128. package/chunk/{PostalCodeComponent-Cd3MQUvZ.js.map → PostalCodeComponent-DKC3DspF.js.map} +1 -1
  129. package/chunk/{SSN-Bj9BhqVP.js → SSN-7DHOlAAq.js} +8 -8
  130. package/chunk/{SSN-Bj9BhqVP.js.map → SSN-7DHOlAAq.js.map} +1 -1
  131. package/chunk/{SSN-xvlX6KT5.js → SSN-DlBvRiaZ.js} +8 -8
  132. package/chunk/{SSN-xvlX6KT5.js.map → SSN-DlBvRiaZ.js.map} +1 -1
  133. package/chunk/{StateSelectComponent-B2sfW_tb.js → StateSelectComponent-BXHXB6Kn.js} +6 -6
  134. package/chunk/{StateSelectComponent-B2sfW_tb.js.map → StateSelectComponent-BXHXB6Kn.js.map} +1 -1
  135. package/chunk/{StateSelectComponent-CCIlFilV.js → StateSelectComponent-lM5e-_1v.js} +6 -6
  136. package/chunk/{StateSelectComponent-CCIlFilV.js.map → StateSelectComponent-lM5e-_1v.js.map} +1 -1
  137. package/chunk/{StatusComponent-AEKNerJR.js → StatusComponent-BTvs1WVn.js} +15 -14
  138. package/chunk/StatusComponent-BTvs1WVn.js.map +1 -0
  139. package/chunk/{StatusComponent-DFtcHMpS.js → StatusComponent-BxQNsHYs.js} +15 -14
  140. package/chunk/StatusComponent-BxQNsHYs.js.map +1 -0
  141. package/chunk/StepAgePersonalInfo-BOnOqXxm.js +174 -0
  142. package/chunk/{StepAgePersonalInfo-BHWaDlVH.js.map → StepAgePersonalInfo-BOnOqXxm.js.map} +1 -1
  143. package/chunk/{StepAgePersonalInfo-CH3r6vpW.js → StepAgePersonalInfo-UWfkIpnn.js} +43 -47
  144. package/chunk/{StepAgePersonalInfo-CH3r6vpW.js.map → StepAgePersonalInfo-UWfkIpnn.js.map} +1 -1
  145. package/chunk/{StepCard-CPjUPPj0.js → StepCard-B0o7IN6g.js} +5 -5
  146. package/chunk/{StepCard-CPjUPPj0.js.map → StepCard-B0o7IN6g.js.map} +1 -1
  147. package/chunk/{StepCard-CbZaVC-t.js → StepCard-CWT2BiAH.js} +5 -5
  148. package/chunk/{StepCard-CbZaVC-t.js.map → StepCard-CWT2BiAH.js.map} +1 -1
  149. package/chunk/{StepCollectIdentifier-BcbSXA5J.js → StepCollectIdentifier-CtpUvhZs.js} +11 -11
  150. package/chunk/{StepCollectIdentifier-BcbSXA5J.js.map → StepCollectIdentifier-CtpUvhZs.js.map} +1 -1
  151. package/chunk/{StepCollectIdentifier-lhrdWP-H.js → StepCollectIdentifier-D7bSwvYI.js} +15 -15
  152. package/chunk/{StepCollectIdentifier-lhrdWP-H.js.map → StepCollectIdentifier-D7bSwvYI.js.map} +1 -1
  153. package/chunk/StepCollectMilitaryPersonalInfoComponent-BcmZhgl3.js +245 -0
  154. package/chunk/StepCollectMilitaryPersonalInfoComponent-BcmZhgl3.js.map +1 -0
  155. package/chunk/StepCollectMilitaryPersonalInfoComponent-CHxXr8xM.js +249 -0
  156. package/chunk/StepCollectMilitaryPersonalInfoComponent-CHxXr8xM.js.map +1 -0
  157. package/chunk/StepCollectPersonalInfo-BlAJbqgb.js +372 -0
  158. package/chunk/StepCollectPersonalInfo-BlAJbqgb.js.map +1 -0
  159. package/chunk/StepCollectPersonalInfo-CzLVKlZ3.js +368 -0
  160. package/chunk/StepCollectPersonalInfo-CzLVKlZ3.js.map +1 -0
  161. package/chunk/{StepCompleteAuthentication-AKjdo3J9.js → StepCompleteAuthentication-Cnv_QzG7.js} +21 -21
  162. package/chunk/{StepCompleteAuthentication-AKjdo3J9.js.map → StepCompleteAuthentication-Cnv_QzG7.js.map} +1 -1
  163. package/chunk/{StepCompleteAuthentication-DytIfFlB.js → StepCompleteAuthentication-D7NH3MFa.js} +21 -21
  164. package/chunk/{StepCompleteAuthentication-DytIfFlB.js.map → StepCompleteAuthentication-D7NH3MFa.js.map} +1 -1
  165. package/chunk/{StepConsolation-DO8Lm9dv.js → StepConsolation-BrzJnbYN.js} +9 -9
  166. package/chunk/{StepConsolation-CExfIb_j.js.map → StepConsolation-BrzJnbYN.js.map} +1 -1
  167. package/chunk/{StepConsolation-CExfIb_j.js → StepConsolation-C5ZHdmQ6.js} +9 -9
  168. package/chunk/{StepConsolation-DO8Lm9dv.js.map → StepConsolation-C5ZHdmQ6.js.map} +1 -1
  169. package/chunk/{StepDocUpload-CYElBSeV.js → StepDocUpload-BuH-EW5U.js} +214 -214
  170. package/chunk/{StepDocUpload-CYElBSeV.js.map → StepDocUpload-BuH-EW5U.js.map} +1 -1
  171. package/chunk/{StepDocUpload--1-U-569.js → StepDocUpload-D2_e55pR.js} +221 -221
  172. package/chunk/{StepDocUpload--1-U-569.js.map → StepDocUpload-D2_e55pR.js.map} +1 -1
  173. package/chunk/{StepDriverLicensePersonalInfoComponent-ByLP9CLy.js → StepDriverLicensePersonalInfoComponent-DcVZb5ke.js} +32 -32
  174. package/chunk/{StepDriverLicensePersonalInfoComponent-ByLP9CLy.js.map → StepDriverLicensePersonalInfoComponent-DcVZb5ke.js.map} +1 -1
  175. package/chunk/{StepDriverLicensePersonalInfoComponent-CpfSPJBD.js → StepDriverLicensePersonalInfoComponent-UZoq9OhC.js} +36 -36
  176. package/chunk/{StepDriverLicensePersonalInfoComponent-CpfSPJBD.js.map → StepDriverLicensePersonalInfoComponent-UZoq9OhC.js.map} +1 -1
  177. package/chunk/{StepEmailLoop-Bok5TmMG.js → StepEmailLoop-138hnevc.js} +17 -17
  178. package/chunk/{StepEmailLoop-Bok5TmMG.js.map → StepEmailLoop-138hnevc.js.map} +1 -1
  179. package/chunk/{StepEmailLoop-CdREX-4w.js → StepEmailLoop-p3PjfBvc.js} +17 -17
  180. package/chunk/{StepEmailLoop-CdREX-4w.js.map → StepEmailLoop-p3PjfBvc.js.map} +1 -1
  181. package/chunk/{StepEmploymentPersonalInfo-XVAvZ0te.js → StepEmploymentPersonalInfo-CIb2V_Aj.js} +44 -44
  182. package/chunk/{StepEmploymentPersonalInfo-DqFNiu3C.js.map → StepEmploymentPersonalInfo-CIb2V_Aj.js.map} +1 -1
  183. package/chunk/{StepEmploymentPersonalInfo-DqFNiu3C.js → StepEmploymentPersonalInfo-txyihsja.js} +48 -48
  184. package/chunk/{StepEmploymentPersonalInfo-XVAvZ0te.js.map → StepEmploymentPersonalInfo-txyihsja.js.map} +1 -1
  185. package/chunk/StepFirstResponderPersonalInfo-CSGMgT02.js +186 -0
  186. package/chunk/StepFirstResponderPersonalInfo-CSGMgT02.js.map +1 -0
  187. package/chunk/StepFirstResponderPersonalInfo-gF_5zHxj.js +182 -0
  188. package/chunk/StepFirstResponderPersonalInfo-gF_5zHxj.js.map +1 -0
  189. package/chunk/{StepGeneralIdentityPersonalInfoComponent-BfYxugan.js → StepGeneralIdentityPersonalInfoComponent-Cgp_PX5L.js} +45 -45
  190. package/chunk/{StepGeneralIdentityPersonalInfoComponent-BfYxugan.js.map → StepGeneralIdentityPersonalInfoComponent-Cgp_PX5L.js.map} +1 -1
  191. package/chunk/{StepGeneralIdentityPersonalInfoComponent-BqHvbrkO.js → StepGeneralIdentityPersonalInfoComponent-D4wP5D1G.js} +41 -41
  192. package/chunk/{StepGeneralIdentityPersonalInfoComponent-BqHvbrkO.js.map → StepGeneralIdentityPersonalInfoComponent-D4wP5D1G.js.map} +1 -1
  193. package/chunk/{StepHybridIdentityPersonalInfoComponent-C4SFltJf.js → StepHybridIdentityPersonalInfoComponent-Cez-TR1Z.js} +44 -44
  194. package/chunk/{StepHybridIdentityPersonalInfoComponent-C4SFltJf.js.map → StepHybridIdentityPersonalInfoComponent-Cez-TR1Z.js.map} +1 -1
  195. package/chunk/{StepHybridIdentityPersonalInfoComponent-D2bEcQKw.js → StepHybridIdentityPersonalInfoComponent-ChtlT4nZ.js} +48 -48
  196. package/chunk/{StepHybridIdentityPersonalInfoComponent-D2bEcQKw.js.map → StepHybridIdentityPersonalInfoComponent-ChtlT4nZ.js.map} +1 -1
  197. package/chunk/StepIDCheckLoop-CX6VsvAJ.js +24 -0
  198. package/chunk/{StepIDCheckLoop-BDark2Di.js.map → StepIDCheckLoop-CX6VsvAJ.js.map} +1 -1
  199. package/chunk/{StepIDCheckLoop-BDark2Di.js → StepIDCheckLoop-DFhu-v9n.js} +8 -8
  200. package/chunk/{StepIDCheckLoop-C0g-rLtR.js.map → StepIDCheckLoop-DFhu-v9n.js.map} +1 -1
  201. package/chunk/{StepIDCheckLoopOnfido-BzrLqUIy.js → StepIDCheckLoopOnfido-0o-ZdynC.js} +48 -48
  202. package/chunk/{StepIDCheckLoopOnfido-CpsFKeIS.js.map → StepIDCheckLoopOnfido-0o-ZdynC.js.map} +1 -1
  203. package/chunk/{StepIDCheckLoopOnfido-CpsFKeIS.js → StepIDCheckLoopOnfido-CiuUU7f9.js} +53 -53
  204. package/chunk/{StepIDCheckLoopOnfido-BzrLqUIy.js.map → StepIDCheckLoopOnfido-CiuUU7f9.js.map} +1 -1
  205. package/chunk/{StepIDCheckLoopRegula-nvw5YyKo.js → StepIDCheckLoopRegula-D5Ln2I62.js} +21 -21
  206. package/chunk/{StepIDCheckLoopRegula-DBaRIxgp.js.map → StepIDCheckLoopRegula-D5Ln2I62.js.map} +1 -1
  207. package/chunk/{StepIDCheckLoopRegula-DBaRIxgp.js → StepIDCheckLoopRegula-D94f7Ccr.js} +21 -21
  208. package/chunk/{StepIDCheckLoopRegula-nvw5YyKo.js.map → StepIDCheckLoopRegula-D94f7Ccr.js.map} +1 -1
  209. package/chunk/StepLicensedProfessionalPersonalInfo-BHInsLPJ.js +180 -0
  210. package/chunk/StepLicensedProfessionalPersonalInfo-BHInsLPJ.js.map +1 -0
  211. package/chunk/StepLicensedProfessionalPersonalInfo-CHQbAgsG.js +176 -0
  212. package/chunk/StepLicensedProfessionalPersonalInfo-CHQbAgsG.js.map +1 -0
  213. package/chunk/StepLowIncomePersonalInfo-DVDI4DRm.js +234 -0
  214. package/chunk/StepLowIncomePersonalInfo-DVDI4DRm.js.map +1 -0
  215. package/chunk/StepLowIncomePersonalInfo-oBDI4ML2.js +238 -0
  216. package/chunk/StepLowIncomePersonalInfo-oBDI4ML2.js.map +1 -0
  217. package/chunk/StepMedicalProfessionalPersonalInfo-DmoUExs9.js +208 -0
  218. package/chunk/StepMedicalProfessionalPersonalInfo-DmoUExs9.js.map +1 -0
  219. package/chunk/StepMedicalProfessionalPersonalInfo-_x2wcVNS.js +212 -0
  220. package/chunk/StepMedicalProfessionalPersonalInfo-_x2wcVNS.js.map +1 -0
  221. package/chunk/StepMemberPersonalInfo-BAjKLJCl.js +153 -0
  222. package/chunk/{StepMemberPersonalInfo-JVdhDDsO.js.map → StepMemberPersonalInfo-BAjKLJCl.js.map} +1 -1
  223. package/chunk/StepMemberPersonalInfo-CI9Q06Ic.js +157 -0
  224. package/chunk/{StepMemberPersonalInfo-oxD7cpuH.js.map → StepMemberPersonalInfo-CI9Q06Ic.js.map} +1 -1
  225. package/chunk/StepMoverPersonalInfo-CVT4pPa6.js +144 -0
  226. package/chunk/{StepMoverPersonalInfo-DQ6omvFs.js.map → StepMoverPersonalInfo-CVT4pPa6.js.map} +1 -1
  227. package/chunk/StepMoverPersonalInfo-DIkMi5zU.js +140 -0
  228. package/chunk/{StepMoverPersonalInfo-DoRQ7YwV.js.map → StepMoverPersonalInfo-DIkMi5zU.js.map} +1 -1
  229. package/chunk/{StepOverrideComponent-Bk4iLCjb.js → StepOverrideComponent-B9HVSPlq.js} +16 -16
  230. package/chunk/StepOverrideComponent-B9HVSPlq.js.map +1 -0
  231. package/chunk/{StepOverrideComponent-BScdpQsD.js → StepOverrideComponent-DOBT7C22.js} +16 -16
  232. package/chunk/StepOverrideComponent-DOBT7C22.js.map +1 -0
  233. package/chunk/{StepSMSLoop-Qhui36Ad.js → StepSMSLoop-BM7UE2tP.js} +20 -20
  234. package/chunk/{StepSMSLoop-CKgyKNf3.js.map → StepSMSLoop-BM7UE2tP.js.map} +1 -1
  235. package/chunk/{StepSMSLoop-CKgyKNf3.js → StepSMSLoop-Wr-MrFaf.js} +19 -19
  236. package/chunk/{StepSMSLoop-Qhui36Ad.js.map → StepSMSLoop-Wr-MrFaf.js.map} +1 -1
  237. package/chunk/StepSSO-BGHCbduX.js +4 -4
  238. package/chunk/StepSSO-ZHByQpHa.js +4 -4
  239. package/chunk/{StepSocialSecurityNumber-B73JU0Vm.js → StepSocialSecurityNumber-DepVz3V7.js} +26 -26
  240. package/chunk/{StepSocialSecurityNumber-B73JU0Vm.js.map → StepSocialSecurityNumber-DepVz3V7.js.map} +1 -1
  241. package/chunk/{StepSocialSecurityNumber-CxzmRJyj.js → StepSocialSecurityNumber-LcWg-zo5.js} +26 -26
  242. package/chunk/{StepSocialSecurityNumber-CxzmRJyj.js.map → StepSocialSecurityNumber-LcWg-zo5.js.map} +1 -1
  243. package/chunk/{StepStudentPersonalInfo-qiawIhbf.js → StepStudentPersonalInfo-CxPq9ICS.js} +47 -47
  244. package/chunk/{StepStudentPersonalInfo-DSlm69iu.js.map → StepStudentPersonalInfo-CxPq9ICS.js.map} +1 -1
  245. package/chunk/{StepStudentPersonalInfo-DSlm69iu.js → StepStudentPersonalInfo-DQMWaRSa.js} +77 -77
  246. package/chunk/{StepStudentPersonalInfo-qiawIhbf.js.map → StepStudentPersonalInfo-DQMWaRSa.js.map} +1 -1
  247. package/chunk/{StepSuccess-CY6HRbL0.js → StepSuccess-C3a0CPsE.js} +30 -30
  248. package/chunk/{StepSuccess-BFHXLjzL.js.map → StepSuccess-C3a0CPsE.js.map} +1 -1
  249. package/chunk/{StepSuccess-BFHXLjzL.js → StepSuccess-CvK7t1zN.js} +29 -29
  250. package/chunk/{StepSuccess-CY6HRbL0.js.map → StepSuccess-CvK7t1zN.js.map} +1 -1
  251. package/chunk/StepTeacherPersonalInfo-DhOL3_0H.js +154 -0
  252. package/chunk/{StepTeacherPersonalInfo-BzO0_kSV.js.map → StepTeacherPersonalInfo-DhOL3_0H.js.map} +1 -1
  253. package/chunk/StepTeacherPersonalInfo-_Wwkq-dn.js +150 -0
  254. package/chunk/{StepTeacherPersonalInfo-D5JC_By3.js.map → StepTeacherPersonalInfo-_Wwkq-dn.js.map} +1 -1
  255. package/chunk/StepThirdPartyLoop-BrKuZcYb.js +4 -4
  256. package/chunk/StepThirdPartyLoop-CbFTIlwP.js +4 -4
  257. package/chunk/{TeacherSchoolComponent-DUAkXH8Y.js → TeacherSchoolComponent-3HVz97q_.js} +9 -9
  258. package/chunk/{TeacherSchoolComponent-DSr16b-J.js.map → TeacherSchoolComponent-3HVz97q_.js.map} +1 -1
  259. package/chunk/{TeacherSchoolComponent-DSr16b-J.js → TeacherSchoolComponent-BwLUGmNi.js} +9 -9
  260. package/chunk/{TeacherSchoolComponent-DUAkXH8Y.js.map → TeacherSchoolComponent-BwLUGmNi.js.map} +1 -1
  261. package/chunk/{TestingRouteOverrides-Bt8QuyMY.js → TestingRouteOverrides-CAGESMw9.js} +26 -26
  262. package/chunk/{TestingRouteOverrides-BeBP6XXB.js.map → TestingRouteOverrides-CAGESMw9.js.map} +1 -1
  263. package/chunk/TestingRouteOverrides-CrhfSmLr.js +77 -0
  264. package/chunk/{TestingRouteOverrides-Bt8QuyMY.js.map → TestingRouteOverrides-CrhfSmLr.js.map} +1 -1
  265. package/chunk/ThreatMetrix-D_TbL50B.js +4 -4
  266. package/chunk/{VerificationApiClient-xKQFqber.js → VerificationApiClient-BcE3SjuJ.js} +377 -414
  267. package/chunk/{VerificationApiClient-CNCGYJN0.js.map → VerificationApiClient-BcE3SjuJ.js.map} +1 -1
  268. package/chunk/{VerificationApiClient-CNCGYJN0.js → VerificationApiClient-fJ7P4ejD.js} +424 -421
  269. package/chunk/{VerificationApiClient-xKQFqber.js.map → VerificationApiClient-fJ7P4ejD.js.map} +1 -1
  270. package/chunk/ar-Dh-2G5c3.js +4 -4
  271. package/chunk/bg-BbAhdJRh.js +4 -4
  272. package/chunk/bn-IN-Cx3Q5Utp.js +4 -4
  273. package/chunk/{countryUtils-QLzXPJsg.js → countryUtils-AR9k3KRg.js} +5 -5
  274. package/chunk/{countryUtils-Bg9KdIbF.js.map → countryUtils-AR9k3KRg.js.map} +1 -1
  275. package/chunk/countryUtils-DWqId-zY.js +12 -0
  276. package/chunk/{countryUtils-QLzXPJsg.js.map → countryUtils-DWqId-zY.js.map} +1 -1
  277. package/chunk/cs-CYGsmvju.js +4 -4
  278. package/chunk/da-COZWvvUD.js +4 -4
  279. package/chunk/de-BHclNQGr.js +4 -4
  280. package/chunk/{downshift.esm-lpoogWsV.js → downshift.esm-BKI3sFd7.js} +7 -7
  281. package/chunk/{downshift.esm-lpoogWsV.js.map → downshift.esm-BKI3sFd7.js.map} +1 -1
  282. package/chunk/{downshift.esm-BLpaOzFc.js → downshift.esm-DryiNDJI.js} +7 -7
  283. package/chunk/{downshift.esm-BLpaOzFc.js.map → downshift.esm-DryiNDJI.js.map} +1 -1
  284. package/chunk/el-Bv_XQ0FX.js +4 -4
  285. package/chunk/{empties-DctbDY5s.js → empties-B6naRhes.js} +64 -73
  286. package/chunk/empties-B6naRhes.js.map +1 -0
  287. package/chunk/{empties-COfIPxJ5.js → empties-Crmkxudi.js} +64 -73
  288. package/chunk/empties-Crmkxudi.js.map +1 -0
  289. package/chunk/en-GB-CkENrh2I.js +4 -4
  290. package/chunk/es-BRKAFTKN.js +4 -4
  291. package/chunk/es-ES-BWfAbWbQ.js +4 -4
  292. package/chunk/et-CxMgVbW2.js +4 -4
  293. package/chunk/eventEmitter-CSG6jR7V.js +4 -4
  294. package/chunk/fa-BEC3aNBF.js +4 -4
  295. package/chunk/fi-BaP3FR15.js +4 -4
  296. package/chunk/fr-CA-CS4SuM-m.js +4 -4
  297. package/chunk/fr-DSU2B7p2.js +4 -4
  298. package/chunk/ga-DZEr9X_A.js +4 -4
  299. package/chunk/hi-IN-DvBVpWNQ.js +4 -4
  300. package/chunk/{hooks-DLtMDttz.js → hooks-C15H5pD-.js} +481 -481
  301. package/chunk/hooks-C15H5pD-.js.map +1 -0
  302. package/chunk/{hooks-PN48cX8E.js → hooks-ChQrxN58.js} +480 -480
  303. package/chunk/hooks-ChQrxN58.js.map +1 -0
  304. package/chunk/hr-CL1lHDbu.js +4 -4
  305. package/chunk/hu-Cf5Uq9R_.js +4 -4
  306. package/chunk/id-ay9yilKx.js +4 -4
  307. package/chunk/{intl-TN1Dianl.js → intl-e5WHiYfA.js} +8 -7
  308. package/chunk/intl-e5WHiYfA.js.map +1 -0
  309. package/chunk/is-tpzRyIZi.js +4 -4
  310. package/chunk/it-C3-BupR4.js +4 -4
  311. package/chunk/iw-CBna3XPT.js +4 -4
  312. package/chunk/ja-DvXOkZRn.js +4 -4
  313. package/chunk/{jsx-runtime-lVLuHIkM.js → jsx-runtime-Ini3eO9_.js} +18 -18
  314. package/chunk/{jsx-runtime-QRCZ6ZTK.js.map → jsx-runtime-Ini3eO9_.js.map} +1 -1
  315. package/chunk/{jsx-runtime-QRCZ6ZTK.js → jsx-runtime-LqzCS-0D.js} +18 -18
  316. package/chunk/{jsx-runtime-lVLuHIkM.js.map → jsx-runtime-LqzCS-0D.js.map} +1 -1
  317. package/chunk/kk-DGXgY6Uw.js +4 -4
  318. package/chunk/ko-BlUGwGxN.js +4 -4
  319. package/chunk/lo-DT6wxwS1.js +4 -4
  320. package/chunk/lt-CT5-H4ci.js +4 -4
  321. package/chunk/lv-CBMD1XRp.js +4 -4
  322. package/chunk/{mocks-BN2OnOjp.js → mocks-DGc1byho.js} +10 -9
  323. package/chunk/{mocks-l2e0aaeT.js.map → mocks-DGc1byho.js.map} +1 -1
  324. package/chunk/{mocks-l2e0aaeT.js → mocks-RU9BGNOn.js} +9 -8
  325. package/chunk/{mocks-BN2OnOjp.js.map → mocks-RU9BGNOn.js.map} +1 -1
  326. package/chunk/ms-DuxNeOgk.js +4 -4
  327. package/chunk/nl-BE-D028qM7-.js +4 -4
  328. package/chunk/nl-DEuaat_s.js +4 -4
  329. package/chunk/no-CjeRjD1D.js +4 -4
  330. package/chunk/{options-BK6Zk2Oe.js → options-pBCAJBwS.js} +8 -7
  331. package/chunk/options-pBCAJBwS.js.map +1 -0
  332. package/chunk/pl-X0qJw7IS.js +4 -4
  333. package/chunk/{programThemeGetters-4Wf-YSPx.js → programThemeGetters-C9Sw0RZq.js} +45 -45
  334. package/chunk/{programThemeGetters-4Wf-YSPx.js.map → programThemeGetters-C9Sw0RZq.js.map} +1 -1
  335. package/chunk/programThemeGetters-uLsgGat1.js +153 -0
  336. package/chunk/{programThemeGetters-DECHMs91.js.map → programThemeGetters-uLsgGat1.js.map} +1 -1
  337. package/chunk/pt-BR-C6XmLn3o.js +4 -4
  338. package/chunk/pt-o7v4iOVx.js +4 -4
  339. package/chunk/{refs-B8CaE8yL.js → refs-CGvEbCaw.js} +5 -5
  340. package/chunk/{refs-6KTRrw-F.js.map → refs-CGvEbCaw.js.map} +1 -1
  341. package/chunk/{refs-6KTRrw-F.js → refs-CI3K5ndt.js} +5 -5
  342. package/chunk/{refs-B8CaE8yL.js.map → refs-CI3K5ndt.js.map} +1 -1
  343. package/chunk/ro-C74ZR3HS.js +4 -4
  344. package/chunk/ru-BA9P3RVu.js +4 -4
  345. package/chunk/sk-DmyizV49.js +4 -4
  346. package/chunk/sl-Cxm3YoWE.js +4 -4
  347. package/chunk/sr-gOtgEOlP.js +4 -4
  348. package/chunk/stepComponentHelpers-BdqtwfRd.js +133 -0
  349. package/chunk/stepComponentHelpers-BdqtwfRd.js.map +1 -0
  350. package/chunk/stepComponentHelpers-DIHMDrmF.js +129 -0
  351. package/chunk/stepComponentHelpers-DIHMDrmF.js.map +1 -0
  352. package/chunk/strings-DWLVdUcm.js +4 -4
  353. package/chunk/sv-DnCUWo1-.js +4 -4
  354. package/chunk/sw-BY7XXvUU.js +4 -4
  355. package/chunk/ta-CVL0b6Hh.js +4 -4
  356. package/chunk/th-CyU0RW3x.js +4 -4
  357. package/chunk/tl-BfgQ0irB.js +4 -4
  358. package/chunk/tr-BPg_L4bY.js +4 -4
  359. package/chunk/uk-CNaioa7V.js +4 -4
  360. package/chunk/ur-Ht1Mcpm0.js +4 -4
  361. package/chunk/useCollectFieldsEndpoint-BsX_IHLN.js +62 -0
  362. package/chunk/useCollectFieldsEndpoint-BsX_IHLN.js.map +1 -0
  363. package/chunk/useCollectFieldsEndpoint-D7OQBDpX.js +66 -0
  364. package/chunk/useCollectFieldsEndpoint-D7OQBDpX.js.map +1 -0
  365. package/chunk/{useMetrics-CiB8jnkE.js → useMetrics-BrHWTzbP.js} +19 -19
  366. package/chunk/{useMetrics-iqbs0R1u.js.map → useMetrics-BrHWTzbP.js.map} +1 -1
  367. package/chunk/{useMetrics-iqbs0R1u.js → useMetrics-O5xTFm6y.js} +19 -19
  368. package/chunk/{useMetrics-CiB8jnkE.js.map → useMetrics-O5xTFm6y.js.map} +1 -1
  369. package/chunk/vi-sI1BYLXG.js +4 -4
  370. package/chunk/zh-DNG4VB8r.js +4 -4
  371. package/chunk/zh-HK-5Y3ROXEm.js +4 -4
  372. package/chunk/zu-DNMG8Idu.js +4 -4
  373. package/package.json +1 -1
  374. package/sheerid-install.css +4 -4
  375. package/sheerid-install.js +5 -5
  376. package/sheerid-install.js.map +1 -1
  377. package/sheerid.css +4 -4
  378. package/sheerid.js +284 -280
  379. package/sheerid.js.map +1 -1
  380. package/chunk/ApiUrls-CHE6ck1K.js.map +0 -1
  381. package/chunk/ApiUrls-bBmJ3tKE.js +0 -40
  382. package/chunk/ApiUrls-bBmJ3tKE.js.map +0 -1
  383. package/chunk/CaptchaComponent-CaHSH2GC.js.map +0 -1
  384. package/chunk/CaptchaComponent-DD6kFSw9.js.map +0 -1
  385. package/chunk/CountryComponentWrapper-CEbjr-D-.js +0 -78
  386. package/chunk/CountryComponentWrapper-CEbjr-D-.js.map +0 -1
  387. package/chunk/CountryComponentWrapper-Df9x54iO.js +0 -74
  388. package/chunk/CountryComponentWrapper-Df9x54iO.js.map +0 -1
  389. package/chunk/FormFieldLayout-BPBIL09f.js.map +0 -1
  390. package/chunk/FormFieldLayout-CuxYu2-h.js.map +0 -1
  391. package/chunk/FormFooterComponent-B_Wh4HXO.js.map +0 -1
  392. package/chunk/FormSelectChoice-cr9QsYX9.js.map +0 -1
  393. package/chunk/FormSelectChoice-qC0WYy1y.js.map +0 -1
  394. package/chunk/PersonalInfoStepSubmitButton-C7QmpcVd.js.map +0 -1
  395. package/chunk/PersonalInfoStepSubmitButton-D55ut5Yp.js.map +0 -1
  396. package/chunk/StatusComponent-AEKNerJR.js.map +0 -1
  397. package/chunk/StatusComponent-DFtcHMpS.js.map +0 -1
  398. package/chunk/StepActiveMilitaryPersonalInfoComponent-AJL4fROB.js +0 -179
  399. package/chunk/StepActiveMilitaryPersonalInfoComponent-AJL4fROB.js.map +0 -1
  400. package/chunk/StepActiveMilitaryPersonalInfoComponent-Blc8C61_.js +0 -183
  401. package/chunk/StepActiveMilitaryPersonalInfoComponent-Blc8C61_.js.map +0 -1
  402. package/chunk/StepAgePersonalInfo-BHWaDlVH.js +0 -170
  403. package/chunk/StepCollectMilitaryStatusComponent-CYQ-3N3X.js +0 -13
  404. package/chunk/StepCollectMilitaryStatusComponent-DxU3lmaC.js +0 -9
  405. package/chunk/StepCollectPersonalInfo-CdPFtWnn.js +0 -358
  406. package/chunk/StepCollectPersonalInfo-CdPFtWnn.js.map +0 -1
  407. package/chunk/StepCollectPersonalInfo-CdkTtRFu.js +0 -362
  408. package/chunk/StepCollectPersonalInfo-CdkTtRFu.js.map +0 -1
  409. package/chunk/StepFirstResponderPersonalInfo-C9AchvP4.js +0 -172
  410. package/chunk/StepFirstResponderPersonalInfo-C9AchvP4.js.map +0 -1
  411. package/chunk/StepFirstResponderPersonalInfo-CR6tqqbj.js +0 -176
  412. package/chunk/StepFirstResponderPersonalInfo-CR6tqqbj.js.map +0 -1
  413. package/chunk/StepIDCheckLoop-C0g-rLtR.js +0 -24
  414. package/chunk/StepInactiveMilitaryPersonalInfoComponent-BA-Z6yOh.js +0 -241
  415. package/chunk/StepInactiveMilitaryPersonalInfoComponent-BA-Z6yOh.js.map +0 -1
  416. package/chunk/StepInactiveMilitaryPersonalInfoComponent-CEAoUlPI.js +0 -237
  417. package/chunk/StepInactiveMilitaryPersonalInfoComponent-CEAoUlPI.js.map +0 -1
  418. package/chunk/StepLicensedProfessionalPersonalInfo-BDOe8tXK.js +0 -190
  419. package/chunk/StepLicensedProfessionalPersonalInfo-BDOe8tXK.js.map +0 -1
  420. package/chunk/StepLicensedProfessionalPersonalInfo-CvHsH0eA.js +0 -186
  421. package/chunk/StepLicensedProfessionalPersonalInfo-CvHsH0eA.js.map +0 -1
  422. package/chunk/StepLowIncomePersonalInfo-Dy3cf7Vq.js +0 -223
  423. package/chunk/StepLowIncomePersonalInfo-Dy3cf7Vq.js.map +0 -1
  424. package/chunk/StepLowIncomePersonalInfo-Xn7Si16w.js +0 -227
  425. package/chunk/StepLowIncomePersonalInfo-Xn7Si16w.js.map +0 -1
  426. package/chunk/StepMedicalProfessionalPersonalInfo-C4RpaXrw.js +0 -207
  427. package/chunk/StepMedicalProfessionalPersonalInfo-C4RpaXrw.js.map +0 -1
  428. package/chunk/StepMedicalProfessionalPersonalInfo-Cdjst53o.js +0 -203
  429. package/chunk/StepMedicalProfessionalPersonalInfo-Cdjst53o.js.map +0 -1
  430. package/chunk/StepMemberPersonalInfo-JVdhDDsO.js +0 -157
  431. package/chunk/StepMemberPersonalInfo-oxD7cpuH.js +0 -153
  432. package/chunk/StepMoverPersonalInfo-DQ6omvFs.js +0 -140
  433. package/chunk/StepMoverPersonalInfo-DoRQ7YwV.js +0 -144
  434. package/chunk/StepOverrideComponent-BScdpQsD.js.map +0 -1
  435. package/chunk/StepOverrideComponent-Bk4iLCjb.js.map +0 -1
  436. package/chunk/StepTeacherPersonalInfo-BzO0_kSV.js +0 -150
  437. package/chunk/StepTeacherPersonalInfo-D5JC_By3.js +0 -154
  438. package/chunk/TestingRouteOverrides-BeBP6XXB.js +0 -77
  439. package/chunk/VerificationApiUtils-EYLI_y22.js +0 -25
  440. package/chunk/VerificationApiUtils-EYLI_y22.js.map +0 -1
  441. package/chunk/VerificationApiUtils-PcnM2IQD.js +0 -21
  442. package/chunk/VerificationApiUtils-PcnM2IQD.js.map +0 -1
  443. package/chunk/countryUtils-Bg9KdIbF.js +0 -12
  444. package/chunk/empties-COfIPxJ5.js.map +0 -1
  445. package/chunk/empties-DctbDY5s.js.map +0 -1
  446. package/chunk/hooks-DLtMDttz.js.map +0 -1
  447. package/chunk/hooks-PN48cX8E.js.map +0 -1
  448. package/chunk/intl-TN1Dianl.js.map +0 -1
  449. package/chunk/militaryStepHelpers-CF0fNRKQ.js +0 -26
  450. package/chunk/militaryStepHelpers-CF0fNRKQ.js.map +0 -1
  451. package/chunk/militaryStepHelpers-W31scSUE.js +0 -22
  452. package/chunk/militaryStepHelpers-W31scSUE.js.map +0 -1
  453. package/chunk/options-BK6Zk2Oe.js.map +0 -1
  454. package/chunk/programThemeGetters-DECHMs91.js +0 -153
  455. package/chunk/stepComponentHelpers-Darhp1Nn.js +0 -170
  456. package/chunk/stepComponentHelpers-Darhp1Nn.js.map +0 -1
  457. package/chunk/stepComponentHelpers-DeWac6nj.js +0 -174
  458. package/chunk/stepComponentHelpers-DeWac6nj.js.map +0 -1
  459. package/chunk/useCollectFieldsEndpoint-BToJZbHd.js +0 -37
  460. package/chunk/useCollectFieldsEndpoint-BToJZbHd.js.map +0 -1
  461. package/chunk/useCollectFieldsEndpoint-CqUxwQWc.js +0 -41
  462. package/chunk/useCollectFieldsEndpoint-CqUxwQWc.js.map +0 -1
@@ -0,0 +1,66 @@
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.277.0
8
+ * BUILD_TIMESTAMP: 1787693419738
9
+ * BUILD_DATE: Tue Aug 25 2026 21:30:19 GMT+0000 (Coordinated Universal Time)
10
+ * BUILD_COMMIT: 6bf9486531bf722019a9060202aca84ce001472b
11
+ */
12
+ import { Bt as e, Nt as t, Rt as n, Wt as r } from "./intl-e5WHiYfA.js";
13
+ import { i } from "./ApiUrls-BEuqNxHS.js";
14
+ import { c as a } from "./jsx-runtime-LqzCS-0D.js";
15
+ import { o } from "./FormFooterComponent-CaOt9TQw.js";
16
+ import { i as s, u as c } from "./VerificationApiClient-BcE3SjuJ.js";
17
+ //#region src/lib/ServerApi/VerificationApiUtils.ts
18
+ var l = /* @__PURE__ */ r(a(), 1);
19
+ async function u(e, n, r) {
20
+ if (t[n]) {
21
+ let t = s[n](r), a = await c(i(e, n), t);
22
+ if (a.currentStep === "error") throw Error(`Failed to determine fields to collect: ${a}`);
23
+ return a;
24
+ }
25
+ throw Error(`Unknown step ${n}`);
26
+ }
27
+ //#endregion
28
+ //#region src/lib/ServerApi/useCollectFieldsEndpoint.ts
29
+ var d = (e, t) => e.length === t.length && e.every((e, n) => e.key === t[n].key), f = ({ verificationId: t, currentStep: r, viewModel: i, defaultRequiredFields: a = [] }) => {
30
+ let s = o(), c = i.statuses, f = i.status, p = Array.isArray(c) && c.length > 0 ? c[0] : f, [m, h] = l.useState(a), [g, _] = l.useState([]), [v, y] = l.useState(void 0);
31
+ return l.useEffect(() => {
32
+ let a = new AbortController();
33
+ return (async () => {
34
+ try {
35
+ let e = await u(t, r, i), o = n(() => e.fieldsToCollect.required, []), c = n(() => e.fieldsToCollect.optional, []);
36
+ if (!a.signal.aborted) {
37
+ h((e) => d(e, o) ? e : o), _((e) => d(e, c) ? e : c), y((t) => {
38
+ let n = e.availableStatuses;
39
+ return t && n && t.length === n.length && t.every((e, t) => e === n[t]) ? t : n;
40
+ }), s({
41
+ type: "COLLECT_FIELDS",
42
+ requiredFields: o,
43
+ optionalFields: c
44
+ });
45
+ let t = e.availableStatuses;
46
+ p && t && t.length > 0 && !t.includes(p) && s({ type: "STATUS_INVALIDATED" });
47
+ }
48
+ } catch (t) {
49
+ e.error(`Failed to determine fields to collect: ${t}`, r);
50
+ }
51
+ })(), () => {
52
+ a.abort();
53
+ };
54
+ }, [
55
+ t,
56
+ r,
57
+ i.countryChoice?.value,
58
+ p
59
+ ]), {
60
+ isFieldRequired: (e) => m.some((t) => t.key === e),
61
+ isFieldOptional: (e) => g.some((t) => t.key === e),
62
+ availableStatuses: v
63
+ };
64
+ };
65
+ //#endregion
66
+ export { f as t };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCollectFieldsEndpoint-D7OQBDpX.js","names":[],"sources":["../../src/lib/ServerApi/VerificationApiUtils.ts","../../src/lib/ServerApi/useCollectFieldsEndpoint.ts"],"sourcesContent":["import { VerificationStepsEnum } from \"../types/runtimeTypes\";\nimport {\n type CollectFieldsResponse,\n type DatabaseId,\n type VerificationStep,\n type ViewModel,\n} from \"../types/types\";\n\nimport { getFieldsToCollectUrl } from \"./ApiUrls\";\nimport * as Network from \"./Network\";\nimport { stepToRequest } from \"./StepToRequest\";\n\n/**\n * EXPERIMENTAL - Check which fields are required and optional for a given view model\n */\nexport async function getFieldsToCollect(\n verificationId: DatabaseId,\n step: VerificationStep,\n viewModel: ViewModel,\n): Promise<CollectFieldsResponse> {\n if (VerificationStepsEnum[step]) {\n const requestBody = stepToRequest[step](viewModel);\n const response = (await Network.PostJson(\n getFieldsToCollectUrl(verificationId, step),\n requestBody,\n )) as CollectFieldsResponse;\n if (response.currentStep === \"error\") {\n throw new Error(`Failed to determine fields to collect: ${response}`);\n }\n return response as CollectFieldsResponse;\n }\n throw new Error(`Unknown step ${step}`);\n}\n","import React from \"react\";\n\nimport { getSafe } from \"@jslib/shared/utils/getSafe\";\nimport { logger } from \"@jslib/shared/utils/logger\";\n\nimport {\n type AllStatuses,\n type CollectFieldsResponse,\n type FieldDescription,\n type VerificationStep,\n type ViewModel,\n type CollectFieldsAction,\n} from \"../types/types\";\nimport { useAppDispatch } from \"../state/contextHooks\";\n\nimport { getFieldsToCollect } from \"./VerificationApiUtils\";\n\nconst sameFieldList = (a: FieldDescription[], b: FieldDescription[]): boolean =>\n a.length === b.length && a.every((field, i) => field.key === b[i].key);\n\nexport const useCollectFieldsEndpoint = <VM extends ViewModel = ViewModel>({\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\n // The selected status drives both the re-fetch dependency and the\n // invalidation check below. Some flows store it as a singular `status`,\n // others as a `statuses` array, so normalize to whichever is present.\n const viewModelStatuses = (viewModel as { statuses?: AllStatuses[] }).statuses;\n const viewModelStatus = (viewModel as { status?: AllStatuses }).status;\n const selectedStatus =\n Array.isArray(viewModelStatuses) && viewModelStatuses.length > 0\n ? viewModelStatuses[0]\n : viewModelStatus;\n\n const [requiredFields, setRequiredFields] =\n React.useState<FieldDescription[]>(defaultRequiredFields);\n const [optionalFields, setOptionalFields] = React.useState<FieldDescription[]>([]);\n const [availableStatuses, setAvailableStatuses] = React.useState<AllStatuses[] | undefined>(\n undefined,\n );\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 if (!abortController.signal.aborted) {\n // Preserve reference identity when content hasn't changed to avoid\n // unnecessary re-renders in consuming components.\n setRequiredFields((prev) =>\n sameFieldList(prev, newRequiredFields) ? prev : newRequiredFields,\n );\n setOptionalFields((prev) =>\n sameFieldList(prev, newOptionalFields) ? prev : newOptionalFields,\n );\n setAvailableStatuses((prev) => {\n const next = collectFieldsResponse.availableStatuses;\n if (\n prev &&\n next &&\n prev.length === next.length &&\n prev.every((s, i) => s === next[i])\n ) {\n return prev;\n }\n return next;\n });\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 // If the user's currently-selected status is no longer in the\n // available list, clear it from the viewModel. Guarded by length>0\n // because empty availableStatuses is owned by the existing\n // fieldsToSkipValidation pathway in updateMilitaryViewModel et al.\n const nextStatuses = collectFieldsResponse.availableStatuses;\n if (\n selectedStatus &&\n nextStatuses &&\n nextStatuses.length > 0 &&\n !nextStatuses.includes(selectedStatus)\n ) {\n dispatch({ type: \"STATUS_INVALIDATED\" });\n }\n }\n } catch (error) {\n logger.error(`Failed to determine fields to collect: ${error}`, currentStep);\n }\n })();\n\n return () => {\n abortController.abort();\n };\n }, [verificationId, currentStep, viewModel.countryChoice?.value, selectedStatus]);\n\n return { isFieldRequired, isFieldOptional, availableStatuses };\n};\n"],"mappings":";;;;;;;AAeA,eAAA,EAAA,GAAA,GAAA,GAAA;;;;;;;AAiBA;;;ACfA,IAAM,KAAiB,GAAuB,MAC5C,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,GAAO,MAAM,EAAM,QAAQ,EAAE,GAAG,GAAG,GAE1D,KAA8D,EACzE,mBACA,gBACA,cACA,2BAAwB,CAAC,QAMrB;CACJ,IAAM,IAAW,EAAe,GAK1B,IAAqB,EAA2C,UAChE,IAAmB,EAAuC,QAC1D,IACJ,MAAM,QAAQ,CAAiB,KAAK,EAAkB,SAAS,IAC3D,EAAkB,KAClB,GAEA,CAAC,GAAgB,KAAA,EACf,SAA6B,CAAqB,GACpD,CAAC,GAAgB,KAAA,EAA2B,SAA6B,CAAC,CAAC,GAC3E,CAAC,GAAmB,KAAA,EAA8B,SACtD,KAAA,CACF;CAuEA,OAlEA,EAAM,gBAAgB;EACpB,IAAM,IAAkB,IAAI,gBAAgB;EA4D5C,QA1DC,YAAY;GACX,IAAI;IACF,IAAM,IAA+C,MAAM,EACzD,GACA,GACA,CACF,GACM,IAAoB,QAAc,EAAsB,gBAAgB,UAAU,CAAC,CAAC,GACpF,IAAoB,QAAc,EAAsB,gBAAgB,UAAU,CAAC,CAAC;IAC1F,IAAI,CAAC,EAAgB,OAAO,SAAS;KA4BnC,AAzBA,GAAmB,MACjB,EAAc,GAAM,CAAiB,IAAI,IAAO,CAClD,GACA,GAAmB,MACjB,EAAc,GAAM,CAAiB,IAAI,IAAO,CAClD,GACA,GAAsB,MAAS;MAC7B,IAAM,IAAO,EAAsB;MASnC,OAPE,KACA,KACA,EAAK,WAAW,EAAK,UACrB,EAAK,OAAO,GAAG,MAAM,MAAM,EAAK,EAAE,IAE3B,IAEF;KACT,CAAC,GAQD,EAAS;MAJP,MAAM;MACN,gBAAgB;MAChB,gBAAgB;KAET,CAAmB;KAM5B,IAAM,IAAe,EAAsB;KAC3C,AACE,KACA,KACA,EAAa,SAAS,KACtB,CAAC,EAAa,SAAS,CAAc,KAErC,EAAS,EAAE,MAAM,qBAAqB,CAAC;IAE3C;GACF,SAAS,GAAO;IACd,EAAO,MAAM,0CAA0C,KAAS,CAAW;GAC7E;EACF,GAAG,SAEU;GACX,EAAgB,MAAM;EACxB;CACF,GAAG;EAAC;EAAgB;EAAa,EAAU,eAAe;EAAO;CAAc,CAAC,GAEzE;EAAE,kBArEgB,MAAkB,EAAe,MAAM,MAAU,EAAM,QAAQ,CAAG;EAqEjE,kBApED,MAAkB,EAAe,MAAM,MAAU,EAAM,QAAQ,CAAG;EAoEhD;CAAkB;AAC/D"}
@@ -4,16 +4,16 @@
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.275.0
8
- * BUILD_TIMESTAMP: 1787352276442
9
- * BUILD_DATE: Fri Aug 21 2026 22:44:36 GMT+0000 (Coordinated Universal Time)
10
- * BUILD_COMMIT: 30913cd7a2f4f6324e4692d7ed7cde8020560774
7
+ * VERSION: 2.277.0
8
+ * BUILD_TIMESTAMP: 1787693419738
9
+ * BUILD_DATE: Tue Aug 25 2026 21:30:19 GMT+0000 (Coordinated Universal Time)
10
+ * BUILD_COMMIT: 6bf9486531bf722019a9060202aca84ce001472b
11
11
  */
12
- import { Jt as e, Wt as t, s as n } from "./intl-TN1Dianl.js";
13
- import { c as r } from "./jsx-runtime-QRCZ6ZTK.js";
14
- import { a as i } from "./hooks-DLtMDttz.js";
12
+ import { Bt as e, Wt as t, s as n } from "./intl-e5WHiYfA.js";
13
+ import { c as r } from "./jsx-runtime-LqzCS-0D.js";
14
+ import { a as i } from "./hooks-C15H5pD-.js";
15
15
  //#region src/components/FeatureFlags/useMetrics.tsx
16
- var a = /* @__PURE__ */ e(r(), 1), o = "collect-info-submission-time", s = "collect-info-submit", c = "doc-upload-submit", l = "doc-upload-submission-time", u = () => Math.random().toString(36).substr(2, 9), d = {
16
+ var a = /* @__PURE__ */ t(r(), 1), o = "collect-info-submission-time", s = "collect-info-submit", c = "doc-upload-submit", l = "doc-upload-submission-time", u = () => Math.random().toString(36).substr(2, 9), d = {
17
17
  OrgSearchNumReworks: "org-search-num-reworks",
18
18
  OrgSearchQueryLength: "org-search-query-length",
19
19
  OrgSearchResultRank: "org-search-result-rank",
@@ -24,7 +24,7 @@ var a = /* @__PURE__ */ e(r(), 1), o = "collect-info-submission-time", s = "coll
24
24
  AsrTipsShown: "asr-tips-shown",
25
25
  AsrSearchAfterTips: "asr-search-after-tips",
26
26
  AsrClickThrough: "asr-click-through"
27
- }, f = ({ segment: e, programId: r }) => {
27
+ }, f = ({ segment: t, programId: r }) => {
28
28
  let [o] = a.useState(u()), s = i();
29
29
  return a.useEffect(() => {
30
30
  try {
@@ -33,21 +33,21 @@ var a = /* @__PURE__ */ e(r(), 1), o = "collect-info-submission-time", s = "coll
33
33
  }, []), {
34
34
  userDidConvert: (r, i) => {
35
35
  if (n()._launchDarklyUserTargeting) try {
36
- let t = performance.measure("timeOnForm", o);
37
- s.track(r, { segment: e }), s.track(i, { segment: e }, t.duration);
38
- } catch (e) {
39
- t.error("Unable to submit metrics", e);
36
+ let e = performance.measure("timeOnForm", o);
37
+ s.track(r, { segment: t }), s.track(i, { segment: t }, e.duration);
38
+ } catch (t) {
39
+ e.error("Unable to submit metrics", t);
40
40
  }
41
41
  },
42
- recordNumericMetric: (t, i) => {
43
- n()._launchDarklyUserTargeting && s.track(t, {
44
- segment: e,
42
+ recordNumericMetric: (e, i) => {
43
+ n()._launchDarklyUserTargeting && s.track(e, {
44
+ segment: t,
45
45
  programId: r
46
46
  }, i);
47
47
  },
48
- trackEvent: (t) => {
49
- n()._launchDarklyUserTargeting && s.track(t, {
50
- segment: e,
48
+ trackEvent: (e) => {
49
+ n()._launchDarklyUserTargeting && s.track(e, {
50
+ segment: t,
51
51
  programId: r
52
52
  });
53
53
  },
@@ -1 +1 @@
1
- {"version":3,"file":"useMetrics-iqbs0R1u.js","names":[],"sources":["../../src/components/FeatureFlags/useMetrics.tsx"],"sourcesContent":["import React from \"react\";\nimport { useLDClient } from \"launchdarkly-react-client-sdk\";\n\nimport { logger } from \"@jslib/shared/utils/logger\";\n\nimport { getOptions } from \"../../options/options\";\n\nexport const COLLECT_INFO_SUBMISSION_TIME = \"collect-info-submission-time\";\nexport const COLLECT_INFO_SUBMIT = \"collect-info-submit\";\nexport const DOC_UPLOAD_SUBMIT = \"doc-upload-submit\";\nexport const DOC_UPLOAD_SUBMISSION_TIME = \"doc-upload-submission-time\";\n\nconst createUniqueId = () => Math.random().toString(36).substr(2, 9);\n\nexport const MetricIds = {\n OrgSearchNumReworks: \"org-search-num-reworks\",\n OrgSearchQueryLength: \"org-search-query-length\",\n OrgSearchResultRank: \"org-search-result-rank\",\n OrgSearchTimeUntilSelection: \"org-search-time-until-selection\",\n OrgSearchOpenSortMenu: \"org-search-open-sort-menu\",\n OrgSearchSortDistance: \"org-search-sort-distance\",\n OrgSearchSortRelevance: \"org-search-sort-relevance\",\n AsrTipsShown: \"asr-tips-shown\",\n AsrSearchAfterTips: \"asr-search-after-tips\",\n AsrClickThrough: \"asr-click-through\",\n} as const;\n\ntype MetricId = (typeof MetricIds)[keyof typeof MetricIds];\n\nexport const useMetrics = ({ segment, programId }: { segment?: string; programId?: string }) => {\n const [randomId] = React.useState(createUniqueId());\n const ldClient = useLDClient();\n\n React.useEffect(() => {\n // set mark when this component first renders\n try {\n performance.mark(randomId);\n } catch {\n // do nothing if performance.mark errors (this happens in tests because jsdom)\n }\n }, []);\n\n return {\n // @TODO move GA and NR events into this?\n userDidConvert: (metricIdConverted: string, metricIdSubmitTime: string): void => {\n if (getOptions()._launchDarklyUserTargeting) {\n try {\n const timeOnForm = performance.measure(\"timeOnForm\", randomId);\n ldClient.track(metricIdConverted, {\n segment,\n });\n\n ldClient.track(\n metricIdSubmitTime,\n {\n segment,\n },\n timeOnForm.duration,\n );\n } catch (e) {\n logger.error(\"Unable to submit metrics\", e);\n }\n }\n },\n recordNumericMetric: (metricId: MetricId, value: number): void => {\n if (getOptions()._launchDarklyUserTargeting) {\n ldClient.track(\n metricId,\n {\n segment,\n programId,\n },\n value,\n );\n }\n },\n trackEvent: (metricId: MetricId): void => {\n if (getOptions()._launchDarklyUserTargeting) {\n ldClient.track(metricId, {\n segment,\n programId,\n });\n }\n },\n /**\n * @deprecated use userDidConvert instead\n */\n getTimeOnForm: (): PerformanceMeasure => {\n try {\n return performance.measure(\"timeOnForm\", randomId);\n } catch (e) {\n // do nothing if performance.mark errors (this happens in tests because jsdom)\n }\n\n return undefined;\n },\n };\n};\n"],"mappings":";;;;mCAOa,IAA+B,gCAC/B,IAAsB,uBACtB,IAAoB,qBACpB,IAA6B,8BAEpC,UAAuB,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,OAAO,GAAG,CAAC,GAEtD,IAAY;CACvB,qBAAqB;CACrB,sBAAsB;CACtB,qBAAqB;CACrB,6BAA6B;CAC7B,uBAAuB;CACvB,uBAAuB;CACvB,wBAAwB;CACxB,cAAc;CACd,oBAAoB;CACpB,iBAAiB;AACnB,GAIa,KAAc,EAAE,YAAS,mBAA0D;CAC9F,IAAM,CAAC,KAAA,EAAkB,SAAS,EAAe,CAAC,GAC5C,IAAW,EAAY;CAW7B,OATA,EAAM,gBAAgB;EAEpB,IAAI;GACF,YAAY,KAAK,CAAQ;EAC3B,QAAQ,CAER;CACF,GAAG,CAAC,CAAC,GAEE;EAEL,iBAAiB,GAA2B,MAAqC;GAC/E,IAAI,EAAW,EAAE,4BACf,IAAI;IACF,IAAM,IAAa,YAAY,QAAQ,cAAc,CAAQ;IAK7D,AAJA,EAAS,MAAM,GAAmB,EAChC,WACF,CAAC,GAED,EAAS,MACP,GACA,EACE,WACF,GACA,EAAW,QACb;GACF,SAAS,GAAG;IACV,EAAO,MAAM,4BAA4B,CAAC;GAC5C;EAEJ;EACA,sBAAsB,GAAoB,MAAwB;GAChE,AAAI,EAAW,EAAE,8BACf,EAAS,MACP,GACA;IACE;IACA;GACF,GACA,CACF;EAEJ;EACA,aAAa,MAA6B;GACxC,AAAI,EAAW,EAAE,8BACf,EAAS,MAAM,GAAU;IACvB;IACA;GACF,CAAC;EAEL;EAIA,qBAAyC;GACvC,IAAI;IACF,OAAO,YAAY,QAAQ,cAAc,CAAQ;GACnD,QAAY,CAEZ;EAGF;CACF;AACF"}
1
+ {"version":3,"file":"useMetrics-BrHWTzbP.js","names":[],"sources":["../../src/components/FeatureFlags/useMetrics.tsx"],"sourcesContent":["import React from \"react\";\nimport { useLDClient } from \"launchdarkly-react-client-sdk\";\n\nimport { logger } from \"@jslib/shared/utils/logger\";\n\nimport { getOptions } from \"../../options/options\";\n\nexport const COLLECT_INFO_SUBMISSION_TIME = \"collect-info-submission-time\";\nexport const COLLECT_INFO_SUBMIT = \"collect-info-submit\";\nexport const DOC_UPLOAD_SUBMIT = \"doc-upload-submit\";\nexport const DOC_UPLOAD_SUBMISSION_TIME = \"doc-upload-submission-time\";\n\nconst createUniqueId = () => Math.random().toString(36).substr(2, 9);\n\nexport const MetricIds = {\n OrgSearchNumReworks: \"org-search-num-reworks\",\n OrgSearchQueryLength: \"org-search-query-length\",\n OrgSearchResultRank: \"org-search-result-rank\",\n OrgSearchTimeUntilSelection: \"org-search-time-until-selection\",\n OrgSearchOpenSortMenu: \"org-search-open-sort-menu\",\n OrgSearchSortDistance: \"org-search-sort-distance\",\n OrgSearchSortRelevance: \"org-search-sort-relevance\",\n AsrTipsShown: \"asr-tips-shown\",\n AsrSearchAfterTips: \"asr-search-after-tips\",\n AsrClickThrough: \"asr-click-through\",\n} as const;\n\ntype MetricId = (typeof MetricIds)[keyof typeof MetricIds];\n\nexport const useMetrics = ({ segment, programId }: { segment?: string; programId?: string }) => {\n const [randomId] = React.useState(createUniqueId());\n const ldClient = useLDClient();\n\n React.useEffect(() => {\n // set mark when this component first renders\n try {\n performance.mark(randomId);\n } catch {\n // do nothing if performance.mark errors (this happens in tests because jsdom)\n }\n }, []);\n\n return {\n // @TODO move GA and NR events into this?\n userDidConvert: (metricIdConverted: string, metricIdSubmitTime: string): void => {\n if (getOptions()._launchDarklyUserTargeting) {\n try {\n const timeOnForm = performance.measure(\"timeOnForm\", randomId);\n ldClient.track(metricIdConverted, {\n segment,\n });\n\n ldClient.track(\n metricIdSubmitTime,\n {\n segment,\n },\n timeOnForm.duration,\n );\n } catch (e) {\n logger.error(\"Unable to submit metrics\", e);\n }\n }\n },\n recordNumericMetric: (metricId: MetricId, value: number): void => {\n if (getOptions()._launchDarklyUserTargeting) {\n ldClient.track(\n metricId,\n {\n segment,\n programId,\n },\n value,\n );\n }\n },\n trackEvent: (metricId: MetricId): void => {\n if (getOptions()._launchDarklyUserTargeting) {\n ldClient.track(metricId, {\n segment,\n programId,\n });\n }\n },\n /**\n * @deprecated use userDidConvert instead\n */\n getTimeOnForm: (): PerformanceMeasure => {\n try {\n return performance.measure(\"timeOnForm\", randomId);\n } catch (e) {\n // do nothing if performance.mark errors (this happens in tests because jsdom)\n }\n\n return undefined;\n },\n };\n};\n"],"mappings":";;;;mCAOa,IAA+B,gCAC/B,IAAsB,uBACtB,IAAoB,qBACpB,IAA6B,8BAEpC,UAAuB,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,OAAO,GAAG,CAAC,GAEtD,IAAY;CACvB,qBAAqB;CACrB,sBAAsB;CACtB,qBAAqB;CACrB,6BAA6B;CAC7B,uBAAuB;CACvB,uBAAuB;CACvB,wBAAwB;CACxB,cAAc;CACd,oBAAoB;CACpB,iBAAiB;AACnB,GAIa,KAAc,EAAE,YAAS,mBAA0D;CAC9F,IAAM,CAAC,KAAA,EAAkB,SAAS,EAAe,CAAC,GAC5C,IAAW,EAAY;CAW7B,OATA,EAAM,gBAAgB;EAEpB,IAAI;GACF,YAAY,KAAK,CAAQ;EAC3B,QAAQ,CAER;CACF,GAAG,CAAC,CAAC,GAEE;EAEL,iBAAiB,GAA2B,MAAqC;GAC/E,IAAI,EAAW,EAAE,4BACf,IAAI;IACF,IAAM,IAAa,YAAY,QAAQ,cAAc,CAAQ;IAK7D,AAJA,EAAS,MAAM,GAAmB,EAChC,WACF,CAAC,GAED,EAAS,MACP,GACA,EACE,WACF,GACA,EAAW,QACb;GACF,SAAS,GAAG;IACV,EAAO,MAAM,4BAA4B,CAAC;GAC5C;EAEJ;EACA,sBAAsB,GAAoB,MAAwB;GAChE,AAAI,EAAW,EAAE,8BACf,EAAS,MACP,GACA;IACE;IACA;GACF,GACA,CACF;EAEJ;EACA,aAAa,MAA6B;GACxC,AAAI,EAAW,EAAE,8BACf,EAAS,MAAM,GAAU;IACvB;IACA;GACF,CAAC;EAEL;EAIA,qBAAyC;GACvC,IAAI;IACF,OAAO,YAAY,QAAQ,cAAc,CAAQ;GACnD,QAAY,CAEZ;EAGF;CACF;AACF"}
@@ -1,15 +1,15 @@
1
1
 
2
2
  /**
3
- * VERSION: 2.275.0
4
- * BUILD_TIMESTAMP: 1787352272226
5
- * BUILD_DATE: Fri Aug 21 2026 22:44:32 GMT+0000 (Coordinated Universal Time)
6
- * BUILD_COMMIT: 30913cd7a2f4f6324e4692d7ed7cde8020560774
3
+ * VERSION: 2.277.0
4
+ * BUILD_TIMESTAMP: 1787693415496
5
+ * BUILD_DATE: Tue Aug 25 2026 21:30:15 GMT+0000 (Coordinated Universal Time)
6
+ * BUILD_COMMIT: 6bf9486531bf722019a9060202aca84ce001472b
7
7
  */
8
- import { Jt as e, Wt as t, n } from "./options-BK6Zk2Oe.js";
9
- import { c as r } from "./jsx-runtime-lVLuHIkM.js";
10
- import { a as i } from "./hooks-PN48cX8E.js";
8
+ import { Bt as e, Wt as t, n } from "./options-pBCAJBwS.js";
9
+ import { c as r } from "./jsx-runtime-Ini3eO9_.js";
10
+ import { a as i } from "./hooks-ChQrxN58.js";
11
11
  //#region src/components/FeatureFlags/useMetrics.tsx
12
- var a = /* @__PURE__ */ e(r(), 1), o = "collect-info-submission-time", s = "collect-info-submit", c = "doc-upload-submit", l = "doc-upload-submission-time", u = () => Math.random().toString(36).substr(2, 9), d = {
12
+ var a = /* @__PURE__ */ t(r(), 1), o = "collect-info-submission-time", s = "collect-info-submit", c = "doc-upload-submit", l = "doc-upload-submission-time", u = () => Math.random().toString(36).substr(2, 9), d = {
13
13
  OrgSearchNumReworks: "org-search-num-reworks",
14
14
  OrgSearchQueryLength: "org-search-query-length",
15
15
  OrgSearchResultRank: "org-search-result-rank",
@@ -20,7 +20,7 @@ var a = /* @__PURE__ */ e(r(), 1), o = "collect-info-submission-time", s = "coll
20
20
  AsrTipsShown: "asr-tips-shown",
21
21
  AsrSearchAfterTips: "asr-search-after-tips",
22
22
  AsrClickThrough: "asr-click-through"
23
- }, f = ({ segment: e, programId: r }) => {
23
+ }, f = ({ segment: t, programId: r }) => {
24
24
  let [o] = a.useState(u()), s = i();
25
25
  return a.useEffect(() => {
26
26
  try {
@@ -29,21 +29,21 @@ var a = /* @__PURE__ */ e(r(), 1), o = "collect-info-submission-time", s = "coll
29
29
  }, []), {
30
30
  userDidConvert: (r, i) => {
31
31
  if (n()._launchDarklyUserTargeting) try {
32
- let t = performance.measure("timeOnForm", o);
33
- s.track(r, { segment: e }), s.track(i, { segment: e }, t.duration);
34
- } catch (e) {
35
- t.error("Unable to submit metrics", e);
32
+ let e = performance.measure("timeOnForm", o);
33
+ s.track(r, { segment: t }), s.track(i, { segment: t }, e.duration);
34
+ } catch (t) {
35
+ e.error("Unable to submit metrics", t);
36
36
  }
37
37
  },
38
- recordNumericMetric: (t, i) => {
39
- n()._launchDarklyUserTargeting && s.track(t, {
40
- segment: e,
38
+ recordNumericMetric: (e, i) => {
39
+ n()._launchDarklyUserTargeting && s.track(e, {
40
+ segment: t,
41
41
  programId: r
42
42
  }, i);
43
43
  },
44
- trackEvent: (t) => {
45
- n()._launchDarklyUserTargeting && s.track(t, {
46
- segment: e,
44
+ trackEvent: (e) => {
45
+ n()._launchDarklyUserTargeting && s.track(e, {
46
+ segment: t,
47
47
  programId: r
48
48
  });
49
49
  },
@@ -1 +1 @@
1
- {"version":3,"file":"useMetrics-CiB8jnkE.js","names":[],"sources":["../../src/components/FeatureFlags/useMetrics.tsx"],"sourcesContent":["import React from \"react\";\nimport { useLDClient } from \"launchdarkly-react-client-sdk\";\n\nimport { logger } from \"@jslib/shared/utils/logger\";\n\nimport { getOptions } from \"../../options/options\";\n\nexport const COLLECT_INFO_SUBMISSION_TIME = \"collect-info-submission-time\";\nexport const COLLECT_INFO_SUBMIT = \"collect-info-submit\";\nexport const DOC_UPLOAD_SUBMIT = \"doc-upload-submit\";\nexport const DOC_UPLOAD_SUBMISSION_TIME = \"doc-upload-submission-time\";\n\nconst createUniqueId = () => Math.random().toString(36).substr(2, 9);\n\nexport const MetricIds = {\n OrgSearchNumReworks: \"org-search-num-reworks\",\n OrgSearchQueryLength: \"org-search-query-length\",\n OrgSearchResultRank: \"org-search-result-rank\",\n OrgSearchTimeUntilSelection: \"org-search-time-until-selection\",\n OrgSearchOpenSortMenu: \"org-search-open-sort-menu\",\n OrgSearchSortDistance: \"org-search-sort-distance\",\n OrgSearchSortRelevance: \"org-search-sort-relevance\",\n AsrTipsShown: \"asr-tips-shown\",\n AsrSearchAfterTips: \"asr-search-after-tips\",\n AsrClickThrough: \"asr-click-through\",\n} as const;\n\ntype MetricId = (typeof MetricIds)[keyof typeof MetricIds];\n\nexport const useMetrics = ({ segment, programId }: { segment?: string; programId?: string }) => {\n const [randomId] = React.useState(createUniqueId());\n const ldClient = useLDClient();\n\n React.useEffect(() => {\n // set mark when this component first renders\n try {\n performance.mark(randomId);\n } catch {\n // do nothing if performance.mark errors (this happens in tests because jsdom)\n }\n }, []);\n\n return {\n // @TODO move GA and NR events into this?\n userDidConvert: (metricIdConverted: string, metricIdSubmitTime: string): void => {\n if (getOptions()._launchDarklyUserTargeting) {\n try {\n const timeOnForm = performance.measure(\"timeOnForm\", randomId);\n ldClient.track(metricIdConverted, {\n segment,\n });\n\n ldClient.track(\n metricIdSubmitTime,\n {\n segment,\n },\n timeOnForm.duration,\n );\n } catch (e) {\n logger.error(\"Unable to submit metrics\", e);\n }\n }\n },\n recordNumericMetric: (metricId: MetricId, value: number): void => {\n if (getOptions()._launchDarklyUserTargeting) {\n ldClient.track(\n metricId,\n {\n segment,\n programId,\n },\n value,\n );\n }\n },\n trackEvent: (metricId: MetricId): void => {\n if (getOptions()._launchDarklyUserTargeting) {\n ldClient.track(metricId, {\n segment,\n programId,\n });\n }\n },\n /**\n * @deprecated use userDidConvert instead\n */\n getTimeOnForm: (): PerformanceMeasure => {\n try {\n return performance.measure(\"timeOnForm\", randomId);\n } catch (e) {\n // do nothing if performance.mark errors (this happens in tests because jsdom)\n }\n\n return undefined;\n },\n };\n};\n"],"mappings":";;;;mCAOa,IAA+B,gCAC/B,IAAsB,uBACtB,IAAoB,qBACpB,IAA6B,8BAEpC,UAAuB,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,OAAO,GAAG,CAAC,GAEtD,IAAY;CACvB,qBAAqB;CACrB,sBAAsB;CACtB,qBAAqB;CACrB,6BAA6B;CAC7B,uBAAuB;CACvB,uBAAuB;CACvB,wBAAwB;CACxB,cAAc;CACd,oBAAoB;CACpB,iBAAiB;AACnB,GAIa,KAAc,EAAE,YAAS,mBAA0D;CAC9F,IAAM,CAAC,KAAA,EAAkB,SAAS,EAAe,CAAC,GAC5C,IAAW,EAAY;CAW7B,OATA,EAAM,gBAAgB;EAEpB,IAAI;GACF,YAAY,KAAK,CAAQ;EAC3B,QAAQ,CAER;CACF,GAAG,CAAC,CAAC,GAEE;EAEL,iBAAiB,GAA2B,MAAqC;GAC/E,IAAI,EAAW,EAAE,4BACf,IAAI;IACF,IAAM,IAAa,YAAY,QAAQ,cAAc,CAAQ;IAK7D,AAJA,EAAS,MAAM,GAAmB,EAChC,WACF,CAAC,GAED,EAAS,MACP,GACA,EACE,WACF,GACA,EAAW,QACb;GACF,SAAS,GAAG;IACV,EAAO,MAAM,4BAA4B,CAAC;GAC5C;EAEJ;EACA,sBAAsB,GAAoB,MAAwB;GAChE,AAAI,EAAW,EAAE,8BACf,EAAS,MACP,GACA;IACE;IACA;GACF,GACA,CACF;EAEJ;EACA,aAAa,MAA6B;GACxC,AAAI,EAAW,EAAE,8BACf,EAAS,MAAM,GAAU;IACvB;IACA;GACF,CAAC;EAEL;EAIA,qBAAyC;GACvC,IAAI;IACF,OAAO,YAAY,QAAQ,cAAc,CAAQ;GACnD,QAAY,CAEZ;EAGF;CACF;AACF"}
1
+ {"version":3,"file":"useMetrics-O5xTFm6y.js","names":[],"sources":["../../src/components/FeatureFlags/useMetrics.tsx"],"sourcesContent":["import React from \"react\";\nimport { useLDClient } from \"launchdarkly-react-client-sdk\";\n\nimport { logger } from \"@jslib/shared/utils/logger\";\n\nimport { getOptions } from \"../../options/options\";\n\nexport const COLLECT_INFO_SUBMISSION_TIME = \"collect-info-submission-time\";\nexport const COLLECT_INFO_SUBMIT = \"collect-info-submit\";\nexport const DOC_UPLOAD_SUBMIT = \"doc-upload-submit\";\nexport const DOC_UPLOAD_SUBMISSION_TIME = \"doc-upload-submission-time\";\n\nconst createUniqueId = () => Math.random().toString(36).substr(2, 9);\n\nexport const MetricIds = {\n OrgSearchNumReworks: \"org-search-num-reworks\",\n OrgSearchQueryLength: \"org-search-query-length\",\n OrgSearchResultRank: \"org-search-result-rank\",\n OrgSearchTimeUntilSelection: \"org-search-time-until-selection\",\n OrgSearchOpenSortMenu: \"org-search-open-sort-menu\",\n OrgSearchSortDistance: \"org-search-sort-distance\",\n OrgSearchSortRelevance: \"org-search-sort-relevance\",\n AsrTipsShown: \"asr-tips-shown\",\n AsrSearchAfterTips: \"asr-search-after-tips\",\n AsrClickThrough: \"asr-click-through\",\n} as const;\n\ntype MetricId = (typeof MetricIds)[keyof typeof MetricIds];\n\nexport const useMetrics = ({ segment, programId }: { segment?: string; programId?: string }) => {\n const [randomId] = React.useState(createUniqueId());\n const ldClient = useLDClient();\n\n React.useEffect(() => {\n // set mark when this component first renders\n try {\n performance.mark(randomId);\n } catch {\n // do nothing if performance.mark errors (this happens in tests because jsdom)\n }\n }, []);\n\n return {\n // @TODO move GA and NR events into this?\n userDidConvert: (metricIdConverted: string, metricIdSubmitTime: string): void => {\n if (getOptions()._launchDarklyUserTargeting) {\n try {\n const timeOnForm = performance.measure(\"timeOnForm\", randomId);\n ldClient.track(metricIdConverted, {\n segment,\n });\n\n ldClient.track(\n metricIdSubmitTime,\n {\n segment,\n },\n timeOnForm.duration,\n );\n } catch (e) {\n logger.error(\"Unable to submit metrics\", e);\n }\n }\n },\n recordNumericMetric: (metricId: MetricId, value: number): void => {\n if (getOptions()._launchDarklyUserTargeting) {\n ldClient.track(\n metricId,\n {\n segment,\n programId,\n },\n value,\n );\n }\n },\n trackEvent: (metricId: MetricId): void => {\n if (getOptions()._launchDarklyUserTargeting) {\n ldClient.track(metricId, {\n segment,\n programId,\n });\n }\n },\n /**\n * @deprecated use userDidConvert instead\n */\n getTimeOnForm: (): PerformanceMeasure => {\n try {\n return performance.measure(\"timeOnForm\", randomId);\n } catch (e) {\n // do nothing if performance.mark errors (this happens in tests because jsdom)\n }\n\n return undefined;\n },\n };\n};\n"],"mappings":";;;;mCAOa,IAA+B,gCAC/B,IAAsB,uBACtB,IAAoB,qBACpB,IAA6B,8BAEpC,UAAuB,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,OAAO,GAAG,CAAC,GAEtD,IAAY;CACvB,qBAAqB;CACrB,sBAAsB;CACtB,qBAAqB;CACrB,6BAA6B;CAC7B,uBAAuB;CACvB,uBAAuB;CACvB,wBAAwB;CACxB,cAAc;CACd,oBAAoB;CACpB,iBAAiB;AACnB,GAIa,KAAc,EAAE,YAAS,mBAA0D;CAC9F,IAAM,CAAC,KAAA,EAAkB,SAAS,EAAe,CAAC,GAC5C,IAAW,EAAY;CAW7B,OATA,EAAM,gBAAgB;EAEpB,IAAI;GACF,YAAY,KAAK,CAAQ;EAC3B,QAAQ,CAER;CACF,GAAG,CAAC,CAAC,GAEE;EAEL,iBAAiB,GAA2B,MAAqC;GAC/E,IAAI,EAAW,EAAE,4BACf,IAAI;IACF,IAAM,IAAa,YAAY,QAAQ,cAAc,CAAQ;IAK7D,AAJA,EAAS,MAAM,GAAmB,EAChC,WACF,CAAC,GAED,EAAS,MACP,GACA,EACE,WACF,GACA,EAAW,QACb;GACF,SAAS,GAAG;IACV,EAAO,MAAM,4BAA4B,CAAC;GAC5C;EAEJ;EACA,sBAAsB,GAAoB,MAAwB;GAChE,AAAI,EAAW,EAAE,8BACf,EAAS,MACP,GACA;IACE;IACA;GACF,GACA,CACF;EAEJ;EACA,aAAa,MAA6B;GACxC,AAAI,EAAW,EAAE,8BACf,EAAS,MAAM,GAAU;IACvB;IACA;GACF,CAAC;EAEL;EAIA,qBAAyC;GACvC,IAAI;IACF,OAAO,YAAY,QAAQ,cAAc,CAAQ;GACnD,QAAY,CAEZ;EAGF;CACF;AACF"}
@@ -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.275.0
8
- * BUILD_TIMESTAMP: 1787352276442
9
- * BUILD_DATE: Fri Aug 21 2026 22:44:36 GMT+0000 (Coordinated Universal Time)
10
- * BUILD_COMMIT: 30913cd7a2f4f6324e4692d7ed7cde8020560774
7
+ * VERSION: 2.277.0
8
+ * BUILD_TIMESTAMP: 1787693419738
9
+ * BUILD_DATE: Tue Aug 25 2026 21:30:19 GMT+0000 (Coordinated Universal Time)
10
+ * BUILD_COMMIT: 6bf9486531bf722019a9060202aca84ce001472b
11
11
  */
12
12
  //#region src/lib/intl/localized-messages/vi.json
13
13
  var e = {
@@ -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.275.0
8
- * BUILD_TIMESTAMP: 1787352276442
9
- * BUILD_DATE: Fri Aug 21 2026 22:44:36 GMT+0000 (Coordinated Universal Time)
10
- * BUILD_COMMIT: 30913cd7a2f4f6324e4692d7ed7cde8020560774
7
+ * VERSION: 2.277.0
8
+ * BUILD_TIMESTAMP: 1787693419738
9
+ * BUILD_DATE: Tue Aug 25 2026 21:30:19 GMT+0000 (Coordinated Universal Time)
10
+ * BUILD_COMMIT: 6bf9486531bf722019a9060202aca84ce001472b
11
11
  */
12
12
  //#region src/lib/intl/localized-messages/zh.json
13
13
  var e = {
@@ -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.275.0
8
- * BUILD_TIMESTAMP: 1787352276442
9
- * BUILD_DATE: Fri Aug 21 2026 22:44:36 GMT+0000 (Coordinated Universal Time)
10
- * BUILD_COMMIT: 30913cd7a2f4f6324e4692d7ed7cde8020560774
7
+ * VERSION: 2.277.0
8
+ * BUILD_TIMESTAMP: 1787693419738
9
+ * BUILD_DATE: Tue Aug 25 2026 21:30:19 GMT+0000 (Coordinated Universal Time)
10
+ * BUILD_COMMIT: 6bf9486531bf722019a9060202aca84ce001472b
11
11
  */
12
12
  //#region src/lib/intl/localized-messages/zh-HK.json
13
13
  var e = {
@@ -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.275.0
8
- * BUILD_TIMESTAMP: 1787352276442
9
- * BUILD_DATE: Fri Aug 21 2026 22:44:36 GMT+0000 (Coordinated Universal Time)
10
- * BUILD_COMMIT: 30913cd7a2f4f6324e4692d7ed7cde8020560774
7
+ * VERSION: 2.277.0
8
+ * BUILD_TIMESTAMP: 1787693419738
9
+ * BUILD_DATE: Tue Aug 25 2026 21:30:19 GMT+0000 (Coordinated Universal Time)
10
+ * BUILD_COMMIT: 6bf9486531bf722019a9060202aca84ce001472b
11
11
  */
12
12
  //#region src/lib/intl/localized-messages/zu.json
13
13
  var e = {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sheerid/jslib",
3
3
  "author": "SheerID",
4
- "version": "2.275.0",
4
+ "version": "2.277.0",
5
5
  "description": "SheerID JavaScript Library",
6
6
  "keywords": [
7
7
  "verify",
@@ -1,8 +1,8 @@
1
1
 
2
2
  /**
3
- * VERSION: 2.275.0
4
- * BUILD_TIMESTAMP: 1787352275084
5
- * BUILD_DATE: Fri Aug 21 2026 22:44:35 GMT+0000 (Coordinated Universal Time)
6
- * BUILD_COMMIT: 30913cd7a2f4f6324e4692d7ed7cde8020560774
3
+ * VERSION: 2.277.0
4
+ * BUILD_TIMESTAMP: 1787693418409
5
+ * BUILD_DATE: Tue Aug 25 2026 21:30:18 GMT+0000 (Coordinated Universal Time)
6
+ * BUILD_COMMIT: 6bf9486531bf722019a9060202aca84ce001472b
7
7
  */
8
8
  .sid-inline-iframe{border:0;min-width:32rem;height:100%}.sid-modal__wrapper{opacity:0;z-index:9998;background:#fff;border-radius:5px;outline:none;width:32rem;max-height:calc(100% - 80px);transition:opacity .3s linear;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:10px 10px 15px #989898}.sid-modal__wrapper.fade-in{opacity:1}.sid-modal__iframe{border:0;width:100%;min-width:250px;height:100%;display:block}.sid-modal__close-button{color:inherit;cursor:pointer;z-index:9999;background:0 0;border:none;flex-direction:row;align-items:center;text-decoration:none;display:flex;position:absolute;top:10px;right:10px}.sid-modal__close-icon{filter:brightness(25%);background-image:url(https://services.sheerid.com/jsapi/img/btn1.png);background-repeat:no-repeat;width:20px;height:20px}.sid-modal__close-text{color:#000;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:var(--sheerid-font-size-body);margin-right:5px}.sid-modal__overlay{opacity:0;z-index:9997;background-color:#b3b3b3;width:100%;height:100%;transition:opacity .3s linear;position:fixed;top:0;left:0}.sid-modal__overlay.fade-in{opacity:.75}@media (width<=620px){.sid-modal__wrapper{max-width:calc(100vw - 1rem)}}@media (width<=32rem){.sid-inline-iframe{width:100%;min-width:calc(100vw - 1rem)}}
@@ -1,9 +1,9 @@
1
1
 
2
2
  /**
3
- * VERSION: 2.275.0
4
- * BUILD_TIMESTAMP: 1787352275084
5
- * BUILD_DATE: Fri Aug 21 2026 22:44:35 GMT+0000 (Coordinated Universal Time)
6
- * BUILD_COMMIT: 30913cd7a2f4f6324e4692d7ed7cde8020560774
3
+ * VERSION: 2.277.0
4
+ * BUILD_TIMESTAMP: 1787693418409
5
+ * BUILD_DATE: Tue Aug 25 2026 21:30:18 GMT+0000 (Coordinated Universal Time)
6
+ * BUILD_COMMIT: 6bf9486531bf722019a9060202aca84ce001472b
7
7
  */
8
8
  //#region ../packages/shared/src/utils/gaHelpers.ts
9
9
  var e = {}, t = async () => e, n = () => window.navigator.globalPrivacyControl, r = () => window.NREUM && !n(), i = 4, a = "", o = {
@@ -66,7 +66,7 @@ var e = {}, t = async () => e, n = () => window.navigator.globalPrivacyControl,
66
66
  });
67
67
  },
68
68
  setLogLevel: (e) => {
69
- if (!o.hasOwnProperty(e)) throw Error(`Unknown logLevel '${e}'`);
69
+ if (!Object.hasOwn(o, e)) throw Error(`Unknown logLevel '${e}'`);
70
70
  i = o[e], console.log(`%c${a} log level set to ${e}`, `background: ${s[e]};${c}`), r() || d("Offsite logging not enabled");
71
71
  },
72
72
  setPrefix: (e) => {
@@ -1 +1 @@
1
- {"version":3,"file":"sheerid-install.js","names":[],"sources":["../../packages/shared/src/utils/gaHelpers.ts","../../packages/shared/src/utils/logger/logger.ts","../../packages/shared/src/utils/getInstallType.ts","../src/constants.ts","../src/lib/hooks/eventEmitter.ts","../src/lib/installScript/utils.ts","../src/lib/installScript/constants.ts","../src/lib/installScript/iframe.ts","../src/lib/installScript/modal.ts","../src/lib/installScript/index.ts"],"sourcesContent":["//\n// NOTE this file is high risk for circular dependencies! Avoid imports, or double check that they don't create circular deps\n//\n\nimport type { NavigatorBeta } from \"../types/runtimeTypes\";\n\n/**\n * A singleton to allow access to user properties that we've set on GA without\n * querying GA directly. This is primarily used to also send them to New Relic.\n */\nconst _attrCache: Record<string, unknown> = {};\n\nexport const setGaAttributes = (attrs: Record<string, unknown>): void =>\n Object.entries(attrs).forEach(([k, v]) => {\n _attrCache[k] = v;\n });\n\nexport const getGaAttributes = async (): Promise<object> => _attrCache;\n\nexport const doNotTrack = () => (window.navigator as NavigatorBeta).globalPrivacyControl;\n\nexport const isNewRelicAvailable = () => (window as any).NREUM && !doNotTrack();\n","/* eslint no-console:0 */\n// ~~~ This file and its tests are the only files that should disable \"no-console\" ~~~\n\nimport { getGaAttributes, isNewRelicAvailable } from \"../gaHelpers\";\n\nexport type LogLevel = \"info\" | \"log\" | \"warn\" | \"error\" | \"silent\";\n\nlet logLevel = 4; // default\nlet prefix = \"\";\nconst logLevels = {\n info: 1,\n log: 2,\n warn: 3,\n error: 4,\n silent: 5,\n};\n\nconst colors = {\n info: \"#26c1db\",\n log: \"#09f979\",\n warn: \"#f6b13f\",\n error: \"#e12046\",\n};\n\nconst standardStyles = \"color: white; font-weight: bold; padding: 2px 10px;\";\n\nlet getUsefulState: () => Record<string, any> = () => ({});\n\nconst isError = (e: any) => e && e.stack && e.message;\n\nconst warn = (...args: any[]) => {\n if (logLevel <= 3) {\n console.warn(`%c${prefix} warn`, `background: ${colors.warn};${standardStyles}`, ...args);\n }\n};\n\nconst log = (...args: any[]) => {\n if (logLevel <= 2) {\n console.log(`%c${prefix} log`, `background: ${colors.log};${standardStyles}`, ...args);\n }\n};\n\nconst info = (...args: any[]) => {\n if (logLevel <= 1) {\n console.log(`%c${prefix} info`, `background: ${colors.info};${standardStyles}`, ...args);\n }\n};\n\n/**\n * @param error Primary, details error message or full error object\n * @param errorMessageGroup Use this to group error messages together with a string that does not vary as frequently.\n * Do not pass programId, verificationId, etc\n */\nconst error = async (\n err: Error | string,\n errorMessageGroup: string = \"unknown group\",\n additionalUsefulAttributes: { [a: string]: string } = {},\n) => {\n if (logLevel <= 4) {\n if (!err) {\n console.error(new Error(\"An error must be supplied\"));\n return;\n }\n\n let errorObj: Error | undefined;\n if (typeof err === \"string\") errorObj = new Error(err);\n if (isError(err)) errorObj = err as Error;\n if (!errorObj) errorObj = new Error(\"Unknown error\");\n\n let usefulAttributes: object = { errorMessageGroup };\n\n // #region Google Analytics\n // Include everything we can from Google Analytics' data b/c that's useful:\n try {\n const gaAttributes = await getGaAttributes();\n\n usefulAttributes = {\n ...gaAttributes,\n ...usefulAttributes,\n };\n delete (usefulAttributes as any).jslibVersionActual; // used by GA not New Relic (duplicated)\n } catch (e) {\n if (isNewRelicAvailable()) {\n (window as any).NREUM.noticeError(errorObj, usefulAttributes);\n } else {\n // Some customers can't install New Relic so this is not an error:\n warn(\"Unable to assemble GA error attributes\", e);\n }\n }\n // #endregion Google Analytics\n\n // #region App State (formerly Redux)\n try {\n const stateAttributes = getUsefulState();\n usefulAttributes = {\n ...usefulAttributes,\n ...stateAttributes,\n ...additionalUsefulAttributes,\n };\n } catch (e) {\n if (isNewRelicAvailable()) {\n (window as any).NREUM.noticeError(errorObj, usefulAttributes);\n } else {\n // Some customers can't install New Relic so this is not an error:\n warn(\"Unable to assemble useful error attributes\", e);\n }\n }\n // #endregion App State\n\n if (isNewRelicAvailable()) {\n (window as any).NREUM.noticeError(errorObj, usefulAttributes);\n }\n\n console.error(\n `%c${prefix} error`,\n `background: ${colors.error};${standardStyles}`,\n errorObj,\n usefulAttributes,\n );\n }\n};\n\nexport const newRelicPageAction = (eventName: string, attributes = {}) => {\n if (isNewRelicAvailable()) {\n (window as any).NREUM.addPageAction(eventName, attributes);\n }\n};\n\n/**\n * @deprecated Use newRelicPageAction() instead\n */\nconst logAPIResponseTime = (url: string, time: number) => {\n newRelicPageAction(\"API-calls-timing\", {\n api_call: url,\n api_response_time: time,\n });\n};\n\nexport const logger = {\n error,\n warn,\n log,\n info,\n /** @deprecated use newRelicPageAction() instead */\n logAPIResponseTime,\n setLogLevel: (desiredLogLevel: LogLevel) => {\n // @ts-ignore\n if (!logLevels.hasOwnProperty(desiredLogLevel)) {\n throw new Error(`Unknown logLevel '${desiredLogLevel}'`);\n }\n\n // @ts-ignore\n logLevel = logLevels[desiredLogLevel];\n console.log(\n `%c${prefix} log level set to ${desiredLogLevel}`,\n // @ts-ignore\n `background: ${colors[desiredLogLevel]};${standardStyles}`,\n );\n\n // Some customers can't install New Relic so this is not an error:\n if (!isNewRelicAvailable()) {\n warn(\"Offsite logging not enabled\");\n }\n },\n setPrefix: (thisPrefix: string) => {\n prefix = thisPrefix;\n },\n init: (getStateFn: () => Record<string, any>) => {\n getUsefulState = getStateFn;\n },\n};\n","import { logger } from \"./logger/logger\";\n\nconst QUERY_STRING_INSTALL_TYPE = \"installType\";\nconst QUERY_STRING_LAYOUT = \"layout\";\nconst QUERY_VALUE_LANDING = \"landing\";\n\nexport const InstallTypes = {\n landingPage: \"landing_page\",\n cdnNoIframe: \"cdn_no_iframe\",\n cdnInlineIframe: \"cdn_inline_iframe\",\n cdnModalIframe: \"cdn_modal_iframe\",\n programBuilderPreview: \"program_builder_preview\",\n} as const;\n\nexport type InstallType = (typeof InstallTypes)[keyof typeof InstallTypes];\n\nlet declaredInstallType: InstallType | undefined;\n\n/**\n * Declare the install context from an install wrapper that mounts the form into\n * the host page, where there is no iframe URL to carry the install type as a\n * query string param.\n */\nexport const setInstallType = (installType: InstallType): void => {\n declaredInstallType = installType;\n};\n\nexport const getInstallType = (): InstallType | string => {\n if (declaredInstallType) {\n return declaredInstallType;\n }\n\n try {\n const parsed: URLSearchParams = new URLSearchParams(window.location.search);\n\n const installTypeParam = parsed.get(QUERY_STRING_INSTALL_TYPE);\n if (installTypeParam) {\n return decodeURIComponent(installTypeParam);\n }\n\n if (parsed.get(QUERY_STRING_LAYOUT) === QUERY_VALUE_LANDING) {\n return InstallTypes.landingPage;\n }\n } catch (e) {\n logger.error(e, \"getInstallType\");\n }\n\n return InstallTypes.cdnNoIframe;\n};\n","import { type FieldId, type Locale } from \"./lib/types/types\";\n\nexport const DEFAULT_LOCALE: Locale = \"en-US\";\n\nexport const ACCEPTED_DOC_MIME_TYPES: string[] = [\n \"image/png\",\n \"image/jpg\",\n \"image/jpeg\",\n \"application/pdf\",\n];\n\nexport const ACCEPTED_DOC_TYPES: string[] = [\".jpg\", \".jpeg\", \".png\", \".pdf\"];\nexport const MAX_DOC_UPLOAD_DOCS_ALLOWED: number = 3;\nexport const UPLOAD_FILE_PREFIX: string = \"file\";\n\nexport const QUERY_STRING_STEP_OVERRIDE: string = \"mockStep\";\nexport const QUERY_STRING_SEGMENT_OVERRIDE: string = \"mockSegment\";\nexport const QUERY_STRING_SUBSEGMENT_OVERRIDE: string = \"mockSubSegment\";\nexport const QUERY_STRING_ERRORID_OVERRIDE: string = \"mockErrorId\";\nexport const QUERY_STRING_ERRORDETAILID_OVERRIDE: string = \"mockErrorDetailId\";\nexport const QUERY_STRING_REWARD_CODE_OVERRIDE: string = \"mockRewardCode\";\nexport const QUERY_STRING_REDIRECT_URL_OVERRIDE: string = \"mockRedirectUrl\";\nexport const QUERY_STRING_REMEMBER_ME_OVERRIDE: string = \"mockConsumerInfoState\"; // ?mockConsumerInfoState=consumerFound | consumerNotFound\nexport const QUERY_STRING_ID_CHECK_LOOP_SERVICE_TYPE_OVERRIDE: string =\n \"mockIdCheckLoopServiceType\"; // ?mockIdCheckLoopServiceType=ID_CHECK | ID_CHECK_LIVENESS\nexport const QUERY_STRING_DOC_SELECTED: string = \"mockDocSelected\"; // mock the state where a consumer as already selected a file and is about to click the \"continue\" button on the docUpload step\nexport const QUERY_STRING_PREV_STEP_OVERRIDE: string = \"mockPreviousStep\";\nexport const QUERY_STRING_THIRD_PARTY_PROVIDER_OVERRIDE: string = \"thirdPartyLoopProvider\";\nexport const QUERY_STRING_SSO_METHOD: string = \"ssoMethod\";\nexport const QUERY_STRING_INSTALL_PAGE_URL: string = \"installPageUrl\";\nexport const QUERY_STRING_INSTALL_TYPE: string = \"installType\";\nexport const QUERY_STRING_LAYOUT: string = \"layout\"; // verify app's \"?layout=landing\"\nexport const QUERY_STRING_EXTERNAL_USER_ID: string = \"externalUserId\";\nexport const QUERY_STRING_CAPTCHA_ERROR_OVERRIDE: string = \"mockCaptchaState\";\n\nexport const SSN_STRING_LENGTH: number = 9;\nexport const DEFAULT_MINIMUM_ORG_SEARCH_VALUE_LENGTH: number = 1;\n\nexport const DEFAULT_PRIVACY_POLICY_HOST = \"www.sheerid.com\";\nexport const DEFAULT_PRIVACY_POLICY_URL = \"https://www.sheerid.com/privacy-policy/\";\nexport const SHEERID = \"SheerID\";\n\nexport const FEEDBACK_FORM_URL =\n \"https://verify.sheerid.com/verification-support/feedback.html?token=\";\nexport const SUPPORT_URL = \"https://support.sheerid.com\";\nexport const CLOUDFLARE_PRIVACY_POLICY_URL = \"https://www.cloudflare.com/privacypolicy/\";\n\nexport const HTTP_REQUEST_TIMEOUT = 10000;\nexport const DEBOUNCE_TIMEOUT = 200;\n\nexport const inLightbox = \"inLightbox\";\n\nexport const AUTH_TOKEN_LENGTH = 6;\n\nexport const FIELD_IDS: FieldId[] = [\n \"firstName\",\n \"lastName\",\n \"memberId\",\n \"organization\",\n \"birthDate\",\n \"email\",\n \"phoneNumber\",\n \"postalCode\",\n \"address1\",\n \"city\",\n \"state\",\n \"dischargeDate\",\n \"activeDutyStartDate\",\n \"status\",\n \"statuses\",\n \"docUpload\",\n \"country\",\n \"smsCode\",\n \"socialSecurityNumber\",\n \"marketConsentValue\",\n \"carrierConsentValue\",\n \"driverLicenseNumber\",\n \"overrideCode\",\n \"ebtCardNumber\",\n \"organizationEmail\",\n \"authenticationCode\",\n];\n","/* eslint-disable max-classes-per-file */\nexport type Unsubscribe = () => void;\n\nclass PubSub<T = unknown, F extends Function = (data: T) => void> {\n private subscribers = new Set<F>();\n\n sub(fn: F): Unsubscribe {\n this.subscribers.add(fn);\n\n return () => this.subscribers.delete(fn);\n }\n\n pub(data: T) {\n this.subscribers.forEach((fn) => fn(data));\n }\n}\n\n/**\n * List of valid event args given `K`.\n */\nexport type EventArg<T, K extends keyof T> = T[K];\n\n/**\n * An event emitter class we can use to manage hooks or other emittable data.\n * Take a type argument of shape Record<eventName, callBackData>\n *\n * A classified version of the MIT licensed https://robinpokorny.github.io/dead-simple/\n * With some type safety inspiration from https://github.com/serviejs/events\n */\nexport class EventEmitter<T> {\n private events = new Map<keyof T, PubSub>();\n\n /**\n * Registers a listener that will be called when the named event is emitted\n * @returns An unsubscribe function that will turn off this listener.\n */\n on<K extends keyof T>(name: K, fn: (data: EventArg<T, K>) => void): Unsubscribe {\n if (!this.events.has(name)) this.events.set(name, new PubSub<EventArg<T, K>>());\n\n return this.events.get(name).sub(fn);\n }\n\n /**\n * Registers a listener that will be called a single time when the named event\n * is emitted\n * @returns An unsubscribe function that will turn off this listener.\n */\n once<K extends keyof T>(name: K, fn: (data: EventArg<T, K>) => void): Unsubscribe {\n const off = this.on(name, (data: EventArg<T, K>) => {\n off();\n return fn(data);\n });\n\n return off;\n }\n\n /**\n * Removes all event listeners for the given key\n * @returns void\n */\n off<K extends keyof T>(name: K) {\n this.events.delete(name);\n }\n\n /**\n * Used to emit events to all registered hook listeners\n *\n * @private\n */\n emit<K extends keyof T>(name: K, data: EventArg<T, K>) {\n if (this.events.has(name)) {\n this.events.get(name).pub(data);\n }\n }\n}\n","export const fadeInElements = (elements: HTMLElement[]) => {\n elements.forEach((element: HTMLElement) => {\n element.classList.add(\"fade-in\");\n });\n};\n\nexport const removeElement = (element: HTMLElement, transitionTimeout: number) => {\n element.classList.remove(\"fade-in\");\n window.setTimeout(() => {\n document.body.style.overflow = \"\";\n element.parentNode.removeChild(element);\n }, transitionTimeout);\n};\n\nexport const getVerificationUrl = (url: string): string => {\n const newUrl = new URL(url);\n const parentUrl = new URL(window.location.href);\n\n // Combine query parameters from parent window and provided url.\n // If duplicates, provided url parameters supercede.\n parentUrl.searchParams.forEach((value, key) => {\n if (!newUrl.searchParams.has(key)) {\n newUrl.searchParams.set(key, value);\n }\n });\n\n return newUrl.href;\n};\n","const iframeClassNames = {\n INLINE_IFRAME_CONTENT: \"sid-inline-iframe\",\n MODAL_WRAPPER: \"sid-modal__wrapper\",\n MODAL_IFRAME: \"sid-modal__iframe\",\n OVERLAY: \"sid-modal__overlay\",\n CLOSE_BUTTON: \"sid-modal__close-button\",\n CLOSE_TEXT: \"sid-modal__close-text\",\n CLOSE_ICON: \"sid-modal__close-icon\",\n};\n\nexport const iframeTitle = \"SheerID Verification Form\";\n\nexport const iframeConstants = {\n CLASS_NAMES: iframeClassNames,\n DEFAULT_MOBILE_THRESHOLD_WIDTH: 620,\n MODAL_OPACITY_TRANSITION_PERIOD: 300,\n};\n","import { logger } from \"@jslib/shared/utils/logger\";\nimport { InstallTypes, type InstallType } from \"@jslib/shared/utils/getInstallType\";\n\nimport { QUERY_STRING_INSTALL_PAGE_URL, QUERY_STRING_INSTALL_TYPE } from \"../../constants\";\nimport { type InstallPageEvent } from \"../frames/frameMessages\";\nimport type { HookEvents, Options, PostMessageAction, ViewModel } from \"../types/types\";\nimport { EventEmitter } from \"../hooks/eventEmitter\";\n\nimport { getVerificationUrl } from \"./utils\";\nimport { iframeConstants as constants, iframeTitle } from \"./constants\";\n\nexport type IframeOptions = {\n className: string;\n title: string;\n};\n\nexport const DEFAULT_OPTIONS: IframeOptions = {\n className: constants.CLASS_NAMES.INLINE_IFRAME_CONTENT,\n title: iframeTitle,\n};\n\nexport const assertValidFunction = (candidate: Function) => {\n if (typeof candidate !== \"function\") {\n throw new Error(`Expected type \"function\", but received ${typeof candidate}`);\n }\n};\n\nclass Iframe extends EventEmitter<HookEvents> {\n containerElement: HTMLElement;\n\n verificationUrl: URL;\n\n isMobileDevice: boolean;\n\n iframe: HTMLIFrameElement;\n\n verificationIframeUid: string;\n\n locale: string;\n\n hasLoaded: boolean = false;\n\n onLoadEvents: Function[] = [];\n\n onCleanupEvents: (() => void)[] = [];\n\n installType: InstallType = InstallTypes.cdnInlineIframe;\n\n constructor(containerElement: HTMLElement, url: string) {\n super();\n\n if (Iframe.isValidHttpUrl(url)) {\n this.containerElement = containerElement;\n this.verificationUrl = new URL(getVerificationUrl(url));\n this.verificationIframeUid = Iframe.createUniqueId();\n } else {\n logger.error(\"Invalid URL. Provide a proper URL: https://example.com/\", \"iframe url\");\n }\n }\n\n cleanup(): void {\n this.onCleanupEvents.forEach((callback) => callback());\n }\n\n static createUniqueId(): string {\n return Math.random().toString(36).substr(2, 9);\n }\n\n static isValidHttpUrl(urlString: string): boolean {\n try {\n const url = new URL(urlString);\n return url.protocol === \"http:\" || url.protocol === \"https:\";\n } catch {\n return false;\n }\n }\n\n createIframe(options: IframeOptions): HTMLIFrameElement {\n this.iframe = document.createElement(\"iframe\");\n this.iframe.classList.add(options.className);\n this.iframe.title = options.title;\n this.iframe.src = this.getIframeUrl();\n this.iframe.allow = \"camera *;microphone *;geolocation *;clipboard-read *;clipboard-write *\";\n this.iframe.onload = () => this.onLoad();\n return this.iframe;\n }\n\n getIframeUrl(): string {\n const url = new URL(this.verificationUrl);\n url.searchParams.set(\"verificationIframeUid\", this.verificationIframeUid);\n url.searchParams.set(QUERY_STRING_INSTALL_PAGE_URL, window.location.href);\n url.searchParams.set(QUERY_STRING_INSTALL_TYPE, this.installType);\n if (this.locale) {\n url.searchParams.set(\"locale\", this.locale);\n }\n return url.toString();\n }\n\n // If iFrame hasn't loaded yet, queue up the callback\n // otherwise call it immediately\n addOnLoadEvent(callback: Function) {\n try {\n assertValidFunction(callback);\n } catch (e) {\n logger.error(\"Invalid callback provided to iFrame.onLoad()\", \"iframe addOnLoadEvent\");\n return;\n }\n if (this.hasLoaded) {\n callback();\n } else {\n this.onLoadEvents.push(callback);\n }\n }\n\n onLoad() {\n this.hasLoaded = true;\n this.onLoadEvents.forEach((callback) => callback());\n }\n\n /**\n * Using this to add parent window message listeners gives us\n * - Event Cleanup for modals\n * - verification of origin, verificationIframeUid, and message data structure\n */\n addWindowMessageListener(actionCb: (action: PostMessageAction) => void): void {\n const listener = (ev: MessageEvent) => {\n if (this.verificationUrl.origin !== ev.origin) {\n return;\n }\n\n if (ev.data.verificationIframeUid !== this.verificationIframeUid) {\n return;\n }\n\n if (ev.data.action && ev.data.action.type) {\n actionCb(ev.data.action);\n } else if (ev.data.action && ev.data.height) {\n // Older versions of the jslib send the full action object as the message\n actionCb(ev.data);\n }\n };\n\n window.addEventListener(\"message\", listener);\n this.onCleanupEvents.push(() => window.removeEventListener(\"message\", listener));\n }\n\n addActionListener() {\n this.addWindowMessageListener((messageAction) => {\n if (messageAction.type === \"hook\") {\n this.emit(messageAction.hook.name, messageAction.hook.data);\n }\n\n if (\n (messageAction.action && messageAction.action === \"updateHeight\") ||\n messageAction.type === \"updateHeight\"\n ) {\n // UX-1129: If we are getting height updates, turn off scrolling for\n // the iframe. This prevents browsers (Safari in particular) from\n // re-wrapping because of different widths and constantly changing\n // it's own height. `scrolling = \"no\"` is deprecated, but supported in\n // all browsers and fixes the problem well.\n this.iframe.scrolling = \"no\";\n this.iframe.style.height = `${messageAction.height}px`;\n }\n });\n }\n\n setViewModel(viewModel: Partial<ViewModel> | ViewModel) {\n const message: InstallPageEvent = {\n action: \"setViewModel\",\n viewModel,\n };\n\n this.addOnLoadEvent(() => {\n this.iframe.contentWindow.postMessage(message, this.verificationUrl.origin);\n });\n }\n\n setOptions(options: Options) {\n const message: InstallPageEvent = {\n action: \"setOptions\",\n options,\n };\n\n // HC-1181: Special casing options.locale to set locale as as QSP if the frame hasn't fully loaded yet.\n // This causes a re-load, but in most cases would happen within milliseconds of the frame initialization.\n // It prevents the race conditions that were failing to set the locale properly on load.\n // If the associated playwright tests passes without this is can be removed.\n if (!this.hasLoaded && options.locale) {\n this.locale = options.locale;\n const newUrl = this.getIframeUrl();\n if (newUrl !== this.iframe.src) {\n this.iframe.src = newUrl;\n }\n }\n\n this.addOnLoadEvent(() => {\n this.iframe.contentWindow.postMessage(message, this.verificationUrl.origin);\n });\n }\n\n setInstallType(installType: InstallType) {\n this.installType = installType;\n }\n\n init(createIframe: boolean = true): void {\n if (createIframe) {\n this.createIframe(DEFAULT_OPTIONS);\n }\n\n this.addActionListener();\n this.containerElement.appendChild(this.iframe);\n }\n}\n\nexport default Iframe;\n","import { InstallTypes } from \"@jslib/shared/utils/getInstallType\";\n\nimport { type IframeUserConfiguration, type Options, type ViewModel } from \"../types/types\";\n\nimport { iframeConstants as constants, iframeTitle } from \"./constants\";\nimport Iframe from \"./iframe\";\nimport { fadeInElements, removeElement, getVerificationUrl } from \"./utils\";\n\nclass Modal {\n verificationUrl: string;\n\n redirectOnMobile: boolean;\n\n overlay: HTMLElement;\n\n wrapper: HTMLElement;\n\n iframeInstance: Iframe;\n\n on: typeof this.iframeInstance.on;\n\n once: typeof this.iframeInstance.once;\n\n isMobileDevice: boolean;\n\n closeButtonText: string;\n\n closeButton: HTMLButtonElement;\n\n stopPropagation: boolean;\n\n constructor(url: string, userConfig: IframeUserConfiguration) {\n const thresholdConfig = userConfig.mobileThreshold\n ? userConfig.mobileThreshold\n : constants.DEFAULT_MOBILE_THRESHOLD_WIDTH;\n this.verificationUrl = getVerificationUrl(url);\n this.redirectOnMobile = userConfig.mobileRedirect || false;\n this.isMobileDevice = window.document.body.clientWidth <= Number(thresholdConfig);\n this.closeButtonText = userConfig.closeButtonText ? userConfig.closeButtonText : \"\";\n this.closeButton = null;\n this.stopPropagation = userConfig.stopPropagation || false;\n this.overlay = Modal.createOverlay();\n this.wrapper = this.createWrapper();\n this.addFocusListener();\n }\n\n createCloseBtn() {\n this.closeButton = document.createElement(\"button\");\n this.closeButton.classList.add(constants.CLASS_NAMES.CLOSE_BUTTON);\n this.closeButton.setAttribute(\"aria-label\", \"close\");\n\n if (this.closeButtonText) {\n const closeTxt = document.createElement(\"div\");\n closeTxt.classList.add(constants.CLASS_NAMES.CLOSE_TEXT);\n closeTxt.innerHTML = this.closeButtonText;\n this.closeButton.appendChild(closeTxt);\n }\n\n const closeIcon = document.createElement(\"span\");\n closeIcon.classList.add(constants.CLASS_NAMES.CLOSE_ICON);\n closeIcon.setAttribute(\"role\", \"img\");\n this.closeButton.appendChild(closeIcon);\n\n this.closeButton.addEventListener(\"click\", (e) => {\n e.preventDefault();\n if (this.stopPropagation) {\n e.stopPropagation();\n }\n this.closeModal();\n });\n return this.closeButton;\n }\n\n closeModal() {\n window.removeEventListener(\"popstate\", this.popStateEventHandler);\n const transitionTimeout = constants.MODAL_OPACITY_TRANSITION_PERIOD;\n removeElement(this.overlay, transitionTimeout);\n removeElement(this.wrapper, transitionTimeout);\n this.iframeInstance.cleanup();\n }\n\n static createOverlay(): HTMLElement {\n const overlay = document.createElement(\"div\");\n overlay.classList.add(constants.CLASS_NAMES.OVERLAY);\n return overlay;\n }\n\n createWrapper(): HTMLElement {\n const wrapper = document.createElement(\"div\");\n wrapper.classList.add(constants.CLASS_NAMES.MODAL_WRAPPER);\n wrapper.tabIndex = -1;\n wrapper.setAttribute(\"role\", \"dialog\");\n wrapper.setAttribute(\"aria-modal\", \"true\");\n wrapper.setAttribute(\"aria-label\", iframeTitle);\n wrapper.appendChild(this.createCloseBtn());\n\n this.iframeInstance = new Iframe(wrapper, this.verificationUrl);\n this.iframeInstance.setInstallType(InstallTypes.cdnModalIframe);\n\n // pass `on` & `once` through to the iframe instance to allow hook listeners.\n this.on = this.iframeInstance.on.bind(this.iframeInstance);\n this.once = this.iframeInstance.once.bind(this.iframeInstance);\n\n const options = {\n className: constants.CLASS_NAMES.MODAL_IFRAME,\n title: iframeTitle,\n };\n this.iframeInstance.createIframe(options);\n wrapper.appendChild(this.iframeInstance.iframe);\n return wrapper;\n }\n\n popStateEventHandler = () => this.closeModal();\n\n addPopStateListener() {\n window.addEventListener(\"popstate\", this.popStateEventHandler);\n }\n\n addFocusListener() {\n this.iframeInstance.addWindowMessageListener((action) => {\n if (action.type === \"focus\" && action.focusOn === \"firstElement\") {\n this.closeButton.focus();\n }\n });\n\n document.addEventListener(\"keydown\", (e) => {\n const isTabPressed: boolean = e.key === \"Tab\";\n if (!isTabPressed) {\n return;\n }\n if (e.shiftKey && document.activeElement === this.closeButton) {\n this.iframeInstance.iframe.contentWindow.postMessage({ focusOn: \"lastElement\" }, \"*\");\n e.preventDefault();\n }\n });\n }\n\n isInLightboxPostMessage(inLightbox: string) {\n this.iframeInstance.iframe.contentWindow.postMessage({ isInLightBox: inLightbox }, \"*\");\n }\n\n displayModal() {\n this.iframeInstance.iframe.addEventListener(\"load\", () => {\n fadeInElements([this.overlay, this.wrapper]);\n document.body.style.overflow = \"hidden\";\n this.isInLightboxPostMessage(\"true\");\n });\n\n document.body.appendChild(this.overlay);\n document.body.appendChild(this.wrapper);\n this.addPopStateListener();\n }\n\n init() {\n if (this.redirectOnMobile && this.isMobileDevice) {\n window.top.location.href = this.verificationUrl;\n } else {\n this.displayModal();\n this.iframeInstance.init(false); // false so we don't create iframe again, it's already created in createWrapper\n }\n }\n\n setViewModel(viewModel: Partial<ViewModel> | ViewModel) {\n this.iframeInstance.setViewModel(viewModel);\n }\n\n setOptions(options: Options) {\n this.iframeInstance.setOptions(options);\n }\n}\n\nexport default Modal;\n","import { type IframeUserConfiguration } from \"../types/types\";\n\nimport Iframe from \"./iframe\";\nimport Modal from \"./modal\";\n\nimport \"../../scss/sheerid-iframe.scss\";\n\n// Called from the parent page to load the jslib within an iFrame NOT in a modal, but in the flow of a page. e.g. between two divs\nexport function loadInlineIframe(containerElement: HTMLElement, url: string): Iframe {\n const iframe = new Iframe(containerElement, url);\n iframe.init();\n return iframe;\n}\n\n// Called from the parent page to load the jslib within an iFrame in a modal\nexport function loadInModal(url: string, userConfig: IframeUserConfiguration = {}) {\n const modal = new Modal(url, userConfig);\n modal.init();\n return modal;\n}\n\nexport default { loadInModal, loadInlineIframe };\n"],"mappings":"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"}
1
+ {"version":3,"file":"sheerid-install.js","names":[],"sources":["../../packages/shared/src/utils/gaHelpers.ts","../../packages/shared/src/utils/logger/logger.ts","../../packages/shared/src/utils/getInstallType.ts","../src/constants.ts","../src/lib/hooks/eventEmitter.ts","../src/lib/installScript/utils.ts","../src/lib/installScript/constants.ts","../src/lib/installScript/iframe.ts","../src/lib/installScript/modal.ts","../src/lib/installScript/index.ts"],"sourcesContent":["//\n// NOTE this file is high risk for circular dependencies! Avoid imports, or double check that they don't create circular deps\n//\n\nimport type { NavigatorBeta } from \"../types/runtimeTypes\";\n\n/**\n * A singleton to allow access to user properties that we've set on GA without\n * querying GA directly. This is primarily used to also send them to New Relic.\n */\nconst _attrCache: Record<string, unknown> = {};\n\nexport const setGaAttributes = (attrs: Record<string, unknown>): void =>\n Object.entries(attrs).forEach(([k, v]) => {\n _attrCache[k] = v;\n });\n\nexport const getGaAttributes = async (): Promise<object> => _attrCache;\n\nexport const doNotTrack = () => (window.navigator as NavigatorBeta).globalPrivacyControl;\n\nexport const isNewRelicAvailable = () => (window as any).NREUM && !doNotTrack();\n","/* eslint no-console:0 */\n// ~~~ This file and its tests are the only files that should disable \"no-console\" ~~~\n\nimport { getGaAttributes, isNewRelicAvailable } from \"../gaHelpers\";\n\nexport type LogLevel = \"info\" | \"log\" | \"warn\" | \"error\" | \"silent\";\n\nlet logLevel = 4; // default\nlet prefix = \"\";\nconst logLevels = {\n info: 1,\n log: 2,\n warn: 3,\n error: 4,\n silent: 5,\n};\n\nconst colors = {\n info: \"#26c1db\",\n log: \"#09f979\",\n warn: \"#f6b13f\",\n error: \"#e12046\",\n};\n\nconst standardStyles = \"color: white; font-weight: bold; padding: 2px 10px;\";\n\nlet getUsefulState: () => Record<string, any> = () => ({});\n\nconst isError = (e: any) => e && e.stack && e.message;\n\nconst warn = (...args: any[]) => {\n if (logLevel <= 3) {\n console.warn(`%c${prefix} warn`, `background: ${colors.warn};${standardStyles}`, ...args);\n }\n};\n\nconst log = (...args: any[]) => {\n if (logLevel <= 2) {\n console.log(`%c${prefix} log`, `background: ${colors.log};${standardStyles}`, ...args);\n }\n};\n\nconst info = (...args: any[]) => {\n if (logLevel <= 1) {\n console.log(`%c${prefix} info`, `background: ${colors.info};${standardStyles}`, ...args);\n }\n};\n\n/**\n * @param error Primary, details error message or full error object\n * @param errorMessageGroup Use this to group error messages together with a string that does not vary as frequently.\n * Do not pass programId, verificationId, etc\n */\nconst error = async (\n err: Error | string,\n errorMessageGroup: string = \"unknown group\",\n additionalUsefulAttributes: { [a: string]: string } = {},\n) => {\n if (logLevel <= 4) {\n if (!err) {\n console.error(new Error(\"An error must be supplied\"));\n return;\n }\n\n let errorObj: Error | undefined;\n if (typeof err === \"string\") errorObj = new Error(err);\n if (isError(err)) errorObj = err as Error;\n if (!errorObj) errorObj = new Error(\"Unknown error\");\n\n let usefulAttributes: object = { errorMessageGroup };\n\n // #region Google Analytics\n // Include everything we can from Google Analytics' data b/c that's useful:\n try {\n const gaAttributes = await getGaAttributes();\n\n usefulAttributes = {\n ...gaAttributes,\n ...usefulAttributes,\n };\n delete (usefulAttributes as any).jslibVersionActual; // used by GA not New Relic (duplicated)\n } catch (e) {\n if (isNewRelicAvailable()) {\n (window as any).NREUM.noticeError(errorObj, usefulAttributes);\n } else {\n // Some customers can't install New Relic so this is not an error:\n warn(\"Unable to assemble GA error attributes\", e);\n }\n }\n // #endregion Google Analytics\n\n // #region App State (formerly Redux)\n try {\n const stateAttributes = getUsefulState();\n usefulAttributes = {\n ...usefulAttributes,\n ...stateAttributes,\n ...additionalUsefulAttributes,\n };\n } catch (e) {\n if (isNewRelicAvailable()) {\n (window as any).NREUM.noticeError(errorObj, usefulAttributes);\n } else {\n // Some customers can't install New Relic so this is not an error:\n warn(\"Unable to assemble useful error attributes\", e);\n }\n }\n // #endregion App State\n\n if (isNewRelicAvailable()) {\n (window as any).NREUM.noticeError(errorObj, usefulAttributes);\n }\n\n console.error(\n `%c${prefix} error`,\n `background: ${colors.error};${standardStyles}`,\n errorObj,\n usefulAttributes,\n );\n }\n};\n\nexport const newRelicPageAction = (eventName: string, attributes = {}) => {\n if (isNewRelicAvailable()) {\n (window as any).NREUM.addPageAction(eventName, attributes);\n }\n};\n\n/**\n * @deprecated Use newRelicPageAction() instead\n */\nconst logAPIResponseTime = (url: string, time: number) => {\n newRelicPageAction(\"API-calls-timing\", {\n api_call: url,\n api_response_time: time,\n });\n};\n\nexport const logger = {\n error,\n warn,\n log,\n info,\n /** @deprecated use newRelicPageAction() instead */\n logAPIResponseTime,\n setLogLevel: (desiredLogLevel: LogLevel) => {\n if (!Object.hasOwn(logLevels, desiredLogLevel)) {\n throw new Error(`Unknown logLevel '${desiredLogLevel}'`);\n }\n\n logLevel = logLevels[desiredLogLevel];\n console.log(\n `%c${prefix} log level set to ${desiredLogLevel}`,\n `background: ${colors[desiredLogLevel]};${standardStyles}`,\n );\n\n // Some customers can't install New Relic so this is not an error:\n if (!isNewRelicAvailable()) {\n warn(\"Offsite logging not enabled\");\n }\n },\n setPrefix: (thisPrefix: string) => {\n prefix = thisPrefix;\n },\n init: (getStateFn: () => Record<string, any>) => {\n getUsefulState = getStateFn;\n },\n};\n","import { logger } from \"./logger/logger\";\n\nconst QUERY_STRING_INSTALL_TYPE = \"installType\";\nconst QUERY_STRING_LAYOUT = \"layout\";\nconst QUERY_VALUE_LANDING = \"landing\";\n\nexport const InstallTypes = {\n landingPage: \"landing_page\",\n cdnNoIframe: \"cdn_no_iframe\",\n cdnInlineIframe: \"cdn_inline_iframe\",\n cdnModalIframe: \"cdn_modal_iframe\",\n programBuilderPreview: \"program_builder_preview\",\n} as const;\n\nexport type InstallType = (typeof InstallTypes)[keyof typeof InstallTypes];\n\nlet declaredInstallType: InstallType | undefined;\n\n/**\n * Declare the install context from an install wrapper that mounts the form into\n * the host page, where there is no iframe URL to carry the install type as a\n * query string param.\n */\nexport const setInstallType = (installType: InstallType): void => {\n declaredInstallType = installType;\n};\n\nexport const getInstallType = (): InstallType | string => {\n if (declaredInstallType) {\n return declaredInstallType;\n }\n\n try {\n const parsed: URLSearchParams = new URLSearchParams(window.location.search);\n\n const installTypeParam = parsed.get(QUERY_STRING_INSTALL_TYPE);\n if (installTypeParam) {\n return decodeURIComponent(installTypeParam);\n }\n\n if (parsed.get(QUERY_STRING_LAYOUT) === QUERY_VALUE_LANDING) {\n return InstallTypes.landingPage;\n }\n } catch (e) {\n logger.error(e, \"getInstallType\");\n }\n\n return InstallTypes.cdnNoIframe;\n};\n","import { type FieldId, type Locale } from \"./lib/types/types\";\n\nexport const DEFAULT_LOCALE: Locale = \"en-US\";\n\nexport const ACCEPTED_DOC_MIME_TYPES: string[] = [\n \"image/png\",\n \"image/jpg\",\n \"image/jpeg\",\n \"application/pdf\",\n];\n\nexport const ACCEPTED_DOC_TYPES: string[] = [\".jpg\", \".jpeg\", \".png\", \".pdf\"];\nexport const MAX_DOC_UPLOAD_DOCS_ALLOWED: number = 3;\nexport const UPLOAD_FILE_PREFIX: string = \"file\";\n\nexport const QUERY_STRING_STEP_OVERRIDE: string = \"mockStep\";\nexport const QUERY_STRING_SEGMENT_OVERRIDE: string = \"mockSegment\";\nexport const QUERY_STRING_SUBSEGMENT_OVERRIDE: string = \"mockSubSegment\";\nexport const QUERY_STRING_ERRORID_OVERRIDE: string = \"mockErrorId\";\nexport const QUERY_STRING_ERRORDETAILID_OVERRIDE: string = \"mockErrorDetailId\";\nexport const QUERY_STRING_REWARD_CODE_OVERRIDE: string = \"mockRewardCode\";\nexport const QUERY_STRING_REDIRECT_URL_OVERRIDE: string = \"mockRedirectUrl\";\nexport const QUERY_STRING_REMEMBER_ME_OVERRIDE: string = \"mockConsumerInfoState\"; // ?mockConsumerInfoState=consumerFound | consumerNotFound\nexport const QUERY_STRING_ID_CHECK_LOOP_SERVICE_TYPE_OVERRIDE: string =\n \"mockIdCheckLoopServiceType\"; // ?mockIdCheckLoopServiceType=ID_CHECK | ID_CHECK_LIVENESS\nexport const QUERY_STRING_DOC_SELECTED: string = \"mockDocSelected\"; // mock the state where a consumer as already selected a file and is about to click the \"continue\" button on the docUpload step\nexport const QUERY_STRING_PREV_STEP_OVERRIDE: string = \"mockPreviousStep\";\nexport const QUERY_STRING_THIRD_PARTY_PROVIDER_OVERRIDE: string = \"thirdPartyLoopProvider\";\nexport const QUERY_STRING_SSO_METHOD: string = \"ssoMethod\";\nexport const QUERY_STRING_INSTALL_PAGE_URL: string = \"installPageUrl\";\nexport const QUERY_STRING_INSTALL_TYPE: string = \"installType\";\nexport const QUERY_STRING_LAYOUT: string = \"layout\"; // verify app's \"?layout=landing\"\nexport const QUERY_STRING_EXTERNAL_USER_ID: string = \"externalUserId\";\nexport const QUERY_STRING_CAPTCHA_ERROR_OVERRIDE: string = \"mockCaptchaState\";\n\nexport const SSN_STRING_LENGTH: number = 9;\nexport const DEFAULT_MINIMUM_ORG_SEARCH_VALUE_LENGTH: number = 1;\n\nexport const DEFAULT_PRIVACY_POLICY_HOST = \"www.sheerid.com\";\nexport const DEFAULT_PRIVACY_POLICY_URL = \"https://www.sheerid.com/privacy-policy/\";\nexport const SHEERID = \"SheerID\";\n\nexport const FEEDBACK_FORM_URL =\n \"https://verify.sheerid.com/verification-support/feedback.html?token=\";\nexport const SUPPORT_URL = \"https://support.sheerid.com\";\nexport const CLOUDFLARE_PRIVACY_POLICY_URL = \"https://www.cloudflare.com/privacypolicy/\";\n\nexport const HTTP_REQUEST_TIMEOUT = 10000;\nexport const DEBOUNCE_TIMEOUT = 200;\n\nexport const inLightbox = \"inLightbox\";\n\nexport const AUTH_TOKEN_LENGTH = 6;\n\nexport const FIELD_IDS: FieldId[] = [\n \"firstName\",\n \"lastName\",\n \"memberId\",\n \"organization\",\n \"birthDate\",\n \"email\",\n \"phoneNumber\",\n \"postalCode\",\n \"address1\",\n \"city\",\n \"state\",\n \"dischargeDate\",\n \"activeDutyStartDate\",\n \"status\",\n \"statuses\",\n \"docUpload\",\n \"country\",\n \"smsCode\",\n \"socialSecurityNumber\",\n \"marketConsentValue\",\n \"carrierConsentValue\",\n \"driverLicenseNumber\",\n \"overrideCode\",\n \"ebtCardNumber\",\n \"organizationEmail\",\n \"authenticationCode\",\n];\n","/* eslint-disable max-classes-per-file */\nexport type Unsubscribe = () => void;\n\nclass PubSub<T = unknown, F extends Function = (data: T) => void> {\n private subscribers = new Set<F>();\n\n sub(fn: F): Unsubscribe {\n this.subscribers.add(fn);\n\n return () => this.subscribers.delete(fn);\n }\n\n pub(data: T) {\n this.subscribers.forEach((fn) => fn(data));\n }\n}\n\n/**\n * List of valid event args given `K`.\n */\nexport type EventArg<T, K extends keyof T> = T[K];\n\n/**\n * An event emitter class we can use to manage hooks or other emittable data.\n * Take a type argument of shape Record<eventName, callBackData>\n *\n * A classified version of the MIT licensed https://robinpokorny.github.io/dead-simple/\n * With some type safety inspiration from https://github.com/serviejs/events\n */\nexport class EventEmitter<T> {\n private events = new Map<keyof T, PubSub>();\n\n /**\n * Registers a listener that will be called when the named event is emitted\n * @returns An unsubscribe function that will turn off this listener.\n */\n on<K extends keyof T>(name: K, fn: (data: EventArg<T, K>) => void): Unsubscribe {\n if (!this.events.has(name)) this.events.set(name, new PubSub<EventArg<T, K>>());\n\n return this.events.get(name).sub(fn);\n }\n\n /**\n * Registers a listener that will be called a single time when the named event\n * is emitted\n * @returns An unsubscribe function that will turn off this listener.\n */\n once<K extends keyof T>(name: K, fn: (data: EventArg<T, K>) => void): Unsubscribe {\n const off = this.on(name, (data: EventArg<T, K>) => {\n off();\n return fn(data);\n });\n\n return off;\n }\n\n /**\n * Removes all event listeners for the given key\n * @returns void\n */\n off<K extends keyof T>(name: K) {\n this.events.delete(name);\n }\n\n /**\n * Used to emit events to all registered hook listeners\n *\n * @private\n */\n emit<K extends keyof T>(name: K, data: EventArg<T, K>) {\n if (this.events.has(name)) {\n this.events.get(name).pub(data);\n }\n }\n}\n","export const fadeInElements = (elements: HTMLElement[]) => {\n elements.forEach((element: HTMLElement) => {\n element.classList.add(\"fade-in\");\n });\n};\n\nexport const removeElement = (element: HTMLElement, transitionTimeout: number) => {\n element.classList.remove(\"fade-in\");\n window.setTimeout(() => {\n document.body.style.overflow = \"\";\n element.parentNode.removeChild(element);\n }, transitionTimeout);\n};\n\nexport const getVerificationUrl = (url: string): string => {\n const newUrl = new URL(url);\n const parentUrl = new URL(window.location.href);\n\n // Combine query parameters from parent window and provided url.\n // If duplicates, provided url parameters supercede.\n parentUrl.searchParams.forEach((value, key) => {\n if (!newUrl.searchParams.has(key)) {\n newUrl.searchParams.set(key, value);\n }\n });\n\n return newUrl.href;\n};\n","const iframeClassNames = {\n INLINE_IFRAME_CONTENT: \"sid-inline-iframe\",\n MODAL_WRAPPER: \"sid-modal__wrapper\",\n MODAL_IFRAME: \"sid-modal__iframe\",\n OVERLAY: \"sid-modal__overlay\",\n CLOSE_BUTTON: \"sid-modal__close-button\",\n CLOSE_TEXT: \"sid-modal__close-text\",\n CLOSE_ICON: \"sid-modal__close-icon\",\n};\n\nexport const iframeTitle = \"SheerID Verification Form\";\n\nexport const iframeConstants = {\n CLASS_NAMES: iframeClassNames,\n DEFAULT_MOBILE_THRESHOLD_WIDTH: 620,\n MODAL_OPACITY_TRANSITION_PERIOD: 300,\n};\n","import { logger } from \"@jslib/shared/utils/logger\";\nimport { InstallTypes, type InstallType } from \"@jslib/shared/utils/getInstallType\";\n\nimport { QUERY_STRING_INSTALL_PAGE_URL, QUERY_STRING_INSTALL_TYPE } from \"../../constants\";\nimport { type InstallPageEvent } from \"../frames/frameMessages\";\nimport type { HookEvents, Options, PostMessageAction, ViewModel } from \"../types/types\";\nimport { EventEmitter } from \"../hooks/eventEmitter\";\n\nimport { getVerificationUrl } from \"./utils\";\nimport { iframeConstants as constants, iframeTitle } from \"./constants\";\n\nexport type IframeOptions = {\n className: string;\n title: string;\n};\n\nexport const DEFAULT_OPTIONS: IframeOptions = {\n className: constants.CLASS_NAMES.INLINE_IFRAME_CONTENT,\n title: iframeTitle,\n};\n\nexport const assertValidFunction = (candidate: Function) => {\n if (typeof candidate !== \"function\") {\n throw new Error(`Expected type \"function\", but received ${typeof candidate}`);\n }\n};\n\nclass Iframe extends EventEmitter<HookEvents> {\n containerElement: HTMLElement;\n\n verificationUrl: URL;\n\n isMobileDevice: boolean;\n\n iframe: HTMLIFrameElement;\n\n verificationIframeUid: string;\n\n locale: string;\n\n hasLoaded: boolean = false;\n\n onLoadEvents: Function[] = [];\n\n onCleanupEvents: (() => void)[] = [];\n\n installType: InstallType = InstallTypes.cdnInlineIframe;\n\n constructor(containerElement: HTMLElement, url: string) {\n super();\n\n if (Iframe.isValidHttpUrl(url)) {\n this.containerElement = containerElement;\n this.verificationUrl = new URL(getVerificationUrl(url));\n this.verificationIframeUid = Iframe.createUniqueId();\n } else {\n logger.error(\"Invalid URL. Provide a proper URL: https://example.com/\", \"iframe url\");\n }\n }\n\n cleanup(): void {\n this.onCleanupEvents.forEach((callback) => callback());\n }\n\n static createUniqueId(): string {\n return Math.random().toString(36).substr(2, 9);\n }\n\n static isValidHttpUrl(urlString: string): boolean {\n try {\n const url = new URL(urlString);\n return url.protocol === \"http:\" || url.protocol === \"https:\";\n } catch {\n return false;\n }\n }\n\n createIframe(options: IframeOptions): HTMLIFrameElement {\n this.iframe = document.createElement(\"iframe\");\n this.iframe.classList.add(options.className);\n this.iframe.title = options.title;\n this.iframe.src = this.getIframeUrl();\n this.iframe.allow = \"camera *;microphone *;geolocation *;clipboard-read *;clipboard-write *\";\n this.iframe.onload = () => this.onLoad();\n return this.iframe;\n }\n\n getIframeUrl(): string {\n const url = new URL(this.verificationUrl);\n url.searchParams.set(\"verificationIframeUid\", this.verificationIframeUid);\n url.searchParams.set(QUERY_STRING_INSTALL_PAGE_URL, window.location.href);\n url.searchParams.set(QUERY_STRING_INSTALL_TYPE, this.installType);\n if (this.locale) {\n url.searchParams.set(\"locale\", this.locale);\n }\n return url.toString();\n }\n\n // If iFrame hasn't loaded yet, queue up the callback\n // otherwise call it immediately\n addOnLoadEvent(callback: Function) {\n try {\n assertValidFunction(callback);\n } catch (e) {\n logger.error(\"Invalid callback provided to iFrame.onLoad()\", \"iframe addOnLoadEvent\");\n return;\n }\n if (this.hasLoaded) {\n callback();\n } else {\n this.onLoadEvents.push(callback);\n }\n }\n\n onLoad() {\n this.hasLoaded = true;\n this.onLoadEvents.forEach((callback) => callback());\n }\n\n /**\n * Using this to add parent window message listeners gives us\n * - Event Cleanup for modals\n * - verification of origin, verificationIframeUid, and message data structure\n */\n addWindowMessageListener(actionCb: (action: PostMessageAction) => void): void {\n const listener = (ev: MessageEvent) => {\n if (this.verificationUrl.origin !== ev.origin) {\n return;\n }\n\n if (ev.data.verificationIframeUid !== this.verificationIframeUid) {\n return;\n }\n\n if (ev.data.action && ev.data.action.type) {\n actionCb(ev.data.action);\n } else if (ev.data.action && ev.data.height) {\n // Older versions of the jslib send the full action object as the message\n actionCb(ev.data);\n }\n };\n\n window.addEventListener(\"message\", listener);\n this.onCleanupEvents.push(() => window.removeEventListener(\"message\", listener));\n }\n\n addActionListener() {\n this.addWindowMessageListener((messageAction) => {\n if (messageAction.type === \"hook\") {\n this.emit(messageAction.hook.name, messageAction.hook.data);\n }\n\n if (\n (messageAction.action && messageAction.action === \"updateHeight\") ||\n messageAction.type === \"updateHeight\"\n ) {\n // UX-1129: If we are getting height updates, turn off scrolling for\n // the iframe. This prevents browsers (Safari in particular) from\n // re-wrapping because of different widths and constantly changing\n // it's own height. `scrolling = \"no\"` is deprecated, but supported in\n // all browsers and fixes the problem well.\n this.iframe.scrolling = \"no\";\n this.iframe.style.height = `${messageAction.height}px`;\n }\n });\n }\n\n setViewModel(viewModel: Partial<ViewModel> | ViewModel) {\n const message: InstallPageEvent = {\n action: \"setViewModel\",\n viewModel,\n };\n\n this.addOnLoadEvent(() => {\n this.iframe.contentWindow.postMessage(message, this.verificationUrl.origin);\n });\n }\n\n setOptions(options: Options) {\n const message: InstallPageEvent = {\n action: \"setOptions\",\n options,\n };\n\n // HC-1181: Special casing options.locale to set locale as as QSP if the frame hasn't fully loaded yet.\n // This causes a re-load, but in most cases would happen within milliseconds of the frame initialization.\n // It prevents the race conditions that were failing to set the locale properly on load.\n // If the associated playwright tests passes without this is can be removed.\n if (!this.hasLoaded && options.locale) {\n this.locale = options.locale;\n const newUrl = this.getIframeUrl();\n if (newUrl !== this.iframe.src) {\n this.iframe.src = newUrl;\n }\n }\n\n this.addOnLoadEvent(() => {\n this.iframe.contentWindow.postMessage(message, this.verificationUrl.origin);\n });\n }\n\n setInstallType(installType: InstallType) {\n this.installType = installType;\n }\n\n init(createIframe: boolean = true): void {\n if (createIframe) {\n this.createIframe(DEFAULT_OPTIONS);\n }\n\n this.addActionListener();\n this.containerElement.appendChild(this.iframe);\n }\n}\n\nexport default Iframe;\n","import { InstallTypes } from \"@jslib/shared/utils/getInstallType\";\n\nimport { type IframeUserConfiguration, type Options, type ViewModel } from \"../types/types\";\n\nimport { iframeConstants as constants, iframeTitle } from \"./constants\";\nimport Iframe from \"./iframe\";\nimport { fadeInElements, removeElement, getVerificationUrl } from \"./utils\";\n\nclass Modal {\n verificationUrl: string;\n\n redirectOnMobile: boolean;\n\n overlay: HTMLElement;\n\n wrapper: HTMLElement;\n\n iframeInstance: Iframe;\n\n on: typeof this.iframeInstance.on;\n\n once: typeof this.iframeInstance.once;\n\n isMobileDevice: boolean;\n\n closeButtonText: string;\n\n closeButton: HTMLButtonElement;\n\n stopPropagation: boolean;\n\n constructor(url: string, userConfig: IframeUserConfiguration) {\n const thresholdConfig = userConfig.mobileThreshold\n ? userConfig.mobileThreshold\n : constants.DEFAULT_MOBILE_THRESHOLD_WIDTH;\n this.verificationUrl = getVerificationUrl(url);\n this.redirectOnMobile = userConfig.mobileRedirect || false;\n this.isMobileDevice = window.document.body.clientWidth <= Number(thresholdConfig);\n this.closeButtonText = userConfig.closeButtonText ? userConfig.closeButtonText : \"\";\n this.closeButton = null;\n this.stopPropagation = userConfig.stopPropagation || false;\n this.overlay = Modal.createOverlay();\n this.wrapper = this.createWrapper();\n this.addFocusListener();\n }\n\n createCloseBtn() {\n this.closeButton = document.createElement(\"button\");\n this.closeButton.classList.add(constants.CLASS_NAMES.CLOSE_BUTTON);\n this.closeButton.setAttribute(\"aria-label\", \"close\");\n\n if (this.closeButtonText) {\n const closeTxt = document.createElement(\"div\");\n closeTxt.classList.add(constants.CLASS_NAMES.CLOSE_TEXT);\n closeTxt.innerHTML = this.closeButtonText;\n this.closeButton.appendChild(closeTxt);\n }\n\n const closeIcon = document.createElement(\"span\");\n closeIcon.classList.add(constants.CLASS_NAMES.CLOSE_ICON);\n closeIcon.setAttribute(\"role\", \"img\");\n this.closeButton.appendChild(closeIcon);\n\n this.closeButton.addEventListener(\"click\", (e) => {\n e.preventDefault();\n if (this.stopPropagation) {\n e.stopPropagation();\n }\n this.closeModal();\n });\n return this.closeButton;\n }\n\n closeModal() {\n window.removeEventListener(\"popstate\", this.popStateEventHandler);\n const transitionTimeout = constants.MODAL_OPACITY_TRANSITION_PERIOD;\n removeElement(this.overlay, transitionTimeout);\n removeElement(this.wrapper, transitionTimeout);\n this.iframeInstance.cleanup();\n }\n\n static createOverlay(): HTMLElement {\n const overlay = document.createElement(\"div\");\n overlay.classList.add(constants.CLASS_NAMES.OVERLAY);\n return overlay;\n }\n\n createWrapper(): HTMLElement {\n const wrapper = document.createElement(\"div\");\n wrapper.classList.add(constants.CLASS_NAMES.MODAL_WRAPPER);\n wrapper.tabIndex = -1;\n wrapper.setAttribute(\"role\", \"dialog\");\n wrapper.setAttribute(\"aria-modal\", \"true\");\n wrapper.setAttribute(\"aria-label\", iframeTitle);\n wrapper.appendChild(this.createCloseBtn());\n\n this.iframeInstance = new Iframe(wrapper, this.verificationUrl);\n this.iframeInstance.setInstallType(InstallTypes.cdnModalIframe);\n\n // pass `on` & `once` through to the iframe instance to allow hook listeners.\n this.on = this.iframeInstance.on.bind(this.iframeInstance);\n this.once = this.iframeInstance.once.bind(this.iframeInstance);\n\n const options = {\n className: constants.CLASS_NAMES.MODAL_IFRAME,\n title: iframeTitle,\n };\n this.iframeInstance.createIframe(options);\n wrapper.appendChild(this.iframeInstance.iframe);\n return wrapper;\n }\n\n popStateEventHandler = () => this.closeModal();\n\n addPopStateListener() {\n window.addEventListener(\"popstate\", this.popStateEventHandler);\n }\n\n addFocusListener() {\n this.iframeInstance.addWindowMessageListener((action) => {\n if (action.type === \"focus\" && action.focusOn === \"firstElement\") {\n this.closeButton.focus();\n }\n });\n\n document.addEventListener(\"keydown\", (e) => {\n const isTabPressed: boolean = e.key === \"Tab\";\n if (!isTabPressed) {\n return;\n }\n if (e.shiftKey && document.activeElement === this.closeButton) {\n this.iframeInstance.iframe.contentWindow.postMessage({ focusOn: \"lastElement\" }, \"*\");\n e.preventDefault();\n }\n });\n }\n\n isInLightboxPostMessage(inLightbox: string) {\n this.iframeInstance.iframe.contentWindow.postMessage({ isInLightBox: inLightbox }, \"*\");\n }\n\n displayModal() {\n this.iframeInstance.iframe.addEventListener(\"load\", () => {\n fadeInElements([this.overlay, this.wrapper]);\n document.body.style.overflow = \"hidden\";\n this.isInLightboxPostMessage(\"true\");\n });\n\n document.body.appendChild(this.overlay);\n document.body.appendChild(this.wrapper);\n this.addPopStateListener();\n }\n\n init() {\n if (this.redirectOnMobile && this.isMobileDevice) {\n window.top.location.href = this.verificationUrl;\n } else {\n this.displayModal();\n this.iframeInstance.init(false); // false so we don't create iframe again, it's already created in createWrapper\n }\n }\n\n setViewModel(viewModel: Partial<ViewModel> | ViewModel) {\n this.iframeInstance.setViewModel(viewModel);\n }\n\n setOptions(options: Options) {\n this.iframeInstance.setOptions(options);\n }\n}\n\nexport default Modal;\n","import { type IframeUserConfiguration } from \"../types/types\";\n\nimport Iframe from \"./iframe\";\nimport Modal from \"./modal\";\n\nimport \"../../scss/sheerid-iframe.scss\";\n\n// Called from the parent page to load the jslib within an iFrame NOT in a modal, but in the flow of a page. e.g. between two divs\nexport function loadInlineIframe(containerElement: HTMLElement, url: string): Iframe {\n const iframe = new Iframe(containerElement, url);\n iframe.init();\n return iframe;\n}\n\n// Called from the parent page to load the jslib within an iFrame in a modal\nexport function loadInModal(url: string, userConfig: IframeUserConfiguration = {}) {\n const modal = new Modal(url, userConfig);\n modal.init();\n return modal;\n}\n\nexport default { loadInModal, loadInlineIframe };\n"],"mappings":"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"}