@sheerid/jslib 1.96.0 → 1.99.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 (203) hide show
  1. package/es5/Tmetrix.bundle.js +5 -5
  2. package/es5/messages_ar.bundle.js +5 -5
  3. package/es5/messages_bg.bundle.js +5 -5
  4. package/es5/messages_cs.bundle.js +5 -5
  5. package/es5/messages_da.bundle.js +5 -5
  6. package/es5/messages_de.bundle.js +5 -5
  7. package/es5/messages_el.bundle.js +5 -5
  8. package/es5/messages_en-GB.bundle.js +5 -5
  9. package/es5/messages_es-ES.bundle.js +5 -5
  10. package/es5/messages_es.bundle.js +5 -5
  11. package/es5/messages_fi.bundle.js +5 -5
  12. package/es5/messages_fr-CA.bundle.js +5 -5
  13. package/es5/messages_fr.bundle.js +5 -5
  14. package/es5/messages_ga.bundle.js +5 -5
  15. package/es5/messages_hr.bundle.js +5 -5
  16. package/es5/messages_hu.bundle.js +5 -5
  17. package/es5/messages_id.bundle.js +5 -5
  18. package/es5/messages_it.bundle.js +5 -5
  19. package/es5/messages_iw.bundle.js +5 -5
  20. package/es5/messages_ja.bundle.js +5 -5
  21. package/es5/messages_ko.bundle.js +5 -5
  22. package/es5/messages_lo.bundle.js +5 -5
  23. package/es5/messages_lt.bundle.js +5 -5
  24. package/es5/messages_ms.bundle.js +5 -5
  25. package/es5/messages_nl.bundle.js +5 -5
  26. package/es5/messages_no.bundle.js +5 -5
  27. package/es5/messages_pl.bundle.js +5 -5
  28. package/es5/messages_pt-BR.bundle.js +5 -5
  29. package/es5/messages_pt.bundle.js +5 -5
  30. package/es5/messages_ru.bundle.js +5 -5
  31. package/es5/messages_sk.bundle.js +5 -5
  32. package/es5/messages_sl.bundle.js +5 -5
  33. package/es5/messages_sr.bundle.js +5 -5
  34. package/es5/messages_sv.bundle.js +5 -5
  35. package/es5/messages_th.bundle.js +5 -5
  36. package/es5/messages_tr.bundle.js +5 -5
  37. package/es5/messages_zh-HK.bundle.js +5 -5
  38. package/es5/messages_zh.bundle.js +5 -5
  39. package/es6/{ar-5460f3d0.es.js → ar-aa7923c0.es.js} +2 -2
  40. package/es6/{cs-e565db80.es.js.map → ar-aa7923c0.es.js.map} +1 -1
  41. package/es6/{bg-281f24b3.es.js → bg-7716e1e1.es.js} +2 -2
  42. package/es6/{ar-5460f3d0.es.js.map → bg-7716e1e1.es.js.map} +1 -1
  43. package/es6/{cs-e565db80.es.js → cs-0102f276.es.js} +2 -2
  44. package/es6/{da-3c705e46.es.js.map → cs-0102f276.es.js.map} +1 -1
  45. package/es6/{da-3c705e46.es.js → da-7ea93323.es.js} +2 -2
  46. package/es6/{bg-281f24b3.es.js.map → da-7ea93323.es.js.map} +1 -1
  47. package/es6/{de-537321c2.es.js → de-37bf2739.es.js} +2 -2
  48. package/es6/de-37bf2739.es.js.map +1 -0
  49. package/es6/{el-c9990bcf.es.js → el-04fa4103.es.js} +2 -2
  50. package/es6/el-04fa4103.es.js.map +1 -0
  51. package/es6/{en-GB-e9dcfb39.es.js → en-GB-8acf43be.es.js} +2 -2
  52. package/es6/{en-GB-e9dcfb39.es.js.map → en-GB-8acf43be.es.js.map} +1 -1
  53. package/es6/{es-d1c5b93d.es.js → es-5112b32e.es.js} +2 -2
  54. package/es6/es-5112b32e.es.js.map +1 -0
  55. package/es6/{es-ES-85e3b001.es.js → es-ES-c906634a.es.js} +2 -2
  56. package/es6/{es-ES-85e3b001.es.js.map → es-ES-c906634a.es.js.map} +1 -1
  57. package/es6/{fi-6d449d20.es.js → fi-2277ea1e.es.js} +2 -2
  58. package/es6/fi-2277ea1e.es.js.map +1 -0
  59. package/es6/{fr-CA-22a7b622.es.js → fr-CA-bfca14f3.es.js} +2 -2
  60. package/es6/{fr-CA-22a7b622.es.js.map → fr-CA-bfca14f3.es.js.map} +1 -1
  61. package/es6/{fr-2173007f.es.js → fr-b9d3dc58.es.js} +2 -2
  62. package/es6/fr-b9d3dc58.es.js.map +1 -0
  63. package/es6/{ga-ea05536c.es.js → ga-4bf9710e.es.js} +2 -2
  64. package/es6/ga-4bf9710e.es.js.map +1 -0
  65. package/es6/{hr-744c126e.es.js → hr-ed9b974f.es.js} +2 -2
  66. package/es6/hr-ed9b974f.es.js.map +1 -0
  67. package/es6/{hu-04580e0a.es.js → hu-a36c8244.es.js} +2 -2
  68. package/es6/hu-a36c8244.es.js.map +1 -0
  69. package/es6/{id-b071e0a1.es.js → id-5896c7f1.es.js} +2 -2
  70. package/es6/id-5896c7f1.es.js.map +1 -0
  71. package/es6/{it-9e7905e9.es.js → it-7c28e015.es.js} +2 -2
  72. package/es6/it-7c28e015.es.js.map +1 -0
  73. package/es6/{iw-b55daf23.es.js → iw-e61ca28b.es.js} +2 -2
  74. package/es6/iw-e61ca28b.es.js.map +1 -0
  75. package/es6/{ja-c2c69eac.es.js → ja-5e5d13be.es.js} +2 -2
  76. package/es6/ja-5e5d13be.es.js.map +1 -0
  77. package/es6/{ko-057bdc1e.es.js → ko-e4c5d44d.es.js} +2 -2
  78. package/es6/ko-e4c5d44d.es.js.map +1 -0
  79. package/es6/{lo-28326ffd.es.js → lo-3d03c534.es.js} +2 -2
  80. package/es6/lo-3d03c534.es.js.map +1 -0
  81. package/es6/{lt-f8a551a7.es.js → lt-99c6971e.es.js} +2 -2
  82. package/es6/lt-99c6971e.es.js.map +1 -0
  83. package/es6/{ms-fdd8472d.es.js → ms-e537ec43.es.js} +2 -2
  84. package/es6/ms-e537ec43.es.js.map +1 -0
  85. package/es6/{nl-6659a0b5.es.js → nl-162d7a39.es.js} +2 -2
  86. package/es6/nl-162d7a39.es.js.map +1 -0
  87. package/es6/{no-6038f686.es.js → no-53861522.es.js} +2 -2
  88. package/es6/no-53861522.es.js.map +1 -0
  89. package/es6/{pl-efd4f6a9.es.js → pl-b2b55c9f.es.js} +2 -2
  90. package/es6/pl-b2b55c9f.es.js.map +1 -0
  91. package/es6/{pt-b63dcda6.es.js → pt-61825a2b.es.js} +2 -2
  92. package/es6/pt-61825a2b.es.js.map +1 -0
  93. package/es6/{pt-BR-e6fa02bd.es.js → pt-BR-a9efa2ab.es.js} +2 -2
  94. package/es6/{pt-BR-e6fa02bd.es.js.map → pt-BR-a9efa2ab.es.js.map} +1 -1
  95. package/es6/{ru-d458eb7d.es.js → ru-cba590b5.es.js} +2 -2
  96. package/es6/ru-cba590b5.es.js.map +1 -0
  97. package/es6/{sk-94bb280e.es.js → sk-a190ec18.es.js} +2 -2
  98. package/es6/sk-a190ec18.es.js.map +1 -0
  99. package/es6/{sl-1b8b2783.es.js → sl-fb23d48f.es.js} +2 -2
  100. package/es6/sl-fb23d48f.es.js.map +1 -0
  101. package/es6/{sr-2bdcef9d.es.js → sr-07ed6a42.es.js} +2 -2
  102. package/es6/sr-07ed6a42.es.js.map +1 -0
  103. package/es6/{sv-ff0880c0.es.js → sv-bd7e69b0.es.js} +2 -2
  104. package/es6/sv-bd7e69b0.es.js.map +1 -0
  105. package/es6/{th-22c1fd69.es.js → th-ee9b4c94.es.js} +2 -2
  106. package/es6/th-ee9b4c94.es.js.map +1 -0
  107. package/es6/{tr-37531685.es.js → tr-133c4315.es.js} +2 -2
  108. package/es6/tr-133c4315.es.js.map +1 -0
  109. package/es6/{zh-44805cba.es.js → zh-52690171.es.js} +2 -2
  110. package/es6/zh-52690171.es.js.map +1 -0
  111. package/es6/{zh-HK-287fa77c.es.js → zh-HK-bea37a07.es.js} +2 -2
  112. package/es6/zh-HK-bea37a07.es.js.map +1 -0
  113. package/localized-messages/ar.json +1 -1
  114. package/localized-messages/bg.json +1 -1
  115. package/localized-messages/cs.json +1 -1
  116. package/localized-messages/da.json +1 -1
  117. package/localized-messages/de.json +1 -1
  118. package/localized-messages/el.json +1 -1
  119. package/localized-messages/en-GB.json +1 -1
  120. package/localized-messages/en-US.json +19 -19
  121. package/localized-messages/es-ES.json +1 -1
  122. package/localized-messages/es.json +1 -1
  123. package/localized-messages/fi.json +1 -1
  124. package/localized-messages/fr-CA.json +1 -1
  125. package/localized-messages/fr.json +1 -1
  126. package/localized-messages/ga.json +1 -1
  127. package/localized-messages/hr.json +1 -1
  128. package/localized-messages/hu.json +1 -1
  129. package/localized-messages/id.json +1 -1
  130. package/localized-messages/it.json +1 -1
  131. package/localized-messages/iw.json +1 -1
  132. package/localized-messages/ja.json +1 -1
  133. package/localized-messages/ko.json +1 -1
  134. package/localized-messages/lo.json +1 -1
  135. package/localized-messages/lt.json +1 -1
  136. package/localized-messages/ms.json +1 -1
  137. package/localized-messages/nl.json +1 -1
  138. package/localized-messages/no.json +1 -1
  139. package/localized-messages/pl.json +1 -1
  140. package/localized-messages/pt-BR.json +1 -1
  141. package/localized-messages/pt.json +1 -1
  142. package/localized-messages/ru.json +1 -1
  143. package/localized-messages/sk.json +1 -1
  144. package/localized-messages/sl.json +1 -1
  145. package/localized-messages/sr.json +1 -1
  146. package/localized-messages/sv.json +1 -1
  147. package/localized-messages/th.json +1 -1
  148. package/localized-messages/tr.json +1 -1
  149. package/localized-messages/zh-HK.json +1 -1
  150. package/localized-messages/zh.json +1 -1
  151. package/manifest.json +48 -48
  152. package/package.json +1 -1
  153. package/sheerid-requestOrg.css +5 -5
  154. package/sheerid-requestOrg.css.map +1 -1
  155. package/sheerid-requestOrg.js +14 -14
  156. package/sheerid-requestOrg.js.map +1 -1
  157. package/sheerid-utils.js +9 -9
  158. package/sheerid-utils.js.map +1 -1
  159. package/sheerid.css +5 -5
  160. package/sheerid.css.map +1 -1
  161. package/sheerid.js +10 -10
  162. package/sheerid.js.map +1 -1
  163. package/sheerides6.js +342 -273
  164. package/sheerides6.js.map +1 -1
  165. package/src/components/CopyToClipboard/CopyToClipboardComponent.d.ts +1 -1
  166. package/src/lib/ServerApi/TestingRouteOverrides.d.ts +1 -0
  167. package/src/lib/VerificationService/ViewModel.d.ts +3 -2
  168. package/src/lib/frames/frameMessages.d.ts +7 -7
  169. package/src/lib/installScript/iframe.d.ts +6 -0
  170. package/src/lib/installScript/index.d.ts +4 -2
  171. package/src/lib/installScript/modal.d.ts +4 -1
  172. package/src/lib/types/types.d.ts +4 -1
  173. package/src/lib/utils/routing/Url.d.ts +1 -0
  174. package/types-reference.zip +0 -0
  175. package/es6/de-537321c2.es.js.map +0 -1
  176. package/es6/el-c9990bcf.es.js.map +0 -1
  177. package/es6/es-d1c5b93d.es.js.map +0 -1
  178. package/es6/fi-6d449d20.es.js.map +0 -1
  179. package/es6/fr-2173007f.es.js.map +0 -1
  180. package/es6/ga-ea05536c.es.js.map +0 -1
  181. package/es6/hr-744c126e.es.js.map +0 -1
  182. package/es6/hu-04580e0a.es.js.map +0 -1
  183. package/es6/id-b071e0a1.es.js.map +0 -1
  184. package/es6/it-9e7905e9.es.js.map +0 -1
  185. package/es6/iw-b55daf23.es.js.map +0 -1
  186. package/es6/ja-c2c69eac.es.js.map +0 -1
  187. package/es6/ko-057bdc1e.es.js.map +0 -1
  188. package/es6/lo-28326ffd.es.js.map +0 -1
  189. package/es6/lt-f8a551a7.es.js.map +0 -1
  190. package/es6/ms-fdd8472d.es.js.map +0 -1
  191. package/es6/nl-6659a0b5.es.js.map +0 -1
  192. package/es6/no-6038f686.es.js.map +0 -1
  193. package/es6/pl-efd4f6a9.es.js.map +0 -1
  194. package/es6/pt-b63dcda6.es.js.map +0 -1
  195. package/es6/ru-d458eb7d.es.js.map +0 -1
  196. package/es6/sk-94bb280e.es.js.map +0 -1
  197. package/es6/sl-1b8b2783.es.js.map +0 -1
  198. package/es6/sr-2bdcef9d.es.js.map +0 -1
  199. package/es6/sv-ff0880c0.es.js.map +0 -1
  200. package/es6/th-22c1fd69.es.js.map +0 -1
  201. package/es6/tr-37531685.es.js.map +0 -1
  202. package/es6/zh-44805cba.es.js.map +0 -1
  203. package/es6/zh-HK-287fa77c.es.js.map +0 -1
package/sheerides6.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import React, { useRef, useCallback, useEffect, useMemo, cloneElement, Component, useLayoutEffect, useReducer, PureComponent, useState, forwardRef, useImperativeHandle, Fragment as Fragment$4, Suspense as Suspense$4 } from 'react';
2
- import { FormattedHTMLMessage, injectIntl, FormattedMessage, IntlProvider } from 'react-intl';
2
+ import { FormattedHTMLMessage, injectIntl, IntlProvider } from 'react-intl';
3
3
  import 'react-intl/locale-data/en.js';
4
4
  import ReactDOMServer from 'react-dom/server';
5
5
 
@@ -886,7 +886,7 @@ var copyToClipboard = copy;
886
886
  * Wrap a button or link with copy-to-clipboard behavior.
887
887
  *
888
888
  * Example Use:
889
- <CopyToClipboard textToCopy={htmlSource} notificationText={<FormattedMessage id="copied" />}>
889
+ <CopyToClipboard textToCopy={htmlSource} notificationText={<FormattedHTMLMessage id="copied" />}>
890
890
  <LinkButton ... />
891
891
  </CopyToClipboard>
892
892
  */
@@ -921,7 +921,7 @@ class CopyToClipboard extends React.Component {
921
921
  const { isShowing } = this.state;
922
922
  const { notificationText, children } = this.props;
923
923
  return (React.createElement("div", { className: "sid-to-clipboard" },
924
- React.createElement("div", { className: `${isShowing ? classNameVisible : classNameHidden}`, role: "alert", "aria-live": "polite", "aria-label": "Copied" }, notificationText || "Copied"),
924
+ isShowing && (React.createElement("div", { className: `${isShowing ? classNameVisible : classNameHidden}`, role: "alert", "aria-live": "polite" }, notificationText || "Copied")),
925
925
  React.createElement("div", { onClick: this.doCopy, onKeyPress: this.doCopy, role: "button", tabIndex: 0, className: "sid-to-clipboard__clickable-text sid-link" }, children || "Copy")));
926
926
  }
927
927
  }
@@ -931,6 +931,7 @@ const getQueryParamsFromUrl = (url) => {
931
931
  const newUrl = new URL(url || window.location.toString());
932
932
  return new URLSearchParams(newUrl.search.slice(1));
933
933
  };
