{"version":3,"sources":["components/SideBarNavigation/SideBarNavigation.tsx","utilities/SuccessErrorDialog.tsx","components/ConfirmDialog/ConfirmDialog.tsx","components/ConfirmDialog/ESITermsDialog.tsx","components/ConfirmDialog/ConfirmCodeDialog.tsx","components/PreferredInfo/PreferredInfo.tsx","components/ConfirmDialog/WorkEmailChangeDialog.tsx","pages/Preference/Preferences.tsx","assets/images/Language.svg","assets/images/Profile_CountryRegion.svg","assets/images/Country.svg","assets/images/Role.svg","assets/images/ProfileData1.svg","assets/images/Profile_Acct.svg","components/ConfirmDialog/CompletionDialog.tsx"],"names":["SideBarNavigation","carditemlist","activeLearningPlanId","profile","profileIsSSOEnabled","isSSOServerError","serverErrorMessage","useSelector","state","LearningPathStore","learningPathCards","UserStore","ssoprofile","isDomainEligibleForSso","isSSOError","customErrorMessage","shallowEqual","disableSSOFeatureFlag","FeatureFlagValues","disableLearnSSOForLandingPageAndNavs","disableSSO","history","useHistory","getProfile","getLearningPathCards","getSSOStatus","useEndpointActions","GetProfileActions","GetLearningPathCardActions","GetSSOStatusActions","account","useAuthenticatedUser","tenantId","userEmail","sessionStorage","getItem","QueryStringParam","WorkEmailAddress","useEffect","userDomain","Helper","getDomain","friendlyError","description","toString","errorCode","method","page","ai","appInsights","trackException","exception","Error","severityLevel","SeverityLevel","properties","signOutPrompt","push","error","hascarditemlist","Array","isArray","React","createElement","Fragment","NavLink","to","className","dir","FormattedMessage","id","defaultMessage","map","carditem","index","key","cardlink","includes","href","GetUrlWithRole","roleName","target","rel","onClick","handleLearnRedirectEvent","concat","imagename","Image","src","imagesSVG","alt","cardtitle","FontIcon","iconName","aria-label","memo","SuccessErrorDialog","props","textMessage","isOpen","onDone","buttonText","isSuccess","labelId","useId","dialogContentProps","type","DialogType","close","closeButtonAriaLabel","subText","modalProps","titleAriaId","containerClassName","topOffsetFixed","labelText","Dialog","hidden","onDismiss","DialogFooter","PrimaryButton","text","ConfirmDialog","textToDisplay","onNextStepClick","heading","onNextStepText","checkBoxlLabelText","checkboxDisplay","textToDisplayOnCancel","isChecked","setIsChecked","useState","isBtnDisabed","setIsBtnDisabed","cancelText","onCancel","title","aria-hidden","Checkbox","label","checked","required","onChange","onTosCheckboxChange","DefaultButton","disabled","values","span","chunks","onContinue","ESITermsDialog","titleToDisplay","intl","useIntl","locale","useLocale","esiAgreementSuportedLanguage","setEsiAgreementSuportedLanguage","selectedLanguage","setSelectedLanguage","suportedlanguageDropdown","useRef","getESIAgreement","GetESIAgreementActions","store","EnrollmentPlanStore","esiAgreementMess","esiAgreement","lxpProgramGuidelinesTitle","setClarityCustomTag","lxpTermsConditionsTitle","length","indexLxpTerms","findIndex","x","pageName","lxpTermsConditions","supportedLanguages","suportedLanguage","JSON","parse","lang","esiLanguagecode","esiName","setSupportedLanguageOption","useCallback","event","option","prev","htmlFor","tabIndex","ComboBox","placeholder","formatMessage","allowFreeform","autoComplete","options","selectedKey","componentRef","useComboBoxAsMenuWidth","calloutProps","directionalHint","directionalHintFixed","calloutMaxHeight","dangerouslySetInnerHTML","__html","DOMPurify","sanitize","ariaLabel","ConfirmCodeDialog","_localStorage$getItem","value","textboxDisplay","textboxlabelText","hashCodeTextboxDisplay","isPreferredEmail","localStorage","newWorkEmailRef","createRef","workemailAddress","NewWorkEmailUpdate","preferredEmailAddress","PreferredEmailUpdate","oldWorkemailAddress","workEmail","oldPreferredEmailAddress","VerifyWorkEmailAddress","VerifyWorkEmailAddressActions","emailVerification","EmailVerificationActions","isVerified","isVerificationError","document","getElementById","style","display","isFetching","email","LoaderSection","TextField","role","validateOnFocusOut","validateOnLoad","_newWorkEmailRef$curr","emailAddress","current","Link","reSendCode","params","newWorkEmailAddress","existingWorkEmailAddress","trackTrace","message","Information","applicationName","process","eventId","defaultValue","PreferredInfo","info","isReturningUser","changeContactInfo","addEmailText","submessage","WorkEmailChangeDialog","compareError","existingEmailError","isValidEmailError","newEmailRef","compareEmailRef","preferredEmail","setEmailAddress","emailAddressError","setEmailAddressError","compareEmailAddress","setCompareEmailAddress","compareEmailAddressError","setCompareEmailAddressError","invalidEmailMessage","unmatchedEmailMessage","existingEmailMessage","updateErrorMessage","emailAddressTest","test","compareErrorMessage","existingEmailErrorMessage","isEmailAddressValidRegex","_newEmailRef$current","_newEmailRef$current2","_compareEmailRef$curr","_compareEmailRef$curr2","fullEmailAddress","substring","lastIndexOf","fullCompareEmailAddress","requiredAriaLabel","isDisabled","aria-describedby","errorMessage","suffix","e","currentTarget","trim","onBlur","Preferences","_location$state","username","isEmailSentForWorkEmail","isWorkEmailUpdate","isEmailSendForWorkEmail","isEmailSent","isEmailSend","userlocale","useTitle","selectedRole","selectedTimezone","selectedCountry","isUpdateProfile","isTOSAccepted","isProfileExists","isProfileCompleted","isKoreaPrivacyAccepted","setIsOpen","isTermsDialogOpen","setTermsDialogOpen","isGuidelinesDialogOpen","setGuidelinesDialogOpen","isUnlinkAcctClose","setIsUnlinkAcctClose","isCodeVerificationDialogOpen","setCodeVerificationDialogOpen","isCodeVerificationPreferredEmailDialogOpen","setCodeVerificationPreferredEmailDialogOpen","isSuccessErrorDialogOpen","setSuccessErrorDialogOpen","isCompletionDialogOpen","setCompletionDialogOpen","isCompletionPreferredEmailDialogOpen","setCompletionPreferredEmaiDialogOpen","isContactInfoDialogOpen","setContactInfoDialogOpen","isCompareError","setCompareError","isExistingError","setExistingError","setIsValidEmailError","selectedRoleItem","setSelectedRoleItem","selectedLanguageItem","setSelectedLanguageItem","selectedTimeZoneItem","setSelectedTimeZoneItem","selectedCountryItem","setSelectedCountryItem","newWorkEmailAddressUpdate","setNewWorkEmailAddressUpdate","isTosChecked","setTosChecked","submitButtonText","setsubmitButtonText","location","useLocation","dispatch","useDispatch","isESITerms","IsESITermsAccepted","getLanguages","getTimezones","getRoles","getCountries","GetLanguagesActions","GetTimeZonesActions","GetRolesActions","GetCountryActions","updateProfile","CreateProfileActions","deleteProfile","DeleteAccountActions","languageDropdown","signout","useLogout","isProfileFetching","isProfileFetched","hasLinkedAccounts","isOrgIdExist","isAad","isMSA","_state$UserStore","isFetched","AccountLinkingStore","linkedAccounts","hasLinkedAccount","getEmailProfileOrgId","emailprofile","newPreferredEmailAddressUpdate","setPreferredEmailAddressUpdate","newPreferredEmailUpdate","setPreferredEmailUpdate","workEmailAddress","isError","customErrorCode","userEmailAddress","acctType","newEmailAddress","_state$UserStore$cust","_state$UserStore$cust2","_state$UserStore$cust3","_state$UserStore$cust4","_state$UserStore$cust5","_state$UserStore$cust6","response","accountUnlinkingResponse","isRedirectToHome","setRedirectHome","isPreferredEmailUpdated","setPreferredEmailUpdated","isPreferredEmailVerified","setPreferredEmailVerified","isSkipValidation","setIsSkipValidation","isChinaSelected","setChinaToBeSelected","isKoreaSelected","setKoreaToBeSelected","koreaConsent","setKoreaConsent","isConsentRequired","setConsentRequired","isServerError","_state$UserStore$resp","data","NO_LEARNER_INFO_ERROR","isSigninDisable","disableEsiTerms","supportLinkLogging","supportLinkVisitLog","closeDialog","KEY_TO_CHINA","KEY_TO_KOREA_SOUTH","termsConditionsHtml","setTermsConditionsHtml","programGuidelinesHtml","setProgramGuidelinesHtml","Id","PageName","firstName","indexguideLinesMessage","item","lxpProgramGuidelines","setItem","statusCode","status","languages","timezones","roles","countries","getElementsByClassName","pointerEvents","cursor","clear","window","wnd","register","lpid","acceptedToS","language","timezone","country","lastName","termsAcceptedDateTime","esiTerms","isESITermsAccepted","acceptedDateTime","Date","toUTCString","languageId","languageName","timezoneId","timezoneName","roleId","countryId","countryName","setLanguageOption","setTimeZoneOption","setRoleOption","setCountryOption","setacceptedToS","ev","accountLinkingSuccessMsg","accountLinkingErrorMsg","accountLinkingDialogContent","onDismissUnlinkAcct","Clear","openUnlinkAcctModal","openManageCookiesModal","manageConsent","onDismissCodeVerification","onDismissCompletion","onDismissUpdateContactInfo","onDismissPreferredEmailCodeVerification","onDismissPreferredEmailCompletion","onDeleteAccount","UpdateWorkEmailAddress","UpdateWorkEmailAddressActions","VerificationCode","VerificationCodeActions","VerifyUpdatedEmail","SendUpdatedWorkEmail","hashCode","oldWorkEmailAddress","VerifyPreferredEmail","isValidCompareEmailError","SendUpdatedPreferredEmail","accessCode","unLinkNextSteps","saveChangesText","agreeAndContinueText","localizedSaveButtonText","preferredEmailInfo","preferredEmailCheckboxTest","handleKoreaCheck","KoreaPrivacyMessage","ChinaPIPLMessage","link","Redirect","Language","width","Country","Timezone","Role","ProfileData1","b","AccountManagement","ariaDescription","data-testid","CompletionDialog","textToDisplayContent","openESITerms","openProgramGuideLine","targe","allowDisabledFocus","module","exports","useMemo","congratsHeading"],"mappings":"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","file":"static/js/5.20ab3c4d.chunk.js","sourcesContent":["import { FontIcon, Image } from '@fluentui/react';\r\nimport React, { useEffect } from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport { NavLink, useHistory } from 'react-router-dom';\r\nimport { SeverityLevel } from '@microsoft/applicationinsights-web';\r\nimport { FormattedMessage } from 'react-intl';\r\n\r\nimport { ILearningPathCard, ICustomErrorMessage } from '../../models';\r\nimport { IApplicationState } from '../../store';\r\nimport { useEndpointActions } from '../../store/endpoint';\r\nimport { GetProfileActions, GetSSOStatusActions } from '../../store/stores/user';\r\nimport { GetLearningPathCardActions } from '../../store/stores/learningPath';\r\nimport { ai } from '../ApplicationInsightsProvider/ApplicationInsightsService';\r\nimport { useAuthenticatedUser } from '../../hooks/useAuthenticatedUser';\r\nimport { QueryStringParam } from '../../utilities/QueryStrings';\r\nimport { Helper } from '../../utilities/Helper';\r\nimport FeatureFlagValues from '../../utilities/featureFlagValues';\r\nimport { imagesSVG } from '../../utilities/imagesSVG';\r\n\r\nimport './SideBarNavigation.scss';\r\n\r\nexport const SideBarNavigation: React.FunctionComponent = () => {\r\n  const [carditemlist, activeLearningPlanId, profile, profileIsSSOEnabled, isSSOServerError, serverErrorMessage] = useSelector(\r\n    (state: IApplicationState) => [\r\n      state.LearningPathStore.learningPathCards,\r\n      state.UserStore.profile.activeLearningPlanId,\r\n      state.UserStore.profile,\r\n      state.UserStore.ssoprofile.isDomainEligibleForSso,\r\n      state.UserStore.isSSOError,\r\n      state.UserStore.customErrorMessage\r\n    ],\r\n    shallowEqual\r\n  );\r\n  const disableSSOFeatureFlag = FeatureFlagValues().disableLearnSSOForLandingPageAndNavs;\r\n  const disableSSO = !profileIsSSOEnabled || disableSSOFeatureFlag;\r\n  const history = useHistory();\r\n  const [getProfile, getLearningPathCards, getSSOStatus] = useEndpointActions([\r\n    GetProfileActions,\r\n    GetLearningPathCardActions,\r\n    GetSSOStatusActions\r\n  ]);\r\n  const account = useAuthenticatedUser();\r\n  const tenantId = account?.tenantId;\r\n\r\n  const userEmail = sessionStorage.getItem(QueryStringParam.WorkEmailAddress);\r\n  useEffect(() => {\r\n    if (!activeLearningPlanId) {\r\n      getProfile(userEmail);\r\n      const userDomain = Helper.getDomain(userEmail);\r\n      if (userDomain != null) {\r\n        getSSOStatus(userDomain);\r\n      }\r\n    }\r\n  }, [activeLearningPlanId, getProfile, getSSOStatus, userEmail]);\r\n\r\n  useEffect(() => {\r\n    if (isSSOServerError) {\r\n      const friendlyError: ICustomErrorMessage = {\r\n        description: serverErrorMessage?.toString(),\r\n        errorCode: serverErrorMessage?.toString(),\r\n        method: 'UseEffect-Servererror',\r\n        page: 'SidebarNavigation'\r\n      };\r\n      if (ai.appInsights) {\r\n        ai.appInsights.trackException({\r\n          exception: new Error('ESIUI'),\r\n          severityLevel: SeverityLevel.Error,\r\n          properties: { friendlyError, isSSOServerError }\r\n        });\r\n      }\r\n    }\r\n  }, [isSSOServerError, serverErrorMessage]);\r\n\r\n  useEffect(() => {\r\n    if (activeLearningPlanId) {\r\n      getLearningPathCards(activeLearningPlanId);\r\n    } else {\r\n      const friendlyError: ICustomErrorMessage = {\r\n        description: 'defaultlpidissue',\r\n        signOutPrompt: true,\r\n        method: 'useEffect-defaultlpidissue',\r\n        page: 'SidebarNavigation'\r\n      };\r\n      if (ai.appInsights) {\r\n        ai.appInsights.trackException({\r\n          exception: new Error('ESIUI'),\r\n          severityLevel: SeverityLevel.Error,\r\n          properties: { friendlyError, activeLearningPlanId, tenantId }\r\n        });\r\n      }\r\n      history.push('/about/', {\r\n        error: friendlyError\r\n      });\r\n      return;\r\n    }\r\n    // eslint-disable-next-line react-hooks/exhaustive-deps\r\n  }, [activeLearningPlanId]);\r\n  const hascarditemlist = Array.isArray(carditemlist);\r\n  return (\r\n    <React.Fragment>\r\n      {hascarditemlist && (\r\n        <ul>\r\n          <li>\r\n            <div>\r\n              <NavLink to=\"/landing\">\r\n                <div className=\"ms-Grid\" dir=\"ltr\">\r\n                  <div className=\"ms-Grid-row\">\r\n                    <div className=\"ms-Grid-col ms-sm12 ms-md12 ms-lg12\">\r\n                      <h2 className=\"home\">\r\n                        <FormattedMessage defaultMessage=\"Home\" />\r\n                      </h2>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </NavLink>\r\n            </div>\r\n          </li>\r\n          {carditemlist.map((carditem: ILearningPathCard, index: number) => (\r\n            <li key={index}>\r\n              <div className=\"sideBarContentNav\">\r\n                {carditem.cardlink.includes('http') && (\r\n                  <a\r\n                    href={Helper.GetUrlWithRole(carditem, profile?.roleName)}\r\n                    target=\"_blank\" // eslint-disable-line react/jsx-no-target-blank\r\n                    rel=\"noopener\"\r\n                    onClick={Helper.handleLearnRedirectEvent(\r\n                      disableSSO,\r\n                      Helper.GetUrlWithRole(carditem, profile?.roleName),\r\n                      '_blank',\r\n                      'noopener'\r\n                    )}\r\n                  >\r\n                    <div className=\"ms-Grid \" dir=\"ltr\">\r\n                      <div className=\"ms-Grid-row gridDiv\">\r\n                        <div className=\"ms-Grid-col ms-sm1 ms-md1 ms-lg1\">\r\n                          <div className={`${carditem.imagename} selectedItemMarker`}></div>\r\n                        </div>\r\n                        <div className=\"ms-Grid-col ms-sm1 ms-md1 ms-lg1\">\r\n                          <Image src={imagesSVG[carditem.imagename]} alt=\"Navigation icon\" className=\"iconStyle\" />\r\n                        </div>\r\n                        <div className=\"ms-Grid-col ms-sm10 ms-md10 ms-lg10\">\r\n                          <div className=\"space ms-fontWeight-semibold\">\r\n                            {carditem.cardtitle} &nbsp;\r\n                            <FontIcon iconName=\"NavigateExternalInline\" aria-label=\"opens in new window\" />\r\n                          </div>\r\n                        </div>\r\n                      </div>\r\n                    </div>\r\n                  </a>\r\n                )}\r\n                {!carditem.cardlink.includes('http') && (\r\n                  <NavLink to={carditem.cardlink}>\r\n                    <div className=\"ms-Grid\" dir=\"ltr\">\r\n                      <div className=\"ms-Grid-row gridDiv\">\r\n                        <div className=\"ms-Grid-col ms-sm12 ms-md1 ms-lg1\">\r\n                          <div className={`${carditem.imagename} selectedItemMarker`}></div>\r\n                        </div>\r\n                        <div className=\"ms-Grid-col ms-sm12 ms-md1 ms-lg1\">\r\n                          <Image src={imagesSVG[carditem.imagename]} alt=\"Navigation icon\" className=\"iconStyle\" />\r\n                        </div>\r\n                        <div className=\"ms-Grid-col ms-sm12 ms-md10 ms-lg10\">\r\n                          <div className=\"space\">{carditem.cardtitle}</div>\r\n                        </div>\r\n                      </div>\r\n                    </div>\r\n                  </NavLink>\r\n                )}\r\n              </div>\r\n            </li>\r\n          ))}\r\n        </ul>\r\n      )}\r\n    </React.Fragment>\r\n  );\r\n};\r\nexport default React.memo(SideBarNavigation);\r\n","import * as React from 'react';\r\nimport { Dialog, DialogFooter, DialogType, PrimaryButton } from '@fluentui/react';\r\nimport { useId } from '@uifabric/react-hooks';\r\nimport './SuccessErrorDialog.scss';\r\n\r\ninterface ISuccessErrorProps {\r\n  textMessage: string | undefined;\r\n  isSuccess: boolean;\r\n  isOpen: boolean;\r\n  onDone?: () => void;\r\n  buttonText: string;\r\n}\r\n\r\nexport const SuccessErrorDialog: React.FunctionComponent<ISuccessErrorProps> = props => {\r\n  const { textMessage, isOpen, onDone, buttonText, isSuccess } = props;\r\n  const labelId: string = useId('dialogLabel');\r\n\r\n  const dialogContentProps = {\r\n    type: DialogType.close,\r\n    closeButtonAriaLabel: 'Close',\r\n    subText: textMessage\r\n  };\r\n  const modalProps = React.useMemo(\r\n    () => ({\r\n      titleAriaId: labelId,\r\n      containerClassName: 'dialogContent',\r\n      topOffsetFixed: true\r\n    }),\r\n    [labelId]\r\n  );\r\n\r\n  const labelText = isSuccess ? 'Success' : 'Error';\r\n\r\n  return (\r\n    <>\r\n      <label id={labelId} className=\"ms-screenReaderOnly\">\r\n        {`Account Unlinking ${labelText} Modal Opens`}\r\n      </label>\r\n      <Dialog\r\n        className={`modalUnLinking ${!isSuccess ? 'error' : ''}`}\r\n        hidden={!isOpen}\r\n        onDismiss={onDone}\r\n        dialogContentProps={dialogContentProps}\r\n        modalProps={modalProps}\r\n      >\r\n        <DialogFooter className=\"modalFooter\">\r\n          <PrimaryButton onClick={onDone} text={buttonText} className=\"okayBtn\" />\r\n        </DialogFooter>\r\n      </Dialog>\r\n    </>\r\n  );\r\n};\r\n","import React, { useState } from 'react';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport { Checkbox, DefaultButton, Dialog, DialogType, PrimaryButton } from '@fluentui/react';\r\n\r\nimport './ConfirmDialog.scss';\r\nimport '../../styles/actions.scss';\r\nimport '../../index.scss';\r\n\r\ninterface IComponentProps {\r\n  isOpen: boolean;\r\n  onDismiss: () => void;\r\n  onNextStepClick: () => void;\r\n  heading: string;\r\n  subText?: string;\r\n  onNextStepText: string;\r\n  checkboxDisplay?: boolean;\r\n  checkBoxlLabelText?: string;\r\n  className?: string;\r\n  textToDisplay?: string;\r\n  textToDisplayOnCancel?: string;\r\n}\r\n\r\nexport const ConfirmDialog: React.FunctionComponent<IComponentProps> = props => {\r\n  const {\r\n    isOpen,\r\n    onDismiss,\r\n    textToDisplay,\r\n    onNextStepClick,\r\n    heading,\r\n    subText,\r\n    onNextStepText,\r\n    checkBoxlLabelText,\r\n    checkboxDisplay,\r\n    className,\r\n    textToDisplayOnCancel\r\n  } = props;\r\n  const [isChecked, setIsChecked] = useState(false);\r\n  const [isBtnDisabed, setIsBtnDisabed] = useState(true);\r\n  const cancelText = textToDisplayOnCancel ? textToDisplayOnCancel : 'Cancel';\r\n\r\n  const onTosCheckboxChange = () => {\r\n    setIsChecked(!isChecked);\r\n    setIsBtnDisabed(!isBtnDisabed);\r\n  };\r\n\r\n  const onCancel = () => {\r\n    setIsChecked(false);\r\n    setIsBtnDisabed(true);\r\n    onDismiss();\r\n  };\r\n\r\n  const onContinue = () => {\r\n    setIsChecked(false);\r\n    setIsBtnDisabed(true);\r\n    onNextStepClick();\r\n  };\r\n\r\n  const dialogContentProps = {\r\n    type: DialogType.close,\r\n    title: heading,\r\n    closeButtonAriaLabel: 'Close',\r\n    subText: subText\r\n  };\r\n\r\n  const modalProps = {\r\n    containerClassName: 'dialogContent'\r\n  };\r\n  return (\r\n    <Dialog\r\n      className={`confirmDialog ${className}`}\r\n      hidden={isOpen}\r\n      onDismiss={onCancel}\r\n      dialogContentProps={dialogContentProps}\r\n      modalProps={modalProps}\r\n    >\r\n      <div className=\"modalContent\"></div>\r\n      {textToDisplay}\r\n      {checkboxDisplay && (\r\n        <div className=\"required\" aria-hidden={true}>\r\n          *<FormattedMessage defaultMessage=\"Required\" />\r\n        </div>\r\n      )}\r\n      {checkboxDisplay && (\r\n        <>\r\n          <Checkbox\r\n            label={checkBoxlLabelText}\r\n            className=\"agreeCheckbox ms-font-semibold\"\r\n            checked={isChecked}\r\n            required={true}\r\n            onChange={onTosCheckboxChange}\r\n          />\r\n        </>\r\n      )}\r\n      <div className=\"ms-Grid actions\">\r\n        <div className=\"ms-Grid-row actionsWrapper\">\r\n          <div className=\"ms-Grid-col ms-sm12 ms-md6 ms-lg6\">\r\n            <DefaultButton onClick={onCancel} disabled={checkboxDisplay ? isBtnDisabed : false}>\r\n              <FormattedMessage\r\n                defaultMessage=\"<span>{cancelText}</span>\"\r\n                values={{\r\n                  span: (chunks: React.ReactNode) => <>{chunks}</>,\r\n                  cancelText\r\n                }}\r\n              />\r\n            </DefaultButton>\r\n          </div>\r\n          <div className=\"ms-Grid-col ms-sm12 ms-md6 ms-lg6\">\r\n            <PrimaryButton onClick={onContinue} text={onNextStepText} disabled={checkboxDisplay ? isBtnDisabed : false} />\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </Dialog>\r\n  );\r\n};\r\n","import React, { useState, useRef, useEffect } from 'react';\r\nimport { FormattedMessage, useIntl } from 'react-intl';\r\nimport { DefaultButton, Dialog, DialogType, ComboBox, IComboBoxOption, IComboBox } from '@fluentui/react';\r\nimport DOMPurify from 'dompurify';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\n\r\nimport { useLocale } from '../../components/LocalizationProvider/LocalizationProvider';\r\nimport { useEndpointActions } from '../../store/endpoint';\r\nimport { GetESIAgreementActions } from '../../store/stores/enrollmentPlan';\r\nimport { IApplicationState } from '../../store';\r\nimport { Helper, lxpProgramGuidelinesTitle, lxpTermsConditionsTitle, lxpTermsConditions } from '../../utilities';\r\nimport { ISupportedLanguages } from '../../models/ESIAgreement';\r\n\r\nimport './ESITermsDialog.scss';\r\n\r\ninterface IComponentProps {\r\n  isOpen: boolean;\r\n  textToDisplay: string;\r\n  titleToDisplay?: string;\r\n  className: string;\r\n  onDismiss: () => void;\r\n}\r\n\r\nexport const ESITermsDialog: React.FunctionComponent<IComponentProps> = props => {\r\n  const { isOpen, textToDisplay, titleToDisplay, className, onDismiss } = props;\r\n  const intl = useIntl();\r\n  const { locale } = useLocale();\r\n  const [esiAgreementSuportedLanguage, setEsiAgreementSuportedLanguage] = useState([{ key: '', text: '' }]);\r\n  const [selectedLanguage, setSelectedLanguage] = useState(locale);\r\n  const suportedlanguageDropdown = useRef<IComboBox>(null);\r\n  const [getESIAgreement] = useEndpointActions([GetESIAgreementActions]);\r\n  const [store] = useSelector((state: IApplicationState) => [state.EnrollmentPlanStore], shallowEqual);\r\n  const esiAgreementMess = store.esiAgreement;\r\n\r\n  const onCancel = () => {\r\n    onDismiss();\r\n  };\r\n\r\n  const dialogContentProps = {\r\n    type: DialogType.close,\r\n    title: titleToDisplay,\r\n    closeButtonAriaLabel: 'Close',\r\n    subText: ''\r\n  };\r\n\r\n  const modalProps = {\r\n    containerClassName: 'dialogContent'\r\n  };\r\n\r\n  useEffect(() => {\r\n    titleToDisplay === lxpProgramGuidelinesTitle && Helper.setClarityCustomTag('esiTerms', `Reading Program Guideline on Profile Page`);\r\n\r\n    titleToDisplay === lxpTermsConditionsTitle && Helper.setClarityCustomTag('esiTerms', `Reading ESI Terms On Profile Page`);\r\n  }, [titleToDisplay]);\r\n\r\n  useEffect(() => {\r\n    if (esiAgreementMess && esiAgreementMess.length > 0) {\r\n      const indexLxpTerms = esiAgreementMess.findIndex(x => x.pageName === lxpTermsConditions);\r\n\r\n      if (esiAgreementMess[indexLxpTerms].supportedLanguages) {\r\n        const jsonLangString: ISupportedLanguages[] = JSON.parse(esiAgreementMess[indexLxpTerms].supportedLanguages);\r\n\r\n        const suportedLanguage = jsonLangString.map(lang => ({\r\n          key: lang.esiLanguagecode,\r\n          text: lang.esiName\r\n        }));\r\n\r\n        setEsiAgreementSuportedLanguage(suportedLanguage);\r\n        setSelectedLanguage(selectedLanguage);\r\n        getESIAgreement(selectedLanguage);\r\n\r\n        titleToDisplay === lxpTermsConditionsTitle &&\r\n          Helper.setClarityCustomTag('esiTerms', `Supportive Language Feature Used On Profile Page`);\r\n      }\r\n    }\r\n    //eslint-disable-next-line\r\n  }, [selectedLanguage]);\r\n\r\n  const setSupportedLanguageOption = React.useCallback((event: React.FormEvent<IComboBox>, option: IComboBoxOption | undefined): void => {\r\n    if (option && option.key) {\r\n      const key = option.key.toString();\r\n      setSelectedLanguage(prev => key);\r\n    }\r\n  }, []);\r\n\r\n  return (\r\n    <>\r\n      <Dialog className={className} hidden={isOpen} onDismiss={onCancel} dialogContentProps={dialogContentProps} modalProps={modalProps}>\r\n        <label id=\"esiTerms\" htmlFor={className} className=\"ms-screenReaderOnly\">\r\n          <FormattedMessage\r\n            defaultMessage=\"{titleToDisplay}\"\r\n            values={{\r\n              span: (chunks: React.ReactNode) => <>{chunks}</>,\r\n              titleToDisplay\r\n            }}\r\n          />\r\n        </label>\r\n        <div>\r\n          {className === 'termsAndConditionsDialog' && !isOpen && esiAgreementSuportedLanguage.length > 1 && (\r\n            //eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex,jsx-a11y/tabindex-no-positive\r\n            <div tabIndex={1} className=\"focusRemove settingOptionText\">\r\n              <ComboBox\r\n                placeholder={intl.formatMessage({\r\n                  defaultMessage: 'Select a preferred language'\r\n                })}\r\n                allowFreeform\r\n                autoComplete=\"on\"\r\n                options={esiAgreementSuportedLanguage}\r\n                onChange={setSupportedLanguageOption}\r\n                className=\"dropdownWidth\"\r\n                required={true}\r\n                selectedKey={selectedLanguage}\r\n                componentRef={suportedlanguageDropdown}\r\n                useComboBoxAsMenuWidth={true}\r\n                calloutProps={{ directionalHint: 5, directionalHintFixed: true, calloutMaxHeight: 350 }}\r\n              />\r\n            </div>\r\n          )}\r\n          <div\r\n            //eslint-disable-next-line\r\n            tabIndex={0}\r\n            className=\"dialogTermsBoxOuter\"\r\n          >\r\n            <div className=\"dialogTermsBoxInner\">\r\n              <div dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(textToDisplay) }} />\r\n            </div>\r\n          </div>\r\n        </div>\r\n        <div className=\"ms-Dialog-actions\">\r\n          <DefaultButton ariaLabel=\"Close\" onClick={onCancel} text={intl.formatMessage({ defaultMessage: 'Close' })} />\r\n        </div>\r\n      </Dialog>\r\n    </>\r\n  );\r\n};\r\n","import React, { useState } from 'react';\r\nimport { FormattedMessage, useIntl } from 'react-intl';\r\nimport { Checkbox, Dialog, DialogType, PrimaryButton, TextField, ITextField, Link, FontIcon } from '@fluentui/react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport { SeverityLevel } from '@microsoft/applicationinsights-web';\r\n\r\nimport { IApplicationState } from '../../store';\r\nimport { IEmailVerificationRequest, IUpdateEmailVerificationRequest } from '../../models';\r\nimport { ai } from '../ApplicationInsightsProvider/ApplicationInsightsService';\r\nimport { QueryStringParam } from '../../utilities';\r\nimport { VerifyWorkEmailAddressActions, EmailVerificationActions } from '../../store/stores/user/actions';\r\nimport { useEndpointActions } from '../../store/endpoint';\r\nimport { LoaderSection } from '../Loading/LoaderSection';\r\nimport './ConfirmDialog.scss';\r\nimport './WorkEmailChangeDialog.scss';\r\nimport './ConfirmCodeDialog.scss';\r\n\r\ninterface IComponentProps {\r\n  isOpen: boolean;\r\n  value: string | null;\r\n  onDismiss: () => void;\r\n  onNextStepClick?: (newWorkEmailAddress: string) => void;\r\n  subText?: string;\r\n  onNextStepText: string;\r\n  checkboxDisplay?: boolean;\r\n  checkBoxlLabelText?: string;\r\n  textboxDisplay?: boolean;\r\n  textboxlabelText?: string;\r\n  className?: string;\r\n  textToDisplay?: string;\r\n  hashCodeTextboxDisplay?: boolean;\r\n  isPreferredEmail?: boolean;\r\n  placeholder: string;\r\n}\r\n\r\nexport const ConfirmCodeDialog: React.FunctionComponent<IComponentProps> = props => {\r\n  const {\r\n    isOpen,\r\n    value,\r\n    onDismiss,\r\n    textToDisplay,\r\n    onNextStepClick,\r\n    subText,\r\n    onNextStepText,\r\n    checkBoxlLabelText,\r\n    checkboxDisplay,\r\n    textboxDisplay,\r\n    textboxlabelText,\r\n    className,\r\n    hashCodeTextboxDisplay,\r\n    isPreferredEmail,\r\n    placeholder\r\n  } = props;\r\n  const applicationName: string = process.env.REACT_APP_API_ACCESSCODE_APPLICATIONNAME + '';\r\n  const locale: string = localStorage.getItem('locale') ?? 'en-US';\r\n  const eventId: string = process.env.REACT_APP_API_ACCESSCODE_EVENTID + '';\r\n  const intl = useIntl();\r\n  const [isChecked, setIsChecked] = useState(false);\r\n  const [isBtnDisabed, setIsBtnDisabed] = useState(true);\r\n  const newWorkEmailRef = React.createRef<ITextField>();\r\n  const workemailAddress = sessionStorage.getItem(QueryStringParam.NewWorkEmailUpdate);\r\n  const preferredEmailAddress = sessionStorage.getItem(QueryStringParam.PreferredEmailUpdate);\r\n  const [oldWorkemailAddress] = useSelector((state: IApplicationState) => [state.UserStore.profile.workEmail], shallowEqual);\r\n  const [oldPreferredEmailAddress] = useSelector(\r\n    (state: IApplicationState) => [state.UserStore.profile.preferredEmailAddress],\r\n    shallowEqual\r\n  );\r\n\r\n  const onTosCheckboxChange = () => {\r\n    setIsChecked(!isChecked);\r\n    setIsBtnDisabed(!isBtnDisabed);\r\n  };\r\n  const [VerifyWorkEmailAddress] = useEndpointActions([VerifyWorkEmailAddressActions]);\r\n  const [emailVerification] = useEndpointActions([EmailVerificationActions]);\r\n\r\n  const [isVerified] = useSelector((state: IApplicationState) => [state.UserStore.isVerified], shallowEqual);\r\n  const isVerificationError = useSelector((state: IApplicationState) => {\r\n    if (state.UserStore.isVerificationError && !isVerified) {\r\n      if (document.getElementById('errorDiv')) {\r\n        document.getElementById('errorDiv')!.style.display = 'inline-flex';\r\n      }\r\n      return true;\r\n    } else return false;\r\n  });\r\n  const isFetching = useSelector<IApplicationState, boolean>(state => state.UserStore.isFetching, shallowEqual);\r\n  const onCancel = () => {\r\n    setIsChecked(false);\r\n    setIsBtnDisabed(true);\r\n    onDismiss();\r\n  };\r\n\r\n  const onContinue = () => {\r\n    setIsChecked(false);\r\n    setIsBtnDisabed(true);\r\n    const emailAddress = newWorkEmailRef.current?.value;\r\n    if (emailAddress) {\r\n      if (onNextStepClick) {\r\n        onNextStepClick(emailAddress);\r\n      }\r\n    }\r\n  };\r\n  const reSendCode = () => {\r\n    if (workemailAddress && !isPreferredEmail) {\r\n      const params: IUpdateEmailVerificationRequest = {\r\n        newWorkEmailAddress: workemailAddress,\r\n        existingWorkEmailAddress: oldWorkemailAddress\r\n      };\r\n      if (ai.appInsights) {\r\n        ai.appInsights.trackTrace({\r\n          message: 'Step1: Email Verification',\r\n          severityLevel: SeverityLevel.Information,\r\n          properties: {\r\n            params\r\n          }\r\n        });\r\n      }\r\n\r\n      VerifyWorkEmailAddress(params);\r\n    } else if (preferredEmailAddress && isPreferredEmail) {\r\n      const params: IEmailVerificationRequest = {\r\n        email: preferredEmailAddress,\r\n        applicationName: applicationName,\r\n        locale: locale,\r\n        eventId: eventId\r\n      };\r\n      if (ai.appInsights) {\r\n        let message = `Preference: Email Verification for new preferred email updation ${preferredEmailAddress}`;\r\n        if (oldPreferredEmailAddress && oldPreferredEmailAddress !== preferredEmailAddress) {\r\n          message = `${message} , oldPreferredEmailAddress : ${oldPreferredEmailAddress}`;\r\n        }\r\n        ai.appInsights.trackTrace({\r\n          message,\r\n          severityLevel: SeverityLevel.Information,\r\n          properties: {\r\n            params\r\n          }\r\n        });\r\n      }\r\n      emailVerification(params);\r\n    }\r\n  };\r\n\r\n  const dialogContentProps = {\r\n    type: DialogType.close,\r\n    closeButtonAriaLabel: 'Close',\r\n    subText: subText\r\n  };\r\n\r\n  const modalProps = {\r\n    containerClassName: 'dialogContent'\r\n  };\r\n\r\n  const email = value;\r\n\r\n  return (\r\n    <Dialog\r\n      className={`confirmDialog ${className} confirmCodeDialog`}\r\n      hidden={isOpen}\r\n      onDismiss={onCancel}\r\n      dialogContentProps={dialogContentProps}\r\n      modalProps={modalProps}\r\n    >\r\n      {isFetching && <LoaderSection />}\r\n      <div className=\"confirmCodeDialogContent\">\r\n        <div className=\"confirmCodeDialogText\">\r\n          <span>\r\n            <FormattedMessage defaultMessage=\"Please enter the verification code sent to\" />{' '}\r\n            <span className=\"ms-fontWeight-semibold\"> {email}.</span>\r\n          </span>\r\n        </div>\r\n        {textToDisplay}\r\n        {checkboxDisplay && (\r\n          <span className=\"required\" aria-hidden={true}>\r\n            *<FormattedMessage defaultMessage=\"Required\" />\r\n          </span>\r\n        )}\r\n        {textboxDisplay && (\r\n          <span className=\"required\" aria-hidden={true}>\r\n            *<FormattedMessage defaultMessage=\"Required\" />\r\n          </span>\r\n        )}\r\n        {hashCodeTextboxDisplay && (\r\n          <>\r\n            <div className=\"ms-Grid enterCodeContainer\" dir=\"ltr\">\r\n              <div className=\"ms-Grid-row enterCodeWrapper gridDiv\">\r\n                <div className=\"ms-Grid-col ms-sm12 ms-lg8\">\r\n                  <TextField\r\n                    role=\"textbox\"\r\n                    className=\"enterCodeTextbox\"\r\n                    id=\"newEmailAddress\"\r\n                    placeholder={placeholder}\r\n                    validateOnFocusOut\r\n                    validateOnLoad={false}\r\n                    componentRef={newWorkEmailRef}\r\n                  />\r\n                </div>\r\n                <div className=\"ms-Grid-col ms-sm12 ms-md8 ms-lg4 confirmCodeButton\">\r\n                  <PrimaryButton onClick={onContinue} text={onNextStepText} disabled={checkboxDisplay ? isBtnDisabed : false} />\r\n                </div>\r\n              </div>\r\n            </div>\r\n            {isVerificationError && (\r\n              <div id=\"errorDiv\" role=\"alert\" className=\"errorBlock\">\r\n                <span className=\"errorImage\">\r\n                  <FontIcon className=\"infoIcon\" iconName=\"Info\" />\r\n                </span>\r\n                <span role=\"alert\" className=\"errorText\">\r\n                  {intl.formatMessage({ defaultMessage: 'The verification code entered is incorrect. Please try again.' })}\r\n                </span>\r\n              </div>\r\n            )}\r\n            <p className=\"resendMessage\">\r\n              <FormattedMessage defaultMessage=\"Having trouble?\" />{' '}\r\n              <Link className=\"linkText\" onClick={reSendCode}>\r\n                <FormattedMessage defaultMessage=\"Resend code\" />\r\n              </Link>\r\n            </p>\r\n          </>\r\n        )}\r\n      </div>\r\n      {checkboxDisplay && (\r\n        <>\r\n          <Checkbox\r\n            label={checkBoxlLabelText}\r\n            className=\"agreeCheckbox ms-font-semibold\"\r\n            checked={isChecked}\r\n            required={true}\r\n            onChange={onTosCheckboxChange}\r\n          />\r\n        </>\r\n      )}\r\n      {textboxDisplay && (\r\n        <>\r\n          <p className=\"modalContent\">\r\n            <TextField\r\n              role=\"textbox\"\r\n              className=\"agreeCheckbox\"\r\n              defaultValue={textboxlabelText}\r\n              id=\"newEmailAddress\"\r\n              validateOnFocusOut\r\n              validateOnLoad={false}\r\n              componentRef={newWorkEmailRef}\r\n            />\r\n            <span aria-hidden={true}>\r\n              <FormattedMessage defaultMessage=\"To confirm ownership of the account, we will send a verification code by email\" />\r\n            </span>\r\n            <br></br>\r\n          </p>\r\n        </>\r\n      )}\r\n    </Dialog>\r\n  );\r\n};\r\n","import React from 'react';\r\nimport { useIntl, FormattedMessage } from 'react-intl';\r\nimport { Link } from '@fluentui/react';\r\n\r\nimport './PreferredInfo.scss';\r\nimport '../../index.scss';\r\n\r\ninterface IComponentProps {\r\n  info: string;\r\n  value: string | Readonly<boolean> | null;\r\n  isReturningUser: boolean;\r\n  changeContactInfo: () => void;\r\n}\r\n\r\nexport const PreferredInfo: React.FunctionComponent<IComponentProps> = props => {\r\n  const { info, value, isReturningUser, changeContactInfo } = props;\r\n  const intl = useIntl();\r\n\r\n  const addEmailText = intl.formatMessage({\r\n    defaultMessage: 'Add my email'\r\n  });\r\n\r\n  const submessage = intl.formatMessage({\r\n    defaultMessage: 'Add the email address that you want Microsoft to use for communication with you'\r\n  });\r\n\r\n  return (\r\n    <div className=\"ms-fontSize-15 ms-fontWeight-semibold preferredInfoItem\">\r\n      <span className=\"preferredInfoItemTitle\">{info}</span>\r\n      <span aria-label=\"requiredAriaLabel\" className=\"required ms-font-size-12\">\r\n        *\r\n      </span>\r\n      <p className=\"ms-fontWeight-regular\">{submessage}.</p>\r\n      <div className=\"preferredInfoContainer\">\r\n        <p>{value}</p>\r\n        {isReturningUser ? (\r\n          <Link className=\"contactInfoButton\" onClick={changeContactInfo} target=\"_self\" aria-label=\"Change contact info\">\r\n            <FormattedMessage defaultMessage=\"Update my email address\" />\r\n          </Link>\r\n        ) : (\r\n          <Link className=\"contactInfoButton\" onClick={changeContactInfo} target=\"_self\" aria-label={addEmailText}>\r\n            <FormattedMessage defaultMessage=\"Add my email address\" />\r\n          </Link>\r\n        )}\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n","import React, { useCallback, useState } from 'react';\r\nimport { FormattedMessage, useIntl } from 'react-intl';\r\nimport { Dialog, DialogType, TextField, ITextField, DefaultButton, PrimaryButton, Checkbox } from '@fluentui/react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\n\r\nimport { LoaderSection } from '../Loading/LoaderSection';\r\nimport { IApplicationState } from '../../store';\r\n\r\nimport './ConfirmDialog.scss';\r\nimport './WorkEmailChangeDialog.scss';\r\nimport '../../styles/actions.scss';\r\nimport '../../index.scss';\r\nimport '../../buttons.scss';\r\n\r\ninterface IComponentProps {\r\n  isOpen: boolean;\r\n  isPreferredEmail: boolean;\r\n  value: string | null;\r\n  onDismiss: () => void;\r\n  onNextStepClick?: (\r\n    newWorkEmailAddress: string,\r\n    compareWorkEmailAddress: string,\r\n    isValidEmailError: boolean,\r\n    isValidCompareEmailError: boolean\r\n  ) => void;\r\n  heading: string;\r\n  subText?: string;\r\n  onNextStepText: string;\r\n  checkboxDisplay?: boolean;\r\n  checkBoxlLabelText?: string;\r\n  textboxDisplay?: boolean;\r\n  textboxlabelText?: string;\r\n  className?: string;\r\n  textToDisplay?: string;\r\n  hashCodeTextboxDisplay?: boolean;\r\n  compareError: boolean;\r\n  existingEmailError: boolean;\r\n  isValidEmailError: boolean;\r\n}\r\n\r\nexport const WorkEmailChangeDialog: React.FunctionComponent<IComponentProps> = props => {\r\n  const {\r\n    isOpen,\r\n    isPreferredEmail,\r\n    value,\r\n    onDismiss,\r\n    onNextStepClick,\r\n    heading,\r\n    subText,\r\n    onNextStepText,\r\n    checkboxDisplay,\r\n    checkBoxlLabelText,\r\n    textboxDisplay,\r\n    textboxlabelText,\r\n    className,\r\n    hashCodeTextboxDisplay,\r\n    compareError,\r\n    existingEmailError,\r\n    isValidEmailError\r\n  } = props;\r\n  const intl = useIntl();\r\n  const newEmailRef = React.createRef<ITextField>();\r\n  const compareEmailRef = React.createRef<ITextField>();\r\n\r\n  const preferredEmail = useSelector((state: IApplicationState) => {\r\n    return value;\r\n  });\r\n\r\n  const [isChecked, setIsChecked] = useState(false);\r\n  const [emailAddress, setEmailAddress] = useState(preferredEmail ? preferredEmail : '');\r\n  const [emailAddressError, setEmailAddressError] = useState('');\r\n  const [compareEmailAddress, setCompareEmailAddress] = useState(preferredEmail ? preferredEmail : '');\r\n  const [compareEmailAddressError, setCompareEmailAddressError] = useState('');\r\n\r\n  const invalidEmailMessage = intl.formatMessage({ defaultMessage: 'Please enter a valid email address.' });\r\n  const unmatchedEmailMessage = intl.formatMessage({ defaultMessage: 'The two entered emails do not match.' });\r\n  const existingEmailMessage = intl.formatMessage({ defaultMessage: 'Your account is already linked with this email address.' });\r\n\r\n  const updateErrorMessage = useCallback((): void => {\r\n    //eslint-disable-next-line\r\n    const isEmailAddressValidRegex = /^([a-zA-Z0-9_\\-\\+'])+(\\.[a-zA-Z0-9_\\-\\+']+)*\\@((([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9]{2,15}))\\s*$/i;\r\n    const emailAddressTest = isEmailAddressValidRegex.test(emailAddress);\r\n\r\n    if (emailAddress === '') {\r\n      setEmailAddressError(invalidEmailMessage);\r\n    } else if (compareEmailAddress === '') {\r\n      setCompareEmailAddress(invalidEmailMessage);\r\n    } else if (emailAddressTest) {\r\n      if (emailAddress === preferredEmail) {\r\n        setEmailAddressError(existingEmailMessage);\r\n        setCompareEmailAddressError('');\r\n      } else if (emailAddress === compareEmailAddress) {\r\n        setEmailAddressError('');\r\n        setCompareEmailAddressError('');\r\n      } else {\r\n        setEmailAddressError('');\r\n        setCompareEmailAddressError(unmatchedEmailMessage);\r\n      }\r\n    } else {\r\n      setEmailAddressError(invalidEmailMessage);\r\n      setCompareEmailAddressError('');\r\n    }\r\n  }, [emailAddress, compareEmailAddress, invalidEmailMessage, unmatchedEmailMessage, existingEmailMessage, preferredEmail]);\r\n\r\n  const onCancel = () => {\r\n    setIsChecked(false);\r\n    onDismiss();\r\n    setEmailAddressError('');\r\n    setCompareEmailAddressError('');\r\n  };\r\n  const onTosCheckboxChange = () => {\r\n    updateErrorMessage();\r\n    setIsChecked(!isChecked);\r\n  };\r\n  const isFetching = useSelector<IApplicationState, boolean>(state => state.UserStore.isFetching, shallowEqual);\r\n  const compareErrorMessage = compareError ? intl.formatMessage({ defaultMessage: 'The two entered emails do not match.' }) : '';\r\n  const existingEmailErrorMessage = existingEmailError\r\n    ? intl.formatMessage({ defaultMessage: 'Your account is already linked with this email address.' })\r\n    : isValidEmailError\r\n    ? intl.formatMessage({ defaultMessage: 'Please enter a valid email address.' })\r\n    : '';\r\n  //eslint-disable-next-line\r\n  const isEmailAddressValidRegex = /^([a-zA-Z0-9_\\-\\+'])+(\\.[a-zA-Z0-9_\\-\\+']+)*\\@((([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9]{2,15}))\\s*$/i;\r\n\r\n  const onContinue = () => {\r\n    setIsChecked(!isChecked);\r\n    const emailAddress = newEmailRef.current?.value ? newEmailRef.current?.value : '';\r\n    const compareEmailAddress = compareEmailRef.current?.value ? compareEmailRef.current?.value : '';\r\n    let fullEmailAddress = emailAddress + textboxlabelText?.substring(textboxlabelText.lastIndexOf('@'));\r\n    let fullCompareEmailAddress = compareEmailAddress + textboxlabelText?.substring(textboxlabelText.lastIndexOf('@'));\r\n    if (isPreferredEmail) {\r\n      fullEmailAddress = emailAddress;\r\n      fullCompareEmailAddress = compareEmailAddress;\r\n    }\r\n    const isValidEmailError = !isEmailAddressValidRegex.test(fullEmailAddress);\r\n    const isValidCompareEmailError = fullEmailAddress !== fullCompareEmailAddress;\r\n\r\n    if (onNextStepClick) {\r\n      onNextStepClick(fullEmailAddress, fullCompareEmailAddress, isValidEmailError, isValidCompareEmailError);\r\n    }\r\n  };\r\n\r\n  const dialogContentProps = {\r\n    type: DialogType.close,\r\n    title: heading,\r\n    closeButtonAriaLabel: 'Close',\r\n    subText: subText\r\n  };\r\n\r\n  const modalProps = {\r\n    containerClassName: 'dialogContent'\r\n  };\r\n\r\n  const email = (() => {\r\n    if (isPreferredEmail && preferredEmail) {\r\n      return preferredEmail;\r\n    } else if (isPreferredEmail && !preferredEmail) {\r\n      intl.formatMessage({ defaultMessage: 'Preferred email address' });\r\n    } else {\r\n      return textboxlabelText?.substring(0, textboxlabelText.lastIndexOf('@'));\r\n    }\r\n  })();\r\n\r\n  const requiredAriaLabel = intl.formatMessage({\r\n    defaultMessage: 'Required'\r\n  });\r\n\r\n  const isDisabled = !isChecked || emailAddressError !== '' || compareEmailAddressError !== '';\r\n\r\n  return (\r\n    <Dialog\r\n      className={`${className} workEmailChangeDialog`}\r\n      hidden={isOpen}\r\n      onDismiss={onCancel}\r\n      dialogContentProps={dialogContentProps}\r\n      modalProps={modalProps}\r\n    >\r\n      {isFetching && <LoaderSection />}\r\n      {textboxDisplay && (\r\n        <>\r\n          <p className=\"modalContent\">\r\n            <div aria-label={requiredAriaLabel} className=\"required ms-font-size-12\">\r\n              *<FormattedMessage defaultMessage=\"Required\" />\r\n            </div>\r\n            <span className=\"subheader ms-font-size-14 ms-fontWeight-semibold\">\r\n              {!isPreferredEmail && (\r\n                <FormattedMessage defaultMessage=\"Enter a valid work email address\" aria-label=\"Enter a valid work email address\" />\r\n              )}\r\n            </span>\r\n            {!isPreferredEmail && (\r\n              <TextField\r\n                label={intl.formatMessage({ defaultMessage: 'New email address' })}\r\n                title=\"Please enter user name only\"\r\n                aria-describedby=\"workemailInfo\"\r\n                role=\"textbox\"\r\n                className=\"workEmailTextbox\"\r\n                defaultValue={email}\r\n                id=\"newEmailAddress\"\r\n                validateOnFocusOut\r\n                validateOnLoad={false}\r\n                componentRef={newEmailRef}\r\n                errorMessage={existingEmailErrorMessage}\r\n                suffix={textboxlabelText?.substring(textboxlabelText.lastIndexOf('@'))}\r\n              />\r\n            )}\r\n            {isPreferredEmail && (\r\n              <TextField\r\n                label={intl.formatMessage({ defaultMessage: 'Preferred email address' })}\r\n                title=\"Please enter user name only\"\r\n                aria-describedby=\"workemailInfo\"\r\n                aria-label={requiredAriaLabel}\r\n                role=\"textbox\"\r\n                className=\"workEmailTextbox\"\r\n                required={true}\r\n                defaultValue={email}\r\n                //eslint-disable-next-line\r\n                onChange={e => setEmailAddress(e.currentTarget.value.trim())}\r\n                id=\"newEmailAddress\"\r\n                validateOnFocusOut\r\n                validateOnLoad={false}\r\n                componentRef={newEmailRef}\r\n                errorMessage={emailAddressError}\r\n                onBlur={updateErrorMessage}\r\n                suffix={textboxlabelText?.substring(textboxlabelText.lastIndexOf('@'))}\r\n              />\r\n            )}\r\n            {!isPreferredEmail && (\r\n              <TextField\r\n                label={intl.formatMessage({ defaultMessage: 'Confirm new email address' })}\r\n                title=\"Please confirm user name only\"\r\n                aria-describedby=\"confirmWorkemailInfo\"\r\n                role=\"textbox\"\r\n                className=\"workEmailTextbox\"\r\n                defaultValue={email}\r\n                id=\"confirmEmailAddress\"\r\n                validateOnFocusOut\r\n                validateOnLoad={false}\r\n                errorMessage={compareErrorMessage}\r\n                componentRef={compareEmailRef}\r\n                suffix={textboxlabelText?.substring(textboxlabelText.lastIndexOf('@'))}\r\n              />\r\n            )}\r\n            {isPreferredEmail && (\r\n              <TextField\r\n                label={intl.formatMessage({ defaultMessage: 'Confirm email address' })}\r\n                title=\"Please confirm user name only\"\r\n                aria-describedby=\"confirmWorkemailInfo\"\r\n                aria-label={requiredAriaLabel}\r\n                role=\"textbox\"\r\n                className=\"workEmailTextbox\"\r\n                required={true}\r\n                defaultValue={email}\r\n                //eslint-disable-next-line\r\n                onChange={e => setCompareEmailAddress(e.currentTarget.value.trim())}\r\n                id=\"confirmEmailAddress\"\r\n                validateOnFocusOut\r\n                validateOnLoad={false}\r\n                errorMessage={compareEmailAddressError}\r\n                onBlur={updateErrorMessage}\r\n                componentRef={compareEmailRef}\r\n                suffix={textboxlabelText?.substring(textboxlabelText.lastIndexOf('@'))}\r\n              />\r\n            )}\r\n            {checkboxDisplay && (\r\n              <>\r\n                <Checkbox\r\n                  label={checkBoxlLabelText}\r\n                  className=\"agreeCheckbox ms-font-semibold\"\r\n                  checked={isChecked}\r\n                  required={true}\r\n                  onChange={onTosCheckboxChange}\r\n                />\r\n              </>\r\n            )}\r\n            <span className=\"ms-font-size-14 ms-fontWeight-semibold\">\r\n              {isPreferredEmail ? (\r\n                <FormattedMessage\r\n                  defaultMessage=\"We will send a verification code to your preferred email address for confirmation.\"\r\n                  aria-label=\"We will send a verification code to your preferred email address for confirmation\"\r\n                />\r\n              ) : (\r\n                <FormattedMessage\r\n                  defaultMessage=\"To confirm ownership of the account, we will send a verification code by email.\"\r\n                  aria-label=\"To confirm ownership of the account, we will send a verification code by email\"\r\n                />\r\n              )}\r\n            </span>\r\n            <br></br>\r\n            <p className=\"disablediv\" id=\"workemailInfo\">\r\n              enter email address (alias only) for your {textboxlabelText?.substring(textboxlabelText.lastIndexOf('@'))} account\r\n            </p>\r\n            <p className=\"disablediv\" id=\"confirmWorkemailInfo\">\r\n              confirm email address (alias only) for your {textboxlabelText?.substring(textboxlabelText.lastIndexOf('@'))} account\r\n            </p>\r\n          </p>\r\n        </>\r\n      )}\r\n      {hashCodeTextboxDisplay && (\r\n        <>\r\n          <p className=\"modalContent \">\r\n            <TextField\r\n              role=\"textbox\"\r\n              className=\"workEmailTextbox\"\r\n              id=\"verifyEmailAddress\"\r\n              validateOnFocusOut\r\n              validateOnLoad={false}\r\n              componentRef={newEmailRef}\r\n            />\r\n            <br></br>\r\n          </p>\r\n        </>\r\n      )}\r\n      <div className=\"ms-Grid actions\">\r\n        <div className=\"ms-Grid-row actionsWrapper\">\r\n          <div className=\"ms-Grid-col ms-sm12 ms-md6 ms-lg6\">\r\n            <DefaultButton onClick={onCancel} text={intl.formatMessage({ defaultMessage: 'Cancel' })} />\r\n          </div>\r\n          {!isPreferredEmail && (\r\n            <div className=\"ms-Grid-col ms-sm12 ms-md6 ms-lg6\">\r\n              <PrimaryButton\r\n                onClick={onContinue}\r\n                text={onNextStepText}\r\n                //disabled={existingEmailErrorMessage !== '' || compareErrorMessage !== ''}\r\n              />\r\n            </div>\r\n          )}\r\n          {isPreferredEmail && (\r\n            <div className=\"ms-Grid-col ms-sm12 ms-md6 ms-lg6\">\r\n              <PrimaryButton\r\n                onClick={onContinue}\r\n                text={onNextStepText}\r\n                disabled={isDisabled}\r\n                className={isDisabled ? 'primaryButtonDisabled' : ''}\r\n              />\r\n            </div>\r\n          )}\r\n        </div>\r\n      </div>\r\n    </Dialog>\r\n  );\r\n};\r\n","import React, { useEffect, useCallback, useState, useRef, ReactElement } from 'react';\r\nimport { Checkbox, ComboBox, IComboBoxOption, IComboBox, DialogFooter, Image, Link, DefaultButton, PrimaryButton } from '@fluentui/react';\r\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\r\nimport { useLocation, useHistory, Redirect } from 'react-router-dom';\r\nimport { SeverityLevel } from '@microsoft/applicationinsights-web';\r\nimport { FormattedMessage, useIntl } from 'react-intl';\r\n\r\nimport { IApplicationState } from '../../store';\r\nimport { useEndpointActions } from '../../store/endpoint';\r\nimport {\r\n  GetLanguagesActions,\r\n  GetTimeZonesActions,\r\n  GetRolesActions,\r\n  GetCountryActions,\r\n  GetESIAgreementActions\r\n} from '../../store/stores/enrollmentPlan';\r\nimport Language from '../../assets/images/Language.svg';\r\nimport Country from '../../assets/images/Profile_CountryRegion.svg';\r\nimport Timezone from '../../assets/images/Country.svg';\r\nimport Role from '../../assets/images/Role.svg';\r\nimport ProfileData1 from '../../assets/images/ProfileData1.svg';\r\nimport AccountManagement from '../../assets/images/Profile_Acct.svg';\r\nimport { Helper, lxpProgramGuidelines, lxpTermsConditions, QueryStringParam } from '../../utilities';\r\nimport {\r\n  ICreateProfileRequest,\r\n  ICustomErrorMessage,\r\n  IWorkEmailVerificationCodeRequest,\r\n  RouteEmailState,\r\n  IVerificationCodeRequest,\r\n  IUpdateEmailVerificationRequest,\r\n  IEmailVerificationRequest\r\n} from '../../models';\r\nimport {\r\n  CreateProfileActions,\r\n  DeleteAccountActions,\r\n  VerifyWorkEmailAddressActions,\r\n  UpdateWorkEmailAddressActions,\r\n  EmailVerificationActions,\r\n  VerificationCodeActions\r\n} from '../../store/stores/user';\r\nimport { ConfirmCodeDialog } from '../../components/ConfirmDialog/ConfirmCodeDialog';\r\nimport { CompletionDialog } from '../../components/ConfirmDialog/CompletionDialog';\r\nimport { PreferredInfo } from '../../components/PreferredInfo/PreferredInfo';\r\nimport { ai } from '../../components/ApplicationInsightsProvider/ApplicationInsightsService';\r\nimport { SideBarNavigation } from '../../components/SideBarNavigation/SideBarNavigation';\r\nimport { ConfirmDialog } from '../../components/ConfirmDialog/ConfirmDialog';\r\nimport { WorkEmailChangeDialog } from '../../components/ConfirmDialog/WorkEmailChangeDialog';\r\nimport { useTitle, useLogout } from '../../hooks';\r\nimport { SuccessErrorDialog } from '../../utilities/SuccessErrorDialog';\r\nimport { useAuthenticatedUser } from '../../hooks/useAuthenticatedUser';\r\nimport { LoaderSection } from '../../components/Loading/LoaderSection';\r\nimport { useLocale } from '../../components/LocalizationProvider/LocalizationProvider';\r\nimport FeatureFlagValues from '../../utilities/featureFlagValues';\r\nimport { KEY_TO_CHINA, KEY_TO_KOREA_SOUTH, NO_LEARNER_INFO_ERROR } from './constants';\r\nimport { ESITermsDialog } from '../../components/ConfirmDialog/ESITermsDialog';\r\nimport { IESITerms } from '../../models/ESITerms';\r\n\r\nimport './Preferences.scss';\r\nimport '../../styles/commonStyles.scss';\r\nimport '../../buttons.scss';\r\n\r\ninterface IComponentProps {\r\n  /** The cou\r\n   * nt of shimmer items to show in the list */\r\n\r\n  isUpdateProfile: boolean;\r\n  selectedRole: string;\r\n  selectedLanguage: string;\r\n  selectedTimezone: string;\r\n  isTOSAccepted: boolean;\r\n  isProfileCompleted: boolean;\r\n  isProfileExists: boolean;\r\n  selectedCountry: string;\r\n  selectedPreferredEmail: string;\r\n  isKoreaPrivacyAccepted: boolean;\r\n}\r\n\r\nexport const Preferences: React.FunctionComponent<IComponentProps> = props => {\r\n  const account = useAuthenticatedUser();\r\n  const emailAddress = account?.username;\r\n  const [isEmailSentForWorkEmail, isWorkEmailUpdate] = useSelector(\r\n    (state: IApplicationState) => [state.UserStore.isEmailSendForWorkEmail, state.UserStore.isWorkEmailUpdate],\r\n    shallowEqual\r\n  );\r\n\r\n  const [isEmailSent] = useSelector((state: IApplicationState) => [state.UserStore.isEmailSend], shallowEqual);\r\n\r\n  const tenantId = account?.tenantId;\r\n  const applicationName: string = process.env.REACT_APP_API_ACCESSCODE_APPLICATIONNAME + '';\r\n  const userlocale: string = localStorage.getItem('locale') ?? 'en-US';\r\n  const eventId: string = process.env.REACT_APP_API_ACCESSCODE_EVENTID + '';\r\n  useTitle(process.env.REACT_APP_SITE_NAME + ': Settings');\r\n  const { selectedRole, selectedLanguage, selectedTimezone, selectedCountry } = props;\r\n  const { isUpdateProfile, isTOSAccepted, isProfileExists, isProfileCompleted, isKoreaPrivacyAccepted } = props;\r\n  const [store] = useSelector((state: IApplicationState) => [state.EnrollmentPlanStore], shallowEqual);\r\n  const [isOpen, setIsOpen] = useState(false);\r\n\r\n  const [isTermsDialogOpen, setTermsDialogOpen] = useState(false);\r\n  const [isGuidelinesDialogOpen, setGuidelinesDialogOpen] = useState(false);\r\n\r\n  const [isUnlinkAcctClose, setIsUnlinkAcctClose] = useState(true);\r\n  const [isCodeVerificationDialogOpen, setCodeVerificationDialogOpen] = useState(true);\r\n  const [isCodeVerificationPreferredEmailDialogOpen, setCodeVerificationPreferredEmailDialogOpen] = useState(true);\r\n  const [isSuccessErrorDialogOpen, setSuccessErrorDialogOpen] = useState(false);\r\n  const [isCompletionDialogOpen, setCompletionDialogOpen] = useState(true);\r\n  const [isCompletionPreferredEmailDialogOpen, setCompletionPreferredEmaiDialogOpen] = useState(true);\r\n  const [isContactInfoDialogOpen, setContactInfoDialogOpen] = useState(true);\r\n  const [isCompareError, setCompareError] = useState(false);\r\n  const [isExistingError, setExistingError] = useState(false);\r\n  const [isValidEmailError, setIsValidEmailError] = useState(false);\r\n  const [selectedRoleItem, setSelectedRoleItem] = useState<string>(selectedRole);\r\n  const [selectedLanguageItem, setSelectedLanguageItem] = useState<string>(selectedLanguage);\r\n  const [selectedTimeZoneItem, setSelectedTimeZoneItem] = useState<string>(selectedTimezone);\r\n  const [selectedCountryItem, setSelectedCountryItem] = useState<string>(selectedCountry);\r\n  const [newWorkEmailAddressUpdate, setNewWorkEmailAddressUpdate] = useState<string>('');\r\n  const [isTosChecked, setTosChecked] = useState(isTOSAccepted);\r\n  const [submitButtonText, setsubmitButtonText] = useState<string>('Save Changes');\r\n  const location = useLocation<RouteEmailState>();\r\n  const history = useHistory();\r\n  const dispatch = useDispatch();\r\n  const userEmail = location.state?.emailAddress || sessionStorage.getItem(QueryStringParam.WorkEmailAddress) || '';\r\n  const isESITerms = sessionStorage.getItem(QueryStringParam.IsESITermsAccepted) === 'yes';\r\n  const [getLanguages, getTimezones, getRoles, getCountries] = useEndpointActions([\r\n    GetLanguagesActions,\r\n    GetTimeZonesActions,\r\n    GetRolesActions,\r\n    GetCountryActions\r\n  ]);\r\n  const [updateProfile] = useEndpointActions([CreateProfileActions]);\r\n  const [deleteProfile] = useEndpointActions([DeleteAccountActions]);\r\n  const languageDropdown = useRef<IComboBox>(null);\r\n  const signout = useLogout();\r\n  const { locale } = useLocale();\r\n\r\n  const [isProfileFetching, isProfileFetched, hasLinkedAccounts, isOrgIdExist, isAad, isMSA] = useSelector(\r\n    (state: IApplicationState) => [\r\n      state.UserStore.isFetching,\r\n      state.UserStore.isFetched,\r\n      state.AccountLinkingStore.linkedAccounts.length > 0 || state.UserStore?.profile?.hasLinkedAccount,\r\n      Helper.getEmailProfileOrgId(state.UserStore.emailprofile) !== '',\r\n      state.UserStore.emailprofile.isAad,\r\n      state.UserStore.emailprofile.isMSA\r\n    ],\r\n    shallowEqual\r\n  );\r\n  const [preferredEmailAddress] = useSelector((state: IApplicationState) => [state.UserStore.profile.preferredEmailAddress], shallowEqual);\r\n  const [newPreferredEmailAddressUpdate, setPreferredEmailAddressUpdate] = useState<string>(preferredEmailAddress);\r\n  const [newPreferredEmailUpdate, setPreferredEmailUpdate] = useState<string>('');\r\n\r\n  const workEmailAddress = sessionStorage.getItem(QueryStringParam.WorkEmailAddress);\r\n\r\n  const [isError, customErrorMessage, customErrorCode, workEmail, userEmailAddress, acctType, newEmailAddress] = useSelector(\r\n    (state: IApplicationState) => [\r\n      state.UserStore.isError,\r\n      state.UserStore.customErrorMessage?.description,\r\n      state.UserStore.customErrorMessage?.errorCode,\r\n      state.UserStore.customErrorMessage?.workEmail,\r\n      state.UserStore.customErrorMessage?.emailAddress,\r\n      state.UserStore.customErrorMessage?.acctType,\r\n      state.UserStore.customErrorMessage?.newEmailAddress\r\n    ],\r\n    shallowEqual\r\n  );\r\n  const [response] = useSelector((state: IApplicationState) => [state.UserStore.response], shallowEqual);\r\n  const [isVerified] = useSelector((state: IApplicationState) => [state.UserStore.isVerified], shallowEqual);\r\n  const [accountUnlinkingResponse] = useSelector((state: IApplicationState) => [state.UserStore.accountUnlinkingResponse], shallowEqual);\r\n  const [isRedirectToHome, setRedirectHome] = useState(false);\r\n  const [isPreferredEmailUpdated, setPreferredEmailUpdated] = useState(false);\r\n  const [isPreferredEmailVerified, setPreferredEmailVerified] = useState(false);\r\n  const [isSkipValidation, setIsSkipValidation] = useState(false);\r\n  const [isChinaSelected, setChinaToBeSelected] = useState(false);\r\n  const [isKoreaSelected, setKoreaToBeSelected] = useState(false);\r\n  const [koreaConsent, setKoreaConsent] = useState(isKoreaPrivacyAccepted);\r\n  const [isConsentRequired, setConsentRequired] = useState(false);\r\n  const isServerError = useSelector((state: IApplicationState) => {\r\n    if (state.UserStore.response?.data && state.UserStore.response.data['customError'] === NO_LEARNER_INFO_ERROR && isProfileFetched) {\r\n      return true;\r\n    } else return false;\r\n  });\r\n\r\n  const isSigninDisable = FeatureFlagValues().isSigninDisable;\r\n  const disableEsiTerms = FeatureFlagValues().disableEsiTerms;\r\n  const intl = useIntl();\r\n  const [profile] = useSelector((state: IApplicationState) => [state.UserStore.profile], shallowEqual);\r\n  const supportLinkLogging = () => {\r\n    Helper.supportLinkVisitLog('Preferences', profile.workEmail, profile.id);\r\n  };\r\n\r\n  const openProgramGuideLine = () => {\r\n    setGuidelinesDialogOpen(true);\r\n  };\r\n\r\n  const openESITerms = () => {\r\n    setTermsDialogOpen(true);\r\n  };\r\n\r\n  const closeDialog = () => {\r\n    if (isTermsDialogOpen) setTermsDialogOpen(false);\r\n    else if (isGuidelinesDialogOpen) {\r\n      setGuidelinesDialogOpen(false);\r\n    }\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (selectedCountry === KEY_TO_CHINA) {\r\n      setChinaToBeSelected(true);\r\n    } else if (selectedCountry === KEY_TO_KOREA_SOUTH) {\r\n      setKoreaToBeSelected(true);\r\n    }\r\n  }, [selectedCountry]);\r\n  const [termsConditionsHtml, setTermsConditionsHtml] = useState('');\r\n  const [getESIAgreement] = useEndpointActions([GetESIAgreementActions]);\r\n  const esiAgreementMess = store.esiAgreement;\r\n  const [programGuidelinesHtml, setProgramGuidelinesHtml] = useState('');\r\n\r\n  useEffect(() => {\r\n    if (!disableEsiTerms && store.esiAgreement && store.esiAgreement.length === 0) {\r\n      if (ai.appInsights) {\r\n        ai.appInsights.trackTrace({\r\n          message: 'getting esi terms HTML in setting page',\r\n          severityLevel: SeverityLevel.Information,\r\n          properties: {\r\n            locale\r\n          }\r\n        });\r\n      }\r\n      getESIAgreement(locale);\r\n    }\r\n    // eslint-disable-next-line react-hooks/exhaustive-deps\r\n  }, [disableEsiTerms, locale, store.esiAgreement]);\r\n\r\n  useEffect(() => {\r\n    if (!disableEsiTerms && esiAgreementMess && esiAgreementMess.length > 0) {\r\n      const indexLxpTerms = esiAgreementMess.findIndex(x => x.pageName === lxpTermsConditions);\r\n      if (indexLxpTerms !== -1) {\r\n        setTermsConditionsHtml(esiAgreementMess[indexLxpTerms].message);\r\n        if (ai.appInsights) {\r\n          ai.appInsights.trackTrace({\r\n            message: 'terms GUID and PageName',\r\n            severityLevel: SeverityLevel.Information,\r\n            properties: {\r\n              Id: esiAgreementMess[indexLxpTerms].Id,\r\n              PageName: profile.firstName\r\n            }\r\n          });\r\n        }\r\n        Helper.setClarityCustomTag(\r\n          'termsContentIDAndPageName',\r\n          `${esiAgreementMess[indexLxpTerms].Id}-${esiAgreementMess[indexLxpTerms].pageName}`\r\n        );\r\n      }\r\n      const indexguideLinesMessage = esiAgreementMess.findIndex(item => item.pageName === lxpProgramGuidelines);\r\n      if (indexguideLinesMessage !== -1) setProgramGuidelinesHtml(esiAgreementMess[indexguideLinesMessage].message);\r\n    }\r\n  }, [disableEsiTerms, esiAgreementMess, profile.firstName]);\r\n  useEffect(() => {\r\n    if (isSigninDisable) {\r\n      history.push('/');\r\n    }\r\n    if (isEmailSentForWorkEmail && !isCompareError && !isExistingError && !isValidEmailError) {\r\n      if (ai.appInsights) {\r\n        ai.appInsights.trackTrace({\r\n          message: 'Preference: Step1: Step2',\r\n          severityLevel: SeverityLevel.Information,\r\n          properties: {\r\n            workEmailAddress,\r\n            isEmailSentForWorkEmail\r\n          }\r\n        });\r\n      }\r\n      sessionStorage.setItem(QueryStringParam.NewWorkEmailUpdate, newWorkEmailAddressUpdate);\r\n      setIsUnlinkAcctClose(true);\r\n      setCodeVerificationDialogOpen(false);\r\n      setCompletionDialogOpen(true);\r\n    }\r\n  }, [\r\n    isEmailSentForWorkEmail,\r\n    workEmailAddress,\r\n    isVerified,\r\n    isValidEmailError,\r\n    isCompareError,\r\n    isExistingError,\r\n    newWorkEmailAddressUpdate,\r\n    isSigninDisable,\r\n    history\r\n  ]);\r\n\r\n  useEffect(() => {\r\n    if (newPreferredEmailUpdate === workEmailAddress && !isSkipValidation) {\r\n      setContactInfoDialogOpen(true);\r\n      setCodeVerificationPreferredEmailDialogOpen(true);\r\n      setCompletionPreferredEmaiDialogOpen(false);\r\n      setIsSkipValidation(true);\r\n    } else {\r\n      if (isEmailSent && isPreferredEmailUpdated) {\r\n        if (ai.appInsights) {\r\n          ai.appInsights.trackTrace({\r\n            message: 'Preference: Step1:Step2',\r\n            severityLevel: SeverityLevel.Information,\r\n            properties: {\r\n              workEmailAddress,\r\n              isEmailSent\r\n            }\r\n          });\r\n        }\r\n        setContactInfoDialogOpen(true);\r\n        setCodeVerificationPreferredEmailDialogOpen(false);\r\n        setCompletionDialogOpen(true);\r\n        setIsSkipValidation(false);\r\n      } else {\r\n        if (isError && !isServerError) {\r\n          const friendlyError: ICustomErrorMessage = {\r\n            description: customErrorMessage?.toString(),\r\n            signOutPrompt: false,\r\n            method: 'UseEffect-serverError',\r\n            page: 'Preference: step1'\r\n          };\r\n          if (ai.appInsights) {\r\n            ai.appInsights.trackException({\r\n              exception: new Error('ESIUI'),\r\n              severityLevel: SeverityLevel.Error,\r\n              properties: { friendlyError, isServerError, workEmailAddress }\r\n            });\r\n          }\r\n          history.push('/about/', {\r\n            error: friendlyError\r\n          });\r\n          return;\r\n        }\r\n      }\r\n    }\r\n    // eslint-disable-next-line react-hooks/exhaustive-deps\r\n  }, [isEmailSent, isPreferredEmailUpdated]);\r\n\r\n  useEffect(() => {\r\n    if (isError && !isServerError && !isProfileFetching) {\r\n      const friendlyError: ICustomErrorMessage = {\r\n        description: customErrorMessage?.toString(),\r\n        errorCode: customErrorCode?.toString(),\r\n        signOutPrompt: true,\r\n        statusCode: response.status,\r\n        method: 'UseEffect-serverError',\r\n        page: 'Preferences'\r\n      };\r\n      if (ai.appInsights) {\r\n        ai.appInsights.trackException({\r\n          exception: new Error('ESIUI'),\r\n          severityLevel: SeverityLevel.Error,\r\n          properties: { friendlyError, isServerError, isError, tenantId }\r\n        });\r\n      }\r\n      history.push('/about/', {\r\n        error: friendlyError\r\n      });\r\n      return;\r\n    } else {\r\n      if (isRedirectToHome && !isProfileFetching && !isError) {\r\n        if (ai.appInsights) {\r\n          ai.appInsights.trackTrace({\r\n            message: 'Preference: goto landing',\r\n            severityLevel: SeverityLevel.Information,\r\n            properties: {\r\n              isRedirectToHome,\r\n              isProfileFetching,\r\n              isError,\r\n              tenantId\r\n            }\r\n          });\r\n        }\r\n        setRedirectHome(true);\r\n      }\r\n    }\r\n    // eslint-disable-next-line react-hooks/exhaustive-deps\r\n  }, [isServerError, isProfileFetching, history, isRedirectToHome, isError, customErrorMessage, customErrorCode, response?.status]);\r\n\r\n  useEffect(() => {\r\n    if (!store.languages.length) {\r\n      getLanguages();\r\n    }\r\n    if (!store.timezones.length) {\r\n      getTimezones();\r\n    }\r\n    if (!store.roles.length) {\r\n      getRoles();\r\n    }\r\n    if (!store.countries.length) {\r\n      getCountries();\r\n    }\r\n    if (!isUpdateProfile && isRedirectToHome) {\r\n      setsubmitButtonText('Agree & Continue');\r\n      if (document.getElementsByClassName('headerSiteName')) {\r\n        document.getElementById('headerSiteName')!.style.pointerEvents = 'none';\r\n        document.getElementById('headerSiteName')!.style.cursor = 'default';\r\n      }\r\n    }\r\n    // eslint-disable-next-line react-hooks/exhaustive-deps\r\n  }, [store.timezones.length, store.languages.length, store.roles.length, isUpdateProfile, store.countries.length, isRedirectToHome]);\r\n\r\n  useEffect(() => {\r\n    if (isWorkEmailUpdate) {\r\n      setCodeVerificationDialogOpen(true);\r\n      setCompletionDialogOpen(false);\r\n    }\r\n  }, [isWorkEmailUpdate, isVerified]);\r\n\r\n  useEffect(() => {\r\n    if (isAad !== null) {\r\n      if (!hasLinkedAccounts && !isAad && !isProfileFetching && isProfileFetched && !isMSA) {\r\n        const friendlyError: ICustomErrorMessage = {\r\n          description:\r\n            intl.formatMessage({\r\n              defaultMessage: 'It looks like there is another/different signin email linked with your'\r\n            }) +\r\n            ' ' +\r\n            workEmailAddress +\r\n            intl.formatMessage({\r\n              defaultMessage: 'account'\r\n            }),\r\n          signOutPrompt: true,\r\n          method: 'UseEffect-activeSession',\r\n          page: 'Preferences'\r\n        };\r\n        if (ai.appInsights) {\r\n          ai.appInsights.trackException({\r\n            exception: new Error('ESIUI'),\r\n            severityLevel: SeverityLevel.Error,\r\n            properties: { friendlyError, hasLinkedAccounts, isError, tenantId }\r\n          });\r\n        }\r\n        history.push('/about/', {\r\n          error: friendlyError\r\n        });\r\n        return;\r\n      }\r\n    } else if (!(isProfileFetched && userEmail !== '')) {\r\n      sessionStorage.clear();\r\n      history.push('/');\r\n    }\r\n    // eslint-disable-next-line react-hooks/exhaustive-deps\r\n  }, [\r\n    hasLinkedAccounts,\r\n    history,\r\n    intl,\r\n    isAad,\r\n    isError,\r\n    isProfileFetched,\r\n    isProfileFetching,\r\n    isOrgIdExist,\r\n    userEmail,\r\n    workEmailAddress,\r\n    isMSA\r\n  ]);\r\n\r\n  useEffect(() => {\r\n    if (typeof window !== 'undefined') {\r\n      const wnd = window as any;\r\n      if (typeof wnd['siteConsent'] !== 'undefined') {\r\n        setConsentRequired(!!wnd['siteConsent'].isConsentRequired);\r\n      }\r\n    }\r\n  }, []);\r\n\r\n  const register = useCallback(() => {\r\n    const params: ICreateProfileRequest = {\r\n      lpid: '',\r\n      acceptedToS: isTosChecked,\r\n      role: selectedRoleItem,\r\n      language: selectedLanguageItem,\r\n      timezone: selectedTimeZoneItem,\r\n      workEmailAddress: userEmail,\r\n      country: selectedCountryItem,\r\n      firstName: account?.firstName || '',\r\n      lastName: account?.lastName || '',\r\n      preferredEmailAddress: newPreferredEmailUpdate ? newPreferredEmailUpdate : preferredEmailAddress,\r\n      isKoreaPrivacyAccepted: koreaConsent\r\n    };\r\n    if (!disableEsiTerms && store.esiAgreement && store.esiAgreement.length > 0) {\r\n      if (isESITerms) {\r\n        const indexLxpTerms = store.esiAgreement.findIndex(x => x.pageName == lxpTermsConditions);\r\n        if (indexLxpTerms != -1) {\r\n          let termsAcceptedDateTime = null;\r\n\r\n          if (profile.esiTerms && profile.esiTerms.isESITermsAccepted && profile.esiTerms.acceptedDateTime) {\r\n            termsAcceptedDateTime = profile.esiTerms.acceptedDateTime;\r\n          } else {\r\n            termsAcceptedDateTime = new Date(new Date().toUTCString());\r\n          }\r\n\r\n          const esiTerms: IESITerms = {\r\n            isESITermsAccepted: isESITerms,\r\n            acceptedDateTime: termsAcceptedDateTime,\r\n            id: store.esiAgreement[indexLxpTerms].Id\r\n          };\r\n          params.esiTerms = esiTerms;\r\n        }\r\n      }\r\n    }\r\n    if (ai.appInsights) {\r\n      ai.appInsights.trackTrace({\r\n        message: 'Preference: update profile sethome',\r\n        severityLevel: SeverityLevel.Information,\r\n        properties: {\r\n          params\r\n        }\r\n      });\r\n    }\r\n    updateProfile(params);\r\n    setRedirectHome(true);\r\n  }, [\r\n    isTosChecked,\r\n    selectedRoleItem,\r\n    selectedLanguageItem,\r\n    selectedTimeZoneItem,\r\n    userEmail,\r\n    selectedCountryItem,\r\n    account,\r\n    newPreferredEmailUpdate,\r\n    preferredEmailAddress,\r\n    koreaConsent,\r\n    profile.esiTerms,\r\n    disableEsiTerms,\r\n    store.esiAgreement,\r\n    updateProfile,\r\n    isESITerms\r\n  ]);\r\n\r\n  const languages = store.languages.map(lang => ({\r\n    key: lang.languageId,\r\n    text: lang.languageName\r\n  }));\r\n  const timezones = store.timezones.map(timezone => ({\r\n    key: timezone.timezoneId,\r\n    text: timezone.timezoneName\r\n  }));\r\n  const roles = store.roles.map(role => ({\r\n    key: role.roleId,\r\n    text: role.roleName\r\n  }));\r\n  const countries = store.countries.map(country => ({\r\n    key: country.countryId,\r\n    text: country.countryName\r\n  }));\r\n\r\n  const setLanguageOption = React.useCallback(\r\n    (event: React.FormEvent<IComboBox>, option: IComboBoxOption | undefined): void => {\r\n      if (option && option.key) {\r\n        setSelectedLanguageItem(option.key.toString());\r\n      }\r\n    },\r\n    [setSelectedLanguageItem]\r\n  );\r\n  const setTimeZoneOption = React.useCallback(\r\n    (event: React.FormEvent<IComboBox>, option: IComboBoxOption | undefined): void => {\r\n      if (option && option.key) {\r\n        setSelectedTimeZoneItem(option.key.toString());\r\n      }\r\n    },\r\n    [setSelectedTimeZoneItem]\r\n  );\r\n  const setRoleOption = React.useCallback(\r\n    (event: React.FormEvent<IComboBox>, option: IComboBoxOption | undefined): void => {\r\n      if (option && option.key) {\r\n        setSelectedRoleItem(option.key.toString());\r\n      }\r\n    },\r\n    [setSelectedRoleItem]\r\n  );\r\n  const setCountryOption = React.useCallback((event: React.FormEvent<IComboBox>, option: IComboBoxOption | undefined): void => {\r\n    if (option && option.key) {\r\n      setSelectedCountryItem(option.key.toString());\r\n      if (option.key.toString() === KEY_TO_CHINA) {\r\n        setChinaToBeSelected(true);\r\n      } else {\r\n        setChinaToBeSelected(false);\r\n      }\r\n      if (option.key.toString() === KEY_TO_KOREA_SOUTH) {\r\n        setKoreaToBeSelected(true);\r\n      } else {\r\n        setKoreaToBeSelected(false);\r\n      }\r\n    }\r\n  }, []);\r\n\r\n  const setacceptedToS = useCallback((ev?: React.FormEvent<HTMLElement>, isChecked?: boolean) => {\r\n    setTosChecked(!!isChecked);\r\n    setIsOpen(!isChecked);\r\n  }, []);\r\n\r\n  const onDismiss = useCallback(() => {\r\n    setIsOpen(false);\r\n    setTosChecked(true);\r\n  }, []);\r\n\r\n  const accountLinkingSuccessMsg = intl.formatMessage({\r\n    defaultMessage: 'Your account has now been unlinked and will now be signed out of Lxp'\r\n  });\r\n  const accountLinkingErrorMsg =\r\n    intl.formatMessage({\r\n      defaultMessage: 'Error:'\r\n    }) +\r\n    accountUnlinkingResponse?.description +\r\n    intl.formatMessage({\r\n      defaultMessage: 'We are unable to process this request. Please try again.For help or assistance, please contact ESI Support.'\r\n    });\r\n\r\n  const accountLinkingDialogContent = intl.formatMessage({\r\n    defaultMessage: `By removing your account, you will no longer be able to access Learning Experience portal and your information will no longer be shared with your organization.\r\n\r\nYou will need to link a different personal email to your work account to access LxP.\r\n\r\nNote: Your course completion status will be retained as it is tied to your work account and you can see them once you register with a new login account `\r\n  });\r\n\r\n  const onContinue = useCallback(() => {\r\n    setIsOpen(false);\r\n  }, []);\r\n\r\n  const data = { languages: languages, timezones: timezones, roles: roles, country: countries };\r\n\r\n  if (ai.appInsights) {\r\n    ai.appInsights.trackTrace({\r\n      message: 'Preference: Display name and data',\r\n      severityLevel: SeverityLevel.Information,\r\n      properties: {\r\n        data,\r\n        tenantId\r\n      }\r\n    });\r\n  }\r\n\r\n  useEffect(() => {\r\n    if (accountUnlinkingResponse?.statusCode) {\r\n      setSuccessErrorDialogOpen(true);\r\n    }\r\n  }, [accountUnlinkingResponse]);\r\n\r\n  const onDismissUnlinkAcct = useCallback(() => {\r\n    setIsUnlinkAcctClose(true);\r\n    setCompareError(false);\r\n    setExistingError(false);\r\n    setIsValidEmailError(false);\r\n    setCodeVerificationDialogOpen(true);\r\n    setCompletionDialogOpen(true);\r\n    dispatch(VerifyWorkEmailAddressActions.Clear());\r\n  }, [dispatch]);\r\n  const openUnlinkAcctModal = useCallback(() => {\r\n    setIsUnlinkAcctClose(false);\r\n    dispatch(VerifyWorkEmailAddressActions.Clear());\r\n  }, [dispatch]);\r\n\r\n  const openManageCookiesModal = useCallback(() => {\r\n    // Manage User Cookie Consent\r\n    if (typeof window !== 'undefined') {\r\n      const wnd = window as any;\r\n      if (typeof wnd['siteConsent'] !== 'undefined') {\r\n        wnd['siteConsent'].manageConsent();\r\n      }\r\n    }\r\n  }, []);\r\n\r\n  const onDismissCodeVerification = useCallback(() => {\r\n    setCodeVerificationDialogOpen(true);\r\n    dispatch(VerifyWorkEmailAddressActions.Clear());\r\n    setCompareError(false);\r\n    setExistingError(false);\r\n    setIsValidEmailError(false);\r\n    setIsUnlinkAcctClose(true);\r\n    setCompletionDialogOpen(true);\r\n  }, [dispatch]);\r\n  const onDismissCompletion = useCallback(() => {\r\n    signout();\r\n  }, [signout]);\r\n\r\n  const onDismissUpdateContactInfo = useCallback(() => {\r\n    setContactInfoDialogOpen(true);\r\n    setCompareError(false);\r\n    setExistingError(false);\r\n    setIsValidEmailError(false);\r\n  }, []);\r\n  const onDismissPreferredEmailCodeVerification = useCallback(() => {\r\n    setCodeVerificationDialogOpen(true);\r\n    dispatch(EmailVerificationActions.Clear(!isReturningUser));\r\n    setCompareError(false);\r\n    setExistingError(false);\r\n    setIsValidEmailError(false);\r\n    setCodeVerificationPreferredEmailDialogOpen(true);\r\n    // eslint-disable-next-line react-hooks/exhaustive-deps\r\n  }, [dispatch]);\r\n  const onDismissPreferredEmailCompletion = useCallback(() => {\r\n    setPreferredEmailAddressUpdate(newPreferredEmailUpdate);\r\n    setCompletionPreferredEmaiDialogOpen(true);\r\n    setCodeVerificationPreferredEmailDialogOpen(true);\r\n    setPreferredEmailUpdated(false);\r\n    setPreferredEmailVerified(false);\r\n  }, [newPreferredEmailUpdate]);\r\n\r\n  const onDeleteAccount = useCallback(() => {\r\n    deleteProfile();\r\n    setIsUnlinkAcctClose(true);\r\n  }, [deleteProfile]);\r\n\r\n  const [UpdateWorkEmailAddress] = useEndpointActions([UpdateWorkEmailAddressActions]);\r\n  const [VerifyWorkEmailAddress] = useEndpointActions([VerifyWorkEmailAddressActions]);\r\n  const [VerificationCode] = useEndpointActions([VerificationCodeActions]);\r\n\r\n  const VerifyUpdatedEmail = useCallback(\r\n    (newWorkEmailAddress: string, compareEmailAddress: string, isValidEmailError: boolean) => {\r\n      if (isValidEmailError) {\r\n        setIsValidEmailError(isValidEmailError);\r\n        setExistingError(false);\r\n        setCompareError(false);\r\n      } else if (newWorkEmailAddress && compareEmailAddress) {\r\n        setIsValidEmailError(isValidEmailError);\r\n        setExistingError(newWorkEmailAddress === workEmailAddress);\r\n        setCompareError(newWorkEmailAddress !== compareEmailAddress);\r\n        if (newWorkEmailAddress === compareEmailAddress && newWorkEmailAddress !== workEmailAddress) {\r\n          const params: IUpdateEmailVerificationRequest = {\r\n            newWorkEmailAddress: newWorkEmailAddress,\r\n            existingWorkEmailAddress: userEmail\r\n          };\r\n          if (ai.appInsights) {\r\n            ai.appInsights.trackTrace({\r\n              message: intl.formatMessage({\r\n                defaultMessage: 'Preference: Email Verification for preferred email updation'\r\n              }),\r\n              severityLevel: SeverityLevel.Information,\r\n              properties: {\r\n                params\r\n              }\r\n            });\r\n          }\r\n          setNewWorkEmailAddressUpdate(newWorkEmailAddress);\r\n          sessionStorage.setItem(QueryStringParam.NewWorkEmailUpdate, newWorkEmailAddress);\r\n          VerifyWorkEmailAddress(params);\r\n        }\r\n      } else {\r\n        return;\r\n      }\r\n    },\r\n    [VerifyWorkEmailAddress, intl, userEmail, workEmailAddress]\r\n  );\r\n\r\n  // eslint-disable-next-line react-hooks/exhaustive-deps\r\n  const SendUpdatedWorkEmail = useCallback(\r\n    (hashCode: string) => {\r\n      if (hashCode) {\r\n        const params: IWorkEmailVerificationCodeRequest = {\r\n          oldWorkEmailAddress: userEmail,\r\n          newWorkEmailAddress: newWorkEmailAddressUpdate,\r\n          hashCode: hashCode\r\n        };\r\n        if (ai.appInsights) {\r\n          ai.appInsights.trackTrace({\r\n            message: intl.formatMessage({\r\n              defaultMessage: 'Preference: work email updation'\r\n            }),\r\n            severityLevel: SeverityLevel.Information,\r\n            properties: {\r\n              params\r\n            }\r\n          });\r\n        }\r\n\r\n        UpdateWorkEmailAddress(params);\r\n      }\r\n    },\r\n    [UpdateWorkEmailAddress, intl, newWorkEmailAddressUpdate, userEmail]\r\n  );\r\n\r\n  const [emailVerification] = useEndpointActions([EmailVerificationActions]);\r\n\r\n  const VerifyPreferredEmail = useCallback(\r\n    (newEmailAddress: string, compareEmailAddress: string, isValidEmailError: boolean, isValidCompareEmailError: boolean) => {\r\n      if (isValidEmailError) {\r\n        setIsValidEmailError(isValidEmailError);\r\n        setExistingError(false);\r\n        setCompareError(false);\r\n      } else if (isValidCompareEmailError) {\r\n        setCompareError(true);\r\n        setIsValidEmailError(isValidEmailError);\r\n      } else if (newEmailAddress && compareEmailAddress) {\r\n        setIsValidEmailError(isValidEmailError);\r\n        setExistingError(preferredEmailAddress === newEmailAddress && newPreferredEmailAddressUpdate === newEmailAddress);\r\n        setCompareError(newEmailAddress !== compareEmailAddress);\r\n        if (newEmailAddress === compareEmailAddress && newEmailAddress !== newPreferredEmailAddressUpdate) {\r\n          const params: IEmailVerificationRequest = {\r\n            email: newEmailAddress,\r\n            applicationName: applicationName,\r\n            locale: userlocale,\r\n            eventId: eventId\r\n          };\r\n          if (ai.appInsights) {\r\n            ai.appInsights.trackTrace({\r\n              message: intl.formatMessage({\r\n                defaultMessage: 'Preference: Email Verification for preferred email updation'\r\n              }),\r\n              severityLevel: SeverityLevel.Information,\r\n              properties: {\r\n                params\r\n              }\r\n            });\r\n          }\r\n          setPreferredEmailUpdate(newEmailAddress);\r\n          setPreferredEmailUpdated(true);\r\n          if (newEmailAddress !== workEmailAddress) {\r\n            sessionStorage.setItem(QueryStringParam.PreferredEmailUpdate, newEmailAddress);\r\n            emailVerification(params);\r\n          }\r\n        }\r\n      } else {\r\n        return;\r\n      }\r\n    },\r\n    [preferredEmailAddress, newPreferredEmailAddressUpdate, applicationName, userlocale, eventId, workEmailAddress, intl, emailVerification]\r\n  );\r\n\r\n  // eslint-disable-next-line react-hooks/exhaustive-deps\r\n  const SendUpdatedPreferredEmail = useCallback(\r\n    (hashCode: string) => {\r\n      if (hashCode) {\r\n        const params: IVerificationCodeRequest = {\r\n          email: newPreferredEmailUpdate,\r\n          accessCode: hashCode,\r\n          applicationName: applicationName\r\n        };\r\n        if (ai.appInsights) {\r\n          ai.appInsights.trackTrace({\r\n            message: 'Preference: preferred email updation',\r\n            severityLevel: SeverityLevel.Information,\r\n            properties: {\r\n              params\r\n            }\r\n          });\r\n        }\r\n        dispatch(VerifyWorkEmailAddressActions.Clear());\r\n        VerificationCode(params);\r\n        setPreferredEmailVerified(true);\r\n      }\r\n    },\r\n    [newPreferredEmailUpdate, applicationName, dispatch, VerificationCode]\r\n  );\r\n\r\n  const isVerificationError = useSelector((state: IApplicationState) => {\r\n    if (state.UserStore.isVerificationError && !isVerified) {\r\n      if (document.getElementById('errorDiv')) {\r\n        document.getElementById('errorDiv')!.style.display = 'inline-flex';\r\n      }\r\n      return true;\r\n    } else return false;\r\n  });\r\n  useEffect(() => {\r\n    if (!isServerError && !isVerificationError && !isVerified && isError) {\r\n      const friendlyError: ICustomErrorMessage = {\r\n        description: customErrorMessage?.toString(),\r\n        errorCode: customErrorCode?.toString(),\r\n        signOutPrompt: false,\r\n        method: 'UseEffect-serverError',\r\n        page: 'Preference: step2',\r\n        acctType: acctType?.toString(),\r\n        workEmail: workEmail?.toString(),\r\n        emailAddress: userEmailAddress?.toString(),\r\n        newEmailAddress: newEmailAddress?.toString()\r\n      };\r\n      if (ai.appInsights) {\r\n        ai.appInsights.trackException({\r\n          exception: new Error('ESIUI'),\r\n          severityLevel: SeverityLevel.Error,\r\n          properties: { friendlyError, isServerError, isVerificationError, isVerified, workEmailAddress }\r\n        });\r\n      }\r\n      history.push('/about/', {\r\n        error: friendlyError\r\n      });\r\n      return;\r\n    } else if (isVerified && isPreferredEmailUpdated && isPreferredEmailVerified) {\r\n      if (ai.appInsights) {\r\n        ai.appInsights.trackTrace({\r\n          message: 'Preference: preferred email completion',\r\n          severityLevel: SeverityLevel.Information,\r\n          properties: {\r\n            isVerified,\r\n            workEmailAddress\r\n          }\r\n        });\r\n      }\r\n      setCodeVerificationPreferredEmailDialogOpen(true);\r\n      setPreferredEmailAddressUpdate(newPreferredEmailUpdate);\r\n      setCompletionPreferredEmaiDialogOpen(false);\r\n    } else {\r\n      // TODO: show error message.\r\n    }\r\n    // eslint-disable-next-line react-hooks/exhaustive-deps\r\n  }, [isVerified, isServerError, isVerificationError, isPreferredEmailVerified]);\r\n\r\n  const unLinkNextSteps = () => {\r\n    if (accountUnlinkingResponse?.statusCode !== 200) {\r\n      setSuccessErrorDialogOpen(false);\r\n    } else {\r\n      signout();\r\n    }\r\n  };\r\n\r\n  const saveChangesText = intl.formatMessage({\r\n    defaultMessage: 'Save Changes'\r\n  });\r\n  const agreeAndContinueText = intl.formatMessage({\r\n    defaultMessage: 'Agree and Continue'\r\n  });\r\n  const localizedSaveButtonText = submitButtonText === 'Save Changes' ? saveChangesText : agreeAndContinueText;\r\n\r\n  const isReturningUser = useSelector((state: IApplicationState) => {\r\n    if (state.UserStore.profile.preferredEmailAddress) {\r\n      return true;\r\n    } else return false;\r\n  });\r\n\r\n  const preferredEmailInfo = intl.formatMessage({\r\n    defaultMessage: 'Your preferred email address'\r\n  });\r\n\r\n  const changeContactInfo = () => {\r\n    setContactInfoDialogOpen(false);\r\n  };\r\n\r\n  const preferredEmailCheckboxTest = intl.formatMessage({\r\n    defaultMessage:\r\n      'I consent to receive communications from Microsoft to the email provided above related to my participation in the Enterprise Skills Initiative.'\r\n  });\r\n\r\n  const handleKoreaCheck = () => {\r\n    setKoreaConsent(!koreaConsent);\r\n  };\r\n\r\n  const KoreaPrivacyMessage = () => {\r\n    return (\r\n      <div className=\"privacyMessage\">\r\n        <label>\r\n          <input className=\"ms-Checkbox-checkbox privacyCheckbox\" type=\"checkbox\" checked={koreaConsent} onChange={handleKoreaCheck} />\r\n          <FormattedMessage\r\n            defaultMessage=\"I\r\n          agree to the collection and use of my personal information (required)*:\"\r\n          />\r\n        </label>\r\n        <div className=\"pointContainer\">\r\n          <ul className=\"points\">\r\n            <li>\r\n              <FormattedMessage defaultMessage=\"Items of Personal Information to be Collected: First Name, Last Name, Email Address, Phone Number, Company name and size, Job Title, Country/Region of residence, and any other fields visible on this form.\" />\r\n            </li>\r\n            <li>\r\n              <FormattedMessage defaultMessage=\"Purpose of Collection and Use: Microsoft will use the data for the purpose described on this form.\" />\r\n            </li>\r\n            <li>\r\n              <FormattedMessage description=\"link\" defaultMessage=\"Retention/Use Period of Personal Information:\" />\r\n              <b>\r\n                {' '}\r\n                <FormattedMessage defaultMessage=\"As long as needed to provide the service(s) you are requesting.\" />\r\n              </b>\r\n            </li>\r\n          </ul>\r\n        </div>\r\n        <p>\r\n          <FormattedMessage defaultMessage=\"You have the right to refuse the collection and use of your personal information as set forth above. However, if you refuse, you may not be able to receive the benefits described under Purpose of Collection & Use.\" />\r\n\r\n          <span className=\"privacyLink\">\r\n            <Link href=\"https://privacy.microsoft.com/en-us/privacystatement\">\r\n              <FormattedMessage description=\"link\" defaultMessage=\"Privacy Statement\" />\r\n            </Link>\r\n          </span>\r\n        </p>\r\n\r\n        {/* <label><input type='checkbox' checked={koreaConsent} onChange={handleKoreaCheck} /> I Agree</label> */}\r\n      </div>\r\n    );\r\n  };\r\n\r\n  const ChinaPIPLMessage = () => {\r\n    return (\r\n      <div className=\"privacyMessage\">\r\n        <FormattedMessage defaultMessage=\"Participation requires transferring your personal data to other countries in which Microsoft operates, including the United States. By submitting this form, you agree to the transfer of your data outside of China.\" />\r\n        <p>\r\n          <FormattedMessage\r\n            defaultMessage=\"{link}\"\r\n            values={{\r\n              link: <a href=\"https://privacy.microsoft.com/en-us/privacystatement\">Privacy Statement</a>\r\n            }}\r\n          />\r\n        </p>\r\n      </div>\r\n    );\r\n  };\r\n\r\n  return (\r\n    <React.Fragment>\r\n      <div className=\"container\">\r\n        <div className=\"preferencePage page\">\r\n          {isProfileFetching && <LoaderSection />}\r\n          {isRedirectToHome && !isProfileFetching && !isError && <Redirect to=\"/landing\" />}\r\n          <div className=\"pageWrapper\">\r\n            <div className=\"ms-Grid\" dir=\"ltr\">\r\n              <div className=\"ms-Grid-row\">\r\n                <div\r\n                  className={\r\n                    isUpdateProfile ? 'ms-Grid-col ms-lg3 sideDivSpacing' : 'ms-Grid-col ms-lg2 ms-hiddenSm ms-hiddenMd ms-hiddenLg'\r\n                  }\r\n                />\r\n                {isUpdateProfile && selectedRole && selectedLanguage && selectedTimezone && selectedCountry && (\r\n                  <div className=\"ms-Grid-col ms-lg1 middleDivSpacing ms-hiddenLgDown\"></div>\r\n                )}\r\n                {isUpdateProfile && (\r\n                  <div className=\"ms-Grid-col contentDivSpacing\">\r\n                    <h1 className=\"headerColorPreference ms-fontSize-24 ms-fontWeight-semilight\">\r\n                      <FormattedMessage defaultMessage=\"Settings\" />\r\n                    </h1>\r\n                  </div>\r\n                )}\r\n                <div\r\n                  className={\r\n                    isUpdateProfile\r\n                      ? 'ms-Grid-col ms-lg3 sideDivSpacing sbmargin'\r\n                      : 'ms-Grid-col ms-lg2 ms-hiddenSm ms-hiddenMd ms-hiddenLg'\r\n                  }\r\n                >\r\n                  {isUpdateProfile && selectedRole && selectedLanguage && selectedTimezone && selectedCountry && (\r\n                    <div>\r\n                      <SideBarNavigation></SideBarNavigation>\r\n                    </div>\r\n                  )}\r\n                </div>\r\n                {isUpdateProfile && selectedRole && selectedLanguage && selectedTimezone && selectedCountry && (\r\n                  <div className=\"ms-Grid-col ms-lg1 middleDivSpacing ms-hiddenLgDown\"></div>\r\n                )}\r\n                <div className=\"ms-Grid-col contentDivSpacing\">\r\n                  {!isUpdateProfile && (\r\n                    <div className=\"preferencesPage preferencesPageHeader\">\r\n                      <div className=\"welcomeContainer\">\r\n                        <div className=\"ms-fontWeight-light\">\r\n                          <h1 className=\"welcomeHeaderWrap\">\r\n                            <span className=\"welcomeText\">\r\n                              <FormattedMessage defaultMessage=\"Welcome\" />\r\n                            </span>\r\n                            &nbsp;\r\n                            <span className=\"welcomeUser ms-fontWeight-semibold\">\r\n                              {account?.firstName !== 'undefined' && account?.firstName}!\r\n                            </span>\r\n                          </h1>\r\n                        </div>\r\n                        <div className=\"ms-fontWeight-light welcomeTextPadding\">\r\n                          {!isProfileCompleted && !isProfileExists && (\r\n                            <div className=\"ms-fontWeight-light welcomeTextPadding\">\r\n                              <FormattedMessage defaultMessage=\"Select your learning preferences to get started.\" />\r\n                            </div>\r\n                          )}\r\n                          {!isProfileCompleted && isProfileExists && (\r\n                            <div className=\"ms-fontWeight-light welcomeTextPadding\">\r\n                              <FormattedMessage defaultMessage=\"Please update your learning preferences, as some options may have changed since your previous selection.\" />\r\n                            </div>\r\n                          )}\r\n                        </div>\r\n                      </div>\r\n                    </div>\r\n                  )}\r\n                  <div className=\"cardSurface\">\r\n                    <div>\r\n                      <ul className=\"preferenceQandA\">\r\n                        {isUpdateProfile && (\r\n                          <li>\r\n                            <div className=\"preferencesPage preferencesPageHeader headerTitle ms-fontWeight-regular\">\r\n                              <FormattedMessage defaultMessage=\"Select and save your preferred language, time zone, and learning role.\" />\r\n                            </div>\r\n                          </li>\r\n                        )}\r\n\r\n                        <li>\r\n                          <div className=\"preferenceListItem\">\r\n                            <div className=\"focusRemove ms-fontSize-15 ms-fontWeight-semibold settingOption\">\r\n                              <FormattedMessage defaultMessage=\"Language\" />\r\n                            </div>\r\n                            <div className=\"focusRemove imageSize\">\r\n                              <Image src={Language} alt=\"\" width=\"100%\" />\r\n                            </div>\r\n                            <div className=\"focusRemove settingOptionText\">\r\n                              <ComboBox\r\n                                aria-label={intl.formatMessage({\r\n                                  defaultMessage: 'list language Select a preferred Language Asterisk denotes Required'\r\n                                })}\r\n                                placeholder={intl.formatMessage({\r\n                                  defaultMessage: 'Select an option'\r\n                                })}\r\n                                allowFreeform\r\n                                autoComplete=\"on\"\r\n                                label={intl.formatMessage({\r\n                                  defaultMessage: 'Select a preferred Language'\r\n                                })}\r\n                                options={data['languages']}\r\n                                onChange={setLanguageOption}\r\n                                className=\"dropdownWidth\"\r\n                                required={true}\r\n                                selectedKey={selectedLanguageItem}\r\n                                componentRef={languageDropdown}\r\n                                useComboBoxAsMenuWidth={true}\r\n                                calloutProps={{ directionalHint: 5, directionalHintFixed: true, calloutMaxHeight: 350 }}\r\n                              />\r\n                            </div>\r\n                          </div>\r\n                        </li>\r\n                        <li>\r\n                          <div className=\"preferenceListItem\">\r\n                            <div className=\"focusRemove ms-fontSize-15 ms-fontWeight-semibold settingOption\">\r\n                              <FormattedMessage defaultMessage=\"Country\" />\r\n                            </div>\r\n                            <div className=\"focusRemove imageSize\">\r\n                              <Image src={Country} alt=\"\" width=\"100%\" />\r\n                            </div>\r\n                            <div className=\"focusRemove settingOptionText\">\r\n                              <div className=\"languageMessage\">\r\n                                <div className=\"dropDown\">\r\n                                  <ComboBox\r\n                                    aria-label={intl.formatMessage({\r\n                                      defaultMessage: 'list Country Select a learning Country Asterisk denotes Required'\r\n                                    })}\r\n                                    placeholder={intl.formatMessage({\r\n                                      defaultMessage: 'Select an option'\r\n                                    })}\r\n                                    allowFreeform\r\n                                    autoComplete=\"on\"\r\n                                    label={intl.formatMessage({\r\n                                      defaultMessage: 'Select a learning Country'\r\n                                    })}\r\n                                    options={data['country']}\r\n                                    onChange={setCountryOption}\r\n                                    className=\"dropdownWidth\"\r\n                                    required={true}\r\n                                    selectedKey={selectedCountryItem}\r\n                                    useComboBoxAsMenuWidth={true}\r\n                                    calloutProps={{ directionalHint: 5, directionalHintFixed: true, calloutMaxHeight: 350 }}\r\n                                  />\r\n                                </div>\r\n                              </div>\r\n                              <div className=\"privacyMessage\">\r\n                                <span>{isChinaSelected ? <ChinaPIPLMessage /> : null}</span>\r\n                              </div>\r\n                              <div className=\"privacyMessage\">\r\n                                <span>{isKoreaSelected ? <KoreaPrivacyMessage /> : null}</span>\r\n                              </div>\r\n                            </div>\r\n                          </div>\r\n                        </li>\r\n                        <li>\r\n                          <div className=\"preferenceListItem\">\r\n                            <div className=\"focusRemove ms-fontSize-15 ms-fontWeight-semibold settingOption\">\r\n                              <FormattedMessage defaultMessage=\"Time zone\" />\r\n                            </div>\r\n                            <div className=\"focusRemove imageSize\">\r\n                              <Image src={Timezone} alt=\"\" width=\"100%\" />\r\n                            </div>\r\n                            <div className=\"focusRemove settingOptionText\">\r\n                              <ComboBox\r\n                                aria-label={intl.formatMessage({\r\n                                  defaultMessage: 'list location Select your time zone Asterisk denotes Required'\r\n                                })}\r\n                                placeholder={intl.formatMessage({\r\n                                  defaultMessage: 'Select an option'\r\n                                })}\r\n                                allowFreeform\r\n                                autoComplete=\"on\"\r\n                                label={intl.formatMessage({\r\n                                  defaultMessage: 'Select your time zone'\r\n                                })}\r\n                                options={data['timezones']}\r\n                                onChange={setTimeZoneOption}\r\n                                className=\"dropdownWidth\"\r\n                                required={true}\r\n                                selectedKey={selectedTimeZoneItem}\r\n                                useComboBoxAsMenuWidth={true}\r\n                                calloutProps={{ directionalHint: 5, directionalHintFixed: true, calloutMaxHeight: 350 }}\r\n                              />\r\n                            </div>\r\n                          </div>\r\n                        </li>\r\n                        <li>\r\n                          <div className=\"preferenceListItem\">\r\n                            <div className=\"focusRemove ms-fontSize-15 ms-fontWeight-semibold settingOption\">\r\n                              <FormattedMessage defaultMessage=\"Role\" />\r\n                            </div>\r\n                            <div className=\"focusRemove imageSize\">\r\n                              <Image src={Role} alt=\"\" width=\"100%\" />\r\n                            </div>\r\n                            <div className=\"focusRemove settingOptionText\">\r\n                              <ComboBox\r\n                                aria-label={intl.formatMessage({\r\n                                  defaultMessage: 'list role Select a learning role Asterisk denotes Required'\r\n                                })}\r\n                                placeholder={intl.formatMessage({\r\n                                  defaultMessage: 'Select an option'\r\n                                })}\r\n                                allowFreeform\r\n                                autoComplete=\"on\"\r\n                                label={intl.formatMessage({\r\n                                  defaultMessage: 'Select a learning role'\r\n                                })}\r\n                                options={data['roles']}\r\n                                onChange={setRoleOption}\r\n                                className=\"dropdownWidth\"\r\n                                required={true}\r\n                                selectedKey={selectedRoleItem}\r\n                                useComboBoxAsMenuWidth={true}\r\n                                calloutProps={{ directionalHint: 5, directionalHintFixed: true, calloutMaxHeight: 350 }}\r\n                              />\r\n                            </div>\r\n                          </div>\r\n                        </li>\r\n\r\n                        <li>\r\n                          <div className=\"preferenceListItem\">\r\n                            <div className=\"focusRemove ms-fontSize-15 ms-fontWeight-semibold settingOption\">\r\n                              <FormattedMessage defaultMessage=\"Your Learning Data\" />\r\n                            </div>\r\n                            <div className=\"focusRemove imageSize\">\r\n                              <Image src={ProfileData1} alt=\"\" width=\"100%\" />\r\n                            </div>\r\n                            <div className=\"focusRemove settingOptionTextLearn\">\r\n                              <div className=\"yourLearnData\">\r\n                                <FormattedMessage defaultMessage=\"Microsoft has a variety of learning experiences which will track your learning activity under the organizational account\" />\r\n                                &nbsp; ({emailAddress}) &nbsp;\r\n                                <FormattedMessage\r\n                                  defaultMessage=\"you’ve provided. By using your organizational account, you <b>understand and acknowledge</b> that your email address as well as past and new learning and certification information will be shared with your organization.\"\r\n                                  values={{\r\n                                    b: (chunks: React.ReactNode) => <b>{chunks}</b>\r\n                                  }}\r\n                                />\r\n                              </div>\r\n\r\n                              {isUpdateProfile && (\r\n                                <div className=\"focusRemove divStyle\">\r\n                                  <Checkbox\r\n                                    ariaLabel={`I agree Microsoft has a variety of learning experiences which will track your learning activity under the\r\n                                organizational account (${emailAddress}) you’ve provided. By using your organizational account,\r\n                                you understand and acknowledge that your email address as well as past and new learning and certification\r\n                                information will be shared with your organization.`}\r\n                                    required={true}\r\n                                    label={intl.formatMessage({\r\n                                      defaultMessage: 'I agree'\r\n                                    })}\r\n                                    checked={isTosChecked}\r\n                                    onChange={setacceptedToS}\r\n                                    className=\"focusRemove checkboxPadding ms-fontWeight-semibold\"\r\n                                  />\r\n                                  <ConfirmDialog\r\n                                    isOpen={!isOpen}\r\n                                    onDismiss={onDismiss}\r\n                                    onNextStepClick={onContinue}\r\n                                    heading={intl.formatMessage({\r\n                                      defaultMessage: 'Discontinue Sharing Information?',\r\n                                      description: 'title'\r\n                                    })}\r\n                                    textToDisplay={intl.formatMessage({\r\n                                      defaultMessage:\r\n                                        'By continuing, you understand that your name, email address, learning and certification information will no longer be provided to your employer/organization. Please contact your employer regarding any information that was transferred prior to your request to Discontinue sharing your information.',\r\n                                      description: 'subText'\r\n                                    })}\r\n                                    onNextStepText={intl.formatMessage({ defaultMessage: 'Continue' })}\r\n                                  />\r\n                                </div>\r\n                              )}\r\n                            </div>\r\n                          </div>\r\n                        </li>\r\n\r\n                        {isUpdateProfile && !isAad && !isMSA && (\r\n                          <li>\r\n                            <div className=\"accountManagement preferenceListItem\">\r\n                              <div className=\"focusRemove ms-fontSize-15 ms-fontWeight-semibold settingOption\">\r\n                                <FormattedMessage defaultMessage=\"Account Management\" />\r\n                              </div>\r\n                              <div className=\"focusRemove imageSize\">\r\n                                <Image src={AccountManagement} alt=\"\" width=\"100%\" />\r\n                              </div>\r\n                              <div className=\"focusRemove settingOptionTextLearn\">\r\n                                <div>\r\n                                  <span className=\"ms-fontWeight-semibold signinAccount\">\r\n                                    <FormattedMessage defaultMessage=\"You are signed in as\" />\r\n                                  </span>\r\n                                  <DefaultButton\r\n                                    title={emailAddress}\r\n                                    text={emailAddress}\r\n                                    className=\"ms-fontSize-15 ms-fontWeight-semibold customButton signinDiv\"\r\n                                  ></DefaultButton>\r\n\r\n                                  <DefaultButton\r\n                                    className=\"ms-fontWeight-semibold accountSupport unlinkAccount\"\r\n                                    onClick={openUnlinkAcctModal}\r\n                                    ariaDescription={`Remove ${emailAddress}`}\r\n                                    target=\"_self\"\r\n                                  >\r\n                                    <FormattedMessage defaultMessage=\"Remove\" />\r\n                                  </DefaultButton>\r\n                                  <ConfirmDialog\r\n                                    className=\"acctUnlinkDialog\"\r\n                                    isOpen={isUnlinkAcctClose}\r\n                                    onDismiss={onDismissUnlinkAcct}\r\n                                    onNextStepClick={onDeleteAccount}\r\n                                    checkboxDisplay={true}\r\n                                    checkBoxlLabelText={intl.formatMessage({\r\n                                      defaultMessage: 'I have read the above and agree to remove my linked personal account.'\r\n                                    })}\r\n                                    heading={intl.formatMessage({\r\n                                      defaultMessage: 'Remove your linked personal account?',\r\n                                      description: 'title'\r\n                                    })}\r\n                                    textToDisplay={accountLinkingDialogContent}\r\n                                    onNextStepText={intl.formatMessage({ defaultMessage: 'Remove' })}\r\n                                  />\r\n                                  <SuccessErrorDialog\r\n                                    isOpen={isSuccessErrorDialogOpen}\r\n                                    onDone={unLinkNextSteps}\r\n                                    isSuccess={accountUnlinkingResponse?.statusCode === 200}\r\n                                    textMessage={\r\n                                      accountUnlinkingResponse?.statusCode !== 200 ? accountLinkingErrorMsg : accountLinkingSuccessMsg\r\n                                    }\r\n                                    buttonText={intl.formatMessage({\r\n                                      defaultMessage: 'OK'\r\n                                    })}\r\n                                  />\r\n                                </div>\r\n                                <div className=\"linkedAccountDiv\">\r\n                                  <span className=\"ms-fontWeight-semibold linkedAccount\">\r\n                                    <FormattedMessage defaultMessage=\"Linked work account\" />\r\n                                  </span>\r\n                                  <DefaultButton\r\n                                    title={userEmail}\r\n                                    text={userEmail}\r\n                                    className=\"ms-fontSize-15 ms-fontWeight-semibold customButton signinDiv\"\r\n                                  ></DefaultButton>\r\n                                </div>\r\n                                <div className=\"updateAccount\">\r\n                                  <FormattedMessage\r\n                                    description=\"link\"\r\n                                    defaultMessage=\"To update linked accounts, contact <Link>ESI Support</Link>\"\r\n                                    values={{\r\n                                      Link: (chunks: ReactElement) => (\r\n                                        <Link\r\n                                          target=\"_blank\"\r\n                                          className=\"ms-fontWeight-semibold accountSupport\"\r\n                                          href={process.env.REACT_APP_SUPPORT_EMAIL_LINK + locale}\r\n                                          onClick={supportLinkLogging}\r\n                                        >\r\n                                          {chunks}\r\n                                        </Link>\r\n                                      )\r\n                                    }}\r\n                                  />\r\n                                </div>\r\n                              </div>\r\n                            </div>\r\n                          </li>\r\n                        )}\r\n                        {isUpdateProfile && isAad && (\r\n                          <li>\r\n                            <div className=\"accountManagement preferenceListItem\">\r\n                              <div className=\"focusRemove ms-fontSize-15 ms-fontWeight-semibold settingOption\">\r\n                                <FormattedMessage defaultMessage=\"Account Management\" />\r\n                              </div>\r\n                              <div className=\"focusRemove imageSize\">\r\n                                <Image src={AccountManagement} alt=\"\" width=\"100%\" />\r\n                              </div>\r\n                              <div className=\"focusRemove settingOptionTextLearn\">\r\n                                <div className=\"linkedAccountDivAAD\">\r\n                                  <span className=\"ms-fontWeight-semibold linkedAccount\">\r\n                                    <FormattedMessage defaultMessage=\"You are signed in as\" />\r\n                                  </span>\r\n                                  <DefaultButton\r\n                                    title={userEmail}\r\n                                    text={userEmail}\r\n                                    className=\"ms-fontSize-15 ms-fontWeight-semibold customButton signinDiv\"\r\n                                  ></DefaultButton>\r\n                                  <Link\r\n                                    className=\"ms-fontWeight-semibold changeaccount\"\r\n                                    data-testid=\"changeEmail-link\"\r\n                                    onClick={openUnlinkAcctModal}\r\n                                    target=\"_self\"\r\n                                  >\r\n                                    <FormattedMessage defaultMessage=\"Update my linked work email address\" />\r\n                                  </Link>\r\n                                  <WorkEmailChangeDialog\r\n                                    className=\"workEmailChangeDialog\"\r\n                                    isOpen={isUnlinkAcctClose}\r\n                                    isPreferredEmail={false}\r\n                                    value=\"\"\r\n                                    onDismiss={onDismissUnlinkAcct}\r\n                                    onNextStepClick={VerifyUpdatedEmail}\r\n                                    checkboxDisplay={false}\r\n                                    textboxDisplay={true}\r\n                                    textboxlabelText={userEmail}\r\n                                    heading={intl.formatMessage({\r\n                                      defaultMessage: 'Update my linked work email address',\r\n                                      description: 'title'\r\n                                    })}\r\n                                    onNextStepText={intl.formatMessage({ defaultMessage: 'Continue' })}\r\n                                    compareError={isCompareError}\r\n                                    existingEmailError={isExistingError}\r\n                                    isValidEmailError={isValidEmailError}\r\n                                  />\r\n                                  <ConfirmCodeDialog\r\n                                    className=\"workEmailChangeDialog\"\r\n                                    isOpen={isCodeVerificationDialogOpen}\r\n                                    value={newWorkEmailAddressUpdate}\r\n                                    onDismiss={onDismissCodeVerification}\r\n                                    onNextStepClick={SendUpdatedWorkEmail}\r\n                                    hashCodeTextboxDisplay={true}\r\n                                    isPreferredEmail={false}\r\n                                    placeholder={intl.formatMessage({\r\n                                      defaultMessage: 'Verification code'\r\n                                    })}\r\n                                    onNextStepText={intl.formatMessage({ defaultMessage: 'Verify Code' })}\r\n                                  />\r\n                                  <CompletionDialog\r\n                                    className=\"workEmailChangeDialog\"\r\n                                    isOpen={isCompletionDialogOpen}\r\n                                    onDismiss={onDismissCompletion}\r\n                                    textToDisplay={intl.formatMessage({\r\n                                      defaultMessage: 'Your work email address has been updated'\r\n                                    })}\r\n                                    textToDisplayContent={intl.formatMessage({\r\n                                      defaultMessage: 'Please sign out and then sign in with your new work email address'\r\n                                    })}\r\n                                    onNextStepText={intl.formatMessage({ defaultMessage: 'Sign out' })}\r\n                                  />\r\n                                  <SuccessErrorDialog\r\n                                    isOpen={isSuccessErrorDialogOpen}\r\n                                    onDone={unLinkNextSteps}\r\n                                    isSuccess={accountUnlinkingResponse?.statusCode === 200}\r\n                                    textMessage={\r\n                                      accountUnlinkingResponse?.statusCode !== 200 ? accountLinkingErrorMsg : accountLinkingSuccessMsg\r\n                                    }\r\n                                    buttonText={intl.formatMessage({\r\n                                      defaultMessage: 'OK'\r\n                                    })}\r\n                                  />\r\n                                </div>\r\n                              </div>\r\n                            </div>\r\n                          </li>\r\n                        )}\r\n\r\n                        {isConsentRequired && (\r\n                          <li>\r\n                            <div className=\"preferenceListItem\">\r\n                              <div className=\"focusRemove ms-fontSize-15 ms-fontWeight-semibold settingOption\">\r\n                                <FormattedMessage defaultMessage=\"Cookie Management\" />\r\n                              </div>\r\n                              <div className=\"focusRemove imageSize\">&nbsp;</div>\r\n                              <div className=\"focusRemove settingOptionText\">\r\n                                <Link\r\n                                  className=\"ms-fontWeight-semibold changeaccount\"\r\n                                  data-testid=\"manageCookies-link\"\r\n                                  onClick={openManageCookiesModal}\r\n                                  target=\"_self\"\r\n                                >\r\n                                  <FormattedMessage defaultMessage=\"Manage cookie preferences\" />\r\n                                </Link>\r\n                              </div>\r\n                            </div>\r\n                          </li>\r\n                        )}\r\n                        {!disableEsiTerms && (\r\n                          <li className=\"termsSectionContainer\">\r\n                            <div className=\"preferenceListItem\">\r\n                              <div className=\"focusRemove ms-fontSize-15 ms-fontWeight-semibold settingOption\">\r\n                                <FormattedMessage defaultMessage=\"Terms & Conditions\" />\r\n                              </div>\r\n                              <div className=\"focusRemove termsConditionsText\">\r\n                                <div className=\"yourLearnData\">\r\n                                  <FormattedMessage defaultMessage=\"Your use of the LxP and participation in and use of ESI training, testing, learning opportunities and content is governed by the \" />\r\n                                  <Link className=\"termsConditionLink\" data-testid=\"terms-link\" onClick={openESITerms} target=\"_self\">\r\n                                    <FormattedMessage defaultMessage=\"ESI Learning Opportunities Agreement\" />\r\n                                  </Link>{' '}\r\n                                  &\r\n                                  <Link\r\n                                    className=\"termsConditionLink\"\r\n                                    data-testid=\"terms-guidelines\"\r\n                                    onClick={openProgramGuideLine}\r\n                                    targe=\"_self\"\r\n                                  >\r\n                                    <FormattedMessage defaultMessage=\"ESI Program Guidelines.\" />\r\n                                  </Link>\r\n                                </div>\r\n                              </div>\r\n                            </div>\r\n                          </li>\r\n                        )}\r\n                        <li className=\"contactInfoSectionContainer\">\r\n                          <div className=\"contactInfo\">\r\n                            <div className=\"ms-fontSize-15 ms-fontWeight-semibold settingOption\">\r\n                              <FormattedMessage defaultMessage=\"Contact Information\" />\r\n                            </div>\r\n                            <div className=\"contactInfoSection\">\r\n                              <PreferredInfo\r\n                                info={preferredEmailInfo}\r\n                                value={newPreferredEmailAddressUpdate}\r\n                                isReturningUser={isReturningUser}\r\n                                changeContactInfo={changeContactInfo}\r\n                              />\r\n                              <WorkEmailChangeDialog\r\n                                className=\"workEmailChangeDialog\"\r\n                                isOpen={isContactInfoDialogOpen}\r\n                                isPreferredEmail={true}\r\n                                value={newPreferredEmailAddressUpdate}\r\n                                onDismiss={onDismissUpdateContactInfo}\r\n                                onNextStepClick={VerifyPreferredEmail}\r\n                                textboxDisplay={true}\r\n                                heading={\r\n                                  isReturningUser\r\n                                    ? intl.formatMessage({\r\n                                        defaultMessage: 'Change my preferred email address',\r\n                                        description: 'title'\r\n                                      })\r\n                                    : intl.formatMessage({\r\n                                        defaultMessage: 'Add my preferred email address',\r\n                                        description: 'title'\r\n                                      })\r\n                                }\r\n                                checkboxDisplay={true}\r\n                                checkBoxlLabelText={preferredEmailCheckboxTest}\r\n                                onNextStepText={intl.formatMessage({ defaultMessage: 'Continue' })}\r\n                                compareError={isCompareError}\r\n                                existingEmailError={isExistingError}\r\n                                isValidEmailError={isValidEmailError}\r\n                              />\r\n                              <ConfirmCodeDialog\r\n                                className=\"workEmailChangeDialog\"\r\n                                isOpen={isCodeVerificationPreferredEmailDialogOpen}\r\n                                value={newPreferredEmailUpdate}\r\n                                onDismiss={onDismissPreferredEmailCodeVerification}\r\n                                onNextStepClick={SendUpdatedPreferredEmail}\r\n                                hashCodeTextboxDisplay={true}\r\n                                isPreferredEmail={true}\r\n                                placeholder={intl.formatMessage({\r\n                                  defaultMessage: 'Please enter the verification code'\r\n                                })}\r\n                                onNextStepText={intl.formatMessage({ defaultMessage: 'Verify Code' })}\r\n                              />\r\n                              <CompletionDialog\r\n                                className=\"workEmailChangeDialog\"\r\n                                isOpen={isCompletionPreferredEmailDialogOpen}\r\n                                onDismiss={onDismissPreferredEmailCompletion}\r\n                                textToDisplay={intl.formatMessage({\r\n                                  defaultMessage: 'Your preferred email address has been updated'\r\n                                })}\r\n                                onNextStepText={intl.formatMessage({ defaultMessage: 'Done' })}\r\n                              />\r\n                              <SuccessErrorDialog\r\n                                isOpen={isSuccessErrorDialogOpen}\r\n                                onDone={unLinkNextSteps}\r\n                                isSuccess={accountUnlinkingResponse?.statusCode === 200}\r\n                                textMessage={\r\n                                  accountUnlinkingResponse?.statusCode !== 200 ? accountLinkingErrorMsg : accountLinkingSuccessMsg\r\n                                }\r\n                                buttonText={intl.formatMessage({\r\n                                  defaultMessage: 'OK'\r\n                                })}\r\n                              />\r\n                            </div>\r\n                          </div>\r\n                          <div className=\"focusRemove buttonContainer\">\r\n                            <DialogFooter>\r\n                              <PrimaryButton\r\n                                disabled={\r\n                                  !selectedLanguageItem ||\r\n                                  !selectedRoleItem ||\r\n                                  !selectedTimeZoneItem ||\r\n                                  !selectedCountryItem ||\r\n                                  !newPreferredEmailAddressUpdate ||\r\n                                  (isPreferredEmailUpdated && !isVerified) ||\r\n                                  (isKoreaSelected && !koreaConsent)\r\n                                }\r\n                                allowDisabledFocus={true}\r\n                                text={localizedSaveButtonText}\r\n                                onClick={register}\r\n                                className={\r\n                                  !selectedLanguageItem ||\r\n                                  !selectedRoleItem ||\r\n                                  !selectedTimeZoneItem ||\r\n                                  !selectedCountryItem ||\r\n                                  !newPreferredEmailAddressUpdate ||\r\n                                  (isPreferredEmailUpdated && !isVerified) ||\r\n                                  (isKoreaSelected && !koreaConsent)\r\n                                    ? 'primaryButtonDisabled customButton'\r\n                                    : 'ms-fontWeight-semibold customButton'\r\n                                }\r\n                              />\r\n                            </DialogFooter>\r\n                          </div>\r\n                        </li>\r\n                      </ul>\r\n                      {!disableEsiTerms && isTermsDialogOpen && (\r\n                        <ESITermsDialog\r\n                          isOpen={!isTermsDialogOpen}\r\n                          titleToDisplay=\"ESI Learning Opportunities Agreement\"\r\n                          textToDisplay={termsConditionsHtml}\r\n                          className=\"termsAndConditionsDialog\"\r\n                          onDismiss={closeDialog}\r\n                        />\r\n                      )}\r\n\r\n                      {!disableEsiTerms && isGuidelinesDialogOpen && (\r\n                        <ESITermsDialog\r\n                          isOpen={!isGuidelinesDialogOpen}\r\n                          titleToDisplay=\"ESI Program Guidelines\"\r\n                          textToDisplay={programGuidelinesHtml}\r\n                          className=\"guideLineDialog\"\r\n                          onDismiss={closeDialog}\r\n                        />\r\n                      )}\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </React.Fragment>\r\n  );\r\n};\r\nexport default Preferences;\r\n","module.exports = __webpack_public_path__ + \"static/media/Language.353c0ffd.svg\";","module.exports = __webpack_public_path__ + \"static/media/Profile_CountryRegion.038051cd.svg\";","module.exports = __webpack_public_path__ + \"static/media/Country.16ed14f8.svg\";","module.exports = __webpack_public_path__ + \"static/media/Role.4ee6ffa8.svg\";","module.exports = __webpack_public_path__ + \"static/media/ProfileData1.75ae7a8f.svg\";","module.exports = __webpack_public_path__ + \"static/media/Profile_Acct.4e2e70c1.svg\";","import React from 'react';\r\nimport { useIntl } from 'react-intl';\r\nimport { Dialog, DialogType, PrimaryButton } from '@fluentui/react';\r\nimport './ConfirmDialog.scss';\r\nimport './WorkEmailChangeDialog.scss';\r\nimport './CompletionDialog.scss';\r\nimport { useId } from '@uifabric/react-hooks';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\n\r\nimport { LoaderSection } from '../Loading/LoaderSection';\r\nimport { IApplicationState } from '../../store';\r\n\r\ninterface IComponentProps {\r\n  isOpen: boolean;\r\n  onDismiss: () => void;\r\n  subText?: string;\r\n  onNextStepText: string;\r\n  checkboxDisplay?: boolean;\r\n  checkBoxlLabelText?: string;\r\n  textboxDisplay?: boolean;\r\n  textboxlabelText?: string;\r\n  className?: string;\r\n  textToDisplay?: string;\r\n  textToDisplayContent?: string;\r\n}\r\n\r\nexport const CompletionDialog: React.FunctionComponent<IComponentProps> = props => {\r\n  const { isOpen, onDismiss, subText, onNextStepText, className, textToDisplay, textToDisplayContent } = props;\r\n  const intl = useIntl();\r\n  const isFetching = useSelector<IApplicationState, boolean>(state => state.UserStore.isFetching, shallowEqual);\r\n  const onCancel = () => {\r\n    onDismiss();\r\n  };\r\n\r\n  const onContinue = () => {\r\n    onDismiss();\r\n  };\r\n\r\n  const dialogContentProps = {\r\n    type: DialogType.close,\r\n    closeButtonAriaLabel: 'Close',\r\n    subText: subText\r\n  };\r\n  const labelId: string = useId('dialogLabelCongrats');\r\n  const modalProps = React.useMemo(\r\n    () => ({\r\n      containerClassName: 'dialogContent',\r\n      titleAriaId: labelId\r\n    }),\r\n    [labelId]\r\n  );\r\n  const congratsHeading = intl.formatMessage({ defaultMessage: 'Congratulations!' });\r\n  return (\r\n    <>\r\n      <Dialog\r\n        className={`confirmDialog ${className} completionDialog`}\r\n        hidden={isOpen}\r\n        onDismiss={onCancel}\r\n        dialogContentProps={dialogContentProps}\r\n        modalProps={modalProps}\r\n      >\r\n        {isFetching && <LoaderSection />}\r\n        <div className=\"completionDialogContent\">\r\n          <h2 className=\"ms-fontWeight-semibold completionDialogHeader\">\r\n            {congratsHeading}\r\n            <label id={labelId} className=\"ms-screenReaderOnly hideScreenReader \" aria-hidden={true}>\r\n              {congratsHeading}\r\n            </label>\r\n          </h2>\r\n          <span>\r\n            {textToDisplay}\r\n            <span className=\"ms-fontWeight-bold\">{textToDisplayContent}</span>\r\n          </span>\r\n          <div className=\"ms-Grid actions\">\r\n            <div className=\"ms-Grid-row\">\r\n              <div className=\"ms-Grid-col ms-sm12 doneButtonMargin\">\r\n                <PrimaryButton onClick={onContinue} text={onNextStepText} />\r\n              </div>{' '}\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </Dialog>\r\n    </>\r\n  );\r\n};\r\n"],"sourceRoot":""}