934
+ const getQueryParam = (paramKey, url) => getQueryParamsFromUrl(url).get(paramKey);
934
935
  const getVerificationIdFromQueryString = (queryString) => {
935
936
  const verificationIdQueryParameter = "verificationId";
936
937
  const queryStringParameters = new URLSearchParams(queryString);
@@ -1178,6 +1179,8 @@ const defaultOptions = {
1178
1179
  verificationId: undefined,
1179
1180
  minimumOrganizationSearchLength: DEFAULT_MINIMUM_ORG_SEARCH_VALUE_LENGTH,
1180
1181
  httpRequestTimeout: HTTP_REQUEST_TIMEOUT,
1182
+ hideTestModeFlag: false,
1183
+ hideMilitaryFamilyAcceptableUploads: true,
1181
1184
  };
1182
1185
  let options$1 = { ...defaultOptions };
1183
1186
  const getOptions = () => options$1;
@@ -1337,6 +1340,15 @@ const setOptions = (newOptions) => {
1337
1340
  options$1.privacyPolicyUrl = newOptions.privacyPolicyUrl;
1338
1341
  logger.info('option "privacyPolicyUrl" set to', options$1.privacyPolicyUrl);
1339
1342
  }
1343
+ if (newOptions.hasOwnProperty("hideTestModeFlag") || getQueryParam("hideTestModeFlag")) {
1344
+ options$1.hideTestModeFlag =
1345
+ newOptions.hideTestModeFlag || getQueryParam("hideTestModeFlag") === "true";
1346
+ logger.info('option "hideTestModeFlag" set to', options$1.hideTestModeFlag);
1347
+ }
1348
+ if (newOptions.hasOwnProperty("hideMilitaryFamilyAcceptableUploads")) {
1349
+ options$1.hideMilitaryFamilyAcceptableUploads = newOptions.hideMilitaryFamilyAcceptableUploads;
1350
+ logger.info('option "hideMilitaryFamilyAcceptableUploads" set to', options$1.hideMilitaryFamilyAcceptableUploads);
1351
+ }
1340
1352
  };
1341
1353
 
1342
1354
  class ResponseTimeLogger {
@@ -1816,15 +1828,15 @@ var enUSMessages = {
1816
1828
  "defaultMessages.VETERAN": "Military Veteran or Retiree",
1817
1829
  "defaultMessages.VETERINARIAN": "Veterinarian",
1818
1830
  "defaultMessages.address": "Address",
1819
- "defaultMessages.addressPlaceholder": "Address*",
1831
+ "defaultMessages.addressPlaceholder": "Address",
1820
1832
  "defaultMessages.birthDate": "Date of birth",
1821
1833
  "defaultMessages.branchOfService": "Branch of service",
1822
- "defaultMessages.branchOfServicePlaceholder": "Branch Of Service*",
1834
+ "defaultMessages.branchOfServicePlaceholder": "Branch Of Service",
1823
1835
  "defaultMessages.changeLanguage": "Change language",
1824
1836
  "defaultMessages.city": "City",
1825
- "defaultMessages.cityPlaceholder": "City*",
1837
+ "defaultMessages.cityPlaceholder": "City",
1826
1838
  "defaultMessages.company": "Company",
1827
- "defaultMessages.companyPlaceholder": "Company*",
1839
+ "defaultMessages.companyPlaceholder": "Company",
1828
1840
  "defaultMessages.copied": "Copied",
1829
1841
  "defaultMessages.countries.AD": "Andorra",
1830
1842
  "defaultMessages.countries.AE": "United Arab Emirates",
@@ -2065,7 +2077,7 @@ var enUSMessages = {
2065
2077
  "defaultMessages.countries.ZM": "Zambia",
2066
2078
  "defaultMessages.countries.ZW": "Zimbabwe",
2067
2079
  "defaultMessages.country": "Country",
2068
- "defaultMessages.countryPlaceholder": "Country*",
2080
+ "defaultMessages.countryPlaceholder": "Country",
2069
2081
  "defaultMessages.dateTime.20_MIN": "20 minutes",
2070
2082
  "defaultMessages.dateTime.24_HRS": "24 hours",
2071
2083
  "defaultMessages.dateTime.2_DAY": "2 days",
@@ -2093,10 +2105,10 @@ var enUSMessages = {
2093
2105
  "defaultMessages.dateTime.year": "Year",
2094
2106
  "defaultMessages.dischargeDate": "Discharge date",
2095
2107
  "defaultMessages.driverLicenseNumber": "Driver license number",
2096
- "defaultMessages.driverLicenseNumberPlaceholder": "Driver license number*",
2108
+ "defaultMessages.driverLicenseNumberPlaceholder": "Driver license number",
2097
2109
  "defaultMessages.driverLicenseState": "Driver license state",
2098
2110
  "defaultMessages.emailAddress": "Email address",
2099
- "defaultMessages.emailAddressPlaceholder": "Email address*",
2111
+ "defaultMessages.emailAddressPlaceholder": "Email address",
2100
2112
  "defaultMessages.error": "Error",
2101
2113
  "defaultMessages.errorId.apiRateLimitExceeded": "Unable to process your request at this time, please try again later",
2102
2114
  "defaultMessages.errorId.dischargeDateBeforeBirthDate": "Discharge Date before birthdate",
@@ -2159,7 +2171,7 @@ var enUSMessages = {
2159
2171
  "defaultMessages.errorId.unsupportedDocMimeType": "One or more files is an unsupported format",
2160
2172
  "defaultMessages.errorId.verificationLimitExceeded": "We're glad you're enthusiastic, but it looks like you've already redeemed or attempted to redeem this offer.",
2161
2173
  "defaultMessages.firstName": "First name",
2162
- "defaultMessages.firstNamePlaceholder": "First name*",
2174
+ "defaultMessages.firstNamePlaceholder": "First name",
2163
2175
  "defaultMessages.firstResponderInfoShared": "Information entered here will be used for verification purposes. ",
2164
2176
  "defaultMessages.footerText": "By submitting the personal information above, I acknowledge that my personal information is being collected under the <privacyPolicy>privacy policy</privacyPolicy> of the business from which I am seeking a discount, and I understand that my personal information will be shared with SheerID as a processor/third-party service provider in order for SheerID to confirm my eligibility for a special offer. <aboutSheerID>More about SheerID</aboutSheerID>.",
2165
2177
  "defaultMessages.getHelp": "Get help",
@@ -2169,7 +2181,7 @@ var enUSMessages = {
2169
2181
  "defaultMessages.infoShared2": ". I understand that my information will be shared with {companyName}. ",
2170
2182
  "defaultMessages.informationTransferredToUS": "Your information will be transferred to the United States and will be treated according to SheerID’s privacy policy.",
2171
2183
  "defaultMessages.lastName": "Last name",
2172
- "defaultMessages.lastNamePlaceholder": "Last name*",
2184
+ "defaultMessages.lastNamePlaceholder": "Last name",
2173
2185
  "defaultMessages.limitExceededError": "Verification Limit Exceeded",
2174
2186
  "defaultMessages.loading": "Loading...",
2175
2187
  "defaultMessages.locales.ar": "Arabic",
@@ -2212,7 +2224,7 @@ var enUSMessages = {
2212
2224
  "defaultMessages.locales.zh-HK": "Chinese (Hong Kong)",
2213
2225
  "defaultMessages.lowRewardPool": "<span class='sid-fire-emoji'>&#128293;</span> Only {offersRemaining} offers left!",
2214
2226
  "defaultMessages.memberId": "ID Number",
2215
- "defaultMessages.memberIdPlaceholder": "ID Number*",
2227
+ "defaultMessages.memberIdPlaceholder": "ID Number",
2216
2228
  "defaultMessages.militaryFamilyCardNote": "Note: this offer is only available to military family members with a Dependent ID card.",
2217
2229
  "defaultMessages.militaryInfoShared": "Information entered here will be used for verification purposes. ",
2218
2230
  "defaultMessages.militaryStatus": "Military status",
@@ -2220,7 +2232,7 @@ var enUSMessages = {
2220
2232
  "defaultMessages.optIn": "Yes, send me {company} marketing communications about exclusive sales, special offers, latest products and more",
2221
2233
  "defaultMessages.optional": "Optional",
2222
2234
  "defaultMessages.organization": "Organization",
2223
- "defaultMessages.organizationPlaceholder": "Organization*",
2235
+ "defaultMessages.organizationPlaceholder": "Organization",
2224
2236
  "defaultMessages.personalInformation": "Personal Information",
2225
2237
  "defaultMessages.personalOrSchoolIsFine": "Personal or school email is fine",
2226
2238
  "defaultMessages.phoneNumber": "Mobile Number",
@@ -2230,7 +2242,7 @@ var enUSMessages = {
2230
2242
  "defaultMessages.phoneUsPlaceholder": "555-555-5555",
2231
2243
  "defaultMessages.postalCode": "Postal code",
2232
2244
  "defaultMessages.postalCodeExplanation": "Use the location on file with your licensing body",
2233
- "defaultMessages.postalCodePlaceholder": "Postal code*",
2245
+ "defaultMessages.postalCodePlaceholder": "Postal code",
2234
2246
  "defaultMessages.poweredBy": "Verification services powered by SheerID",
2235
2247
  "defaultMessages.privacyPolicy": "Privacy Policy",
2236
2248
  "defaultMessages.proceed": "Proceed",
@@ -2238,13 +2250,13 @@ var enUSMessages = {
2238
2250
  "defaultMessages.requiredFields": "All fields are required",
2239
2251
  "defaultMessages.school": "School",
2240
2252
  "defaultMessages.schoolName": "University / College name",
2241
- "defaultMessages.schoolNamePlaceholder": "University / College name*",
2253
+ "defaultMessages.schoolNamePlaceholder": "University / College name",
2242
2254
  "defaultMessages.sheeridFaqs": "SheerID FAQs",
2243
- "defaultMessages.smsCodePlaceholder": "SMS Code*",
2255
+ "defaultMessages.smsCodePlaceholder": "SMS Code",
2244
2256
  "defaultMessages.ssn": "Social Security Number",
2245
2257
  "defaultMessages.ssnPlaceholder": "000-00-0000",
2246
2258
  "defaultMessages.state": "State",
2247
- "defaultMessages.statePlaceholder": "State*",
2259
+ "defaultMessages.statePlaceholder": "State",
2248
2260
  "defaultMessages.states.AK": "Alaska",
2249
2261
  "defaultMessages.states.AL": "Alabama",
2250
2262
  "defaultMessages.states.AR": "Arkansas",
@@ -2297,7 +2309,7 @@ var enUSMessages = {
2297
2309
  "defaultMessages.states.WV": "West Virginia",
2298
2310
  "defaultMessages.states.WY": "Wyoming",
2299
2311
  "defaultMessages.status": "Status",
2300
- "defaultMessages.statusPlaceholder": "Status*",
2312
+ "defaultMessages.statusPlaceholder": "Status",
2301
2313
  "defaultMessages.step.collectMedicalPersonalInfo.autorisationsIdExplanation": "Your Professional Membership Registration Number",
2302
2314
  "defaultMessages.step.collectMedicalPersonalInfo.autorisationsIdLabel": "Registration Number",
2303
2315
  "defaultMessages.step.collectMedicalPersonalInfo.gbrNummerExplanation": "Your Professional Membership Registration Number",
@@ -2495,7 +2507,7 @@ var enUSMessages = {
2495
2507
  "requestOrganizationMessages.changeLanguage": "Change language",
2496
2508
  "requestOrganizationMessages.completeRequest": "Don't see your school in the list of eligible or ineligible schools? Complete your request",
2497
2509
  "requestOrganizationMessages.copied": "Copied",
2498
- "requestOrganizationMessages.country": "Where do you go to school?",
2510
+ "requestOrganizationMessages.country": "Where is your educational institution located?",
2499
2511
  "requestOrganizationMessages.description": "Please fill out the form below. Schools submitted are not guaranteed to be added, but all requests are researched and considered by SheerID.",
2500
2512
  "requestOrganizationMessages.eligibleOrgs": "Eligible schools. Click the icon to copy name then return to the verification form:",
2501
2513
  "requestOrganizationMessages.errorId.invalidCountry": "Field is required",
@@ -2673,7 +2685,7 @@ var enUSMessages = {
2673
2685
  "segmentMessages.senior.step.success.redirectButtonText": "Use code now",
2674
2686
  "segmentMessages.senior.step.success.subtitle": "Here is your personal coupon code. It is unique to you and can only be used once.",
2675
2687
  "segmentMessages.senior.step.success.title": "You've been verified",
2676
- "segmentMessages.student.emailExplanation": "Needed to send you your unique code",
2688
+ "segmentMessages.student.emailExplanation": "A student email address is preferred",
2677
2689
  "segmentMessages.student.schoolName": "University / college name",
2678
2690
  "segmentMessages.student.step.docUpload.howDoesVerifyingWorkDetails": "Document review is handled by SheerID, a trusted partner who specializes in verifying students.\n <br/><br/>\n Documents are used only for verifying your student status is current and will be permanently deleted after review is finalized.",
2679
2691
  "segmentMessages.student.step.docUpload.subtitle": "Documents will be reviewed in {estimatedWaitTime} by staff at SheerID, a trusted partner.",
@@ -2691,7 +2703,7 @@ var enUSMessages = {
2691
2703
  "segmentMessages.student.step.success.title": "You've been verified",
2692
2704
  "segmentMessages.teacher.emailExplanation": "Must be your school-issued email address",
2693
2705
  "segmentMessages.teacher.schoolName": "School name",
2694
- "segmentMessages.teacher.schoolNamePlaceholder": "School name*",
2706
+ "segmentMessages.teacher.schoolNamePlaceholder": "School name",
2695
2707
  "segmentMessages.teacher.step.docUpload.howDoesVerifyingWorkDetails": "Document review is handled by SheerID, a trusted partner who specializes in verifying teachers.\n <br><br>\n Documents are used only for verifying your teacher or faculty status is current and will be permanently\n deleted after review is finalized. They will not be shared with {companyName}",
2696
2708
  "segmentMessages.teacher.step.docUpload.subtitle": "Documents will be reviewed in {estimatedWaitTime} by staff at SheerID, a trusted partner.",
2697
2709
  "segmentMessages.teacher.step.docUpload.title": "We need more information",
@@ -2727,154 +2739,154 @@ const getMessagesModuleByLocale = async (locale) => {
2727
2739
  switch (locale) {
2728
2740
  case "ar":
2729
2741
  localizedMessages = await import(
2730
- /* webpackChunkName: "messages_ar" */ './es6/ar-5460f3d0.es.js').then((m) => m.default);
2742
+ /* webpackChunkName: "messages_ar" */ './es6/ar-aa7923c0.es.js').then((m) => m.default);
2731
2743
  break;
2732
2744
  case "bg":
2733
2745
  localizedMessages = await import(
2734
- /* webpackChunkName: "messages_bg" */ './es6/bg-281f24b3.es.js').then((m) => m.default);
2746
+ /* webpackChunkName: "messages_bg" */ './es6/bg-7716e1e1.es.js').then((m) => m.default);
2735
2747
  break;
2736
2748
  case "cs":
2737
2749
  localizedMessages = await import(
2738
- /* webpackChunkName: "messages_cs" */ './es6/cs-e565db80.es.js').then((m) => m.default);
2750
+ /* webpackChunkName: "messages_cs" */ './es6/cs-0102f276.es.js').then((m) => m.default);
2739
2751
  break;
2740
2752
  case "da":
2741
2753
  localizedMessages = await import(
2742
- /* webpackChunkName: "messages_da" */ './es6/da-3c705e46.es.js').then((m) => m.default);
2754
+ /* webpackChunkName: "messages_da" */ './es6/da-7ea93323.es.js').then((m) => m.default);
2743
2755
  break;
2744
2756
  case "de":
2745
2757
  localizedMessages = await import(
2746
- /* webpackChunkName: "messages_de" */ './es6/de-537321c2.es.js').then((m) => m.default);
2758
+ /* webpackChunkName: "messages_de" */ './es6/de-37bf2739.es.js').then((m) => m.default);
2747
2759
  break;
2748
2760
  case "el":
2749
2761
  localizedMessages = await import(
2750
- /* webpackChunkName: "messages_el" */ './es6/el-c9990bcf.es.js').then((m) => m.default);
2762
+ /* webpackChunkName: "messages_el" */ './es6/el-04fa4103.es.js').then((m) => m.default);
2751
2763
  break;
2752
2764
  case "en-GB":
2753
2765
  localizedMessages = await import(
2754
- /* webpackChunkName: "messages_en-GB" */ './es6/en-GB-e9dcfb39.es.js').then((m) => m.default);
2766
+ /* webpackChunkName: "messages_en-GB" */ './es6/en-GB-8acf43be.es.js').then((m) => m.default);
2755
2767
  break;
2756
2768
  case "en-US":
2757
2769
  localizedMessages = enUSMessages;
2758
2770
  break;
2759
2771
  case "es-ES":
2760
2772
  localizedMessages = await import(
2761
- /* webpackChunkName: "messages_es-ES" */ './es6/es-ES-85e3b001.es.js').then((m) => m.default);
2773
+ /* webpackChunkName: "messages_es-ES" */ './es6/es-ES-c906634a.es.js').then((m) => m.default);
2762
2774
  break;
2763
2775
  case "es":
2764
2776
  localizedMessages = await import(
2765
- /* webpackChunkName: "messages_es" */ './es6/es-d1c5b93d.es.js').then((m) => m.default);
2777
+ /* webpackChunkName: "messages_es" */ './es6/es-5112b32e.es.js').then((m) => m.default);
2766
2778
  break;
2767
2779
  case "fi":
2768
2780
  localizedMessages = await import(
2769
- /* webpackChunkName: "messages_fi" */ './es6/fi-6d449d20.es.js').then((m) => m.default);
2781
+ /* webpackChunkName: "messages_fi" */ './es6/fi-2277ea1e.es.js').then((m) => m.default);
2770
2782
  break;
2771
2783
  case "fr-CA":
2772
2784
  localizedMessages = await import(
2773
- /* webpackChunkName: "messages_fr-CA" */ './es6/fr-CA-22a7b622.es.js').then((m) => m.default);
2785
+ /* webpackChunkName: "messages_fr-CA" */ './es6/fr-CA-bfca14f3.es.js').then((m) => m.default);
2774
2786
  break;
2775
2787
  case "fr":
2776
2788
  localizedMessages = await import(
2777
- /* webpackChunkName: "messages_fr" */ './es6/fr-2173007f.es.js').then((m) => m.default);
2789
+ /* webpackChunkName: "messages_fr" */ './es6/fr-b9d3dc58.es.js').then((m) => m.default);
2778
2790
  break;
2779
2791
  case "ga":
2780
2792
  localizedMessages = await import(
2781
- /* webpackChunkName: "messages_ga" */ './es6/ga-ea05536c.es.js').then((m) => m.default);
2793
+ /* webpackChunkName: "messages_ga" */ './es6/ga-4bf9710e.es.js').then((m) => m.default);
2782
2794
  break;
2783
2795
  case "hr":
2784
2796
  localizedMessages = await import(
2785
- /* webpackChunkName: "messages_hr" */ './es6/hr-744c126e.es.js').then((m) => m.default);
2797
+ /* webpackChunkName: "messages_hr" */ './es6/hr-ed9b974f.es.js').then((m) => m.default);
2786
2798
  break;
2787
2799
  case "hu":
2788
2800
  localizedMessages = await import(
2789
- /* webpackChunkName: "messages_hu" */ './es6/hu-04580e0a.es.js').then((m) => m.default);
2801
+ /* webpackChunkName: "messages_hu" */ './es6/hu-a36c8244.es.js').then((m) => m.default);
2790
2802
  break;
2791
2803
  case "id":
2792
2804
  localizedMessages = await import(
2793
- /* webpackChunkName: "messages_id" */ './es6/id-b071e0a1.es.js').then((m) => m.default);
2805
+ /* webpackChunkName: "messages_id" */ './es6/id-5896c7f1.es.js').then((m) => m.default);
2794
2806
  break;
2795
2807
  case "it":
2796
2808
  localizedMessages = await import(
2797
- /* webpackChunkName: "messages_it" */ './es6/it-9e7905e9.es.js').then((m) => m.default);
2809
+ /* webpackChunkName: "messages_it" */ './es6/it-7c28e015.es.js').then((m) => m.default);
2798
2810
  break;
2799
2811
  case "iw":
2800
2812
  localizedMessages = await import(
2801
- /* webpackChunkName: "messages_iw" */ './es6/iw-b55daf23.es.js').then((m) => m.default);
2813
+ /* webpackChunkName: "messages_iw" */ './es6/iw-e61ca28b.es.js').then((m) => m.default);
2802
2814
  break;
2803
2815
  case "ja":
2804
2816
  localizedMessages = await import(
2805
- /* webpackChunkName: "messages_ja" */ './es6/ja-c2c69eac.es.js').then((m) => m.default);
2817
+ /* webpackChunkName: "messages_ja" */ './es6/ja-5e5d13be.es.js').then((m) => m.default);
2806
2818
  break;
2807
2819
  case "ko":
2808
2820
  localizedMessages = await import(
2809
- /* webpackChunkName: "messages_ko" */ './es6/ko-057bdc1e.es.js').then((m) => m.default);
2821
+ /* webpackChunkName: "messages_ko" */ './es6/ko-e4c5d44d.es.js').then((m) => m.default);
2810
2822
  break;
2811
2823
  case "lo":
2812
2824
  localizedMessages = await import(
2813
- /* webpackChunkName: "messages_lo" */ './es6/lo-28326ffd.es.js').then((m) => m.default);
2825
+ /* webpackChunkName: "messages_lo" */ './es6/lo-3d03c534.es.js').then((m) => m.default);
2814
2826
  break;
2815
2827
  case "lt":
2816
2828
  localizedMessages = await import(
2817
- /* webpackChunkName: "messages_lt" */ './es6/lt-f8a551a7.es.js').then((m) => m.default);
2829
+ /* webpackChunkName: "messages_lt" */ './es6/lt-99c6971e.es.js').then((m) => m.default);
2818
2830
  break;
2819
2831
  case "ms":
2820
2832
  localizedMessages = await import(
2821
- /* webpackChunkName: "messages_ms" */ './es6/ms-fdd8472d.es.js').then((m) => m.default);
2833
+ /* webpackChunkName: "messages_ms" */ './es6/ms-e537ec43.es.js').then((m) => m.default);
2822
2834
  break;
2823
2835
  case "nl":
2824
2836
  localizedMessages = await import(
2825
- /* webpackChunkName: "messages_nl" */ './es6/nl-6659a0b5.es.js').then((m) => m.default);
2837
+ /* webpackChunkName: "messages_nl" */ './es6/nl-162d7a39.es.js').then((m) => m.default);
2826
2838
  break;
2827
2839
  case "no":
2828
2840
  localizedMessages = await import(
2829
- /* webpackChunkName: "messages_no" */ './es6/no-6038f686.es.js').then((m) => m.default);
2841
+ /* webpackChunkName: "messages_no" */ './es6/no-53861522.es.js').then((m) => m.default);
2830
2842
  break;
2831
2843
  case "pl":
2832
2844
  localizedMessages = await import(
2833
- /* webpackChunkName: "messages_pl" */ './es6/pl-efd4f6a9.es.js').then((m) => m.default);
2845
+ /* webpackChunkName: "messages_pl" */ './es6/pl-b2b55c9f.es.js').then((m) => m.default);
2834
2846
  break;
2835
2847
  case "pt-BR":
2836
2848
  localizedMessages = await import(
2837
- /* webpackChunkName: "messages_pt-BR" */ './es6/pt-BR-e6fa02bd.es.js').then((m) => m.default);
2849
+ /* webpackChunkName: "messages_pt-BR" */ './es6/pt-BR-a9efa2ab.es.js').then((m) => m.default);
2838
2850
  break;
2839
2851
  case "pt":
2840
2852
  localizedMessages = await import(
2841
- /* webpackChunkName: "messages_pt" */ './es6/pt-b63dcda6.es.js').then((m) => m.default);
2853
+ /* webpackChunkName: "messages_pt" */ './es6/pt-61825a2b.es.js').then((m) => m.default);
2842
2854
  break;
2843
2855
  case "ru":
2844
2856
  localizedMessages = await import(
2845
- /* webpackChunkName: "messages_ru" */ './es6/ru-d458eb7d.es.js').then((m) => m.default);
2857
+ /* webpackChunkName: "messages_ru" */ './es6/ru-cba590b5.es.js').then((m) => m.default);
2846
2858
  break;
2847
2859
  case "sk":
2848
2860
  localizedMessages = await import(
2849
- /* webpackChunkName: "messages_sk" */ './es6/sk-94bb280e.es.js').then((m) => m.default);
2861
+ /* webpackChunkName: "messages_sk" */ './es6/sk-a190ec18.es.js').then((m) => m.default);
2850
2862
  break;
2851
2863
  case "sl":
2852
2864
  localizedMessages = await import(
2853
- /* webpackChunkName: "messages_sl" */ './es6/sl-1b8b2783.es.js').then((m) => m.default);
2865
+ /* webpackChunkName: "messages_sl" */ './es6/sl-fb23d48f.es.js').then((m) => m.default);
2854
2866
  break;
2855
2867
  case "sr":
2856
2868
  localizedMessages = await import(
2857
- /* webpackChunkName: "messages_sr" */ './es6/sr-2bdcef9d.es.js').then((m) => m.default);
2869
+ /* webpackChunkName: "messages_sr" */ './es6/sr-07ed6a42.es.js').then((m) => m.default);
2858
2870
  break;
2859
2871
  case "sv":
2860
2872
  localizedMessages = await import(
2861
- /* webpackChunkName: "messages_sv" */ './es6/sv-ff0880c0.es.js').then((m) => m.default);
2873
+ /* webpackChunkName: "messages_sv" */ './es6/sv-bd7e69b0.es.js').then((m) => m.default);
2862
2874
  break;
2863
2875
  case "th":
2864
2876
  localizedMessages = await import(
2865
- /* webpackChunkName: "messages_th" */ './es6/th-22c1fd69.es.js').then((m) => m.default);
2877
+ /* webpackChunkName: "messages_th" */ './es6/th-ee9b4c94.es.js').then((m) => m.default);
2866
2878
  break;
2867
2879
  case "tr":
2868
2880
  localizedMessages = await import(
2869
- /* webpackChunkName: "messages_tr" */ './es6/tr-37531685.es.js').then((m) => m.default);
2881
+ /* webpackChunkName: "messages_tr" */ './es6/tr-133c4315.es.js').then((m) => m.default);
2870
2882
  break;
2871
2883
  case "zh-HK":
2872
2884
  localizedMessages = await import(
2873
- /* webpackChunkName: "messages_zh-HK" */ './es6/zh-HK-287fa77c.es.js').then((m) => m.default);
2885
+ /* webpackChunkName: "messages_zh-HK" */ './es6/zh-HK-bea37a07.es.js').then((m) => m.default);
2874
2886
  break;
2875
2887
  case "zh":
2876
2888
  localizedMessages = await import(
2877
- /* webpackChunkName: "messages_zh" */ './es6/zh-44805cba.es.js').then((m) => m.default);
2889
+ /* webpackChunkName: "messages_zh" */ './es6/zh-52690171.es.js').then((m) => m.default);
2878
2890
  break;
2879
2891
  default:
2880
2892
  logger.warn(`getMessagesModuleByLocale: Unable to load messages for ${locale}, falling back to en-US`);
@@ -4921,9 +4933,9 @@ const produceDraftViewModel = (previousModel, key, value) => fn(previousModel, (
4921
4933
 
4922
4934
  const FieldLabel = ({ text, htmlForLabel, id, displayClasses, isRequired, children, }) => (React.createElement("label", { htmlFor: htmlForLabel },
4923
4935
  React.createElement("div", { id: id, className: `sid-field__label sid-l-space-btm-sm ${displayClasses}` },
4924
- React.createElement("span", { className: "sid-field__label-name" },
4936
+ React.createElement("span", { className: "sid-field__label-name", "aria-hidden": "true" },
4925
4937
  text,
4926
- isRequired && React.createElement("span", { className: "sid-field__label--required" }, "*")),
4938
+ isRequired && (React.createElement("span", { "aria-hidden": "true", className: "sid-field__label--required" }, "*"))),
4927
4939
  children && React.createElement("div", { className: "sid-field__label-explanation" }, children))));
4928
4940
  FieldLabel.defaultProps = {
4929
4941
  id: "",
@@ -4954,7 +4966,7 @@ const FirstName = ({ value, isErrored, onChange, intl, placeholder = "", }) => (
4954
4966
  React.createElement("div", { className: "sid-l-space-top-md" }),
4955
4967
  React.createElement(FieldLabel, { text: React.createElement(FormattedHTMLMessage, { id: "firstName", defaultMessage: "First name" }), htmlForLabel: "sid-first-name", id: "sid-first-name-label", displayClasses: placeholder && "sid-h-screen-reader-only" }),
4956
4968
  React.createElement(InputTextComponent, { id: "first-name", isErrored: isErrored, onChange: (e) => onChange(e.target.value), placeholder: placeholder ||
4957
- intl.formatMessage({ id: "firstNamePlaceholder", defaultMessage: "First Name*" }), refId: "firstName", value: value, required: true, "aria-labelledby": "sid-first-name-label" }),
4969
+ intl.formatMessage({ id: "firstNamePlaceholder", defaultMessage: "First Name" }), refId: "firstName", value: value, required: true, "aria-labelledby": "sid-first-name-label" }),
4958
4970
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
4959
4971
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidFirstName", defaultMessage: "Invalid first name" }))) : null));
4960
4972
  const FirstNameComponent = injectIntl(FirstName);
@@ -4963,7 +4975,7 @@ const LastName = ({ value, isErrored, onChange, intl, placeholder = "", }) => (R
4963
4975
  React.createElement("div", { className: "sid-l-space-top-md" }),
4964
4976
  React.createElement(FieldLabel, { text: React.createElement(FormattedHTMLMessage, { id: "lastName", defaultMessage: "Last name" }), htmlForLabel: "sid-last-name", id: "sid-last-name-label", displayClasses: placeholder && "sid-h-screen-reader-only" }),
4965
4977
  React.createElement(InputTextComponent, { id: "last-name", isErrored: isErrored, onChange: (event) => onChange(event.target.value), placeholder: placeholder ||
4966
- intl.formatMessage({ id: "lastNamePlaceholder", defaultMessage: "Last Name*" }), refId: "lastName", value: value, required: true, "aria-labelledby": "sid-last-name-label" }),
4978
+ intl.formatMessage({ id: "lastNamePlaceholder", defaultMessage: "Last Name" }), refId: "lastName", value: value, required: true, "aria-labelledby": "sid-last-name-label" }),
4967
4979
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
4968
4980
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidLastName", defaultMessage: "Invalid last name" }))) : null));
4969
4981
  const LastNameComponent = injectIntl(LastName);
@@ -4972,7 +4984,7 @@ const Email = ({ value, isErrored, onChange, explanation, intl, onKeyDown = unde
4972
4984
  React.createElement("div", { className: "sid-l-space-top-md" }),
4973
4985
  React.createElement(FieldLabel, { text: React.createElement(FormattedHTMLMessage, { id: "emailAddress", defaultMessage: "Email address" }), htmlForLabel: "sid-email", id: "sid-email-label", displayClasses: `sid-field__label-with-explanation${placeholder && " sid-h-screen-reader-only"}` }, explanation || (React.createElement(FormattedHTMLMessage, { id: "emailExplanation", defaultMessage: "Needed to send you your unique code" }))),
4974
4986
  React.createElement(InputTextComponent, { id: "email", isErrored: isErrored, onChange: (event) => onChange(event.target.value), onKeyDown: typeof onKeyDown === "function" ? (e) => onKeyDown(e) : undefined, placeholder: placeholder ||
4975
- intl.formatMessage({ id: "emailAddressPlaceholder", defaultMessage: "Email*" }), type: "email", value: value, required: true, "aria-labelledby": "sid-email-label" }),
4987
+ intl.formatMessage({ id: "emailAddressPlaceholder", defaultMessage: "Email" }), type: "email", value: value, required: true, "aria-labelledby": "sid-email-label" }),
4976
4988
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
4977
4989
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidEmail", defaultMessage: "Invalid email" }))) : null));
4978
4990
  const EmailComponent = injectIntl(Email);
@@ -9632,9 +9644,8 @@ const Country = ({ value, isErrored, options, onChange, onKeyDown, intl, placeho
9632
9644
  const inputId = "sid-country";
9633
9645
  return (React.createElement("div", { className: `sid-field ${inputId}` },
9634
9646
  React.createElement("div", { className: "sid-l-space-top-md" }),
9635
- React.createElement(FieldLabel, { text: React.createElement(FormattedHTMLMessage, { id: "country", defaultMessage: "Country" }), htmlForLabel: inputId, id: `${inputId}-label`, displayClasses: placeholder && "sid-h-screen-reader-only", isRequired: isRequired }),
9636
- React.createElement(InputSelectComponent, { fieldId: "country", inputId: inputId, fieldLabelId: `${inputId}-label`, isErrored: isErrored, options: options, onChange: (country) => onChange(country), onKeyDown: onKeyDown, placeholder: placeholder ||
9637
- intl.formatMessage({ id: "countryPlaceholder", defaultMessage: "Country*" }), value: value
9647
+ React.createElement(FieldLabel, { text: React.createElement(FormattedHTMLMessage, { id: "country", defaultMessage: "Country" }), htmlForLabel: inputId, id: `${inputId}-label`, isRequired: isRequired }),
9648
+ React.createElement(InputSelectComponent, { fieldId: "country", inputId: inputId, fieldLabelId: `${inputId}-label`, isErrored: isErrored, options: options, onChange: (country) => onChange(country), onKeyDown: onKeyDown, placeholder: placeholder || intl.formatMessage({ id: "countryPlaceholder", defaultMessage: "Country" }), value: value
9638
9649
  ? {
9639
9650
  value: value.value,
9640
9651
  label: intl.formatMessage({
@@ -9987,66 +9998,6 @@ const RequestOrganizationSearch = ({ intl }) => {
9987
9998
  };
9988
9999
  const RequestOrganizationSearchComponent = injectIntl(RequestOrganizationSearch);
9989
10000
 
9990
- // eslint-disable-next-line react/prop-types
9991
- const LoadingScreenMessage = ({ step }) => (React.createElement("div", { className: "sid-loading-screen__message" },
9992
- CollectInfoSteps.includes(step) && (React.createElement("div", { className: "sid-loading-screen__message-header" },
9993
- React.createElement(FormattedMessage, { id: "step.personalInfo.verifyingTitle", defaultMessage: "Verifying your status" }))),
9994
- React.createElement("div", { className: "sid-loading-screen__message-subhead" },
9995
- React.createElement(FormattedMessage, { id: "step.personalInfo.verifyingSubtitle", defaultMessage: "This should only take a minute" }))));
9996
-
9997
- // eslint-disable-next-line react/prop-types
9998
- const LoadingScreenComponent = ({ step }) => (React.createElement("div", { className: "sid-loading-screen" },
9999
- React.createElement(LoadingSpinnerComponent, null),
10000
- step && React.createElement(LoadingScreenMessage, { step: step })));
10001
-
10002
- let overriddenComponents = {};
10003
- const overrideComponent = (componentName, newComponent) => {
10004
- logger.log(`overrideComponent registering ${componentName}`);
10005
- overriddenComponents[componentName] = newComponent;
10006
- };
10007
- const getOverridenComponent = (componentName) => {
10008
- if (overriddenComponents[componentName]) {
10009
- logger.log(`getOverridenComponent returning ${componentName}`);
10010
- return overriddenComponents[componentName];
10011
- }
10012
- return null;
10013
- };
10014
- const resetOverriddenComponents = () => {
10015
- overriddenComponents = {};
10016
- };
10017
-
10018
- const RequestOrganizationLoadStepComponent = ({ requestOrganizationService, }) => {
10019
- const { error } = requestOrganizationService;
10020
- const { submitted } = requestOrganizationService;
10021
- const { isLoading } = requestOrganizationService;
10022
- let OverriddenComponent;
10023
- if (isLoading) {
10024
- return React.createElement(LoadingScreenComponent, null);
10025
- }
10026
- if (error) {
10027
- OverriddenComponent = getOverridenComponent("RequestOrganizationErrorComponent");
10028
- if (OverriddenComponent) {
10029
- return React.createElement(OverriddenComponent, { requestOrganizationService: requestOrganizationService });
10030
- }
10031
- return (React.createElement(RequestOrganizationErrorComponent, { requestOrganizationService: requestOrganizationService }));
10032
- }
10033
- if (submitted) {
10034
- OverriddenComponent = getOverridenComponent("RequestOrganizationSuccessComponent");
10035
- if (OverriddenComponent) {
10036
- return React.createElement(OverriddenComponent, { requestOrganizationService: requestOrganizationService });
10037
- }
10038
- return (React.createElement(RequestOrganizationSuccessComponent, { requestOrganizationService: requestOrganizationService }));
10039
- }
10040
- OverriddenComponent = getOverridenComponent("RequestOrganizationSearchComponent");
10041
- if (OverriddenComponent) {
10042
- return React.createElement(OverriddenComponent, null);
10043
- }
10044
- return React.createElement(RequestOrganizationSearchComponent, null);
10045
- };
10046
-
10047
- const NewInnerRequestOrganizationFormComponent = ({ locale, messages, requestOrganizationService, }) => (React.createElement(IntlProvider, { locale: "en-US", key: locale, messages: messages, textComponent: CustomTextWrapper },
10048
- React.createElement(RequestOrganizationLoadStepComponent, { requestOrganizationService: requestOrganizationService })));
10049
-
10050
10001
  const firstResponderMessages = {
10051
10002
  emailExplanation: "Needed to send you your unique code",
10052
10003
  step: {
@@ -10183,7 +10134,7 @@ const ageMessages = {
10183
10134
  };
10184
10135
 
10185
10136
  const studentMessages = {
10186
- emailExplanation: "Needed to send you your unique code",
10137
+ emailExplanation: "A student email address is preferred",
10187
10138
  schoolName: "University / college name",
10188
10139
  step: {
10189
10140
  personalInfo: {
@@ -10224,7 +10175,7 @@ const studentMessages = {
10224
10175
  const teacherMessages = {
10225
10176
  emailExplanation: "Must be your school-issued email address",
10226
10177
  schoolName: "School name",
10227
- schoolNamePlaceholder: "School name*",
10178
+ schoolNamePlaceholder: "School name",
10228
10179
  step: {
10229
10180
  personalInfo: {
10230
10181
  title: "Unlock this Teaching Staff-Only Offer",
@@ -10845,13 +10796,23 @@ const isMockingLoading = () => {
10845
10796
  try {
10846
10797
  const parsed = new URLSearchParams(window.location.search);
10847
10798
  return (parsed.get(QUERY_STRING_STEP_OVERRIDE) === MockStepsEnum.loading ||
10848
- getOptions().mockStep === MockStepsEnum.loading);
10799
+ getOptions()[QUERY_STRING_STEP_OVERRIDE] === MockStepsEnum.loading);
10849
10800
  }
10850
10801
  catch (e) {
10851
10802
  logger.error(e, "isMockingLoading");
10852
10803
  return false;
10853
10804
  }
10854
10805
  };
10806
+ // Special case when mocking loading. To get text to show up, specify a previous step
10807
+ const getMockedLoadingStep = () => {
10808
+ try {
10809
+ const parsed = new URLSearchParams(window.location.search);
10810
+ return (parsed.get(QUERY_STRING_PREV_STEP_OVERRIDE) || getOptions()[QUERY_STRING_PREV_STEP_OVERRIDE]);
10811
+ }
10812
+ catch (e) {
10813
+ return undefined;
10814
+ }
10815
+ };
10855
10816
  // When loading the success step, specify a reward code
10856
10817
  const getRewardCodeOverride = () => {
10857
10818
  try {
@@ -10947,6 +10908,67 @@ const getOverriddenMock = async (overriddenStep, serverResponse) => {
10947
10908
  return Promise.resolve(mockResponse);
10948
10909
  };
10949
10910
 
10911
+ // eslint-disable-next-line react/prop-types
10912
+ const LoadingScreenMessage = ({ step }) => (React.createElement("div", { className: "sid-loading-screen__message" },
10913
+ CollectInfoSteps.includes(step) && (React.createElement("div", { className: "sid-loading-screen__message-header" },
10914
+ React.createElement(FormattedHTMLMessage, { id: "step.personalInfo.verifyingTitle", defaultMessage: "Verifying your status" }))),
10915
+ React.createElement("div", { className: "sid-loading-screen__message-subhead" },
10916
+ React.createElement(FormattedHTMLMessage, { id: "step.personalInfo.verifyingSubtitle", defaultMessage: "This should only take a minute" }))));
10917
+
10918
+ // By default, try and getMockedLoadingStep to allow text to be shown when mocking the loading step
10919
+ // eslint-disable-next-line react/prop-types
10920
+ const LoadingScreenComponent = ({ step = getMockedLoadingStep() }) => (React.createElement("div", { className: "sid-loading-screen" },
10921
+ React.createElement(LoadingSpinnerComponent, null),
10922
+ step && React.createElement(LoadingScreenMessage, { step: step })));
10923
+
10924
+ let overriddenComponents = {};
10925
+ const overrideComponent = (componentName, newComponent) => {
10926
+ logger.log(`overrideComponent registering ${componentName}`);
10927
+ overriddenComponents[componentName] = newComponent;
10928
+ };
10929
+ const getOverridenComponent = (componentName) => {
10930
+ if (overriddenComponents[componentName]) {
10931
+ logger.log(`getOverridenComponent returning ${componentName}`);
10932
+ return overriddenComponents[componentName];
10933
+ }
10934
+ return null;
10935
+ };
10936
+ const resetOverriddenComponents = () => {
10937
+ overriddenComponents = {};
10938
+ };
10939
+
10940
+ const RequestOrganizationLoadStepComponent = ({ requestOrganizationService, }) => {
10941
+ const { error } = requestOrganizationService;
10942
+ const { submitted } = requestOrganizationService;
10943
+ const { isLoading } = requestOrganizationService;
10944
+ let OverriddenComponent;
10945
+ if (isLoading) {
10946
+ return React.createElement(LoadingScreenComponent, null);
10947
+ }
10948
+ if (error) {
10949
+ OverriddenComponent = getOverridenComponent("RequestOrganizationErrorComponent");
10950
+ if (OverriddenComponent) {
10951
+ return React.createElement(OverriddenComponent, { requestOrganizationService: requestOrganizationService });
10952
+ }
10953
+ return (React.createElement(RequestOrganizationErrorComponent, { requestOrganizationService: requestOrganizationService }));
10954
+ }
10955
+ if (submitted) {
10956
+ OverriddenComponent = getOverridenComponent("RequestOrganizationSuccessComponent");
10957
+ if (OverriddenComponent) {
10958
+ return React.createElement(OverriddenComponent, { requestOrganizationService: requestOrganizationService });
10959
+ }
10960
+ return (React.createElement(RequestOrganizationSuccessComponent, { requestOrganizationService: requestOrganizationService }));
10961
+ }
10962
+ OverriddenComponent = getOverridenComponent("RequestOrganizationSearchComponent");
10963
+ if (OverriddenComponent) {
10964
+ return React.createElement(OverriddenComponent, null);
10965
+ }
10966
+ return React.createElement(RequestOrganizationSearchComponent, null);
10967
+ };
10968
+
10969
+ const NewInnerRequestOrganizationFormComponent = ({ locale, messages, requestOrganizationService, }) => (React.createElement(IntlProvider, { locale: "en-US", key: locale, messages: messages, textComponent: CustomTextWrapper },
10970
+ React.createElement(RequestOrganizationLoadStepComponent, { requestOrganizationService: requestOrganizationService })));
10971
+
10950
10972
  async function fetchExistingVerificationRequest(verificationId) {
10951
10973
  try {
10952
10974
  logger.info("fetchExistingVerificationRequest: Calling back-end for existing verification request");
@@ -11153,11 +11175,16 @@ const convertByTrackingId = async (accountId, trackingId, conversionRequest) =>
11153
11175
 
11154
11176
  // Create IE + others compatible event handler
11155
11177
  const eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
11156
- const eventer = window[eventMethod];
11157
11178
  const messageEvent = eventMethod === "attachEvent" ? "onmessage" : "message";
11158
- /**
11159
- * @private
11160
- */
11179
+ /* =========== From an install page =========== */
11180
+ const listenToSheerIdFrame = (callback) => {
11181
+ assertValidFunction(callback);
11182
+ const receiveMessage = (event) => {
11183
+ callback(event);
11184
+ };
11185
+ window[eventMethod](messageEvent, receiveMessage, false);
11186
+ };
11187
+ /* =========== From within a MySheerID iFrame =========== */
11161
11188
  const speakToOuterFrame = (message) => {
11162
11189
  if (window.parent &&
11163
11190
  window.parent.postMessage &&
@@ -11165,15 +11192,12 @@ const speakToOuterFrame = (message) => {
11165
11192
  window.parent.postMessage(message, "*");
11166
11193
  }
11167
11194
  };
11168
- /**
11169
- * @private
11170
- */
11171
- const listenToSheerIdFrame = (callback) => {
11195
+ const listenToInstallPage = (callback) => {
11172
11196
  assertValidFunction(callback);
11173
11197
  const receiveMessage = (event) => {
11174
11198
  callback(event);
11175
11199
  };
11176
- eventer(messageEvent, receiveMessage, false);
11200
+ window[eventMethod](messageEvent, receiveMessage, false);
11177
11201
  };
11178
11202
 
11179
11203
  const VERIFICATION_ID_COOKIE_NAME = "sid-verificationId";
@@ -11330,14 +11354,7 @@ async function fetchProgramTheme(programId, locale) {
11330
11354
  if (locale)
11331
11355
  assertValidLocale(locale);
11332
11356
  const cleanLocale = locale || getLocaleSafely();
11333
- let url;
11334
- if (cleanLocale !== DEFAULT_LOCALE) {
11335
- url = getProgramThemeUrl(programId, cleanLocale);
11336
- }
11337
- else {
11338
- url = getProgramThemeUrl(programId);
11339
- }
11340
- return (await GetJson(url));
11357
+ return (await GetJson(getProgramThemeUrl(programId, cleanLocale)));
11341
11358
  }
11342
11359
  catch (e) {
11343
11360
  logger.error(e, "fetchProgramTheme");
@@ -13789,8 +13806,8 @@ const createFetchVerificationRequest = async ({ dispatch, verificationResponsePr
13789
13806
  * @description Action creator to update the view model in redux.
13790
13807
  * @param dispatch
13791
13808
  */
13792
- const createUpdateViewModel = (dispatch) => async (viewModel) => await Promise.all([
13793
- dispatch({ viewModel, type: "VIEW_MODEL" }),
13809
+ const createUpdateViewModel = (dispatch) => async (viewModel, partial = false) => Promise.all([
13810
+ dispatch({ viewModel, type: "VIEW_MODEL", partial }),
13794
13811
  dispatch({ type: "FORM_VALIDATION_OPTIONS" }),
13795
13812
  ]);
13796
13813
  const createUpdateLocale = (dispatch, programId) => async (viewModel, programTheme, segment) => {
@@ -14394,8 +14411,16 @@ const verificationServiceReducer = (state = getInitialState(), action) => {
14394
14411
  case "VIEW_MODEL":
14395
14412
  const newState = { ...state };
14396
14413
  if (action.viewModel) {
14397
- // Allow action.viewModel to be a sparse object. Bring along all previous viewModel
14398
- newState.viewModel = { ...action.viewModel };
14414
+ if (action.partial) {
14415
+ // New functionality: action.viewModel can be a sparse object. Bring along all previous viewModel
14416
+ // This allows devs to set just one field, like firstName, without supplying the rest of the viewModel object
14417
+ newState.viewModel = deepMerge({}, state.viewModel, action.viewModel);
14418
+ }
14419
+ else {
14420
+ // Existing functionality: replace viewModel object. Leave here for backwards compatibility.
14421
+ // WARNING - this is not a deep clone!
14422
+ newState.viewModel = { ...action.viewModel };
14423
+ }
14399
14424
  }
14400
14425
  if (action.viewModel && action.viewModel.metadata) {
14401
14426
  setMetadata(action.viewModel.metadata);
@@ -14478,14 +14503,13 @@ const refreshStore = () => {
14478
14503
  const store$1 = getStore();
14479
14504
  /**
14480
14505
  * @description Set the viewModel for the form or reset it by passing an empty object
14481
- * @todo allow sparse viewModel to be provided
14482
14506
  */
14483
- const setViewModel = (newViewModel) => {
14507
+ const setViewModel = (newViewModel, options = { partial: false }) => {
14484
14508
  const state = store$1.getState();
14485
14509
  const doSet = () => {
14486
14510
  const updatedViewModel = deepClone(newViewModel);
14487
14511
  logger.info("Setting viewModel", updatedViewModel);
14488
- createUpdateViewModel(store$1.dispatch)(updatedViewModel);
14512
+ createUpdateViewModel(store$1.dispatch)(updatedViewModel, options.partial);
14489
14513
  };
14490
14514
  // The viewModel may not be set until later, and default messages may fail to load
14491
14515
  // so re-use setOptions to make sure we know about the desire to use this locale
@@ -17669,7 +17693,7 @@ const OptInComponent = ({ isErrored, isRequired, onChange, value, verificationSe
17669
17693
  React.createElement("div", { className: "sid-l-position" },
17670
17694
  React.createElement("label", { htmlFor: "sid-opt-in__optIn" },
17671
17695
  React.createElement(OptInInputComponent, { id: "optIn", isErrored: isErrored, onChange: onChange, value: value }),
17672
- React.createElement("div", { className: "sid-field__label sid-checkbox__label" }, verificationService ? (React.createElement(FormattedMessage, { id: "companyName", defaultMessage: "{Company}" }, (companyName) => (React.createElement(FormattedHTMLMessage, { id: "optIn", values: { company: companyName }, defaultMessage: defaultMessage })))) : (React.createElement(FormattedHTMLMessage, { id: "optIn", defaultMessage: defaultMessage }))),
17696
+ React.createElement("div", { className: "sid-field__label sid-checkbox__label" }, verificationService ? (React.createElement(FormattedHTMLMessage, { id: "companyName", defaultMessage: "{Company}" }, (companyName) => (React.createElement(FormattedHTMLMessage, { id: "optIn", values: { company: companyName }, defaultMessage: defaultMessage })))) : (React.createElement(FormattedHTMLMessage, { id: "optIn", defaultMessage: defaultMessage }))),
17673
17697
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
17674
17698
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidOptIn", defaultMessage: "Must be selected to continue" }))) : null))));
17675
17699
  };
@@ -17684,7 +17708,7 @@ const LogoComponent = ({ verificationService }) => {
17684
17708
  const logoUrl = getLogoUrl(verificationService.programTheme);
17685
17709
  if (logoUrl) {
17686
17710
  return (React.createElement("div", { className: "sid-logo sid-l-space-top-md" },
17687
- React.createElement(FormattedMessage, { id: "companyName", defaultMessage: "{Company}" }, (companyName) => (React.createElement("img", { className: "sid-logo__img", alt: `${companyName} logo`, src: logoUrl })))));
17711
+ React.createElement(FormattedHTMLMessage, { id: "companyName", defaultMessage: "{Company}" }, (companyName) => (React.createElement("img", { className: "sid-logo__img", alt: `${companyName} logo`, src: logoUrl })))));
17688
17712
  }
17689
17713
  return null;
17690
17714
  };
@@ -17722,13 +17746,13 @@ selectedCountryCode = "us", }) => {
17722
17746
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
17723
17747
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidPhoneNumber", defaultMessage: "Invalid mobile number" }))) : null,
17724
17748
  displaySmsConsent && (React.createElement("div", { className: "sid-h-small-text sid-l-space-top-md sid-sms-consent" },
17725
- React.createElement(FormattedMessage, { id: "phoneNumberWarnMessage1", defaultMessage: "By submitting this form with a mobile number, you consent to receive SMS/text messages for verification purposes. Standard phone carrier text messaging (SMS) and data rates may apply." }))),
17749
+ React.createElement(FormattedHTMLMessage, { id: "phoneNumberWarnMessage1", defaultMessage: "By submitting this form with a mobile number, you consent to receive SMS/text messages for verification purposes. Standard phone carrier text messaging (SMS) and data rates may apply." }))),
17726
17750
  requireCarrierConsent && (React.createElement("div", { className: "sid-l-position sid-carrier-disclosure-consent" },
17727
17751
  React.createElement("div", { className: "sid-h-small-text sid-l-space-top-md" },
17728
17752
  React.createElement("label", { htmlFor: "sid-opt-in__carrier-consent" },
17729
17753
  React.createElement(OptInInputComponent, { id: "carrier-consent", isErrored: isErrored, value: carrierConsent, onChange: (value) => onCarrierConsentChange(value) }),
17730
17754
  React.createElement("div", { className: "sid-field__label sid-checkbox__label" },
17731
- React.createElement(FormattedMessage, { id: "phoneNumberWarnMessage2", defaultMessage: "You authorize your mobile service provider to disclose your mobile number and certain account information to SheerID, solely for identity verification and to avoid fraud." }))))))));
17755
+ React.createElement(FormattedHTMLMessage, { id: "phoneNumberWarnMessage2", defaultMessage: "You authorize your mobile service provider to disclose your mobile number and certain account information to SheerID, solely for identity verification and to avoid fraud." }))))))));
17732
17756
  };
17733
17757
  const PhoneNumberComponent = injectIntl(PhoneNumber);
17734
17758
 
@@ -17978,7 +18002,7 @@ const CollegeName = ({ onChange, value, isErrored, verificationService, intl, pl
17978
18002
  React.createElement(TypeaheadComponent, { className: isErrored ? "sid-text-input--error" : "", countryCode: country, minimumSearchValueLength: getOptions().minimumOrganizationSearchLength, onChange: (choice) => onChange(choice), placeholder: placeholder ||
17979
18003
  intl.formatMessage({
17980
18004
  id: "schoolNamePlaceholder",
17981
- defaultMessage: "University / College name*",
18005
+ defaultMessage: "University / College name",
17982
18006
  }), programId: programId, value: value, inputHtmlId: "sid-college-name", openOrgSearchEnabled: verificationService.programTheme.openOrgSearchEnabled, orgSearchUrl: verificationService.programTheme.config.orgSearchUrl, orgSearchTags: searchTags, locale: locale, urlAddSchoolForm: urlAddSchoolForm, isRequired: isRequired }),
17983
18007
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
17984
18008
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidOrganization", defaultMessage: "You must select an organization from the list" }))) : null));
@@ -18292,7 +18316,7 @@ const HowDoesVerifyingWorkComponent = ({ verificationService, initialVisibility
18292
18316
  tooltipVisibility ? (React.createElement("div", { className: "sid-how-verify-works__container" },
18293
18317
  React.createElement("div", { className: "sid-how-verify-works__caret" }),
18294
18318
  React.createElement("div", { className: "sid-how-verify-works__tooltip", "aria-live": "polite", role: "tooltip", id: "how-does-verifying-work" },
18295
- React.createElement(FormattedMessage, { id: "companyName", defaultMessage: "{Company}" }, (companyName) => (React.createElement(FormattedHTMLMessage, { id: `step.${step === VerificationStepsEnum.docUpload ? "docUpload" : "personalInfo"}.howDoesVerifyingWorkDetails`, defaultMessage: defaultMessage, values: { companyName } }))),
18319
+ React.createElement(FormattedHTMLMessage, { id: "companyName", defaultMessage: "{Company}" }, (companyName) => (React.createElement(FormattedHTMLMessage, { id: `step.${step === VerificationStepsEnum.docUpload ? "docUpload" : "personalInfo"}.howDoesVerifyingWorkDetails`, defaultMessage: defaultMessage, values: { companyName } }))),
18296
18320
  "\u00A0",
18297
18321
  React.createElement(FaqLinkComponent, { verificationService: verificationService })))) : null));
18298
18322
  };
@@ -18321,26 +18345,27 @@ const BaseCountryComponentWrapper = ({ verificationService, viewModel, intl, vie
18321
18345
  ? viewModel.countryChoice
18322
18346
  : defaultCountryChoice;
18323
18347
  updateCountryChoice(countryChoice);
18324
- return;
18325
18348
  }
18349
+ }, [firstRender]);
18350
+ React.useEffect(() => {
18326
18351
  if (!hasMultipleCountries) {
18327
18352
  const fieldsToSkip = viewModel.fieldsToSkipValidation
18328
18353
  ? [...viewModel.fieldsToSkipValidation, "country"]
18329
18354
  : ["country"];
18330
18355
  verificationService.updateViewModel(produceDraftViewModel(viewModel, "fieldsToSkipValidation", fieldsToSkip));
18331
18356
  }
18332
- else {
18333
- const updatedFieldValidationErrors = fn(verificationService.fieldValidationErrors, (draft) => {
18334
- if (draft.country) {
18335
- draft.country = validateFieldById("country", viewModel.countryChoice, verificationService.formValidationOptions);
18336
- }
18337
- if ("postalCode" in viewModel && viewModel.postalCode) {
18338
- draft.postalCode = validateFieldById("postalCode", viewModel.postalCode, verificationService.formValidationOptions);
18339
- }
18340
- });
18341
- updateFieldValidationErrors(updatedFieldValidationErrors, verificationService);
18342
- }
18343
- }, [viewModel.countryChoice, hasMultipleCountries, firstRender]);
18357
+ }, [hasMultipleCountries]);
18358
+ React.useEffect(() => {
18359
+ const updatedFieldValidationErrors = fn(verificationService.fieldValidationErrors, (draft) => {
18360
+ if (draft.country) {
18361
+ draft.country = validateFieldById("country", viewModel.countryChoice, verificationService.formValidationOptions);
18362
+ }
18363
+ if ("postalCode" in viewModel && viewModel.postalCode) {
18364
+ draft.postalCode = validateFieldById("postalCode", viewModel.postalCode, verificationService.formValidationOptions);
18365
+ }
18366
+ });
18367
+ updateFieldValidationErrors(updatedFieldValidationErrors, verificationService);
18368
+ }, [viewModel.countryChoice]);
18344
18369
  if (!hasMultipleCountries) {
18345
18370
  return null;
18346
18371
  }
@@ -18451,7 +18476,7 @@ const StepStudentPersonalInfo = ({ intl, verificationService, }) => {
18451
18476
  const StepStudentPersonalInfoComponent = injectIntl(StepStudentPersonalInfo);
18452
18477
 
18453
18478
  const PostalCodeInput = ({ onChange, value, isValid, intl, placeholder = "", ariaLabelledBy, }) => (React.createElement(InputTextComponent, { id: "postal-code", isErrored: !isValid, onChange: (e) => onChange(e.target.value), pattern: "[a-zA-Z0-9 ]*", placeholder: placeholder ||
18454
- intl.formatMessage({ id: "postalCodePlaceholder", defaultMessage: "Postal Code*" }), refId: "postalCode", value: value, required: true, "aria-labelledby": ariaLabelledBy }));
18479
+ intl.formatMessage({ id: "postalCodePlaceholder", defaultMessage: "Postal Code" }), refId: "postalCode", value: value, required: true, "aria-labelledby": ariaLabelledBy }));
18455
18480
  PostalCodeInput.defaultProps = {
18456
18481
  isValid: true,
18457
18482
  };
@@ -18561,7 +18586,7 @@ const carrierConsentValueValidator = (countryChoiceValue) => (value, programThem
18561
18586
  const City = ({ value, isErrored, onChange, intl, onKeyDown = undefined, placeholder = "", }) => (React.createElement("div", { className: "sid-field sid-city" },
18562
18587
  React.createElement("div", { className: "sid-l-space-top-md" }),
18563
18588
  React.createElement(FieldLabel, { text: React.createElement(FormattedHTMLMessage, { id: "city", defaultMessage: "City" }), htmlForLabel: "sid-city", id: "sid-city-label", displayClasses: placeholder && "sid-h-screen-reader-only" }),
18564
- React.createElement(InputTextComponent, { id: "city", isErrored: isErrored, onChange: (e) => onChange(e.target.value), onKeyDown: typeof onKeyDown === "function" ? (e) => onKeyDown(e) : undefined, placeholder: placeholder || intl.formatMessage({ id: "cityPlaceholder", defaultMessage: "City*" }), value: value, "aria-labelledby": "sid-city-label" }),
18589
+ React.createElement(InputTextComponent, { id: "city", isErrored: isErrored, onChange: (e) => onChange(e.target.value), onKeyDown: typeof onKeyDown === "function" ? (e) => onKeyDown(e) : undefined, placeholder: placeholder || intl.formatMessage({ id: "cityPlaceholder", defaultMessage: "City" }), value: value, "aria-labelledby": "sid-city-label" }),
18565
18590
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
18566
18591
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidCity", defaultMessage: "Invalid city" }))) : null));
18567
18592
  const CityComponent = injectIntl(City);
@@ -18569,7 +18594,7 @@ const CityComponent = injectIntl(City);
18569
18594
  const Address = ({ value, isErrored, onChange, intl, onKeyDown = undefined, placeholder = "", }) => (React.createElement("div", { className: "sid-field sid-address" },
18570
18595
  React.createElement("div", { className: "sid-l-space-top-md" }),
18571
18596
  React.createElement(FieldLabel, { text: React.createElement(FormattedHTMLMessage, { id: "address", defaultMessage: "Address" }), htmlForLabel: "sid-address", id: "sid-address-label", displayClasses: placeholder && "sid-h-screen-reader-only" }),
18572
- React.createElement(InputTextComponent, { id: "address", isErrored: isErrored, onChange: (e) => onChange(e.target.value), onKeyDown: typeof onKeyDown === "function" ? (e) => onKeyDown(e) : undefined, placeholder: placeholder || intl.formatMessage({ id: "addressPlaceholder", defaultMessage: "Address*" }), value: value, "aria-labelledby": "sid-address-label" }),
18597
+ React.createElement(InputTextComponent, { id: "address", isErrored: isErrored, onChange: (e) => onChange(e.target.value), onKeyDown: typeof onKeyDown === "function" ? (e) => onKeyDown(e) : undefined, placeholder: placeholder || intl.formatMessage({ id: "addressPlaceholder", defaultMessage: "Address" }), value: value, "aria-labelledby": "sid-address-label" }),
18573
18598
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
18574
18599
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidAddress", defaultMessage: "Invalid address" }))) : null));
18575
18600
  const AddressComponent = injectIntl(Address);
@@ -18726,7 +18751,7 @@ const TeacherSchool = ({ value, isErrored, onChange, verificationService, intl,
18726
18751
  React.createElement(TypeaheadComponent, { className: isErrored ? "sid-text-input--error" : "", countryCode: country, onChange: (choice) => onChange(choice), minimumSearchValueLength: getOptions().minimumOrganizationSearchLength, placeholder: placeholder ||
18727
18752
  intl.formatMessage({
18728
18753
  id: "schoolNamePlaceholder",
18729
- defaultMessage: "School name*",
18754
+ defaultMessage: "School name",
18730
18755
  }), programId: programId, value: value, inputHtmlId: id, openOrgSearchEnabled: verificationService.programTheme.openOrgSearchEnabled, orgSearchUrl: verificationService.programTheme.config.orgSearchUrl, orgSearchTags: searchTags, locale: locale, urlAddSchoolForm: urlAddSchoolForm, isRequired: true }),
18731
18756
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
18732
18757
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidOrganization", defaultMessage: "You must select an organization from the list" }))) : null));
@@ -18841,7 +18866,7 @@ const MemberId = ({ value, isErrored, onChange, explanation, intl, placeholder =
18841
18866
  React.createElement("div", { className: "sid-l-space-top-md" }),
18842
18867
  React.createElement(FieldLabel, { text: label || React.createElement(FormattedHTMLMessage, { id: "memberId", defaultMessage: "ID Number" }), htmlForLabel: "sid-member-id", id: "sid-member-id-label", displayClasses: `sid-field__label-with-explanation${placeholder && " sid-h-screen-reader-only"}`, isRequired: isRequired }, explanation || getDefaultExplanation()),
18843
18868
  React.createElement(InputTextComponent, { id: "member-id", isErrored: isErrored, onChange: (e) => onChange(e.target.value), placeholder: placeholder ||
18844
- intl.formatMessage({ id: "memberIdPlaceholder", defaultMessage: "ID Number*" }), refId: "memberId", value: value, "aria-labelledby": "sid-member-id-label" }),
18869
+ intl.formatMessage({ id: "memberIdPlaceholder", defaultMessage: "ID Number" }), refId: "memberId", value: value, "aria-labelledby": "sid-member-id-label" }),
18845
18870
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
18846
18871
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidMemberId", defaultMessage: "Invalid ID Number" }))) : null));
18847
18872
  };
@@ -18853,7 +18878,7 @@ const MembershipOrganization = ({ value, isErrored, onChange, verificationServic
18853
18878
  React.createElement("div", { className: "sid-l-space-top-md" }),
18854
18879
  React.createElement(FieldLabel, { text: React.createElement(FormattedHTMLMessage, { id: "organization", defaultMessage: "Organization" }), htmlForLabel: "sid-membership", id: "sid-membership-label", displayClasses: placeholder && "sid-h-screen-reader-only" }),
18855
18880
  React.createElement(TypeaheadComponent, { className: isErrored ? "sid-text-input--error" : "", countryCode: getSafe(() => verificationService.viewModel.countryChoice.value), onChange: (choice) => onChange(choice), minimumSearchValueLength: getOptions().minimumOrganizationSearchLength, placeholder: placeholder ||
18856
- intl.formatMessage({ id: "organizationNamePlaceholder", defaultMessage: "Organization*" }), programId: programId, value: value, inputHtmlId: "sid-membership", openOrgSearchEnabled: verificationService.programTheme.openOrgSearchEnabled, orgSearchUrl: verificationService.programTheme.config.orgSearchUrl }),
18881
+ intl.formatMessage({ id: "organizationNamePlaceholder", defaultMessage: "Organization" }), programId: programId, value: value, inputHtmlId: "sid-membership", openOrgSearchEnabled: verificationService.programTheme.openOrgSearchEnabled, orgSearchUrl: verificationService.programTheme.config.orgSearchUrl }),
18857
18882
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
18858
18883
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidOrganization", defaultMessage: "You must select an organization from the list" }))) : null));
18859
18884
  };
@@ -18968,7 +18993,7 @@ const MilitaryStatus = ({ value, isErrored, options, onChange, intl, placeholder
18968
18993
  return (React.createElement("div", { className: `sid-field ${inputId}` },
18969
18994
  React.createElement("div", { className: "sid-l-space-top-md" }),
18970
18995
  React.createElement(FieldLabel, { text: React.createElement(FormattedHTMLMessage, { id: "status", defaultMessage: "Status" }), htmlForLabel: inputId, id: `${inputId}-label`, displayClasses: placeholder && "sid-h-screen-reader-only" }),
18971
- React.createElement(InputSelectComponent, { fieldId: "status", inputId: inputId, fieldLabelId: `${inputId}-label`, isErrored: isErrored, options: SortByLabel(options), onChange: (status) => onChange(status), value: value, placeholder: placeholder || intl.formatMessage({ id: "statusPlaceholder", defaultMessage: "Status*" }) }),
18996
+ React.createElement(InputSelectComponent, { fieldId: "status", inputId: inputId, fieldLabelId: `${inputId}-label`, isErrored: isErrored, options: SortByLabel(options), onChange: (status) => onChange(status), value: value, placeholder: placeholder || intl.formatMessage({ id: "statusPlaceholder", defaultMessage: "Status" }) }),
18972
18997
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
18973
18998
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidStatus", defaultMessage: "Invalid military status" }))) : null));
18974
18999
  };
@@ -19011,7 +19036,7 @@ const BranchOfService = ({ autoFocus, onChange, value, isErrored, organizations,
19011
19036
  const { status } = verificationService.viewModel;
19012
19037
  const viewModel = verificationService.viewModel;
19013
19038
  const inputId = "sid-branch-of-service";
19014
- const countryChoice = viewModel.countryChoice;
19039
+ const { countryChoice } = viewModel;
19015
19040
  if (organizations) {
19016
19041
  let newOrganizations;
19017
19042
  newOrganizations = organizations.filter(orgsInStatus(status));
@@ -19040,7 +19065,7 @@ const BranchOfService = ({ autoFocus, onChange, value, isErrored, organizations,
19040
19065
  React.createElement(InputSelectComponent, { autoFocus: autoFocus, fieldId: "organization", inputId: inputId, fieldLabelId: `${inputId}-label`, isErrored: isErrored, options: SortByLabel(options), onChange: (branch) => handleStateChange(branch, onChange), value: value, placeholder: placeholder ||
19041
19066
  intl.formatMessage({
19042
19067
  id: "branchOfServicePlaceholder",
19043
- defaultMessage: "Branch Of Service*",
19068
+ defaultMessage: "Branch Of Service",
19044
19069
  }) }),
19045
19070
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
19046
19071
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidOrganization", defaultMessage: "You must select an organization from the list" }))) : null));
@@ -19355,7 +19380,7 @@ const FirstResponderStatus = ({ value, isErrored, options, onChange, placeholder
19355
19380
  return (React.createElement("div", { className: `sid-field ${inputId}` },
19356
19381
  React.createElement("div", { className: "sid-l-space-top-md" }),
19357
19382
  React.createElement(FieldLabel, { text: React.createElement(FormattedHTMLMessage, { id: "status", defaultMessage: "Status" }), htmlForLabel: `${inputId}`, id: `${inputId}-label`, displayClasses: placeholder && "sid-h-screen-reader-only" }),
19358
- React.createElement(InputSelectComponent, { fieldId: "status", inputId: inputId, fieldLabelId: `${inputId}-label`, isErrored: isErrored, options: options, onChange: (status) => onChange(status), onKeyDown: onKeyDown, value: value, placeholder: placeholder || intl.formatMessage({ id: "statusPlaceholder", defaultMessage: "Status*" }) }),
19383
+ React.createElement(InputSelectComponent, { fieldId: "status", inputId: inputId, fieldLabelId: `${inputId}-label`, isErrored: isErrored, options: options, onChange: (status) => onChange(status), onKeyDown: onKeyDown, value: value, placeholder: placeholder || intl.formatMessage({ id: "statusPlaceholder", defaultMessage: "Status" }) }),
19359
19384
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
19360
19385
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidStatus", defaultMessage: "Invalid first responder status" }))) : null));
19361
19386
  };
@@ -19368,7 +19393,7 @@ const FirstResponderOrganization = ({ onChange, value, isErrored, verificationSe
19368
19393
  React.createElement("div", { className: "sid-l-space-top-md" }),
19369
19394
  React.createElement(FieldLabel, { text: React.createElement(FormattedHTMLMessage, { id: "organization", defaultMessage: "Organization" }), htmlForLabel: id, id: `${id}-label`, displayClasses: placeholder && "sid-h-screen-reader-only" }),
19370
19395
  React.createElement(TypeaheadComponent, { className: isErrored ? "sid-text-input--error" : "", countryCode: getSafe(() => verificationService.viewModel.countryChoice.value), minimumSearchValueLength: getOptions().minimumOrganizationSearchLength, onChange: (choice) => onChange(choice), placeholder: placeholder ||
19371
- intl.formatMessage({ id: "organizationPlaceholder", defaultMessage: "Organization*" }), programId: programId, value: value, inputHtmlId: id, openOrgSearchEnabled: verificationService.programTheme.openOrgSearchEnabled, orgSearchUrl: verificationService.programTheme.config.orgSearchUrl }),
19396
+ intl.formatMessage({ id: "organizationPlaceholder", defaultMessage: "Organization" }), programId: programId, value: value, inputHtmlId: id, openOrgSearchEnabled: verificationService.programTheme.openOrgSearchEnabled, orgSearchUrl: verificationService.programTheme.config.orgSearchUrl }),
19372
19397
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
19373
19398
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidOrganization", defaultMessage: "You must select an organization from the list" }))) : null));
19374
19399
  };
@@ -19486,7 +19511,7 @@ const MedicalStatus = ({ value, isErrored, options, onChange, intl, placeholder
19486
19511
  return (React.createElement("div", { className: `sid-field ${inputId}` },
19487
19512
  React.createElement("div", { className: "sid-l-space-top-md" }),
19488
19513
  React.createElement(FieldLabel, { text: React.createElement(FormattedHTMLMessage, { id: "status", defaultMessage: "Status" }), htmlForLabel: inputId, id: `${inputId}-label`, displayClasses: placeholder && "sid-h-screen-reader-only" }),
19489
- React.createElement(InputSelectComponent, { fieldId: "status", inputId: inputId, fieldLabelId: `${inputId}-label`, isErrored: isErrored, options: options, onChange: (status) => onChange(status), onKeyDown: onKeyDown, value: value, placeholder: placeholder || intl.formatMessage({ id: "statusPlaceholder", defaultMessage: "Status*" }), isRequired: true }),
19514
+ React.createElement(InputSelectComponent, { fieldId: "status", inputId: inputId, fieldLabelId: `${inputId}-label`, isErrored: isErrored, options: options, onChange: (status) => onChange(status), onKeyDown: onKeyDown, value: value, placeholder: placeholder || intl.formatMessage({ id: "statusPlaceholder", defaultMessage: "Status" }), isRequired: true }),
19490
19515
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
19491
19516
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidStatus", defaultMessage: "Invalid medical status" }))) : null));
19492
19517
  };
@@ -19499,7 +19524,7 @@ const MedicalProfessionalOrganization = ({ onChange, value, isErrored, verificat
19499
19524
  React.createElement("div", { className: "sid-l-space-top-md" }),
19500
19525
  React.createElement(FieldLabel, { text: React.createElement(FormattedHTMLMessage, { id: "organization", defaultMessage: "Organization" }), htmlForLabel: id, id: `${id}-label`, displayClasses: placeholder && "sid-h-screen-reader-only" }),
19501
19526
  React.createElement(TypeaheadComponent, { className: isErrored ? "sid-text-input--error" : "", countryCode: getSafe(() => verificationService.viewModel.countryChoice.value), minimumSearchValueLength: getOptions().minimumOrganizationSearchLength, onChange: (choice) => onChange(choice), placeholder: placeholder ||
19502
- intl.formatMessage({ id: "organizationPlaceholder", defaultMessage: "Organization*" }), programId: programId, value: value, inputHtmlId: id, openOrgSearchEnabled: verificationService.programTheme.openOrgSearchEnabled, orgSearchUrl: verificationService.programTheme.config.orgSearchUrl, isRequired: true }),
19527
+ intl.formatMessage({ id: "organizationPlaceholder", defaultMessage: "Organization" }), programId: programId, value: value, inputHtmlId: id, openOrgSearchEnabled: verificationService.programTheme.openOrgSearchEnabled, orgSearchUrl: verificationService.programTheme.config.orgSearchUrl, isRequired: true }),
19503
19528
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
19504
19529
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidOrganization", defaultMessage: "You must select an organization from the list" }))) : null));
19505
19530
  };
@@ -19640,7 +19665,7 @@ const StepMedicalProfessionalPersonalInfoComponent = injectIntl(StepMedicalProfe
19640
19665
  const State = ({ value, isErrored, onChange, intl, onKeyDown = undefined, placeholder = "", }) => (React.createElement("div", { className: "sid-field sid-state" },
19641
19666
  React.createElement("div", { className: "sid-l-space-top-md" }),
19642
19667
  React.createElement(FieldLabel, { text: React.createElement(FormattedHTMLMessage, { id: "state", defaultMessage: "State" }), htmlForLabel: "sid-state", id: "sid-state-label", displayClasses: placeholder && "sid-h-screen-reader-only" }),
19643
- React.createElement(InputTextComponent, { id: "state", isErrored: isErrored, onChange: (e) => onChange(e.target.value), onKeyDown: typeof onKeyDown === "function" ? (e) => onKeyDown(e) : undefined, placeholder: placeholder || intl.formatMessage({ id: "statePlaceholder", defaultMessage: "State*" }), value: value, "aria-labelledby": "sid-state-label" }),
19668
+ React.createElement(InputTextComponent, { id: "state", isErrored: isErrored, onChange: (e) => onChange(e.target.value), onKeyDown: typeof onKeyDown === "function" ? (e) => onKeyDown(e) : undefined, placeholder: placeholder || intl.formatMessage({ id: "statePlaceholder", defaultMessage: "State" }), value: value, "aria-labelledby": "sid-state-label" }),
19644
19669
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
19645
19670
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidState", defaultMessage: "Invalid state" }))) : null));
19646
19671
  const StateComponent = injectIntl(State);
@@ -19650,8 +19675,7 @@ const Company = ({ onChange, value, isErrored, verificationService, intl, placeh
19650
19675
  return (React.createElement("div", { className: "sid-field sid-company-id" },
19651
19676
  React.createElement("div", { className: "sid-l-space-top-md" }),
19652
19677
  React.createElement(FieldLabel, { text: React.createElement(FormattedHTMLMessage, { id: "company", defaultMessage: "Company" }), htmlForLabel: "sid-company", id: "sid-company-label", displayClasses: placeholder && "sid-h-screen-reader-only" }),
19653
- React.createElement(TypeaheadComponent, { className: isErrored ? "sid-text-input--error" : "", countryCode: getSafe(() => verificationService.viewModel.countryChoice.value), minimumSearchValueLength: getOptions().minimumOrganizationSearchLength, onChange: (choice) => onChange(choice), placeholder: placeholder ||
19654
- intl.formatMessage({ id: "companyPlaceholder", defaultMessage: "Company*" }), programId: programId, value: value, inputHtmlId: "sid-company", openOrgSearchEnabled: verificationService.programTheme.openOrgSearchEnabled, orgSearchUrl: verificationService.programTheme.config.orgSearchUrl }),
19678
+ React.createElement(TypeaheadComponent, { className: isErrored ? "sid-text-input--error" : "", countryCode: getSafe(() => verificationService.viewModel.countryChoice.value), minimumSearchValueLength: getOptions().minimumOrganizationSearchLength, onChange: (choice) => onChange(choice), placeholder: placeholder || intl.formatMessage({ id: "companyPlaceholder", defaultMessage: "Company" }), programId: programId, value: value, inputHtmlId: "sid-company", openOrgSearchEnabled: verificationService.programTheme.openOrgSearchEnabled, orgSearchUrl: verificationService.programTheme.config.orgSearchUrl }),
19655
19679
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
19656
19680
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidOrganization", defaultMessage: "You must select an organization from the list" }))) : null));
19657
19681
  };
@@ -19760,7 +19784,7 @@ const DriverLicenseNumber = ({ value, isErrored, onChange, explanation, intl, pl
19760
19784
  React.createElement(InputTextComponent, { id: "driver-license-number", isErrored: isErrored, onChange: (e) => onChange(e.target.value), placeholder: placeholder ||
19761
19785
  intl.formatMessage({
19762
19786
  id: "driverLicenseNumberPlaceholder",
19763
- defaultMessage: isRequired ? "Driver license number*" : "Driver license number",
19787
+ defaultMessage: "Driver license number",
19764
19788
  }), refId: "driverLicenseNumber", value: value, required: isRequired, "aria-labelledby": "sid-driver-license-number-label" }),
19765
19789
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
19766
19790
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidDriverLicenseNumber", defaultMessage: "Invalid driver license number" }))) : null));
@@ -19775,7 +19799,7 @@ const StateSelect = ({ value, isErrored, options, onChange, onKeyDown, intl, pla
19775
19799
  React.createElement(InputSelectComponent, { fieldId: "state", inputId: inputId, fieldLabelId: `${inputId}-label`, isErrored: isErrored, options: options, onChange: (state) => onChange(state), onKeyDown: onKeyDown, placeholder: placeholder ||
19776
19800
  intl.formatMessage({
19777
19801
  id: "statePlaceholder",
19778
- defaultMessage: isRequired ? "State*" : "State",
19802
+ defaultMessage: "State",
19779
19803
  }), value: value
19780
19804
  ? {
19781
19805
  value: value.value,
@@ -20056,7 +20080,7 @@ const Status = ({ value, isErrored, options, onChange, intl, placeholder = "", o
20056
20080
  return (React.createElement("div", { className: `sid-field ${inputId}` },
20057
20081
  React.createElement("div", { className: "sid-l-space-top-md" }),
20058
20082
  React.createElement(FieldLabel, { text: React.createElement(FormattedHTMLMessage, { id: "status", defaultMessage: "Status" }), htmlForLabel: inputId, id: `${inputId}-label`, displayClasses: placeholder && "sid-h-screen-reader-only" }),
20059
- React.createElement(InputSelectComponent, { fieldId: "status", inputId: inputId, fieldLabelId: `${inputId}-label`, isErrored: isErrored, options: options, onChange: (status) => onChange(status), onKeyDown: onKeyDown, value: value, placeholder: placeholder || intl.formatMessage({ id: "statusPlaceholder", defaultMessage: "Status*" }), isRequired: true }),
20083
+ React.createElement(InputSelectComponent, { fieldId: "status", inputId: inputId, fieldLabelId: `${inputId}-label`, isErrored: isErrored, options: options, onChange: (status) => onChange(status), onKeyDown: onKeyDown, value: value, placeholder: placeholder || intl.formatMessage({ id: "statusPlaceholder", defaultMessage: "Status" }), isRequired: true }),
20060
20084
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
20061
20085
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidStatus", defaultMessage: "Invalid status" }))) : null));
20062
20086
  };
@@ -20068,7 +20092,7 @@ const LicensedProfessionalOrganization = ({ value, isErrored, onChange, verifica
20068
20092
  React.createElement("div", { className: "sid-l-space-top-md" }),
20069
20093
  React.createElement(FieldLabel, { text: React.createElement(FormattedHTMLMessage, { id: "organization", defaultMessage: "Organization" }), htmlForLabel: "sid-licensed-professional", id: "sid-licensed-professional-label", displayClasses: placeholder && "sid-h-screen-reader-only" }),
20070
20094
  React.createElement(TypeaheadComponent, { className: isErrored ? "sid-text-input--error" : "", countryCode: getSafe(() => verificationService.viewModel.countryChoice.value), onChange: (choice) => onChange(choice), minimumSearchValueLength: getOptions().minimumOrganizationSearchLength, placeholder: placeholder ||
20071
- intl.formatMessage({ id: "organizationNamePlaceholder", defaultMessage: "Organization*" }), programId: programId, value: value, inputHtmlId: "sid-licensed-professional", openOrgSearchEnabled: verificationService.programTheme.openOrgSearchEnabled, orgSearchUrl: verificationService.programTheme.config.orgSearchUrl }),
20095
+ intl.formatMessage({ id: "organizationNamePlaceholder", defaultMessage: "Organization" }), programId: programId, value: value, inputHtmlId: "sid-licensed-professional", openOrgSearchEnabled: verificationService.programTheme.openOrgSearchEnabled, orgSearchUrl: verificationService.programTheme.config.orgSearchUrl }),
20072
20096
  isErrored ? (React.createElement("div", { className: "sid-field-error" },
20073
20097
  React.createElement(FormattedHTMLMessage, { id: "errorId.invalidOrganization", defaultMessage: "You must select an organization from the list" }))) : null));
20074
20098
  };
@@ -20501,7 +20525,7 @@ const StepSuccess = ({ verificationService }) => {
20501
20525
  return (React.createElement("div", { id: "sid-step-success", className: "sid-l-container" },
20502
20526
  React.createElement("div", { className: "sid-header sid-l-horz-center sid-l-space-top-md" },
20503
20527
  React.createElement("div", { className: "sid-l-horz-center" }, hasLogo ? (React.createElement(LogoComponent, { verificationService: verificationService })) : (React.createElement("img", { className: "sid-l-lead-image", alt: "", src: "https://assets-resources.sheerid.com/common/images/2018/icons/circle-check.svg" }))),
20504
- React.createElement("div", { className: "sid-header__title sid-l-horz-center sid-l-space-top-md", role: "alert", "aria-live": "polite" },
20528
+ React.createElement("div", { className: "sid-header__title sid-l-horz-center sid-l-space-top-md", role: "status", "aria-live": "polite" },
20505
20529
  React.createElement(FormattedHTMLMessage, { id: "step.success.title", defaultMessage: "Success! You've been verified." })),
20506
20530
  React.createElement("div", { className: "sid-header__subtitle sid-l-horz-center sid-l-two-thirds-width" },
20507
20531
  React.createElement(FormattedHTMLMessage, { id: "step.success.subtitle", defaultMessage: `Here is your personal coupon code.
@@ -20519,7 +20543,7 @@ const StepSuccess = ({ verificationService }) => {
20519
20543
  React.createElement("button", { type: "button", onClick: () => redirect(redirectDestination), className: "sid-btn sid-btn--dark" },
20520
20544
  React.createElement(FormattedHTMLMessage, { id: "step.success.redirectButtonText", defaultMessage: "Use code now" })))) : (""),
20521
20545
  React.createElement("div", { className: "sid-footer sid-l-horz-center sid-l-space-top-lg sid-h-small-text" },
20522
- React.createElement(FormattedMessage, { id: "companyName", defaultMessage: "{Company}" }, (companyName) => (React.createElement(FormattedHTMLMessage, { id: "step.success.verificationOnly", defaultMessage: `
20546
+ React.createElement(FormattedHTMLMessage, { id: "companyName", defaultMessage: "{Company}" }, (companyName) => (React.createElement(FormattedHTMLMessage, { id: "step.success.verificationOnly", defaultMessage: `
20523
20547
  SheerID handles verification only.
20524
20548
  Now that you've been approved, please direct all questions about the
20525
20549
  promotion terms to {companyName} customer service.
@@ -20690,18 +20714,18 @@ const SMSCode = ({ onChange, value, isErrored, errorId, intl, placeholder = "",
20690
20714
  const getErrorMessage = (errorId) => {
20691
20715
  switch (errorId) {
20692
20716
  case "invalidSMSCode":
20693
- return (React.createElement(FormattedMessage, { id: "step.smsLoop.errors.codeVerification", defaultMessage: "Verification code could not be validated." }));
20717
+ return (React.createElement(FormattedHTMLMessage, { id: "step.smsLoop.errors.codeVerification", defaultMessage: "Verification code could not be validated." }));
20694
20718
  case "expiredSMSCode":
20695
- return (React.createElement(FormattedMessage, { id: "step.smsLoop.errors.codeExpired", defaultMessage: "Verification code expired." }));
20719
+ return (React.createElement(FormattedHTMLMessage, { id: "step.smsLoop.errors.codeExpired", defaultMessage: "Verification code expired." }));
20696
20720
  default:
20697
- return React.createElement(FormattedMessage, { id: "errorId.unknownError", defaultMessage: "Unknown Error" });
20721
+ return React.createElement(FormattedHTMLMessage, { id: "errorId.unknownError", defaultMessage: "Unknown Error" });
20698
20722
  }
20699
20723
  };
20700
20724
  return (React.createElement("div", { className: "sid-field sid-sms-code-id" },
20701
20725
  React.createElement("div", { className: "sid-l-space-top-md" }),
20702
20726
  isErrored ? React.createElement("div", { className: "sid-field-error" }, getErrorMessage(errorId)) : null,
20703
20727
  React.createElement(InputTextComponent, { id: "sms-code", isErrored: isErrored, required: true, placeholder: placeholder ||
20704
- intl.formatMessage({ id: "smsCodePlaceholder", defaultMessage: "SMS Code*" }), value: value, onChange: (e) => onChange(e.target.value) })));
20728
+ intl.formatMessage({ id: "smsCodePlaceholder", defaultMessage: "SMS Code" }), value: value, onChange: (e) => onChange(e.target.value) })));
20705
20729
  };
20706
20730
  const SMSCodeComponent = injectIntl(SMSCode);
20707
20731
 
@@ -20764,25 +20788,25 @@ const StepSMSLoop = ({ intl, verificationService }) => {
20764
20788
  };
20765
20789
  return (React.createElement("div", { id: "sid-step-sms-loop", className: "sid-l-container" },
20766
20790
  React.createElement("div", { className: "sid-header__title sid-l-horz-center" },
20767
- React.createElement(FormattedMessage, { id: "step.smsLoop.verificationCode", defaultMessage: "Verification Code" })),
20768
- React.createElement("div", { className: "sid-header__subtitle" }, getSafe(() => previousViewModel.phoneNumber) ? (React.createElement(FormattedMessage, { id: "step.smsLoop.titleWithNumber", defaultMessage: "We've sent an SMS message to the mobile number ending in {number}. Enter your code here.", values: {
20791
+ React.createElement(FormattedHTMLMessage, { id: "step.smsLoop.verificationCode", defaultMessage: "Verification Code" })),
20792
+ React.createElement("div", { className: "sid-header__subtitle" }, getSafe(() => previousViewModel.phoneNumber) ? (React.createElement(FormattedHTMLMessage, { id: "step.smsLoop.titleWithNumber", defaultMessage: "We've sent an SMS message to the mobile number ending in {number}. Enter your code here.", values: {
20769
20793
  number: getSafe(() => previousViewModel.phoneNumber.slice(-4), ""),
20770
- } })) : (React.createElement(FormattedMessage, { id: "step.smsLoop.titleWithoutNumber", defaultMessage: "We've sent an SMS to your mobile number. Please enter the code here." }))),
20794
+ } })) : (React.createElement(FormattedHTMLMessage, { id: "step.smsLoop.titleWithoutNumber", defaultMessage: "We've sent an SMS to your mobile number. Please enter the code here." }))),
20771
20795
  React.createElement("div", { className: "sid-sms-code-id-wrapper sid-l-horz-center" },
20772
20796
  React.createElement(SMSCodeComponent, { onChange: updateSmsCode, value: viewModel.smsCode, isErrored: isErrored, errorId: verificationService.fieldValidationErrors.smsCode })),
20773
20797
  stepResultMessage && (React.createElement("div", null,
20774
20798
  React.createElement("p", null, stepResultMessage))),
20775
20799
  React.createElement("div", { className: "sid-submit sid-l-space-top-md sid-l-horz-center" },
20776
20800
  React.createElement("button", { id: "sid-submit-sms-code", onClick: submitForm, type: "button", className: "sid-btn sid-btn--dark sid-submit__continue", "aria-label": "submit", disabled: !!(!viewModel.smsCode || viewModel.smsCode.length <= 0 || isAttemptLimitExceeded) },
20777
- React.createElement(FormattedMessage, { id: "step.smsLoop.submitButton", defaultMessage: "Submit" })),
20801
+ React.createElement(FormattedHTMLMessage, { id: "step.smsLoop.submitButton", defaultMessage: "Submit" })),
20778
20802
  React.createElement("div", { className: "sid-l-space-left-sm" }, "\u00A0"),
20779
20803
  React.createElement("button", { id: "sid-resend-sms-code", onClick: () => resendSmsCode(verificationResponse.verificationId), type: "submit", className: "sid-btn sid-btn--light sid-submit__cancel", "aria-label": "re-send" },
20780
- React.createElement(FormattedMessage, { id: "step.smsLoop.resendButton", defaultMessage: "Re-send" }))),
20804
+ React.createElement(FormattedHTMLMessage, { id: "step.smsLoop.resendButton", defaultMessage: "Re-send" }))),
20781
20805
  React.createElement("div", { className: "sid-incorrect-number sid-l-horz-center" },
20782
- React.createElement(FormattedMessage, { id: "step.smsLoop.incorrectNumber.incorrectNumber1", defaultMessage: "Incorrect number? Click " }),
20806
+ React.createElement(FormattedHTMLMessage, { id: "step.smsLoop.incorrectNumber.incorrectNumber1", defaultMessage: "Incorrect number? Click " }),
20783
20807
  React.createElement("button", { type: "button", onClick: () => window.location.reload(), className: "sid-incorrect-number__refresh-link" },
20784
20808
  React.createElement(FormattedHTMLMessage, { id: "step.smsLoop.incorrectNumber.incorrectNumber2", defaultMessage: "here " })),
20785
- React.createElement(FormattedMessage, { id: "companyName", defaultMessage: "{Company}" }, (companyName) => (React.createElement(FormattedMessage, { id: "step.smsLoop.incorrectNumber.incorrectNumber3", defaultMessage: "to return to {companyName}", values: { companyName } }))))));
20809
+ React.createElement(FormattedHTMLMessage, { id: "companyName", defaultMessage: "{Company}" }, (companyName) => (React.createElement(FormattedHTMLMessage, { id: "step.smsLoop.incorrectNumber.incorrectNumber3", defaultMessage: "to return to {companyName}", values: { companyName } }))))));
20786
20810
  };
20787
20811
  const StepSMSLoopComponent = injectIntl(StepSMSLoop);
20788
20812
 
@@ -20847,19 +20871,19 @@ const StepEmailLoop = ({ intl, verificationService }) => {
20847
20871
  React.createElement("div", { className: "sid-header sid-l-horz-center" },
20848
20872
  React.createElement("div", { className: "sid-l-horz-center" }, logo),
20849
20873
  React.createElement("div", { className: "sid-header__title sid-l-horz-center sid-l-space-top-md" },
20850
- React.createElement(FormattedMessage, { id: "step.emailLoop.title", defaultMessage: "Check your email" })),
20851
- React.createElement("div", { className: "sid-header__subtitle-one" }, email ? (React.createElement(FormattedMessage, { id: "step.emailLoop.subtitleWithEmail", defaultMessage: "An email has been sent to {email} with a personalized link to complete the verification process.", values: { email } })) : (React.createElement(FormattedMessage, { id: "step.emailLoop.subtitleWithoutEmail", defaultMessage: "An email has been sent to your email account with a personalized link to complete the verification process." }))),
20874
+ React.createElement(FormattedHTMLMessage, { id: "step.emailLoop.title", defaultMessage: "Check your email" })),
20875
+ React.createElement("div", { className: "sid-header__subtitle-one" }, email ? (React.createElement(FormattedHTMLMessage, { id: "step.emailLoop.subtitleWithEmail", defaultMessage: "An email has been sent to {email} with a personalized link to complete the verification process.", values: { email } })) : (React.createElement(FormattedHTMLMessage, { id: "step.emailLoop.subtitleWithoutEmail", defaultMessage: "An email has been sent to your email account with a personalized link to complete the verification process." }))),
20852
20876
  React.createElement("div", { className: "sid-l-space-top-md" }),
20853
20877
  React.createElement("div", { className: "sid-header__subtitle-two sid-h-small-text sid-l-space-top-md" },
20854
- React.createElement(FormattedMessage, { id: "step.emailLoop.subtitle2", defaultMessage: "Please check for an email from us (verify@sheerid.com) for all the details." })),
20878
+ React.createElement(FormattedHTMLMessage, { id: "step.emailLoop.subtitle2", defaultMessage: "Please check for an email from us (verify@sheerid.com) for all the details." })),
20855
20879
  canCancelEmailLoop && (React.createElement("div", { className: "sid-skip-email sid-l-space-top-lg" },
20856
- React.createElement(FormattedMessage, { id: "step.emailLoop.skipEmail", defaultMessage: "Unable to retrieve this email? Click " }),
20880
+ React.createElement(FormattedHTMLMessage, { id: "step.emailLoop.skipEmail", defaultMessage: "Unable to retrieve this email? Click " }),
20857
20881
  React.createElement("button", { type: "button", onClick: () => cancelEmailLoop(), className: "sid-incorrect-number__refresh-link" },
20858
20882
  React.createElement(FormattedHTMLMessage, { id: "step.emailLoop.skipEmailCTA", defaultMessage: "here" })),
20859
- React.createElement(FormattedMessage, { id: "step.emailLoop.skipEmail2", defaultMessage: " to proceed." }))),
20883
+ React.createElement(FormattedHTMLMessage, { id: "step.emailLoop.skipEmail2", defaultMessage: " to proceed." }))),
20860
20884
  canResendEmailLoop && (React.createElement("div", { className: "sid-header__resend-btn sid-l-space-top-md" },
20861
20885
  React.createElement("button", { id: "sid-resend-email", onClick: () => resendEmail(verificationId), type: "submit", className: "sid-btn sid-btn--light sid-submit__cancel sid-l-horz-center", "aria-label": "re-send" },
20862
- React.createElement(FormattedMessage, { id: "step.emailLoop.resendButton", defaultMessage: "Re-send" })))),
20886
+ React.createElement(FormattedHTMLMessage, { id: "step.emailLoop.resendButton", defaultMessage: "Re-send" })))),
20863
20887
  resendMessage && (React.createElement("div", null,
20864
20888
  React.createElement("p", null, resendMessage))),
20865
20889
  React.createElement("div", { className: "sid-l-space-top-xl" }))));
@@ -22329,7 +22353,7 @@ const AcceptableUploadsComponent = ({ verificationService }) => {
22329
22353
  return (React.createElement("div", null,
22330
22354
  React.createElement("span", null,
22331
22355
  React.createElement("strong", null,
22332
- React.createElement(FormattedMessage, { id: "step.docUpload.acceptableUploadExamples", defaultMessage: "Acceptable examples include:" }))),
22356
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.acceptableUploadExamples", defaultMessage: "Acceptable examples include:" }))),
22333
22357
  acceptableUploads));
22334
22358
  };
22335
22359
 
@@ -22342,150 +22366,150 @@ const UploadInfoComponent = ({ verificationService }) => {
22342
22366
  return (React.createElement("div", null,
22343
22367
  React.createElement("span", null,
22344
22368
  React.createElement("strong", null,
22345
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload your school-issued document that shows:" }))),
22369
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload your school-issued document that shows:" }))),
22346
22370
  React.createElement("ul", { className: "sid-upload-info-list" },
22347
22371
  React.createElement("li", { className: "sid-upload-info-list__li" },
22348
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22372
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22349
22373
  React.createElement("li", { className: "sid-upload-info-list__li" },
22350
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.student.school", defaultMessage: "Your school" })),
22374
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.student.school", defaultMessage: "Your school" })),
22351
22375
  React.createElement("li", { className: "sid-upload-info-list__li" },
22352
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.student.enrollmentDate", defaultMessage: "Date proving enrollment for the current term (or within last 3 months)" })))));
22376
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.student.enrollmentDate", defaultMessage: "Date proving enrollment for the current term (or within last 3 months)" })))));
22353
22377
  case SegmentEnum.TEACHER:
22354
22378
  return (React.createElement("div", null,
22355
22379
  React.createElement("span", null,
22356
22380
  React.createElement("strong", null,
22357
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload your school-issued document that shows:" }))),
22381
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload your school-issued document that shows:" }))),
22358
22382
  React.createElement("ul", { className: "sid-upload-info-list" },
22359
22383
  React.createElement("li", { className: "sid-upload-info-list__li" },
22360
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22384
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22361
22385
  React.createElement("li", { className: "sid-upload-info-list__li" },
22362
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.teacher.school", defaultMessage: "Your school" })),
22386
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.teacher.school", defaultMessage: "Your school" })),
22363
22387
  React.createElement("li", { className: "sid-upload-info-list__li" },
22364
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.teacher.currentSchoolYear", defaultMessage: "A date in the current school year" })))));
22388
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.teacher.currentSchoolYear", defaultMessage: "A date in the current school year" })))));
22365
22389
  case SegmentEnum.MEMBER:
22366
22390
  return (React.createElement("div", null,
22367
22391
  React.createElement("span", null,
22368
22392
  React.createElement("strong", null,
22369
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload an official document that shows:" }))),
22393
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload an official document that shows:" }))),
22370
22394
  React.createElement("ul", { className: "sid-upload-info-list" },
22371
22395
  React.createElement("li", { className: "sid-upload-info-list__li" },
22372
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22396
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22373
22397
  React.createElement("li", { className: "sid-upload-info-list__li" },
22374
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.organization", defaultMessage: "Your organization" })),
22398
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.organization", defaultMessage: "Your organization" })),
22375
22399
  React.createElement("li", { className: "sid-upload-info-list__li" },
22376
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.affiliation", defaultMessage: "Your current affiliation with that organization" })))));
22400
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.affiliation", defaultMessage: "Your current affiliation with that organization" })))));
22377
22401
  case SegmentEnum.MILITARY:
22378
22402
  switch (subSegment) {
22379
22403
  case SubSegmentEnum.MILITARY_FAMILY:
22380
22404
  return (React.createElement("div", null,
22381
22405
  React.createElement("span", null,
22382
22406
  React.createElement("strong", null,
22383
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.military.uploadInstructionsDependent", defaultMessage: "Please upload a Dependent ID card that clearly shows your first name, last name, valid dates and status" })))));
22407
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.military.uploadInstructionsDependent", defaultMessage: "Please upload a Dependent ID card that clearly shows your first name, last name, valid dates and status" })))));
22384
22408
  default:
22385
22409
  return (React.createElement("div", null,
22386
22410
  React.createElement("span", null,
22387
22411
  React.createElement("strong", null,
22388
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload your government-issued document that shows:" }))),
22412
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload your government-issued document that shows:" }))),
22389
22413
  React.createElement("ul", { className: "sid-upload-info-list" },
22390
22414
  React.createElement("li", { className: "sid-upload-info-list__li" },
22391
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22415
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22392
22416
  React.createElement("li", { className: "sid-upload-info-list__li" },
22393
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.military.serviceBranch", defaultMessage: "Your branch of service" })),
22417
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.military.serviceBranch", defaultMessage: "Your branch of service" })),
22394
22418
  React.createElement("li", { className: "sid-upload-info-list__li" },
22395
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.military.dischargeDate", defaultMessage: "Your discharge date (if applicable)" })),
22419
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.military.dischargeDate", defaultMessage: "Your discharge date (if applicable)" })),
22396
22420
  React.createElement("li", { className: "sid-upload-info-list__li" },
22397
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.military.currentAffiliation", defaultMessage: "Your current affiliation with the armed services" })))));
22421
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.military.currentAffiliation", defaultMessage: "Your current affiliation with the armed services" })))));
22398
22422
  }
22399
22423
  case SegmentEnum.SENIOR:
22400
22424
  return (React.createElement("div", null,
22401
22425
  React.createElement("span", null,
22402
22426
  React.createElement("strong", null,
22403
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload a government-issued document that shows:" }))),
22427
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload a government-issued document that shows:" }))),
22404
22428
  React.createElement("ul", { className: "sid-upload-info-list" },
22405
22429
  React.createElement("li", { className: "sid-upload-info-list__li" },
22406
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22430
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22407
22431
  React.createElement("li", { className: "sid-upload-info-list__li" },
22408
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.senior.birthDate", defaultMessage: "Your date of birth" })))));
22432
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.senior.birthDate", defaultMessage: "Your date of birth" })))));
22409
22433
  case SegmentEnum.AGE:
22410
22434
  return (React.createElement("div", null,
22411
22435
  React.createElement("span", null,
22412
22436
  React.createElement("strong", null,
22413
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload a government-issued document that shows:" }))),
22437
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload a government-issued document that shows:" }))),
22414
22438
  React.createElement("ul", { className: "sid-upload-info-list" },
22415
22439
  React.createElement("li", { className: "sid-upload-info-list__li" },
22416
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22440
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22417
22441
  React.createElement("li", { className: "sid-upload-info-list__li" },
22418
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.age.birthDate", defaultMessage: "Your date of birth" })))));
22442
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.age.birthDate", defaultMessage: "Your date of birth" })))));
22419
22443
  case SegmentEnum.FIRST_RESPONDER:
22420
22444
  return (React.createElement("div", null,
22421
22445
  React.createElement("span", null,
22422
22446
  React.createElement("strong", null,
22423
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload an official document that shows:" }))),
22447
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload an official document that shows:" }))),
22424
22448
  React.createElement("ul", { className: "sid-upload-info-list" },
22425
22449
  React.createElement("li", { className: "sid-upload-info-list__li" },
22426
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22450
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22427
22451
  React.createElement("li", { className: "sid-upload-info-list__li" },
22428
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.firstResponder.organization", defaultMessage: "Your organization" })),
22452
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.firstResponder.organization", defaultMessage: "Your organization" })),
22429
22453
  React.createElement("li", { className: "sid-upload-info-list__li" },
22430
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.firstResponder.currentAffiliation", defaultMessage: "Your current affiliation with that organization" })),
22454
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.firstResponder.currentAffiliation", defaultMessage: "Your current affiliation with that organization" })),
22431
22455
  React.createElement("li", { className: "sid-upload-info-list__li" },
22432
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.firstResponder.license", defaultMessage: "Your status or license as a First Responder" })))));
22456
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.firstResponder.license", defaultMessage: "Your status or license as a First Responder" })))));
22433
22457
  case SegmentEnum.MEDICAL:
22434
22458
  return (React.createElement("div", null,
22435
22459
  React.createElement("span", null,
22436
22460
  React.createElement("strong", null,
22437
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload an official document that shows:" }))),
22461
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload an official document that shows:" }))),
22438
22462
  React.createElement("ul", { className: "sid-upload-info-list" },
22439
22463
  React.createElement("li", { className: "sid-upload-info-list__li" },
22440
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22464
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22441
22465
  React.createElement("li", { className: "sid-upload-info-list__li" },
22442
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.medical.status", defaultMessage: "Your nursing status" })),
22466
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.medical.status", defaultMessage: "Your nursing status" })),
22443
22467
  React.createElement("li", { className: "sid-upload-info-list__li" },
22444
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.medical.validDate", defaultMessage: "A currently valid date" })))));
22468
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.medical.validDate", defaultMessage: "A currently valid date" })))));
22445
22469
  case SegmentEnum.EMPLOYMENT:
22446
22470
  return (React.createElement("div", null,
22447
22471
  React.createElement("span", null,
22448
22472
  React.createElement("strong", null,
22449
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload an official document that shows:" }))),
22473
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload an official document that shows:" }))),
22450
22474
  React.createElement("ul", { className: "sid-upload-info-list" },
22451
22475
  React.createElement("li", { className: "sid-upload-info-list__li" },
22452
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.employment.company", defaultMessage: "Your company" })),
22476
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.employment.company", defaultMessage: "Your company" })),
22453
22477
  React.createElement("li", { className: "sid-upload-info-list__li" },
22454
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.employment.currentAffiliation", defaultMessage: "Your current affiliation with that company" })))));
22478
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.employment.currentAffiliation", defaultMessage: "Your current affiliation with that company" })))));
22455
22479
  case SegmentEnum.IDENTITY:
22456
22480
  return (React.createElement("div", null,
22457
22481
  React.createElement("span", null,
22458
22482
  React.createElement("strong", null,
22459
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload an official document that shows:" }))),
22483
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload an official document that shows:" }))),
22460
22484
  React.createElement("ul", { className: "sid-upload-info-list" },
22461
22485
  React.createElement("li", { className: "sid-upload-info-list__li" },
22462
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22486
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22463
22487
  React.createElement("li", { className: "sid-upload-info-list__li" },
22464
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.identity.validDate", defaultMessage: "A currently valid date" })))));
22488
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.identity.validDate", defaultMessage: "A currently valid date" })))));
22465
22489
  case SegmentEnum.LICENSED_PROFESSIONAL:
22466
22490
  return (React.createElement("div", null,
22467
22491
  React.createElement("span", null,
22468
22492
  React.createElement("strong", null,
22469
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload an official document that shows:" }))),
22493
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload an official document that shows:" }))),
22470
22494
  React.createElement("ul", { className: "sid-upload-info-list" },
22471
22495
  React.createElement("li", { className: "sid-upload-info-list__li" },
22472
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22496
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22473
22497
  React.createElement("li", { className: "sid-upload-info-list__li" },
22474
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.licensedProfessional.licenseStatus", defaultMessage: "Your professional license and/or certification status" })),
22498
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.licensedProfessional.licenseStatus", defaultMessage: "Your professional license and/or certification status" })),
22475
22499
  React.createElement("li", { className: "sid-upload-info-list__li" },
22476
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.identity.validDate", defaultMessage: "A currently valid date" })))));
22500
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.identity.validDate", defaultMessage: "A currently valid date" })))));
22477
22501
  case SegmentEnum.RECENT_MOVER:
22478
22502
  return (React.createElement("div", null,
22479
22503
  React.createElement("span", null,
22480
22504
  React.createElement("strong", null,
22481
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload an official document that shows:" }))),
22505
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInstructions", defaultMessage: "Upload an official document that shows:" }))),
22482
22506
  React.createElement("ul", { className: "sid-upload-info-list" },
22483
22507
  React.createElement("li", { className: "sid-upload-info-list__li" },
22484
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22508
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.fullName", defaultMessage: "Your full name" })),
22485
22509
  React.createElement("li", { className: "sid-upload-info-list__li" },
22486
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.recentMover.address", defaultMessage: "Your new address" })),
22510
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.recentMover.address", defaultMessage: "Your new address" })),
22487
22511
  React.createElement("li", { className: "sid-upload-info-list__li" },
22488
- React.createElement(FormattedMessage, { id: "step.docUpload.uploadInfo.recentMover.validDate", defaultMessage: "A valid date for your recent move" })))));
22512
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.uploadInfo.recentMover.validDate", defaultMessage: "A valid date for your recent move" })))));
22489
22513
  default:
22490
22514
  return null;
22491
22515
  }
@@ -22593,11 +22617,11 @@ const StepDocUpload = ({ verificationService, intl }) => {
22593
22617
  React.createElement(RewardsRemainingComponent, { verificationService: verificationService }),
22594
22618
  rejectionReasons && rejectionReasons.length > 0 ? (React.createElement("div", { className: "sid-header__subtitle sid-l-horz-center sid-l-position" },
22595
22619
  React.createElement("div", null,
22596
- React.createElement(FormattedMessage, { id: "step.docUpload.rejectedSubtitle", defaultMessage: "We were unable to confirm your eligibility due to:" })),
22620
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.rejectedSubtitle", defaultMessage: "We were unable to confirm your eligibility due to:" })),
22597
22621
  React.createElement("ul", { className: "sid-upload-rejection-list" }, rejectionReasons.map((rejectionReason) => (React.createElement("li", { key: rejectionReason, className: "sid-upload-rejection-list__li" },
22598
- React.createElement(FormattedMessage, { id: `step.docUpload.rejectionReasons.${rejectionReason}`, defaultMessage: `${rejectionReason}` }))))))) : (React.createElement("div", { className: "sid-header__subtitle sid-l-horz-center sid-l-position" },
22622
+ React.createElement(FormattedHTMLMessage, { id: `step.docUpload.rejectionReasons.${rejectionReason}`, defaultMessage: `${rejectionReason}` }))))))) : (React.createElement("div", { className: "sid-header__subtitle sid-l-horz-center sid-l-position" },
22599
22623
  React.createElement("div", null,
22600
- React.createElement(FormattedMessage, { id: "step.docUpload.subtitle", defaultMessage: "Documents will be reviewed in {estimatedWaitTime} by staff at SheerID, a trusted partner.", values: {
22624
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.subtitle", defaultMessage: "Documents will be reviewed in {estimatedWaitTime} by staff at SheerID, a trusted partner.", values: {
22601
22625
  estimatedWaitTime: getEstAndMaxReviewTimes(verificationResponse, programTheme, intl).estReviewTime,
22602
22626
  } }),
22603
22627
  "\u00A0",
@@ -22606,7 +22630,8 @@ const StepDocUpload = ({ verificationService, intl }) => {
22606
22630
  React.createElement("div", { className: "sid-upload-info sid-l-space-top-md" },
22607
22631
  React.createElement("div", { className: "sid-l-space-top-sm" },
22608
22632
  React.createElement(UploadInfoComponent, { verificationService: verificationService })),
22609
- subSegment === SubSegmentEnum.MILITARY_FAMILY ? null : (React.createElement("div", { className: "sid-l-space-top-md" },
22633
+ getOptions().hideMilitaryFamilyAcceptableUploads &&
22634
+ subSegment === SubSegmentEnum.MILITARY_FAMILY ? null : (React.createElement("div", { className: "sid-l-space-top-md" },
22610
22635
  React.createElement(AcceptableUploadsComponent, { verificationService: verificationService })))),
22611
22636
  React.createElement("div", { className: "sid-upload-wrap sid-l-space-top-sm" },
22612
22637
  React.createElement("div", { className: "sid-dropzone-wrap" },
@@ -22630,7 +22655,7 @@ const StepDocUpload = ({ verificationService, intl }) => {
22630
22655
  role: "button", tabIndex: 0, onKeyDown: (e) => handleAddFileOnKeyDown(e) },
22631
22656
  React.createElement("input", { type: "file", id: "file", tabIndex: -1, className: "sid-add-more-files__input", "aria-describedby": "sid-add-file", onChange: fileHandler, accept: "image/jpeg,image/gif,image/png,application/pdf,image/bmp,image/gif", ref: (input) => setRef("addFile", input) }),
22632
22657
  React.createElement("img", { className: "sid-add-more-files__image", alt: "add more files", src: "https://assets-resources.sheerid.com/common/images/2018/icons/add-file.svg" }),
22633
- React.createElement(FormattedMessage, { id: "step.docUpload.addFile", defaultMessage: "Add file" })))) : null,
22658
+ React.createElement(FormattedHTMLMessage, { id: "step.docUpload.addFile", defaultMessage: "Add file" })))) : null,
22634
22659
  React.createElement("div", { className: "sid-submit sid-l-space-top-md" },
22635
22660
  React.createElement("button", { id: "sid-submit-doc-upload", onClick: submitForm, type: "submit", className: "sid-btn sid-btn--dark sid-submit__continue", "aria-label": intl.formatMessage({
22636
22661
  id: "step.docUpload.submitButtonLabel",
@@ -22834,7 +22859,7 @@ const NewVerificationInnerComponent = ({ locale, messages, programTheme, verific
22834
22859
  // Don't change locale, so we don't have to load pluralization data, which has complications. HD-560
22835
22860
  React.createElement(IntlProvider, { locale: "en", key: locale, messages: messagesWithOptions, textComponent: CustomTextWrapper },
22836
22861
  React.createElement(CustomCssWrapperComponent, { styles: getCustomCss(programTheme) }, verificationService.isLoading ? (React.createElement(LoadingScreenComponent, { step: verificationService.loadingStep })) : (React.createElement("div", { className: `${rtlDetect_1.isRtlLang(modernizeLocale(locale)) ? "sid-rtl" : "sid-ltr"} sid-locale-${locale}` },
22837
- React.createElement(TestModeFlagComponent, { verificationService: verificationService }),
22862
+ !getOptions().hideTestModeFlag && (React.createElement(TestModeFlagComponent, { verificationService: verificationService })),
22838
22863
  React.createElement(LoadStepComponent, { stepToLoad: verificationService.verificationResponse.currentStep, verificationService: verificationService }))))));
22839
22864
  };
22840
22865
 
@@ -22891,6 +22916,11 @@ class NewVerification extends React.Component {
22891
22916
  componentDidMount() {
22892
22917
  N$1(); // https://sheerid.atlassian.net/browse/UX-362
22893
22918
  maintainFocusInLightbox();
22919
+ listenToInstallPage((event) => {
22920
+ if (event.data.action === "setViewModel") {
22921
+ setViewModel(event.data.viewModel, { partial: true });
22922
+ }
22923
+ });
22894
22924
  // Special-case, mocking the loading psuedo-step
22895
22925
  if (isMockingLoading()) {
22896
22926
  logger.info("Mocking loading screen. Not fetching new verification request.");
@@ -22914,7 +22944,7 @@ class NewVerification extends React.Component {
22914
22944
  logger.info("NewVerificationComponent: verificationResponse, viewModel", verificationResponse, viewModel);
22915
22945
  const locale = getLocaleSafely(viewModel);
22916
22946
  let messages;
22917
- // optional param `messages`. If we do not have it, all <FormattedMessages /> should use default fallback anyway.
22947
+ // optional param `messages`. If we do not have it, all <FormattedHTMLMessages /> should use default fallback anyway.
22918
22948
  if (this.props.messages) {
22919
22949
  messages = this.props.messages;
22920
22950
  }
@@ -23015,6 +23045,8 @@ const getVerificationUrl = (url) => {
23015
23045
 
23016
23046
  class Iframe {
23017
23047
  constructor(containerElement, url) {
23048
+ this.hasLoaded = false;
23049
+ this.onLoadEvents = [];
23018
23050
  if (Iframe.isValidHttpUrl(url)) {
23019
23051
  const options = {
23020
23052
  className: iframeConstants.CLASS_NAMES.INLINE_IFRAME_CONTENT,
@@ -23050,8 +23082,30 @@ class Iframe {
23050
23082
  mark = "&";
23051
23083
  }
23052
23084
  this.iframe.src = `${this.verificationUrl.href}${mark}verificationIframeUid=${this.verificationIframeUid}&${QUERY_STRING_INSTALL_PAGE_URL}=${encodeURIComponent(getCurrentUrl())}`;
23085
+ this.iframe.onload = () => this.onLoad();
23053
23086
  return this.iframe;
23054
23087
  }
23088
+ // If iFrame hasn't loaded yet, queue up the callback
23089
+ // otherwise call it immediately
23090
+ addOnLoadEvent(callback) {
23091
+ try {
23092
+ assertValidFunction(callback);
23093
+ }
23094
+ catch (e) {
23095
+ logger.error("Invalid callback provided to iFrame.onLoad()", e);
23096
+ return;
23097
+ }
23098
+ if (this.hasLoaded) {
23099
+ callback();
23100
+ }
23101
+ else {
23102
+ this.onLoadEvents.push(callback);
23103
+ }
23104
+ }
23105
+ onLoad() {
23106
+ this.hasLoaded = true;
23107
+ this.onLoadEvents.forEach((callback) => callback());
23108
+ }
23055
23109
  addVerificationSizeUpdatesListener() {
23056
23110
  window.addEventListener("message", (event) => {
23057
23111
  if (this.verificationUrl.origin !== event.origin) {
@@ -23076,6 +23130,13 @@ class Iframe {
23076
23130
  }
23077
23131
  });
23078
23132
  }
23133
+ setViewModel(viewModel) {
23134
+ const message = {
23135
+ action: "setViewModel",
23136
+ viewModel,
23137
+ };
23138
+ this.addOnLoadEvent(() => this.iframe.contentWindow.postMessage(message, this.verificationUrl.origin));
23139
+ }
23079
23140
  init() {
23080
23141
  this.containerElement.appendChild(this.iframe);
23081
23142
  }
@@ -23140,12 +23201,12 @@ class Modal {
23140
23201
  wrapper.tabIndex = -1;
23141
23202
  wrapper.setAttribute("role", "dialog");
23142
23203
  wrapper.appendChild(this.createCloseBtn());
23143
- const iframe = new Iframe(wrapper, this.verificationUrl);
23204
+ this.iframeInstance = new Iframe(wrapper, this.verificationUrl);
23144
23205
  const options = {
23145
23206
  className: iframeConstants.CLASS_NAMES.MODAL_IFRAME,
23146
23207
  };
23147
- this.iframe = iframe.createIframe(options);
23148
- wrapper.appendChild(this.iframe);
23208
+ this.iframeInstance.createIframe(options);
23209
+ wrapper.appendChild(this.iframeInstance.iframe);
23149
23210
  return wrapper;
23150
23211
  }
23151
23212
  addPopStateListener() {
@@ -23164,16 +23225,16 @@ class Modal {
23164
23225
  return;
23165
23226
  }
23166
23227
  if (e.shiftKey && document.activeElement === this.closeButton) {
23167
- this.iframe.contentWindow.postMessage({ focusOn: "lastElement" }, "*");
23228
+ this.iframeInstance.iframe.contentWindow.postMessage({ focusOn: "lastElement" }, "*");
23168
23229
  e.preventDefault();
23169
23230
  }
23170
23231
  });
23171
23232
  }
23172
23233
  isInLightboxPostMessage(inLightbox) {
23173
- this.iframe.contentWindow.postMessage({ isInLightBox: inLightbox }, "*");
23234
+ this.iframeInstance.iframe.contentWindow.postMessage({ isInLightBox: inLightbox }, "*");
23174
23235
  }
23175
23236
  displayModal() {
23176
- this.iframe.addEventListener("load", () => {
23237
+ this.iframeInstance.iframe.addEventListener("load", () => {
23177
23238
  fadeInElements([this.overlay, this.wrapper]);
23178
23239
  document.body.style.overflow = "hidden";
23179
23240
  this.isInLightboxPostMessage("true");
@@ -23191,16 +23252,24 @@ class Modal {
23191
23252
  this.displayModal();
23192
23253
  }
23193
23254
  }
23255
+ setViewModel(viewModel) {
23256
+ this.iframeInstance.setViewModel(viewModel);
23257
+ }
23194
23258
  }
23195
23259
 
23260
+ // 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
23196
23261
  function loadInlineIframe(containerElement, url) {
23197
23262
  const iframe = new Iframe(containerElement, url);
23198
23263
  iframe.init();
23264
+ return iframe;
23199
23265
  }
23266
+ // Called from the parent page to load the jslib within an iFrame in a modal
23200
23267
  function loadInModal(url, userConfig = {}) {
23201
23268
  const modal = new Modal(url, userConfig);
23202
23269
  modal.init();
23270
+ return modal;
23203
23271
  }
23272
+ // Called from the inner iFrame window to let the parent window know about size updates
23204
23273
  function postVerificationSizeUpdates(options = { origin: "*", interval: 100 }) {
23205
23274
  if (window.self !== window.top) {
23206
23275
  let bodyHeight = document.body.offsetHeight;