\n {(window.innerWidth <= 479) && (
\n \n )}\n
\n\n
\n {(window.innerWidth > 479) &&
\n }\n {\n (window.innerWidth <= 479) &&
\n }\n {((isMobileBrowser && !isMobile) || window.innerWidth > 479) && (findMeObj.page == constants.LANDING_PAGE) && (\n\n
\n {\n changeLocale(valueField.suffix);\n ReactGA.sendevent(gaCategory, 'LANGUAGE_DROPDOWN_SELECT', valueField.suffix);\n return setLocale(valueField)\n }}>\n {findMeObj.locale} \n \n
\n\n )}\n {((isMobileBrowser && !isMobile) || window.innerWidth > 479) && (findMeObj.page != constants.LANDING_PAGE) && (\n
{\n ReactGA.sendevent(gaCategory, 'CODELESS', 'CANCEL');\n return cancelAndCheckYourEntries()\n }}>\n
{\n ReactGA.sendevent(gaCategory, 'CODELESS', 'CANCEL');\n return cancelAndCheckYourEntries()\n }} xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1025.816 1043.776\" height=\"1.5em\" width=\"0.9828em\" fill=\"currentColor\" style={{\n cursor: \"pointer\",\n float: \"right\",\n fontSize: \"14px\", verticalAlign: \"text-bottom\", display: \"inline-block\", overflow: \"visible\"\n }}> \n \n
\n\n )}\n
\n\n {(findMeObj.page != constants.LANDING_PAGE && findMeObj.progressBarData != undefined && findMeObj.progressBarData.showProgressBar && !isMobile)&& (\n
\n \n
\n )}\n\n {(!isMobile)&&
\n }\n
\n
\n
\n\n\n
\n
\n\n {(findMeObj.page == constants.LANDING_PAGE) && (
)}\n\n {(findMeObj.page == constants.EMAILPHONESEARCH_PAGE || findMeObj.page == constants.CONTRACTOR_PAGE) && (
\n
{ } \n )}\n\n {findMeObj.page == constants.OTP_PAGE && (
\n
{ } \n )}\n\n {findMeObj.page == constants.IDENTIFIED_PAGE && (
\n
{ } \n )}\n\n {findMeObj.page == constants.REGISTRATIONLESS_DUAL_PAGE && (
\n
{{findMeObj.firstName}}}/>} \n
{{findMeObj.clientName}}}/>}
\n
)}\n\n {findMeObj.page == constants.REGISTRATIONLESS_FED_PAGE && (
\n
{{findMeObj.firstName}}}/>} \n
{{findMeObj.clientName}}}/>}
\n
)}\n\n {(findMeObj.page == constants.MULTIORG_PAGE) && (\n
\n )}\n\n {(findMeObj.page === constants.ERROR_OPTIONS_PAGE) && (\n
\n {(findMeObj.redirectionFrom === undefined || findMeObj.redirectionFrom === '') && (
{ } )}\n\n {(findMeObj.redirectionFrom === constants.REGCODE_PAGE) && (
)}\n\n {(findMeObj.redirectionFrom === constants.ORC_IDENTITY_PAGE) && (
\n
\n { } \n
{{findMeObj.companyName}}}/>}
)}\n\n
\n )}\n\n {(findMeObj.page == constants.PII_PAGE) && (\n
\n
{(code !== undefined && code === constants.ALREADY_REGISTERED) ? errorPageInfo : } \n \n )}\n
\n
\n\n {/*********************Find Me main page start *****************************/}\n {(findMeObj.page == constants.LANDING_PAGE) && (
\n
\n
{\n ReactGA.sendevent(gaCategory, 'NEW_USER_SEARCH', 'SUBMIT');\n return hasRegCode(\"EMAIL_OR_PHONE\");\n }}>\n { }
\n \n
\n\n
\n {\n isFirstTimeLoad = false;\n ReactGA.sendevent(gaCategory, 'HAVE_REG_CODE', 'SUBMIT');\n return hasRegCode(\"REGCODE\");\n }}>\n { }\n \n
\n {((isMobileBrowser && !isMobile) || window.innerWidth > 479) && (
{\n ReactGA.sendevent(gaCategory, 'CODELESS_LANDING', 'BACK');\n return cancelAndCheckYourEntries();\n }}>\n \n { } \n
)}\n\n
)}\n\n {/**************************find me page 2 email/phone search variant***************/}\n\n {(findMeObj.page === constants.EMAILPHONESEARCH_PAGE || findMeObj.page === constants.PII_PAGE) && \n (
\n
\n ReactGA.sendevent(gaCategory, 'CLICK', constants.EMAIL_PHONE_RADIO)} onChange={this.handleRadioChange} > \n \n ReactGA.sendevent(gaCategory, 'CLICK', constants.PII_RADIO)} onChange={this.handleRadioChange} \n > \n
\n\n
\n )}\n\n {/**************************find me page 2 email/phone search variant***************/}\n\n {/**************************Identity page after email/phone search page start***************/}\n\n {findMeObj.page === constants.EMAIL_PHONE_SIV_PAGE && emailPhoneSearchSivObj != undefined && emailPhoneSearchSivObj.sivOptions !== undefined && (\n
\n )}\n\n\n {/**************************Identity page after email/phone search page end***************/}\n\n {/**************************find me page 2 email/phone search***************/}\n {(findMeObj.page == constants.EMAILPHONESEARCH_PAGE && findMeObj.radioOption === constants.EMAIL_PHONE_RADIO) && (
\n \n
\n )}\n\n {/* ONE TIME CODE END */}\n\n\n\n {/*************************************Error page with options for invalid email/mobile entry*******************************************/}\n\n {(findMeObj.page == constants.ERROR_OPTIONS_PAGE) && (
\n {(findMeObj.redirectionFrom === undefined || findMeObj.redirectionFrom === '') && (
\n {ReactHtmlParser(errorPageInfo)}
)} \n\n {(errorPageInfo === undefined || errorPageInfo === '') && (
{\n ReactGA.sendevent(gaCategory, 'NEW_USER_SEARCH', 'CLICK');\n this.handleRadioChange(constants.EMAIL_PHONE_RADIO);\n return hasRegCode(\"EMAIL_OR_PHONE\");\n }} onKeyPress={(e) => {\n if (e.key === 'Enter') {\n ReactGA.sendevent(gaCategory, 'NEW_USER_SEARCH', 'CLICK');\n this.handleRadioChange(constants.EMAIL_PHONE_RADIO);\n return hasRegCode(\"EMAIL_OR_PHONE\");\n }\n }}>\n
\n
\n
)}\n\n {(findMeObj.redirectionFrom !== constants.ORC_IDENTITY_PAGE) && (
{\n setErrorPageInfo(errorPageInfo);\n ReactGA.sendevent(gaCategory, 'PII_INFO', 'CLICK');\n if(findMeObj.redirectionFrom === constants.REGCODE_PAGE)\n return this.updatePrevPage(constants.EMAILPHONESEARCH_PAGE);\n else \n return this.updatePrevPage(constants.ERROR_OPTIONS_PAGE);\n }} onKeyPress={() => {\n setErrorPageInfo(errorPageInfo);\n ReactGA.sendevent(gaCategory, 'PII_INFO', 'CLICK');\n if(findMeObj.redirectionFrom === constants.REGCODE_PAGE)\n return this.updatePrevPage(constants.EMAILPHONESEARCH_PAGE);\n else \n return this.updatePrevPage(constants.ERROR_OPTIONS_PAGE);\n }}>\n
\n
\n
)}\n\n {errorPageInfo !== undefined && errorPageInfo !== '' && (
{\n ReactGA.sendevent(gaCategory, 'NEW_USER_SEARCH', 'CLICK');\n this.handleRadioChange(constants.EMAIL_PHONE_RADIO);\n return hasRegCode(\"EMAIL_OR_PHONE\");\n }} onKeyPress={(e) => {\n if (e.key === 'Enter') {\n ReactGA.sendevent(gaCategory, 'NEW_USER_SEARCH', 'CLICK');\n this.handleRadioChange(constants.EMAIL_PHONE_RADIO);\n return hasRegCode(\"EMAIL_OR_PHONE\");\n }\n }}>\n
\n {(findMeObj.redirectionFrom === undefined || findMeObj.redirectionFrom === '') && (\n
{ }
)}\n {(findMeObj.redirectionFrom === constants.REGCODE_PAGE || findMeObj.redirectionFrom === constants.ORC_IDENTITY_PAGE) && (\n
{ }
)}\n
\n
\n
)}\n \n {(findMeObj.redirectionFrom !== constants.ORC_IDENTITY_PAGE) && (
{\n isFirstTimeLoad = false;\n ReactGA.sendevent(gaCategory, 'HAVE_REG_CODE', 'CLICK');\n return hasRegCode(\"REGCODE\");\n }} onKeyPress={(e) => {\n if (e.key === 'Enter') {\n isFirstTimeLoad = false;\n ReactGA.sendevent(gaCategory, 'HAVE_REG_CODE', 'CLICK');\n return hasRegCode(\"REGCODE\");\n }\n }}>\n
\n
\n {(findMeObj.redirectionFrom === undefined || findMeObj.redirectionFrom === '') ? \n : }\n \n {(findMeObj.redirectionFrom === undefined || findMeObj.redirectionFrom === '') && \n \n \n \n }\n
\n
\n
\n
)}\n\n {(findMeObj.redirectionFrom === constants.ORC_IDENTITY_PAGE) && (
{\n isFirstTimeLoad = false;\n ReactGA.sendevent(gaCategory, 'IDENTITY', 'CLICK');\n return redirectToIdentityPage(constants.ORC_IDENTITY_PAGE);\n }} onKeyPress={() => {\n isFirstTimeLoad = false;\n ReactGA.sendevent(gaCategory, 'IDENTITY', 'CLICK');\n return redirectToIdentityPage(constants.ORC_IDENTITY_PAGE);\n }}>\n
\n
\n
)}\n\n {(findMeObj.redirectionFrom === undefined || findMeObj.redirectionFrom === '') && (
{\n ReactGA.sendevent(gaCategory, 'ERROR_OPTIONS', 'BACK');\n return goToMainPage();\n }}\n >\n \n { } \n \n
)}\n
\n
)}\n\n {/*************************************Error page end*******************************************/}\n\n{ /** *******************Registration page view start **************************** */}\n\n{findMeObj.page == constants.REGISTRATIONLESS_DUAL_PAGE && (
\n \n \n ReactGA.sendevent(gaCategory, 'CLICK', constants.REGLESS_RADIO)} onChange={this.handleReglessRadioChange} >{findMeObj.clientName}}}/> {ReactHtmlParser(this.props.intl.formatMessage({ id : 'registrationless.recommended' }))} \n\n ReactGA.sendevent(gaCategory, 'CLICK', constants.CREATE_ACC_RADIO)} onChange={this.handleReglessRadioChange} \n > \n
\n {\n ReactGA.sendevent(gaCategory, 'REG_LESS_SUBMIT', 'SUBMIT');\n return this.invokeReglessSubmit(this.state.reglessOption);\n }}\n onKeyPress={ (e) => { \n if(e.key === 'Enter'){\n e.preventDefault();\n return this.invokeReglessSubmit(this.state.reglessOption);\n } \n }}>\n { }\n
\n \n)}\n\n{findMeObj.page == constants.REGISTRATIONLESS_FED_PAGE && (
\n {\n return registrationLessFlow();\n }}\n onKeyPress={ (e) => { \n if(e.key === 'Enter'){\n e.preventDefault();\n return registrationLessFlow(); \n } \n }}>\n { }\n
\n \n)}\n\n{ /** *******************Registrationless page end **************************** */}\n\n{ /** *********************************** Registrationless WARN MODAL****************************************** */}\n {showModalTitle && (\n
{ WindowUtil.applyBrandingChanges(); }}\n >\n \n \n \n {showModalTitle}\n \n \n \n \n \n {ReactHtmlParser(showModalMessage)}\n \n
\n \n \n \n \n \n \n \n )}\n\n\n {/*************************************Error MODAL*******************************************/}\n {showModalTitle && (
{ WindowUtil.applyBrandingChanges(); }}\n >\n \n \n \n {showModalTitle}\n \n \n \n \n {ReactHtmlParser(showModalMessage)} \n
\n \n \n {\n ReactGA.sendevent(gaCategory, 'ERROR_MODAL', 'CANCEL');\n return cancelAndCheckYourEntries()\n }}>\n { }\n \n \n )}\n {/*************************************Error MODAL END*******************************************/}\n\n\n
\n
\n\n\n { /** **************************Footer OTP page starts************************************** */}\n\n {(findMeObj.page == constants.OTP_PAGE) && (\n
\n
\n
\n \n {}\n \n {\n showAlertFlag = true;\n let payload = findMeObj.otpChannelId;\n ReactGA.sendevent(gaCategory, 'RESEND_OTP', 'CLICK');\n return resendOTP(payload);\n }}\n\n > { }\n \n
\n
\n
\n )}\n\n { /** **************************Footer OTP page end************************************** */}\n
\n )\n );\n }\n}\nexport default injectIntl(FindMeVariantForm);","import React, { Component } from 'react';\nimport {\n BusyIndicator,\n Textbox,\n Popover,\n OverlayTrigger,\n DropdownList,\n Button,\n Modal,\n ModalHeader,\n ModalFooter,\n ModalBody,\n Radio,\n ModalTitle,\n Alert\n} from '@synerg/vdl-react-components';\nimport { FormattedMessage } from 'react-intl';\nimport { injectIntl, intlShape } from 'react-intl';\nimport { WindowUtil } from '../../util';\nimport { ReactGA } from '../../util';\nimport MobileIcon from 'adp-react-icons/lib/fa/mobile';\nimport SecurePage from '../../components/secure-page';\nimport AdpIcon from 'adp-react-icons/lib/adp/adp';\n\nconst isBlank = str => (str || '').trim().length === 0;\nclass FindMeMobileForm extends Component {\n\n componentWillMount() {\n //Need to update flow type CPC/PIC\n this.props.getFindMeMobileInfo();\n WindowUtil.setlayoutback(false);\n }\n\n render() {\n const {\n findMeMobileObj,\n gaCategory,\n isMobile\n } = this.props;\n\n\n\n\n return (\n findMeMobileObj.showDiv && (\n\n
\n\n
\n
\n {(window.innerWidth > 479) &&
\n }\n {\n (window.innerWidth <= 479) &&
\n }\n
\n {(!isMobile) &&
}\n
\n
\n
\n\n
\n
\n\n
{ } \n
\n
{ }
\n
{ }
\n
{findMeMobileObj.contactAdmin}
\n
{findMeMobileObj.transId}
\n
\n
\n\n\n
\n
\n
\n
\n\n
\n
\n
\n\n
{\n ReactGA.sendevent(gaCategory, 'LINK', \"APPLE\");\n return WindowUtil.openNewWindow(\"https://itunes.apple.com/us/app/adp-mobile-solutions/id444553167?mt=8\")\n }}\n src={findMeMobileObj.srcApple}\n onError={(e) => e.target.src = \"images/Badges/apple_en.png\"}\n className=\"cs-apple-badget\" />\n
{\n ReactGA.sendevent(gaCategory, 'LINK', \"ANDRIOD\");\n return WindowUtil.openNewWindow(\"https://play.google.com/store/apps/details?id=com.adpmobile.android\")\n }}\n src={findMeMobileObj.srcAndriod}\n onError={(e) => e.target.src = \"images/Badges/andriod_en.png\"}\n className=\"cs-andriod-badget\" />\n
\n
\n\n
\n )\n );\n }\n}\nexport default injectIntl(FindMeMobileForm);","import React from 'react';\nimport AdpIcon from 'adp-react-icons/lib/adp/adp';\nimport PropTypes from 'prop-types';\nimport { getLocaleImage } from '../../util/locale/locale-helper';\nimport { ALIGN_CENTER } from './header-constants';\n\nlet defaultBranding = false;\n\nconst Header = ({ productLogo, organizationLogo, locale, footer }) => {\n let productLocaleJson = '';\n\n let productLogoAlignment = '';\n\n let organizationLocaleJson = '';\n\n let orgLogoAlignment = '';\n\n let productLogoImage = '';\n\n let organizationLogoImage = '';\n\n defaultBranding = (footer !== undefined && footer.defaultBranding) ? true : false;\n\n if (productLogo) {\n productLocaleJson = productLogo.i18n || '';\n productLogoImage =\n productLocaleJson === '' ? productLogo.default : getLocaleImage(productLocaleJson, locale);\n productLogoAlignment = productLogo.alignment ? productLogo.alignment : 'right';\n }\n if (organizationLogo) {\n organizationLocaleJson = organizationLogo.i18n || '';\n organizationLogoImage =\n organizationLocaleJson === '' ?\n organizationLogo.default :\n getLocaleImage(organizationLocaleJson, locale);\n orgLogoAlignment = organizationLogo.alignment ? organizationLogo.alignment : 'left';\n }\n return (\n
\n \n
\n
\n {\n // hidden will be removed once api is ready...\n }\n \n \n \n {productLogoAlignment === ALIGN_CENTER ? (\n \n \n \n ) : (\n \n \n \n )}\n {orgLogoAlignment === ALIGN_CENTER ? (\n \n \n \n ) : (\n \n \n \n )}\n \n \n
\n
\n \n );\n};\n\nHeader.propTypes = {\n productLogo: PropTypes.shape({\n i18n: PropTypes.object,\n }),\n organizationLogo: PropTypes.shape({\n i18n: PropTypes.object,\n }),\n locale: PropTypes.string,\n};\n\nexport const ImageLogo = (logo) => {\n if (logo.logo) {\n return (\n
{\n if (defaultBranding && (logo.id == 'productLogo1' || logo.id == 'productLogo2')) {\n document.getElementById(\"adpIcon\").style.display = 'block';\n }\n document.getElementById(logo.id).style.display = 'none';\n }}\n />\n );\n }\n return
;\n};\n\nexport default Header;\n","import React from 'react';\nimport { Textbox } from '@synerg/vdl-react-components';\nimport { FormattedMessage } from 'react-intl';\nimport CheckCircleIcon from 'adp-react-icons/lib/fa/check-circle';\nimport { PasswordStrengthIndicator } from 'nexo-react-components';\nimport {\n PasswordRule,\n StrengthTextComponent,\n StrengthTextInfoPromptsComponent,\n} from './password-rule-component';\nimport { minimumRequirements } from './password-strength-rules';\nimport { validatePassword } from './password-rules';\n\nclass PasswordIndicator extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n password: '',\n strengthText: 'passwordStrengthIndicator.min8char_1number_1Upper_1Lower_1Special',\n strengthTextInfoPrompts: 'passwordStrengthIndicator.nothing',\n strengthTextColor: '#4a4a4a',\n strengthBarColor: 'none',\n strengthWidth: 0,\n hasNoError: true,\n };\n }\n\n onPasswordChange = (password) => {\n const obj = validatePassword(password);\n\n this.setState({\n password,\n strengthText: `passwordStrengthIndicator.${obj.strengthTextVal}`,\n strengthTextInfoPrompts: `passwordStrengthIndicator.${obj.strengthTextInfoPromptsVal}`,\n strengthTextColor: obj.strengthTextColorVal,\n strengthBarColor: obj.strengthBarColorVal,\n strengthWidth: obj.strengthWidthVal,\n hasNoError: typeof obj.hasError === 'undefined',\n });\n };\n\n render() {\n const {\n password,\n strengthText,\n strengthTextInfoPrompts,\n strengthTextColor,\n strengthWidth,\n strengthBarColor,\n hasNoError,\n } = this.state;\n\n return (\n
\n
\n
\n \n
\n
\n { hasNoError && minimumRequirements(password) && }\n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n );\n }\n}\n\nexport default PasswordIndicator;\n","export const ALIGN_CENTER = 'CENTER';\n","export const constants = {\n validateMobileAndSSN: '/pages/sms/ess/v3/ws/rest/pub/ssr/admin/validateMobileAndSSN',\n TYPE_SUCCESS: 'SUCCESS',\n NON_UNIQUE_PHONE: 'NON_UNIQUE_MOBILE',\n INVALID_PHONE:'INVALID_MOBILE',\n MAX_ATTEMPTS_EXCEEDED: 'MAX_ATTEMPTS_EXCEEDED',\n PHONE_REGEX: '[0-9\\\\s-.()]{4,20}$',\n TYPE_ERROR_FAIL_ATTEMPTS: \"Error_maxFailAttemptsExceeded\",\n TYPE_ERROR_LOCKED: \"Error_FunctionLocked\",\n TYPE_ERROR_INVALID: \"Error_SecCodeInvalid\",\n TYPE_ERROR_EXPIRED: \"Error_SecurityCodeExpired\",\n TYPE_ERROR_INTERAL_ERROR: \"Error_InternalError\",\n TYPE_ERROR_FAILED: \"Error_SendSecurityCodeFailed\",\n SIV_SSN4:\"ssn4\",\n MOBILE:\"mobile\",\n OTP_CODE:\"otp\",\n getVerifyCodeAPI:'/pages/sms/ess/v3/ws/rest/pub/ssr/verifyPrc/adminVerifyCode',\n getGenerateCodeAPI:'/pages/sms/ess/v3/ws/rest/pub/ssr/verifyPrc/generateCode',\n TNC:\"tnc\",\n Err_VerifyIntegrationFailed:\"Err_VerifyIntegrationFailed\"\n};\n\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { getLocaleObjFromPropKey } from '../../util/locale';\nimport {\n Textbox,\n Popover,\n OverlayTrigger,\n DropdownList,\n Button,\n Modal,\n ModalHeader,\n ModalFooter,\n ModalBody,\n ModalTitle,\n Radio,\n Alert,\n DropdownButton, Checkbox\n} from '@synerg/vdl-react-components';\nimport ReactHtmlParser from 'react-html-parser';\nimport WarnIcon from 'adp-react-icons/lib/fa/exclamation-triangle';\nimport TimesIcon from 'adp-react-icons/lib/fa/times';\nimport { FormattedMessage } from 'react-intl';\nimport { injectIntl, intlShape } from 'react-intl';\nimport { constants } from '../../redux/ducks/verify-admin/verify-admin-constants';\nimport { ReactGA, WindowUtil } from '../../util';\nimport InfoCircle from 'adp-react-icons/lib/fa/info-circle';\nimport HandIcon from 'adp-react-icons/lib/fa/hand-o-right';\nimport LockIcon from 'adp-react-icons/lib/fa/lock';\nimport Stepper from '../../components/react-stepper-horizontal';\nimport SecurePage from '../../components/secure-page';\nimport AdpIcon from 'adp-react-icons/lib/adp/adp';\nimport CountryCodeDropdown from '../../components/country-code';\nimport ExternalLinkIcon from 'adp-react-icons/lib/fa/external-link';\n\n\nconst isBlank = str => (str || '').trim().length === 0;\nlet showAlertFlag = false;\nlet isFirstTime = false;\nlet initialLoad = false;\nlet setAutoFocusOff;\n\nclass VerifyAdminForm extends Component {\n constructor() {\n super();\n this.state = { disableResendBtn: false }\n }\n static propTypes = {\n errorTitle: PropTypes.string,\n errorMessageFN: PropTypes.string,\n fetchAdminDetails: PropTypes.func,\n setIdentityField: PropTypes.func,\n mobilePhoneObj: PropTypes.array,\n verifyIdentityOptions: PropTypes.func\n };\n\n componentWillMount() {\n WindowUtil.setlayoutback(false);\n setAutoFocusOff = WindowUtil.getAutoFocusOff();\n this.props.fetchAdminDetails();\n }\n\n componentWillReceiveProps = (nextProps) => {\n this.checkFormReadyness(nextProps);\n };\n\n checkFormReadyness = (nextProps) => {\n let formValid = true;\n\n if (nextProps.showVerifyCode === false &&\n (isBlank(nextProps.mobilePhone) || !nextProps.mobilePhoneValid)\n ) {\n formValid = false;\n }\n if (nextProps.showVerifyCode === false &&\n (isBlank(nextProps.ssn4) || !nextProps.ssn4Valid)\n ) {\n formValid = false;\n }\n if (nextProps.showVerifyCode === true &&\n (isBlank(nextProps.verificationCode) || !nextProps.codeValid)\n ) {\n formValid = false;\n }\n this.props.enableSubmitButton(formValid);\n };\n\n _handleKeyPress = (e, input, formValid) => {\n if (e.key === 'Enter') {\n const allowEnterKeyFields = [\"PhoneValue\", \"ssn4\", \"verificationCode\"];\n e.preventDefault();\n ReactGA.sendevent(this.props.gaCategory, 'VERIFY_ADMIN', 'SUBMIT');\n if (formValid && e.target !== undefined && e.target.id !== undefined && allowEnterKeyFields.includes(e.target.id) && input === 'validatePhone') {\n this.props.verifyIdentityOptions();\n }\n if (formValid && e.target !== undefined && e.target.id !== undefined && allowEnterKeyFields.includes(e.target.id) && input === 'validateCode') {\n this.props.submitAccessCode();\n }\n }\n }\n\n\n render() {\n console.log('rendering verify admin form...');\n const {\n firstName,\n lastName,\n mobilePhone,\n mobilePhoneValid,\n countryCode,\n ssn4,\n errorMessageSsn4,\n ssn4Valid,\n verifyAdminInfo,\n showErrorModal,\n showModalTitle,\n showModalMessage,\n errorMessage,\n isFormValid,\n cancelAndCheckYourEntries,\n errorCode,\n errorTitle,\n isMobileBrowser,\n isMobile,\n gaCategory,\n progressBarData,\n runAdminV2Flow,\n mobilePhoneObj,\n setIdentityField,\n sivOptions,\n showVerifyCode,\n verifyIdentityOptions,\n expiry,\n maskedNumber,\n showAlert,\n showAlertMessage,\n verificationCode,\n codeValid,\n showOnScreen,\n accessCode,\n agreeTnC,\n submitAccessCode,\n resendOTP,\n setAgreeTermsCondition,\n showTnCModal,\n setCancelTnCModal,\n footer,\n locale\n } = this.props;\n\n const errorPopover = (fieldValid, errorMessage) =>\n (fieldValid &&
) ||\n (!fieldValid && (\n
\n {errorMessage}
\n \n ));\n\n const tooltip = (message) =>\n (
\n {message}
\n \n );\n\n const onResendBtnClick = (e) => {\n this.setState({ disableResendBtn: true });\n ReactGA.sendevent(gaCategory, 'RESEND_OTP', 'CLICK');\n e.preventDefault();\n resendOTP();\n }\n\n const onSetMobilePhone = mPhone => setIdentityField(constants.MOBILE, mPhone);\n\n const onSetOtcValue = (event) => {\n const inputValue = event.target.value.replace(/\\D/g, '');\n return setIdentityField(constants.OTP_CODE, inputValue);\n }\n\n const onCancelTnCModal = () => { let showTnCModal = false; return setCancelTnCModal(showTnCModal); }\n\n const onOpenTnCModal = () => { ReactGA.sendevent(gaCategory, 'T_AND_C', 'MODAL'); let showTnCModal = true; return setCancelTnCModal(showTnCModal); }\n\n const onSelectAgreeTnC = () => { let agreeTnC = true; onCancelTnCModal(); return setAgreeTermsCondition(agreeTnC); }\n\n const onDeSelectAgreeTnC = () => { let agreeTnC = false; return setAgreeTermsCondition(agreeTnC); }\n\n const handleAgreeTnC = () => {\n\n if (agreeTnC) {\n onDeSelectAgreeTnC();\n } else {\n onSelectAgreeTnC();\n }\n }\n\n return (\n\n
\n
\n {\n (window.innerWidth > 479) &&
\n }\n {\n (window.innerWidth <= 479) &&
\n }\n\n {(!isMobile) && (\n
{\n ReactGA.sendevent(gaCategory, 'VERIFY_ADMIN', 'CANCEL');\n return cancelAndCheckYourEntries()\n }}>\n
{\n ReactGA.sendevent(gaCategory, 'VERIFY_ADMIN', 'CANCEL');\n return cancelAndCheckYourEntries()\n }} role=\"button\" aria-label={this.props.intl.formatMessage({ id: 'Lbl_CancelButton' })}\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1025.816 1043.776\" height=\"1.5em\" width=\"0.9828em\" fill=\"currentColor\"\n style={{\n cursor: \"pointer\",\n float: \"right\",\n fontSize: \"14px\", verticalAlign: \"text-bottom\", display: \"inline-block\", overflow: \"visible\"\n }}>\n \n \n
\n )}\n
\n\n {(progressBarData != undefined && progressBarData.showProgressBar && !isMobile) && (\n
\n \n
\n )}\n\n {(!isMobile) &&
}\n
\n
\n
\n {!showVerifyCode && (
{ } \n
\n {firstName},\n 1: {lastName} \n }}> \n
\n
\n
\n\n
\n
)}\n {showVerifyCode && (\n
\n
{ } \n
\n {maskedNumber} }} />
\n
\n
\n\n
\n )}\n
\n
\n
\n {errorTitle != undefined && errorTitle != '' && (
{ReactHtmlParser(errorTitle)}
\n )}\n
\n
this._handleKeyPress(e, 'validatePhone', isFormValid)}>\n {!showVerifyCode && ( \n {(
\n \n * \n )}\n
\n \n
\n
\n\n {(\n
\n
\n * \n ReactGA.sendevent(gaCategory, 'SSN', 'TOOLTIP')}>\n \n \n \n \n \n {\n ReactGA.sendevent(gaCategory, 'CLICK', 'SSN4');\n return setIdentityField(constants.SIV_SSN4, value)\n }}\n />\n \n
\n
\n )}\n\n \n
\n { showAlertFlag = true; return this.props.verifyIdentityOptions(); }}\n onKeyPress={(e) => { if (e.key === 'Enter') { showAlertFlag = true; return this.props.verifyIdentityOptions(); } }}\n className=\"primary submit-button-align safari-button-align\"\n >\n { }\n
\n\n
)} \n\n
this._handleKeyPress(e, 'validateCode', isFormValid)}>\n {showVerifyCode && (\n \n\n
\n\n {(!showAlert) &&\n (
{ } )}\n {(showAlert) && (
\n {ReactHtmlParser(showAlertMessage)}\n
\n )}\n
{\n WindowUtil.setFirstAttemptGA({ gaCategory: gaCategory, fieldName: \"OTP\" });\n return onSetOtcValue(event);\n }\n }\n\n />\n
\n {showOnScreen && (
{accessCode}
)}\n\n
\n\n
{\n if (e.key === 'Enter') {\n e.preventDefault();\n ReactGA.sendevent(gaCategory, 'VERIFY_PRC', 'SUBMIT_CODE');\n return submitAccessCode();\n }\n }}\n onClick={() => {\n ReactGA.sendevent(gaCategory, 'VERIFY_PRC', 'SUBMIT_CODE');\n return submitAccessCode();\n }}\n className=\"vf-otc-submit safari-button-align\">\n { }\n
\n \n
\n )} \n\n {showVerifyCode && (
\n
\n
\n
\n \n {}\n \n {\n if (e.key === 'Enter') {\n e.preventDefault();\n onResendBtnClick(e);\n }\n }}\n onClick={onResendBtnClick}\n\n > { }\n \n
\n
\n
)}\n\n
{ WindowUtil.applyBrandingChanges(); }}\n >\n \n \n \n {showModalTitle ? showModalTitle : this.props.intl.formatMessage({ id: 'Txt_VGeneralErrorWindowTitle' })}\n \n \n \n \n {ReactHtmlParser(showModalMessage)} \n
\n \n \n \n { }\n \n \n \n\n {/*************************************Terms and Conditions MODAL*******************************************/}\n
{ WindowUtil.applyBrandingChanges(); }}\n >\n \n\n \n \n \n \n
\n \n \n \n { }\n \n \n \n\n
\n
\n );\n }\n}\nexport default injectIntl(VerifyAdminForm);\n","/* eslint-disable max-len */\n\nimport React,{ Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { Alert, BusyIndicator, Button } from '@synerg/vdl-react-components';\nimport ChevronLeft from 'adp-react-icons/lib/fa/chevron-left';\nimport InfoIcon from 'adp-react-icons/lib/fa/info-circle';\nimport { FormattedMessage } from 'react-intl';\nimport { getLocaleObjFromPropKey } from '../../util/locale';\nimport {MobileFooter} from '../../components/footer'\nimport SecurePage from '../../components/secure-page';\nimport { ReactGA, WindowUtil } from '../../util';\n\nimport AdpIcon from 'adp-react-icons/lib/adp/adp';\nimport {\n Footer, Timeout, Header\n} from '../../components';\n\nconst isBlank = str => (str || '').trim().length === 0;\n\nclass RegistrationLayout extends Component {\n constructor(props) {\n super(props);\n this.state = {\n showLayout: true\n };\n }\n\n componentDidUpdate(){\n WindowUtil.applyBrandingChanges();\n }\n\n render() {\n const {\n locale,\n mainPane, \n footer,\n showBusyIndicator\n } = this.props;\n\n return (\n
\n {this.state.showLayout &&\n
\n {showBusyIndicator && (
)}\n\n \n\n \n
\n {mainPane}\n
\n {footer !== undefined && footer.showFooterContent !== undefined && footer.showFooterContent === true && \n \n
\n }\n
\n \n
\n
\n {footer !== undefined && }\n
\n
\n
\n \n {footer !== undefined && footer.copyRightValue !== undefined && footer.showFooterContent !== undefined && footer.showFooterContent === true && \n (\n
\n
{ getLocaleObjFromPropKey(footer.copyRightValue.component.text, locale) }
\n \n
\n )\n\n }\n
\n \n \n }\n {!this.state.showLayout &&\n
\n \n \n {
}\n \n
\n
{\n ReactGA.sendevent('SSR_MOBILE_FOOTER', 'INFO_CANCEL', 'CANCEL');\n WindowUtil.setlayoutback(true); \n this.setState({ showLayout:true})\n }}\n xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" viewBox=\"0 0 1025.816 1043.776\" height=\"1.5em\" width=\"0.9828em\" fill=\"currentColor\"\n style={{\n cursor: \"pointer\",\n float: \"right\",\n fontSize: \"14px\", verticalAlign: \"text-bottom\", display: \"inline-block\", overflow: \"visible\"\n }}>\n \n \n
\n \n
\n { }\n \n \n }\n
\n );\n};\n}\n\nRegistrationLayout.propTypes = {\n children: PropTypes.element,\n mainPane: PropTypes.element.isRequired,\n title: PropTypes.string,\n errorTitle: PropTypes.string,\n};\n\nexport default RegistrationLayout;\n","import React from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { actions as localeActions } from '../../redux/ducks/locale';\nimport { actions as identifyYourselfActions } from '../../redux/ducks/identify-yourself';\nimport { actions as timeoutActions } from '../../redux/ducks/timeout';\nimport { RegistrationLayout } from '../../layouts';\nimport { IdentifyYourselfForm } from '../../components';\n\nexport const IdentifyYourselfContainer = props =>
;\n\nconst loginTitle =
;\nconst mapStateToProps = ({\n locale, sendingRequest, identifyYourself, timeout, registration\n}) => {\n const branding = {};\n branding.footer = registration.footer;\n branding.organizationLogo = registration.organizationLogo;\n branding.productLogo = registration.productLogo;\n branding.background = registration.background;\n \n return ({\n ...locale,\n ...sendingRequest,\n ...identifyYourself,\n ...timeout,\n ...branding\n});}\n// prettier-ignore\nconst mapDispatchToProps = dispatch => bindActionCreators(\n Object.assign({}, { ...localeActions }, { ...identifyYourselfActions }, { ...timeoutActions }), dispatch,\n);\nconst mergeProps = (stateProps, dispatchProps, ownProps) => {\n const props = { ...ownProps, ...stateProps, ...dispatchProps };\n\n Object.assign(props, { title: loginTitle, mainPane:
});\n\n return props;\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n mergeProps,\n)(IdentifyYourselfContainer);\n","import { createTypes } from 'redux-action-types';\nimport { createAction } from 'redux-actions';\nimport { SMS_NAMESPACE } from '../constants';\n\nexport const types = createTypes(\n SMS_NAMESPACE,\n 'VERIFY_REG_CODE',\n 'VERIFY_REG_CODE_SUCCESS',\n 'VERIFY_REG_CODE_FAIL',\n 'SET_REG_CODE',\n 'ENABLE_REGCODE_SUBMIT_BUTTON',\n 'CANCEL_REGISTRATION_VERIFYUSER', \n 'CHECK_ERROR_MESSAGE',\n 'GET_IDENTITY_OPTIONS_SUCCESS',\n 'VERIFY_USER_INVALID_PRC_SET_LOCALE',\n 'UPDATE_LOCALE_FIELD'\n);\n\nconst { VERIFY_REG_CODE, SET_REG_CODE , ENABLE_REGCODE_SUBMIT_BUTTON , CANCEL_REGISTRATION_VERIFYUSER , CHECK_ERROR_MESSAGE , GET_IDENTITY_OPTIONS_SUCCESS, VERIFY_USER_INVALID_PRC_SET_LOCALE } = types;\n\nconst verifyRegCodeSent = createAction(VERIFY_REG_CODE);\n\nconst setRegCodeSent = createAction(SET_REG_CODE);\n\nconst enableSubmitButtonSent = createAction(ENABLE_REGCODE_SUBMIT_BUTTON);\n\nconst cancelRegistrationSent = createAction(CANCEL_REGISTRATION_VERIFYUSER);\n\nconst checkRegCodeErrMessageSent = createAction(CHECK_ERROR_MESSAGE);\n\nconst getIdentityOptionsSucessSent = createAction(GET_IDENTITY_OPTIONS_SUCCESS);\n\nconst goToFindMePageSent = createAction(GET_IDENTITY_OPTIONS_SUCCESS);\n\nconst setLocaleSent = createAction(VERIFY_USER_INVALID_PRC_SET_LOCALE);\n\nconst verifyRegCode = inputRegCode => verifyRegCodeSent(inputRegCode);\n\nconst setRegCode = inputRegCode => setRegCodeSent({ regCode: inputRegCode });\n\nconst enableSubmitButton = isFormValid => enableSubmitButtonSent({ isFormValid });\n\nconst cancelRegistration = () => cancelRegistrationSent();\n\nconst checkRegCodeErrMessage = () => checkRegCodeErrMessageSent();\n\nconst getIdentityOptionsSucess = () => getIdentityOptionsSucessSent();\n\nconst goToFindMePage = viewId => goToFindMePageSent({viewId});\n\nconst setLocale = (payload)=>setLocaleSent({ payload });\n\nexport const actions = {\n verifyRegCode,\n setRegCode,\n enableSubmitButton,\n cancelRegistration,\n checkRegCodeErrMessage,\n getIdentityOptionsSucess,\n goToFindMePage,\n setLocale,\n};\n","import { handleActions } from 'redux-actions';\nimport { types } from './verify-user-actions';\n\nconst { VERIFY_REG_CODE_SUCCESS, VERIFY_REG_CODE_FAIL, SET_REG_CODE , ENABLE_REGCODE_SUBMIT_BUTTON , CHECK_ERROR_MESSAGE, GET_IDENTITY_OPTIONS_SUCCESS ,\n CANCEL_REGISTRATION_VERIFYUSER, UPDATE_LOCALE_FIELD} = types;\n\nexport const initialState = {\n regCodeValid: true,\n sivOptions:'',\n isRecaptchaOn : false\n};\n\nexport default handleActions(\n {\n [SET_REG_CODE]: (state, { payload }) => ({ ...state, ...payload }),\n\n [VERIFY_REG_CODE_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n\n [VERIFY_REG_CODE_FAIL]: (state, { payload }) => ({ ...state, ...payload }),\n\n [ENABLE_REGCODE_SUBMIT_BUTTON]: (state, { payload }) => ({ ...state, ...payload }),\n\n [CHECK_ERROR_MESSAGE]: (state, { payload }) => ({ ...state, ...payload }),\n\n [GET_IDENTITY_OPTIONS_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n\n [CANCEL_REGISTRATION_VERIFYUSER]: (state, { payload }) => ({ ...state, ...payload }),\n \n [UPDATE_LOCALE_FIELD]: (state, { payload }) => ({ ...state, ...payload })\n },\n initialState,\n);\n","import reducer from './verify-user-reducer';\n\nexport default reducer;\nexport { initialState } from './verify-user-reducer';\n\nexport * from './verify-user-actions';\nexport * from './verify-user-constants';\n","import React from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { actions as localeActions } from '../../redux/ducks/locale';\nimport { actions as verifyUserActions } from '../../redux/ducks/verify-user';\nimport { actions as timeoutActions } from '../../redux/ducks/timeout';\nimport { RegistrationLayout } from '../../layouts';\nimport { VerifyUserForm } from '../../components';\n\nexport const VerifyUserContainer = props =>
;\n\nconst loginTitle =
;\nconst mapStateToProps = ({\n locale, sendingRequest, verifyUser, timeout, registration\n}) => ({\n ...locale,\n ...sendingRequest,\n ...verifyUser,\n ...timeout,\n ...registration\n});\n// prettier-ignore\nconst mapDispatchToProps = dispatch => bindActionCreators(\n Object.assign({}, { ...localeActions }, { ...verifyUserActions }, { ...timeoutActions }), dispatch,\n);\nconst mergeProps = (stateProps, dispatchProps, ownProps) => {\n const props = { ...ownProps, ...stateProps, ...dispatchProps };\n\n Object.assign(props, { title: loginTitle, mainPane:
});\n\n return props;\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n mergeProps,\n)(VerifyUserContainer);\n","import { createTypes } from 'redux-action-types';\nimport { createAction } from 'redux-actions';\nimport { SMS_NAMESPACE } from '../constants';\n\nexport const types = createTypes(\n SMS_NAMESPACE,\n 'VERIFY_USER_ID',\n 'VERIFY_USER_ID_SUCCESS',\n 'VERIFY_USER_ID_FAIL',\n 'SET_USER_ID',\n 'ENABLE_USERID_SUBMIT_BUTTON',\n 'CANCEL_REGISTRATION_VERIFY_USERID', \n 'CHECK_ERROR_MESSAGE',\n 'GET_UID_OPTIONS_SUCCESS'\n);\n\nconst { VERIFY_USER_ID, SET_USER_ID , ENABLE_USERID_SUBMIT_BUTTON , CANCEL_REGISTRATION_VERIFY_USERID , CHECK_ERROR_MESSAGE , GET_UID_OPTIONS_SUCCESS } = types;\n\nconst verifyUserIdSent = createAction(VERIFY_USER_ID);\n\nconst setUserIdSent = createAction(SET_USER_ID);\n\nconst enableSubmitButtonSent = createAction(ENABLE_USERID_SUBMIT_BUTTON);\n\nconst cancelRegistrationSent = createAction(CANCEL_REGISTRATION_VERIFY_USERID);\n\nconst checkUserIdErrMessageSent = createAction(CHECK_ERROR_MESSAGE);\n\nconst getIdentityOptionsSucessSent = createAction(GET_UID_OPTIONS_SUCCESS);\n\nconst verifyUserId = inputUserId => verifyUserIdSent(inputUserId);\n\nconst setUserId = inputUserId => setUserIdSent({ userId: inputUserId });\n\nconst enableSubmitButton = isFormValid => enableSubmitButtonSent({ isFormValid });\n\nconst cancelRegistration = () => cancelRegistrationSent();\n\nconst checkUserIdErrMessage = () => checkUserIdErrMessageSent();\n\nconst getIdentityOptionsSucess = () => getIdentityOptionsSucessSent();\n\nexport const actions = {\n verifyUserId,\n setUserId,\n enableSubmitButton,\n cancelRegistration,\n checkUserIdErrMessage,\n getIdentityOptionsSucess\n};\n","import { handleActions } from 'redux-actions';\nimport { types } from './verify-user-id-actions';\n\nconst { VERIFY_USER_ID_SUCCESS, VERIFY_USER_ID_FAIL, SET_USER_ID , ENABLE_USERID_SUBMIT_BUTTON , CHECK_ERROR_MESSAGE, GET_UID_OPTIONS_SUCCESS,\n CANCEL_REGISTRATION_VERIFY_USERID } = types;\n\nexport const initialState = {\n userIdValid: true\n};\n\nexport default handleActions(\n {\n [SET_USER_ID]: (state, { payload }) => ({ ...state, ...payload }),\n\n [VERIFY_USER_ID_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n\n [VERIFY_USER_ID_FAIL]: (state, { payload }) => ({ ...state, ...payload }),\n\n [ENABLE_USERID_SUBMIT_BUTTON]: (state, { payload }) => ({ ...state, ...payload }),\n\n [CHECK_ERROR_MESSAGE]: (state, { payload }) => ({ ...state, ...payload }),\n\n [GET_UID_OPTIONS_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n\n [CANCEL_REGISTRATION_VERIFY_USERID]: (state, { payload }) => ({ ...state, ...payload }),\n\n },\n initialState,\n);\n","export const constants = {\n getVerifyUserIdEndPoint: '/pages/sms/ess/v3/ws/rest/pub/ssr/ssrbyadmin/podredirect',\n getVerifyUserIdAfterPodRedirectEndPoint: '/pages/sms/ess/v3/ws/rest/pub/ssr/ssrbyadmin/verifyuser',\n redirectToForgotFlowEndPoint: '/pages/sms/ess/v3/ws/rest/pub/ssr/alreadyregistered',\n EXCEEDED_ATTEMPTS:'EXCEEDED_ATTEMPTS',\n ALREADY_REGISTERED:'ALREADY_REGISTERED',\n SUCCESS:'SUCCESS',\n INVALID_USERID:'INVALID_USERID',\n USERID_NOT_FOUND:'USERID_NOT_FOUND'\n};\n","import reducer from './verify-user-id-reducer';\n\nexport default reducer;\nexport { initialState } from './verify-user-id-reducer';\n\nexport * from './verify-user-id-actions';\nexport * from './verify-user-id-constants';\n","import React from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { actions as localeActions } from '../../redux/ducks/locale';\nimport { actions as verifyUserIdAction } from '../../redux/ducks/verify-user-id';\nimport { actions as timeoutActions } from '../../redux/ducks/timeout';\nimport { RegistrationLayout } from '../../layouts';\nimport { VerifyUserIdForm } from '../../components';\n\nexport const VerifyUserIdContainer = props =>
;\n\nconst loginTitle =
;\nconst mapStateToProps = ({\n locale, sendingRequest, verifyUserId, timeout, registration\n}) => {\n const branding = {};\n branding.footer = registration.footer;\n branding.organizationLogo = registration.organizationLogo;\n branding.productLogo = registration.productLogo;\n branding.background = registration.background;\n\n return ({\n ...locale,\n ...sendingRequest,\n ...verifyUserId,\n ...timeout,\n ...branding\n});}\n// prettier-ignore\nconst mapDispatchToProps = dispatch => bindActionCreators(\n Object.assign({}, { ...localeActions }, { ...verifyUserIdAction }, { ...timeoutActions }), dispatch,\n);\nconst mergeProps = (stateProps, dispatchProps, ownProps) => {\n const props = { ...ownProps, ...stateProps, ...dispatchProps };\n\n Object.assign(props, { title: loginTitle, mainPane:
});\n\n return props;\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n mergeProps,\n)(VerifyUserIdContainer);\n","import { createTypes } from 'redux-action-types';\nimport { createAction } from 'redux-actions';\nimport { SMS_NAMESPACE } from '../constants';\n\nexport const types = createTypes(\n SMS_NAMESPACE,\n 'VERIFY_USER_PIN',\n 'VERIFY_USER_PIN_SUCCESS',\n 'VERIFY_USER_PIN_FAIL',\n 'SET_USER_PIN',\n 'ENABLE_USERPIN_SUBMIT_BUTTON',\n 'CANCEL_REGISTRATION_VERIFY_USERPIN', \n 'CHECK_ERROR_MESSAGE'\n);\n\nconst { VERIFY_USER_PIN, SET_USER_PIN , ENABLE_USERPIN_SUBMIT_BUTTON , CANCEL_REGISTRATION_VERIFY_USERPIN , CHECK_ERROR_MESSAGE } = types;\n\nconst verifyUserPinSent = createAction(VERIFY_USER_PIN);\n\nconst setUserPinSent = createAction(SET_USER_PIN);\n\nconst enableSubmitButtonSent = createAction(ENABLE_USERPIN_SUBMIT_BUTTON);\n\nconst cancelRegistrationSent = createAction(CANCEL_REGISTRATION_VERIFY_USERPIN);\n\nconst checkUserPinErrMessageSent = createAction(CHECK_ERROR_MESSAGE);\n\nconst verifyUserPin = inputUserPin => verifyUserPinSent(inputUserPin);\n\nconst setUserPin = inputUserPin => setUserPinSent({ userPin: inputUserPin });\n\nconst enableSubmitButton = isFormValid => enableSubmitButtonSent({ isFormValid });\n\nconst cancelRegistration = () => cancelRegistrationSent();\n\nconst checkUserPinErrMessage = () => checkUserPinErrMessageSent();\n\nexport const actions = {\n verifyUserPin,\n setUserPin,\n enableSubmitButton,\n cancelRegistration,\n checkUserPinErrMessage\n};\n","import { handleActions } from 'redux-actions';\nimport { types } from './verify-user-pin-actions';\n\nconst { VERIFY_USER_PIN_SUCCESS, VERIFY_USER_PIN_FAIL, SET_USER_PIN , ENABLE_USERPIN_SUBMIT_BUTTON , CHECK_ERROR_MESSAGE } = types;\n\nexport const initialState = {\n userPinValid: true\n};\n\nexport default handleActions(\n {\n [SET_USER_PIN]: (state, { payload }) => ({ ...state, ...payload }),\n\n [VERIFY_USER_PIN_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n\n [VERIFY_USER_PIN_FAIL]: (state, { payload }) => ({ ...state, ...payload }),\n\n [ENABLE_USERPIN_SUBMIT_BUTTON]: (state, { payload }) => ({ ...state, ...payload }),\n\n [CHECK_ERROR_MESSAGE]: (state, { payload }) => ({ ...state, ...payload })\n },\n initialState,\n);\n","export const constants = {\n getVerifyUserPinEndPoint: '/pages/sms/ess/v3/ws/rest/pub/ssr/ssrbyadmin/verifypin',\n EXCEEDED_ATTEMPTS:'EXCEEDED_ATTEMPTS',\n ALREADY_REGISTERED:'ALREADY_REGISTERED',\n INVALID_USERPIN:'INVALID_USERPIN',\n INVALID_PIN: 'INVALID_PIN'\n};\n","import reducer from './verify-user-pin-reducer';\n\nexport default reducer;\nexport { initialState } from './verify-user-pin-reducer';\n\nexport * from './verify-user-pin-actions';\nexport * from './verify-user-pin-constants';\n","import React from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { actions as localeActions } from '../../redux/ducks/locale';\nimport { actions as verifyUserPinActions } from '../../redux/ducks/verify-user-pin';\nimport { actions as timeoutActions } from '../../redux/ducks/timeout';\nimport { RegistrationLayout } from '../../layouts';\nimport { VerifyUserPinForm } from '../../components';\n\nexport const VerifyUserPinContainer = props =>
;\n\nconst loginTitle =
;\nconst mapStateToProps = ({\n locale, sendingRequest, verifyUserPin, timeout, registration\n}) => {\n const branding = {};\n branding.footer = registration.footer;\n branding.organizationLogo = registration.organizationLogo;\n branding.productLogo = registration.productLogo;\n branding.background = registration.background;\n\n return ({\n ...locale,\n ...sendingRequest,\n ...verifyUserPin,\n ...timeout,\n ...branding\n});}\n// prettier-ignore\nconst mapDispatchToProps = dispatch => bindActionCreators(\n Object.assign({}, { ...localeActions }, { ...verifyUserPinActions }, { ...timeoutActions }), dispatch,\n);\nconst mergeProps = (stateProps, dispatchProps, ownProps) => {\n const props = { ...ownProps, ...stateProps, ...dispatchProps };\n\n Object.assign(props, { title: loginTitle, mainPane:
});\n\n return props;\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n mergeProps,\n)(VerifyUserPinContainer);\n","import { createTypes } from 'redux-action-types';\nimport { createAction } from 'redux-actions';\nimport { SMS_NAMESPACE } from '../constants';\n\nexport const types = createTypes(\n SMS_NAMESPACE,\n 'GET_PIC_SIV_OPTIONS', 'GET_PIC_SIV_OPTIONS_SUCCESS', 'GET_PIC_SIV_OPTIONS_FAIL',\n 'SET_PIC_SIV_FIELD',\n 'SET_PIC_SIV_FIELD_SUCCESS',\n 'SET_PIC_SIV_FIELD_FAIL',\n 'VERIFY_PIC_SIV_OPTIONS',\n 'VERIFY_PIC_SIV_OPTIONS_SUCCESS',\n 'VERIFY_PIC_SIV_OPTIONS_FAIL',\n 'ENABLE_PIC_SUBMIT_BUTTON',\n 'CANCEL_PIC_AND_CHECK_YOUR_ENTRIES',\n 'VERIFY_PIC_SET_LOCALE',\n 'GET_PIC_SIV_OPTIONS_LOCALE_UPDATE',\n 'UPDATE_LOCALE_FIELD_PIC'\n);\n\nconst {\n GET_PIC_SIV_OPTIONS,\n SET_PIC_SIV_FIELD,\n VERIFY_PIC_SIV_OPTIONS,\n ENABLE_PIC_SUBMIT_BUTTON,\n CANCEL_PIC_AND_CHECK_YOUR_ENTRIES,\n VERIFY_PIC_SET_LOCALE,\n GET_PIC_SIV_OPTIONS_LOCALE_UPDATE\n} = types;\n\nconst getSivOptionsSent = createAction(GET_PIC_SIV_OPTIONS);\n\nconst setSivFieldSent = createAction(SET_PIC_SIV_FIELD);\n\nconst verifySivOptionsSent = createAction(VERIFY_PIC_SIV_OPTIONS);\n\nconst enableSubmitButtonSent = createAction(ENABLE_PIC_SUBMIT_BUTTON);\n\nconst setLocaleSent = createAction(VERIFY_PIC_SET_LOCALE);\n\nconst cancelAndCheckYourEntriesSent = createAction(CANCEL_PIC_AND_CHECK_YOUR_ENTRIES);\n\nconst setSivField = (fieldkey, fieldValue) => setSivFieldSent({ fieldkey, fieldValue });\n\nconst verifySivOptions = () => verifySivOptionsSent();\n\nconst getSivOptions = () => getSivOptionsSent();\n\nconst enableSubmitButton = isFormValid => enableSubmitButtonSent({ isFormValid });\n\nconst cancelAndCheckYourEntries = () => cancelAndCheckYourEntriesSent();\n\nconst setLocale = (payload)=>setLocaleSent({ payload });\n\nconst getPicSivOptions = () => getPicSivOptionsSent();\n\nconst getPicSivOptionsSent = createAction(GET_PIC_SIV_OPTIONS_LOCALE_UPDATE);\n\nexport const actions = {\n getSivOptions,\n setSivField,\n verifySivOptions,\n enableSubmitButton,\n cancelAndCheckYourEntries,\n setLocale,\n getPicSivOptions,\n};\n","import { handleActions } from 'redux-actions';\nimport { types } from './verify-pic-actions';\nimport { ReactGA } from '../../../util';\n\nconst {\n GET_PIC_SIV_OPTIONS_SUCCESS,\n GET_PIC_SIV_OPTIONS_FAIL,\n SET_PIC_SIV_FIELD_SUCCESS,\n SET_PIC_SIV_FIELD_FAIL,\n VERIFY_PIC_SIV_OPTIONS_SUCCESS,\n VERIFY_PIC_SIV_OPTIONS_FAIL,\n ENABLE_PIC_SUBMIT_BUTTON,\n CANCEL_PIC_AND_CHECK_YOUR_ENTRIES,\n UPDATE_LOCALE_FIELD_PIC\n} = types;\n\nexport const initialState = {\n flowType: 'SSR-REACT',\n sivOptions: null,\n transactionId: '',\n backgroundImagePath: '',\n firstName: '',\n lastName: '',\n empId:'',\n wfnId: '',\n ssn: '',\n ssn4: '',\n firstNameValid: true,\n lastNameValid: true,\n empIdValid: true,\n wfnIdValid: true,\n ssnValid: true,\n fullDobValid: true,\n ssn4Valid: true,\n errorCode:''\n};\n\nexport default handleActions(\n {\n\n [GET_PIC_SIV_OPTIONS_SUCCESS]: (state, { payload }) => {\n\n let isMobile = payload.isMobile;\n let isMobileBrowser = true;\n let pagePath1 = \"/ssr/pic/verifyUserPic\";\n let pagePath2 = \"/ssr/flowType/pic\";\n let pageView1 = pagePath1 + \"/web\";\n let pageView2 = pagePath2 + \"/web\";\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = \"WEB_REGISTRATION_VERIFY_PIC\";\n if (isMobile) { pageView1 = pagePath1 + \"/mobile\"; pageView2 = pagePath2 + \"/mobile\"; gaCategory = \"MOBILE_REGISTRATION_VERIFY_PIC\";}\n if (window.innerWidth <= 479 && isMobile == false) { pageView1 = pagePath1 + \"/mobilebrowser\"; pageView2 = pagePath2 + \"/mobilebrowser\"; gaCategory = \"MOBILEBROSWER_REGISTRATION_VERIFY_PIC\";}\n\n ReactGA.pageview(pageView1);\n ReactGA.pageview(pageView2);\n \n let sivOptions='';\n let clientName = payload.clientName;\n if(payload.sivOptions){\n sivOptions = payload.sivOptions;\n }else if(payload.regCodeData){\n sivOptions = payload.regCodeData.sivOptions; \n clientName = payload.regCodeData.companyName;\n }\n return ({ ...state, ...payload, sivOptions, isMobileBrowser, isMobile, gaCategory,clientName})},\n\n [GET_PIC_SIV_OPTIONS_FAIL]: (state, { payload }) => ({ ...state, ...payload }),\n\n [SET_PIC_SIV_FIELD_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n [SET_PIC_SIV_FIELD_FAIL]: (state, { payload }) => ({\n ...state,\n ...payload,\n }),\n [VERIFY_PIC_SIV_OPTIONS_SUCCESS]: (state, { payload }) => ({\n ...state,\n ...payload,\n }),\n [VERIFY_PIC_SIV_OPTIONS_FAIL]: (state, { payload }) => ({\n ...state,\n ...payload,\n }),\n [ENABLE_PIC_SUBMIT_BUTTON]: (state, { payload }) => ({\n ...state,\n ...payload,\n }),\n [CANCEL_PIC_AND_CHECK_YOUR_ENTRIES]: (state, { payload }) => ({\n ...state,\n ...payload,\n }),\n [UPDATE_LOCALE_FIELD_PIC]: (state, { payload }) => ({ ...state, ...payload })\n },\n initialState,\n);\n","import reducer from './verify-pic-reducer';\n\nexport default reducer;\nexport { initialState } from './verify-pic-reducer';\n\nexport * from './verify-pic-actions';\nexport * from './verify-pic-constants';\n","import React from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { actions as localeActions } from '../../redux/ducks/locale';\nimport { actions as verifyPicActions } from '../../redux/ducks/verify-pic';\nimport { actions as timeoutActions } from '../../redux/ducks/timeout';\nimport { RegistrationLayout } from '../../layouts';\nimport { VerifyPICForm } from '../../components';\n\nexport const VerifyPICContainer = props =>
;\n\nconst mapStateToProps = ({\n locale, sendingRequest, verifyPic, timeout, registration\n}) => {\n const branding = {};\n branding.footer = registration.footer;\n branding.organizationLogo = registration.organizationLogo;\n branding.productLogo = registration.productLogo;\n branding.background = registration.background;\n \n return ({\n ...locale,\n ...sendingRequest,\n ...verifyPic,\n ...timeout,\n ...branding\n});}\n// prettier-ignore\nconst mapDispatchToProps = dispatch => bindActionCreators(\n Object.assign({}, { ...localeActions }, { ...verifyPicActions }, { ...timeoutActions }), dispatch,\n);\nconst mergeProps = (stateProps, dispatchProps, ownProps) => {\n const props = { ...ownProps, ...stateProps, ...dispatchProps };\n\n Object.assign(props, { mainPane:
});\n\n return props;\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n mergeProps,\n)(VerifyPICContainer);\n","import { createTypes, async } from 'redux-action-types';\nimport { createAction } from 'redux-actions';\nimport { SMS_NAMESPACE } from '../constants';\n\nexport const types = createTypes(\n SMS_NAMESPACE,\n 'CONTACT_INFO_OPTIONS', 'CONTACT_INFO_OPTIONS_SUCCESS', 'CONTACT_INFO_OPTIONS_FAIL',\n 'SET_CONTACT_FIELD',\n 'SET_CONTACT_FIELD_SUCCESS',\n 'SET_CONTACT_FIELD_FAIL',\n 'ENABLE_SECOUNDARY_FORM',\n 'ENABLE_SECOUNDARY_FORM_SUCCESS',\n 'ENABLE_PHONE_FIELD',\n 'ENABLE_PHONE_FIELD_SUCCESS',\n 'ENABLE_SUBMIT_BUTTON',\n 'CONTACT_FINAL_SUBMIT',\n 'ON_FINAL_SUBMIT_SUCCESS',\n 'ON_FINAL_SUBMIT_FAILURE',\n 'SET_MODAL_FIELD',\n 'SET_CONTINUE_MODAL',\n 'ON_FINAL_CONTACT_INFO_SUCCESS',\n 'ON_FINAL_SUBMIT_ALERT_SUCCESS',\n 'CANCEL_CONTACT_AND_CHECK_YOUR_ENTRIES',\n 'PERSONAL_PHONE_INFO',\n 'CONTACT_INFO_ACCESS_CODE_SENT'\n);\n\nconst {\n CONTACT_INFO_OPTIONS,\n SET_CONTACT_FIELD,\n ENABLE_SECOUNDARY_FORM,\n ENABLE_PHONE_FIELD,\n ENABLE_SUBMIT_BUTTON,\n CONTACT_FINAL_SUBMIT,\n ON_FINAL_SUBMIT_SUCCESS,\n ON_FINAL_SUBMIT_FAILURE,\n SET_MODAL_FIELD,\n SET_CONTINUE_MODAL,\n ON_FINAL_CONTACT_INFO_SUCCESS,\n ON_FINAL_SUBMIT_ALERT_SUCCESS,\n CANCEL_CONTACT_AND_CHECK_YOUR_ENTRIES,\n PERSONAL_PHONE_INFO,\n CONTACT_INFO_ACCESS_CODE_SENT\n\n} = types;\n\nconst getContactInfoSent = createAction(CONTACT_INFO_OPTIONS);\nconst setContactFieldSent = createAction(SET_CONTACT_FIELD);\nconst enableSecoundaryFormSent = createAction(ENABLE_SECOUNDARY_FORM);\nconst enablePhoneFieldSent = createAction(ENABLE_PHONE_FIELD);\nconst enableSubmitButtonSent = createAction(ENABLE_SUBMIT_BUTTON);\nconst setFinalSubmit = createAction(CONTACT_FINAL_SUBMIT);\nconst setCancelModalSent = createAction(SET_MODAL_FIELD);\nconst setContinueModalSent = createAction(ON_FINAL_CONTACT_INFO_SUCCESS);\nconst cancelAndCheckYourEntriesSent = createAction(CANCEL_CONTACT_AND_CHECK_YOUR_ENTRIES);\nconst getChannelInfoSent = createAction(PERSONAL_PHONE_INFO);\nconst setSubmitAccessCodeSent = createAction(CONTACT_INFO_ACCESS_CODE_SENT);\n\n\n\nconst getContactInfo = () => getContactInfoSent();\nconst setContactField = (fieldkey, fieldValue) => setContactFieldSent({ fieldkey, fieldValue });\nconst enableSecoundaryForm = () => enableSecoundaryFormSent();\nconst enablePhoneField = () => enablePhoneFieldSent();\nconst enableSubmitButton = isFormValid => enableSubmitButtonSent({ isFormValid });\nconst onFormSubmit = () => setFinalSubmit();\nconst setCancelModalWarn = (showModalWarn) => setCancelModalSent({ showModalWarn });\nconst setCancelModalError = (showModalError) => setCancelModalSent({ showModalError });\nconst setCancelModalInfo = (showModalInfo) => setCancelModalSent({ showModalInfo });\nconst setCancelModalLock = (showModalLock) => setCancelModalSent({ showModalLock });\nconst setContinueModal = () => setContinueModalSent();\nconst setCancelTnCModal = (showTnCModal) => setCancelModalSent({ showTnCModal });\nconst cancelAndCheckYourEntries = () => cancelAndCheckYourEntriesSent();\nconst setCancelTSModal = (showTSModal) => setCancelModalSent({showTSModal});\nconst getChannelInfo = () => getChannelInfoSent();\nconst setSubmitAccessCode = () => setSubmitAccessCodeSent();\nconst enableOtpSubmitButton = isOTPFormValid => enableSubmitButtonSent({ isOTPFormValid });\nconst setOtpValue = otpCode => enableSubmitButtonSent({ otpCode });\n\nexport const actions = {\n getContactInfo,\n setContactField,\n enableSecoundaryForm,\n enablePhoneField,\n enableSubmitButton,\n onFormSubmit,\n setCancelModalWarn,\n setCancelModalError,\n setCancelModalInfo,\n setCancelModalLock,\n setContinueModal,\n setContinueModal,\n setCancelTnCModal,\n cancelAndCheckYourEntries,\n setCancelTSModal,\n getChannelInfo,\n setSubmitAccessCode,\n enableOtpSubmitButton,\n setOtpValue\n};\n","import { handleActions } from 'redux-actions';\nimport { types } from './contact-info-actions';\n\nconst {\n CONTACT_INFO_OPTIONS_SUCCESS,\n CONTACT_INFO_OPTIONS_FAIL,\n SET_CONTACT_FIELD_SUCCESS,\n SET_CONTACT_FIELD_FAIL,\n ENABLE_SECOUNDARY_FORM_SUCCESS,\n ENABLE_PHONE_FIELD_SUCCESS,\n ENABLE_SUBMIT_BUTTON,\n ON_FINAL_SUBMIT_SUCCESS,\n ON_FINAL_SUBMIT_FAILURE,\n SET_MODAL_FIELD,\n ON_FINAL_SUBMIT_ALERT_SUCCESS\n\n} = types;\n\nexport const initialState = {\n flowType: 'SSR-REACT',\n contactInfoOptions: {\n \"pemailRenderable\": true,\n \"semailRenderable\": true,\n \"bmobileRenderable\": true,\n \"pMobileRenderable\": true,\n \"bLandlineRenderable\": false,\n \"pLandlineRenderable\": false,\n \"emailItems\": null,\n emailValidationPolicy: null,\n emailInvalidMessage: null,\n mobileValidationPolicy: null,\n mobileInvalidMessage: null\n },\n transactionId: '',\n contactInfoObj: {\n phoneCount: 2,\n pEmailValid: true,\n bMobileValid: true,\n sEmailValid: true,\n pMobileValid: true,\n bLandlineValid: true,\n pLandlineValid: true,\n showSecoundaryForm: false,\n phoneHistory: [null, null, null, null],\n phoneHistoryDisable: [false, false, false, false],\n bMobileRequired: false,\n peType: null,\n bmType: null,\n errorMessage: [],\n showAlert: false,\n showAlertMessage: null,\n fieldValid: [true, true, true, true, true, true],\n fieldDisable: [false, false, false, false, false],\n showModalMessage: [],\n tsTypes: [],\n tsEligible: false,\n radio1: null, radio2: null, radio3: null, radio4: null, radio5: null,\n showNudgePage:false\n }\n};\n\nexport default handleActions(\n {\n [CONTACT_INFO_OPTIONS_SUCCESS]: (state, { payload }) => {\n const contactInfoOptions = payload.contactInfoOptions;\n const contactInfoObj = payload.contactInfoObj;\n const isMobile = payload.isMobile;\n const isMobileBrowser = payload.isMobileBrowser;\n const gaCategory = payload.gaCategory;\n const isAuthorized = payload.isAuthorized;\n return ({ contactInfoOptions, contactInfoObj, isMobile, isMobileBrowser, gaCategory, isAuthorized })\n },\n [CONTACT_INFO_OPTIONS_FAIL]: (state, { payload }) => ({ ...state, ...payload }),\n [SET_CONTACT_FIELD_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n [SET_CONTACT_FIELD_FAIL]: (state, { payload }) => ({ ...state, ...payload }),\n [ENABLE_PHONE_FIELD_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n [ENABLE_SUBMIT_BUTTON]: (state, { payload }) => ({\n ...state,\n ...payload,\n }),\n [ENABLE_SECOUNDARY_FORM_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n [ON_FINAL_SUBMIT_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n\n [ON_FINAL_SUBMIT_ALERT_SUCCESS]: (state, { payload }) => {\n return ({ ...state, ...payload, contactInfoObj: payload.contactInfo.contactInfoObj, contactInfoOptions: payload.contactInfo.contactInfoOptions })\n },\n [ON_FINAL_SUBMIT_FAILURE]: (state, { payload }) => ({ ...state, ...payload }),\n [SET_MODAL_FIELD]: (state, { payload }) => ({ ...state, ...payload })\n\n },\n initialState,\n);\n","import reducer from './contact-info-reducer';\nexport default reducer;\nexport { initialState } from './contact-info-reducer';\nexport * from './contact-info-actions';\nexport * from './contact-info-constants';\n","import React from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { actions as localeActions } from '../../redux/ducks/locale';\nimport { actions as contactInfoActions } from '../../redux/ducks/contact-info';\nimport { actions as timeoutActions } from '../../redux/ducks/timeout';\nimport { RegistrationLayout } from '../../layouts';\nimport { ContactInfoForm } from '../../components';\n\nexport const ContactInfoContainer = props =>
;\n\nconst loginTitle =
;\nconst mapStateToProps = ({\n locale, sendingRequest, contactInfo, timeout, registration\n}) => {\n const branding = {};\n branding.footer = registration.footer;\n branding.organizationLogo = registration.organizationLogo;\n branding.productLogo = registration.productLogo;\n branding.background = registration.background;\n\n return ({\n ...locale,\n ...sendingRequest,\n ...contactInfo,\n ...timeout,\n ...branding\n});\n}\n// prettier-ignore\nconst mapDispatchToProps = dispatch => bindActionCreators(\n Object.assign({}, { ...localeActions }, { ...contactInfoActions }, { ...timeoutActions }), dispatch,\n);\nconst mergeProps = (stateProps, dispatchProps, ownProps) => {\n const props = { ...ownProps, ...stateProps, ...dispatchProps };\n\n Object.assign(props, { title: loginTitle, mainPane:
});\n\n return props;\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n mergeProps,\n)(ContactInfoContainer);\n","import { createTypes } from 'redux-action-types';\nimport { createAction } from 'redux-actions';\nimport { SMS_NAMESPACE } from '../constants';\n\nexport const types = createTypes(\n SMS_NAMESPACE,\n 'GET_USER_ID_OPTIONS', 'GET_USER_ID_OPTIONS_SUCCESS', 'GET_USER_ID_OPTIONS_FAIL',\n 'SET_REGISTER_OPTIONS_FIELD', 'SET_REGISTER_OPTIONS_FIELD_SUCCESS', 'SET_REGISTER_OPTIONS_FIELD_FAIL',\n 'VERIFY_REGISTER_OPTIONS', 'VERIFY_REGISTER_OPTIONS_SUCCESS', 'VERIFY_REGISTER_OPTIONS_FAIL',\n 'ENABLE_REGISTER_BUTTON',\n 'SET_QUESTIONS_FIELD', 'SET_QUESTIONS_FIELD_SUCCESS', 'SET_QUESTIONS_FIELD_FAIL',\n 'SET_ANSWERS_FIELD', 'SET_ANSWERS_FIELD_SUCCESS', 'SET_ANSWERS_FIELD_FAIL',\n 'VERIFY_SECURITY_QUESTIONS', 'VERIFY_SECURITY_QUESTIONS_SUCCESS', 'VERIFY_SECURITY_QUESTIONS_FAIL',\n 'ENABLE_SECURITY_QA_BUTTON',\n 'CHECK_USERID_AVAILABILITY','CHECK_USERID_AVAILABILITY_SUCCESS','CHECK_USERID_AVAILABILITY_FAIL',\n 'SET_MODAL_FIELD','SET_AGREE_TERMS_CONDITION','CANCEL_REGISTRATION'\n);\n\nconst {\n GET_USER_ID_OPTIONS,\n SET_REGISTER_OPTIONS_FIELD,\n VERIFY_REGISTER_OPTIONS,\n ENABLE_REGISTER_BUTTON,\n SET_QUESTIONS_FIELD,\n SET_ANSWERS_FIELD,\n VERIFY_SECURITY_QUESTIONS,\n ENABLE_SECURITY_QA_BUTTON,\n CHECK_USERID_AVAILABILITY,\n SET_MODAL_FIELD,\n SET_AGREE_TERMS_CONDITION,\n CANCEL_REGISTRATION\n} = types;\n\nconst getUserIdOptionsSent = createAction(GET_USER_ID_OPTIONS);\n\nconst setRegisterOptionsFieldSent = createAction(SET_REGISTER_OPTIONS_FIELD);\n\nconst verifyRegisterOptionsSent = createAction(VERIFY_REGISTER_OPTIONS);\n\nconst enableRegisterButtonSent = createAction(ENABLE_REGISTER_BUTTON);\n\nconst setQuestionsFieldSent = createAction(SET_QUESTIONS_FIELD);\n\nconst setAnswersFieldSent = createAction(SET_ANSWERS_FIELD);\n\nconst verifySecurityQuestionsSent = createAction(VERIFY_SECURITY_QUESTIONS);\n\nconst enableSecurityQAButtonSent = createAction(ENABLE_SECURITY_QA_BUTTON);\n\nconst checkUserIdAvailabilitySent = createAction(CHECK_USERID_AVAILABILITY);\n\nconst setCancelModalSent = createAction(SET_MODAL_FIELD);\n\nconst setAgreeTermsConditionSent = createAction(SET_AGREE_TERMS_CONDITION);\n\nconst cancelRegistrationSent = createAction(CANCEL_REGISTRATION);\n\nconst setRegisterOptionsField = (fieldkey, fieldValue) => setRegisterOptionsFieldSent({ fieldkey, fieldValue });\n\nconst verifyRegisterOptions = () => verifyRegisterOptionsSent();\n\nconst getUserIdOptions = () => getUserIdOptionsSent();\n\nconst enableRegisterButton = isFormValid => enableRegisterButtonSent({ isFormValid });\n\nconst setQuestionsField = (fieldkey, fieldValue) => setQuestionsFieldSent({ fieldkey, fieldValue });\n\nconst setAnswersField = (fieldkey, fieldValue) => setAnswersFieldSent({ fieldkey, fieldValue });\n\nconst verifySecurityQuestions = () => verifySecurityQuestionsSent();\n\nconst enableSecurityQAButton = isFormValid => enableSecurityQAButtonSent({ isFormValid });\n\nconst checkUserIdAvailability = () => checkUserIdAvailabilitySent();\n\nconst setCancelTnCModal = (showTnCModal) => setCancelModalSent({ showTnCModal });\n\nconst setAgreeTermsCondition = (agreeTnC) => setAgreeTermsConditionSent({ agreeTnC });\n\nconst cancelRegistration = () => cancelRegistrationSent();\n\nconst setPwdValid = passwordValid => enableRegisterButtonSent({ passwordValid });\n\nexport const actions = {\n getUserIdOptions,\n setRegisterOptionsField,\n verifyRegisterOptions,\n enableRegisterButton,\n setQuestionsField,\n setAnswersField,\n verifySecurityQuestions,\n enableSecurityQAButton,\n checkUserIdAvailability,\n setCancelTnCModal,\n setAgreeTermsCondition,\n cancelRegistration,\n setPwdValid\n};\n","import { handleActions } from 'redux-actions';\nimport { types } from './register-user-actions';\n\nconst {\n GET_USER_ID_OPTIONS_SUCCESS , GET_USER_ID_OPTIONS_FAIL,\n SET_REGISTER_OPTIONS_FIELD_SUCCESS, SET_REGISTER_OPTIONS_FIELD_FAIL,\n VERIFY_REGISTER_OPTIONS_SUCCESS, VERIFY_REGISTER_OPTIONS_FAIL,\n ENABLE_REGISTER_BUTTON,\n SET_QUESTIONS_FIELD_SUCCESS,SET_QUESTIONS_FIELD_FAIL,\n SET_ANSWERS_FIELD_SUCCESS,SET_ANSWERS_FIELD_FAIL,\n VERIFY_SECURITY_QUESTIONS_SUCCESS, VERIFY_SECURITY_QUESTIONS_FAIL,\n ENABLE_SECURITY_QA_BUTTON,\n CHECK_USERID_AVAILABILITY_SUCCESS,CHECK_USERID_AVAILABILITY_FAIL,\n SET_MODAL_FIELD,\n SET_AGREE_TERMS_CONDITION,\n HIGHLIGHT_INVALID_FIELDS\n} = types;\n\nexport const initialState = {\n flowType: 'SSR-REACT',\n transactionId: '',\n backgroundImagePath: '',\n userId: '',\n partialUserId: '',\n password: '',\n confirmpassword: '',\n userIdValid: true,\n partialUserIdValid: true,\n passwordValid: true,\n confirmpasswordValid: true,\n title: '',\n firstQuestion: '',\n secondQuestion: '',\n thirdQuestion: '',\n firstAnsValid: true,\n secondAnsValid: true,\n thirdAnsValid: true,\n firstAnswer: '',\n secondAnswer: '',\n thirdAnswer: '',\n availableUserResponse:'',\n userIdType:'',\n userIdLabelName:'',\n userIdInvalidMessage:'',\n userIdRegExp:'',\n userIdValue:'',\n passwordLabelName:'',\n passwordInvalidMessage:'',\n passwordRegExp:'',\n passwordValue:'',\n confirmPasswordLabelName:'',\n confirmPasswordInvalidMessage:'', \n confirmPasswordRegExp:'',\n confirmPasswordValue:'',\n showSecurityQuestions: false,\n firstNameForTitle:'',\n showTc:false,\n securityQnATextList:[],\n securityQnAIdList:[],\n agreeTnC:false,\n userLastName:'',\n companyName:'',\n firstAnsInlineErrMessage:'',\n secondAnsInlineErrMessage:'',\n thirdAnsInlineErrMessage:'',\n title:'',\n errorTitle:'',\n finalUserIdValue:'',\n fetchedUserId:null\n};\n\nexport default handleActions(\n {\n [GET_USER_ID_OPTIONS_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n\n [GET_USER_ID_OPTIONS_FAIL]: (state, { payload }) => ({ ...state, ...payload }),\n\n [SET_REGISTER_OPTIONS_FIELD_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n\n [SET_REGISTER_OPTIONS_FIELD_FAIL]: (state, { payload }) => ({ ...state, ...payload, }),\n\n [VERIFY_REGISTER_OPTIONS_SUCCESS]: (state, { payload }) => ({ ...state, ...payload, }),\n\n [VERIFY_REGISTER_OPTIONS_FAIL]: (state, { payload }) => ({ ...state, ...payload, }),\n\n [ENABLE_REGISTER_BUTTON]: (state, { payload }) => ({ ...state, ...payload, }),\n\n [SET_QUESTIONS_FIELD_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n\n [SET_QUESTIONS_FIELD_FAIL]: (state, { payload }) => ({ ...state, ...payload, }),\n\n [SET_ANSWERS_FIELD_SUCCESS]: (state, { payload }) => ({ ...state, ...payload, }),\n\n [SET_ANSWERS_FIELD_FAIL]: (state, { payload }) => ({ ...state, ...payload, }),\n\n [VERIFY_SECURITY_QUESTIONS_SUCCESS]: (state, { payload }) => ({ ...state, ...payload, }), \n\n [VERIFY_SECURITY_QUESTIONS_FAIL]: (state, { payload }) => ({ ...state, ...payload, }),\n\n [ENABLE_SECURITY_QA_BUTTON]: (state, { payload }) => ({ ...state, ...payload, }), \n\n [CHECK_USERID_AVAILABILITY_SUCCESS]: (state, { payload }) => ({ ...state, ...payload, }),\n \n [CHECK_USERID_AVAILABILITY_FAIL]: (state, { payload }) => ({ ...state, ...payload, }),\n\n [SET_MODAL_FIELD]: (state, { payload }) => ({ ...state, ...payload }),\n\n [SET_AGREE_TERMS_CONDITION]: (state, { payload }) => ({ ...state, ...payload }),\n\n [HIGHLIGHT_INVALID_FIELDS]: (state, { payload }) => ({ ...state, ...payload, showFailedModal:false }),\n\n },\n initialState,\n\n);\n","import reducer from './register-user-reducer';\n\nexport default reducer;\nexport { initialState } from './register-user-reducer';\n\nexport * from './register-user-actions';\nexport * from './register-user-constants';\n","import React from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { actions as localeActions } from '../../redux/ducks/locale';\nimport { actions as registerUserActions } from '../../redux/ducks/register-user';\nimport { actions as timeoutActions } from '../../redux/ducks/timeout';\nimport { RegisterUserForm } from '../../components';\nimport { RegistrationLayout } from '../../layouts';\n\nexport const RegisterUserContainer = props =>
;\n\nconst mapStateToProps = ({\n locale, sendingRequest, registerUser, timeout, registration\n}) => {\n const branding = {};\n branding.footer = registration.footer;\n branding.organizationLogo = registration.organizationLogo;\n branding.productLogo = registration.productLogo;\n branding.background = registration.background;\n\n return ({\n ...locale,\n ...sendingRequest,\n ...registerUser,\n ...timeout,\n ...branding\n});}\n// prettier-ignore\nconst mapDispatchToProps = dispatch => bindActionCreators(\n Object.assign({}, { ...localeActions }, { ...registerUserActions }, { ...timeoutActions }), dispatch,\n);\nconst mergeProps = (stateProps, dispatchProps, ownProps) => {\n const props = { ...ownProps, ...stateProps, ...dispatchProps };\n\n Object.assign(props, { mainPane:
});\n\n return props;\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n mergeProps,\n)(RegisterUserContainer);\n","import { createTypes } from 'redux-action-types';\nimport { createAction } from 'redux-actions';\nimport { SMS_NAMESPACE } from '../constants';\n\nexport const types = createTypes(\n SMS_NAMESPACE,\n 'CONFIRMATION_INFO_OPTIONS',\n 'CONFIRMATION_INFO_OPTIONS_SUCCESS',\n 'CONFIRMATION_INFO_OPTIONS_FAIL',\n 'CONFIRMATION_INFO_OPTIONS_UPDATE',\n 'CONFIRMATION_GO_TO_PRODUCT'\n);\n\nconst {\n CONFIRMATION_INFO_OPTIONS,\n CONFIRMATION_INFO_OPTIONS_UPDATE,\n CONFIRMATION_GO_TO_PRODUCT\n\n} = types;\n\nconst getConfirmationInfoSent = createAction(CONFIRMATION_INFO_OPTIONS);\nconst getConfirmationInfoUpdateSent = createAction(CONFIRMATION_INFO_OPTIONS_UPDATE);\nconst goToProductSent = createAction(CONFIRMATION_GO_TO_PRODUCT);\n\n\nconst getConfirmationInfo = () => getConfirmationInfoSent();\nconst getConfirmationInfoUpdate = (isCopied) => getConfirmationInfoUpdateSent({ isCopied });\nconst goToProduct = (link) => goToProductSent(link);\n\nexport const actions = {\n getConfirmationInfo,\n getConfirmationInfoUpdate,\n goToProduct\n\n};\n","import { handleActions } from 'redux-actions';\nimport { types } from './confirmation-actions';\n\nconst {\n CONFIRMATION_INFO_OPTIONS_SUCCESS,\n CONFIRMATION_INFO_OPTIONS_FAIL,\n CONFIRMATION_INFO_OPTIONS_UPDATE\n\n\n} = types;\n\nexport const initialState = {\n flowType: 'SSR-REACT',\n\n transactionId: '',\n confirmationInfoObj: { showDiv: false }\n\n};\n\nexport default handleActions(\n {\n [CONFIRMATION_INFO_OPTIONS_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n [CONFIRMATION_INFO_OPTIONS_FAIL]: (state, { payload }) => ({ ...state, ...payload }),\n [CONFIRMATION_INFO_OPTIONS_UPDATE]: (state, { payload }) => ({ ...state, ...payload })\n\n },\n initialState,\n);\n","import reducer from './confirmation-reducer';\nexport default reducer;\nexport { initialState } from './confirmation-reducer';\nexport * from './confirmation-actions';\nexport * from './confirmation-constants';\n","import React from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { actions as localeActions } from '../../redux/ducks/locale';\nimport { actions as confirmationActions } from '../../redux/ducks/confirmation';\nimport { actions as timeoutActions } from '../../redux/ducks/timeout';\nimport { RegistrationLayout } from '../../layouts';\nimport { ConfirmationForm } from '../../components';\n\nexport const ConfirmationContainer = props =>
;\n\nconst loginTitle =
;\nconst mapStateToProps = ({\n locale, sendingRequest, confirmation, timeout, registration\n}) => {\n \n const branding = {};\n branding.footer = registration.footer;\n branding.organizationLogo = registration.organizationLogo;\n branding.productLogo = registration.productLogo;\n branding.background = registration.background;\n\n return ({\n ...locale,\n ...sendingRequest,\n ...confirmation,\n ...timeout,\n ...branding\n});\n}\n// prettier-ignore\nconst mapDispatchToProps = dispatch => bindActionCreators(\n Object.assign({}, { ...localeActions }, { ...confirmationActions }, { ...timeoutActions }), dispatch,\n);\nconst mergeProps = (stateProps, dispatchProps, ownProps) => {\n const props = { ...ownProps, ...stateProps, ...dispatchProps };\n\n Object.assign(props, { title: loginTitle, mainPane:
});\n\n return props;\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n mergeProps,\n)(ConfirmationContainer);\n","\nimport React, { Component } from 'react';\n\nimport {\n BusyIndicator\n \n} from '@synerg/vdl-react-components';\nexport default class Loader extends Component {\n\n render() {\n\n\n return (\n\n\n
\n )\n }\n}\n","import { createTypes } from 'redux-action-types';\nimport { createAction } from 'redux-actions';\nimport { SMS_NAMESPACE } from '../constants';\nimport constants from '../../../util/locale/constants';\n\nexport const types = createTypes(\n SMS_NAMESPACE,\n 'VERIFY_PRC_INFO_OPTIONS',\n 'VERIFY_PRC_INFO_OPTIONS_SUCCESS',\n 'VERIFY_PRC_INFO_OPTIONS_FAIL',\n 'CANCEL_PRC_AND_CHECK_YOUR_ENTRIES',\n 'SET_IDENTITY_SELECTED',\n 'SET_IDENTITY_SELECTED_SUCCESS',\n 'SET_IDENTITY_SELECTED_FAIL',\n 'ACCESS_CODE_SENT',\n 'ACCESS_CODE_SENT_SUCCESS',\n 'VERIFY_PHONE_ON_FLY',\n 'SET_VERIFY_PRC_FIELD_VALUE',\n 'SET_VERIFY_PRC_REDIRECT',\n 'SET_VERIFY_PRC_KBA_REDIRECT',\n 'SET_VERIFY_PRC_POSTAL_REDIRECT',\n 'VERIFY_PHONE_ON_FLY_BACK',\n 'SET_PHONEONFLY_SELECTED',\n 'RESEND_OTP',\n 'EDIT_CONTACT_INFO',\n 'SKIP_NUDGE_ACTIVATION'\n\n\n);\n\nconst {\n VERIFY_PRC_INFO_OPTIONS,\n CANCEL_PRC_AND_CHECK_YOUR_ENTRIES,\n VERIFY_PRC_INFO_OPTIONS_SUCCESS,\n SET_IDENTITY_SELECTED,\n ACCESS_CODE_SENT,\n VERIFY_PHONE_ON_FLY,\n VERIFY_PHONE_ON_FLY_BACK,\n SET_VERIFY_PRC_FIELD_VALUE,\n SET_VERIFY_PRC_REDIRECT,\n SET_VERIFY_PRC_KBA_REDIRECT,\n SET_VERIFY_PRC_POSTAL_REDIRECT,\n SET_PHONEONFLY_SELECTED,\n RESEND_OTP,\n EDIT_CONTACT_INFO,\n SKIP_NUDGE_ACTIVATION\n\n\n} = types;\n\nconst getVerfiyPicInfoSent = createAction(VERIFY_PRC_INFO_OPTIONS);\nconst setverifyOtpPhoneOnFlySent = createAction(SET_PHONEONFLY_SELECTED);\nconst cancelAndCheckYourEntriesSent = createAction(CANCEL_PRC_AND_CHECK_YOUR_ENTRIES);\nconst setIdentitySelectedSent = createAction(SET_IDENTITY_SELECTED);\nconst setDifferentMethodSent = createAction(VERIFY_PRC_INFO_OPTIONS_SUCCESS);\nconst setSubmitAccessCodeSent = createAction(ACCESS_CODE_SENT);\nconst setverifyPhoneOnFly = createAction(VERIFY_PHONE_ON_FLY);\nconst setverifyPhoneOnFlyBack = createAction(VERIFY_PHONE_ON_FLY_BACK);\nconst setVerifyPrcValueSent = createAction(SET_VERIFY_PRC_FIELD_VALUE);\nconst setRedirectSent = createAction(SET_VERIFY_PRC_REDIRECT);\nconst goToKBASentCall = createAction(SET_VERIFY_PRC_KBA_REDIRECT);\nconst goToPostalSent = createAction(SET_VERIFY_PRC_POSTAL_REDIRECT);\nconst resendOTP = createAction(RESEND_OTP);\nconst editContactInfo = createAction(EDIT_CONTACT_INFO);\nconst skipNudgeActivation = createAction(SKIP_NUDGE_ACTIVATION);\n\nconst getVerfiyPicInfo = () => getVerfiyPicInfoSent();\nconst setverifyOtpPhoneOnFly = () => setverifyOtpPhoneOnFlySent();\nconst cancelAndCheckYourEntries = () => cancelAndCheckYourEntriesSent();\nconst setIdentitySelected = (payload) => setIdentitySelectedSent(payload);\nconst setDifferentMethod = (showVerify, title, prcAlreadyExists, showModalWarn, phoneOnFlyFail) => setDifferentMethodSent({ showVerify, title, prcAlreadyExists, showModalWarn, phoneOnFlyFail });\nconst setSubmitAccessCode = () => setSubmitAccessCodeSent();\nconst verifyPhoneOnFly = () => setverifyPhoneOnFly();\nconst enableSubmitButton = isFormValid => setVerifyPrcValueSent({ isFormValid });\nconst setCancelModal = showModalError => setVerifyPrcValueSent({ showModalError });\nconst setOtcValue = otcCode => setVerifyPrcValueSent({ otcCode });\nconst setPhoneOnFly = () => setVerifyPrcValueSent({phoneReEntryError:false,mnumber:'',showPhoneOnFly:true,showVerify:false,title:\"phoneonethyflytitle\",hideText:false });\nconst onSetMobileType = selectedPhone => setVerifyPrcValueSent({ selectedPhone });\nconst onSetMobilePhoneValue = fieldValue => setVerifyPrcValueSent({ phoneReEntryError:false,mobilePhoneValid:fieldValue.isValid,mnumber: fieldValue.formattedNumber.replace(/\\D/g, '').slice(fieldValue.selectedCountry.dialCode.length),dialCode:fieldValue.selectedCountry.dialCode,countryCode:fieldValue.selectedCountry.iso2});\nconst backToOptionsPage = () => setverifyPhoneOnFlyBack();\nconst setRedirect = () => setRedirectSent();\nconst goToKBASent = () => goToKBASentCall();\nconst goToPostal = () => goToPostalSent();\nconst setWarnModal = showModalWarn => setVerifyPrcValueSent({ showModalWarn });\n\n\nexport const actions = {\n getVerfiyPicInfo,\n setverifyOtpPhoneOnFly,\n cancelAndCheckYourEntries,\n setIdentitySelected,\n setDifferentMethod,\n setSubmitAccessCode,\n verifyPhoneOnFly,\n enableSubmitButton,\n setCancelModal,\n setOtcValue,\n onSetMobileType,\n setPhoneOnFly,\n onSetMobilePhoneValue,\n backToOptionsPage,\n setverifyPhoneOnFlyBack,\n setRedirect,\n goToKBASent,\n goToPostal,\n setWarnModal,\n resendOTP,\n editContactInfo,\n skipNudgeActivation\n\n};\n","import { handleActions } from 'redux-actions';\nimport { types } from './verify-prc-actions';\n\nconst {\n VERIFY_PRC_INFO_OPTIONS_SUCCESS,\n VERIFY_PRC_INFO_OPTIONS_FAIL,\n SET_IDENTITY_SELECTED_SUCCESS,\n ACCESS_CODE_SENT_SUCCESS,\n SET_VERIFY_PRC_FIELD_VALUE\n\n\n} = types;\n\nexport const initialState = {\n flowType: 'SSR-REACT',\n showOtcModal: false,\n transactionId: '',\n verifyPrcObj: {\n prcValid: true,\n showAlert: false,\n showDiv: false,\n disableFields: [],\n showDiffMethodBtn: true,\n contactId:null,\n commType:null,\n showNudgePage:false\n },\n prevNumber:0,\n prevDialCode:0,\n};\n\nexport default handleActions(\n {\n [VERIFY_PRC_INFO_OPTIONS_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n [VERIFY_PRC_INFO_OPTIONS_FAIL]: (state, { payload }) => ({ ...state, ...payload }),\n [SET_IDENTITY_SELECTED_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n [ACCESS_CODE_SENT_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n [SET_VERIFY_PRC_FIELD_VALUE]: (state, { payload }) => ({ ...state, ...payload })\n },\n initialState,\n);","import reducer from './verify-prc-reducer';\nexport default reducer;\nexport { initialState } from './verify-prc-reducer';\nexport * from './verify-prc-actions';\nexport * from './verify-prc-constants';\n","import React from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { actions as localeActions } from '../../redux/ducks/locale';\nimport { actions as verifyPrcActions } from '../../redux/ducks/verify-prc';\nimport { actions as timeoutActions } from '../../redux/ducks/timeout';\nimport { RegistrationLayout } from '../../layouts';\nimport { VerifyPrcForm } from '../../components';\n\nexport const VerifyPrcContainer = props =>
;\n\nconst loginTitle =
;\nconst mapStateToProps = ({\n locale, sendingRequest, verifyPrc, timeout, registration\n}) => {\n const branding = {};\n branding.footer = registration.footer;\n branding.organizationLogo = registration.organizationLogo;\n branding.productLogo = registration.productLogo;\n branding.background = registration.background;\n \n return ({\n ...locale,\n ...sendingRequest,\n ...verifyPrc,\n ...timeout,\n ...branding\n});}\n// prettier-ignore\nconst mapDispatchToProps = dispatch => bindActionCreators(\n Object.assign({}, { ...localeActions }, { ...verifyPrcActions }, { ...timeoutActions }), dispatch,\n);\nconst mergeProps = (stateProps, dispatchProps, ownProps) => {\n const props = { ...ownProps, ...stateProps, ...dispatchProps };\n\n Object.assign(props, { title: loginTitle, mainPane:
});\n\n return props;\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n mergeProps,\n)(VerifyPrcContainer);\n","import { createTypes } from 'redux-action-types';\nimport { createAction } from 'redux-actions';\nimport { SMS_NAMESPACE } from '../constants';\n\nexport const types = createTypes(\n SMS_NAMESPACE,\n 'EXTERNAL_VENDOR_INFO_OPTIONS',\n 'EXTERNAL_VENDOR_INFO_OPTIONS_SUCCESS',\n 'EXTERNAL_VENDOR_INFO_OPTIONS_FAIL',\n 'CANCEL_VENDOR_AND_CHECK_YOUR_ENTRIES',\n 'SET_MANUAL_SELECTED',\n 'SET_MANUAL_SELECTED_SUCCESS',\n 'SET_EXTERNAL_VENDOR_REDIRECT',\n 'OPEN_EXTERNAL_VENDOR_REDIRECT'\n\n\n);\n\nconst {\n EXTERNAL_VENDOR_INFO_OPTIONS,\n CANCEL_VENDOR_AND_CHECK_YOUR_ENTRIES,\n SET_MANUAL_SELECTED,\n SET_EXTERNAL_VENDOR_REDIRECT,\n OPEN_EXTERNAL_VENDOR_REDIRECT\n\n\n} = types;\n\nconst getExternalVendorInfoSent = createAction(EXTERNAL_VENDOR_INFO_OPTIONS);\nconst cancelAndCheckYourEntriesSent = createAction(CANCEL_VENDOR_AND_CHECK_YOUR_ENTRIES);\nconst setmanualSelectedSent = createAction(SET_MANUAL_SELECTED);\nconst setRedirectSent = createAction(SET_EXTERNAL_VENDOR_REDIRECT);\nconst openExternalVendorSent = createAction(OPEN_EXTERNAL_VENDOR_REDIRECT);\n\nconst getExternalVendorInfo = () => getExternalVendorInfoSent();\nconst cancelAndCheckYourEntries = () => cancelAndCheckYourEntriesSent();\nconst setmanualSelected = () => setmanualSelectedSent();\nconst setRedirect = () => setRedirectSent();\nconst openExternalVendor = () => openExternalVendorSent();\n\nexport const actions = {\n getExternalVendorInfo,\n cancelAndCheckYourEntries,\n setmanualSelected,\n setRedirect,\n openExternalVendor\n\n};\n","import { handleActions } from 'redux-actions';\nimport { types } from './external-vendor-actions';\n\nconst {\n EXTERNAL_VENDOR_INFO_OPTIONS_SUCCESS,\n EXTERNAL_VENDOR_INFO_OPTIONS_FAIL,\n SET_MANUAL_SELECTED_SUCCESS\n \n\n} = types;\n\nexport const initialState = {\n flowType: 'SSR-REACT',\n showOtcModal: false,\n transactionId: '',\n externalVendorObj: {\n showDiv: false\n }\n\n};\n\nexport default handleActions(\n {\n [EXTERNAL_VENDOR_INFO_OPTIONS_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n [EXTERNAL_VENDOR_INFO_OPTIONS_FAIL]: (state, { payload }) => ({ ...state, ...payload }),\n [SET_MANUAL_SELECTED_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n\n },\n initialState,\n);\n","import reducer from './external-vendor-reducer';\nexport default reducer;\nexport { initialState } from './external-vendor-reducer';\nexport * from './external-vendor-actions';\nexport * from './external-vendor-constants';\n","import React from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { actions as localeActions } from '../../redux/ducks/locale';\nimport { actions as externalVendorActions } from '../../redux/ducks/external-vendor';\nimport { actions as timeoutActions } from '../../redux/ducks/timeout';\nimport { RegistrationLayout } from '../../layouts';\nimport { ExternalVendorForm } from '../../components';\n\nexport const ExternalVendorContainer = props =>
;\n\nconst loginTitle =
;\nconst mapStateToProps = ({\n locale, sendingRequest, externalVendor, timeout, registration\n}) => {\n const branding = {};\n branding.footer = registration.footer;\n branding.organizationLogo = registration.organizationLogo;\n branding.productLogo = registration.productLogo;\n branding.background = registration.background;\n \n return ({\n ...locale,\n ...sendingRequest,\n ...externalVendor,\n ...timeout,\n ...branding\n});}\n// prettier-ignore\nconst mapDispatchToProps = dispatch => bindActionCreators(\n Object.assign({}, { ...localeActions }, { ...externalVendorActions }, { ...timeoutActions }), dispatch,\n);\nconst mergeProps = (stateProps, dispatchProps, ownProps) => {\n const props = { ...ownProps, ...stateProps, ...dispatchProps };\n\n Object.assign(props, { title: loginTitle, mainPane:
});\n\n return props;\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n mergeProps,\n)(ExternalVendorContainer);\n","import { createTypes } from 'redux-action-types';\nimport { createAction } from 'redux-actions';\nimport { SMS_NAMESPACE } from '../constants';\n\nexport const types = createTypes(\n SMS_NAMESPACE,\n 'VERIFY_KBA_INFO_OPTIONS',\n 'VERIFY_KBA_INFO_OPTIONS_SUCCESS',\n 'VERIFY_KBA_INFO_OPTIONS_FAIL',\n 'VERIFY_KBA_INFO_OPTIONS_UPDATE',\n 'VERIFY_KBA_SET_ANSWER_SELECTED',\n 'VERIFY_KBA_REDIRECT',\n 'VERIFY_KBA_TIME_EXPIRED',\n 'CANCEL_KBA_AND_CHECK_YOUR_ENTRIES',\n 'VERIFY_KBA_PRC_REDIRECT',\n 'KBA_DISCLAIMER_INFO',\n 'CANCEL_KBA'\n\n);\n\nconst {\n VERIFY_KBA_INFO_OPTIONS,\n VERIFY_KBA_SET_ANSWER_SELECTED,\n VERIFY_KBA_INFO_OPTIONS_UPDATE,\n VERIFY_KBA_REDIRECT,\n VERIFY_KBA_TIME_EXPIRED,\n CANCEL_KBA_AND_CHECK_YOUR_ENTRIES,\n KBA_DISCLAIMER_INFO,\n VERIFY_KBA_PRC_REDIRECT,\n CANCEL_KBA\n\n\n} = types;\n\nconst getVerifyKbaInfoSent = createAction(VERIFY_KBA_INFO_OPTIONS);\nconst setAnswerSelectedSent = createAction(VERIFY_KBA_SET_ANSWER_SELECTED);\nconst setRedirectSent = createAction(VERIFY_KBA_REDIRECT);\nconst setVerifyKbaUpdate = createAction(VERIFY_KBA_INFO_OPTIONS_UPDATE);\nconst setOnTimeExpiredSent = createAction(VERIFY_KBA_TIME_EXPIRED);\nconst setDisableFieldsSent = createAction(VERIFY_KBA_INFO_OPTIONS_UPDATE);\nconst cancelAndCheckYourEntriesSent = createAction(CANCEL_KBA_AND_CHECK_YOUR_ENTRIES);\nconst getDisclaimerInfoSent = createAction(KBA_DISCLAIMER_INFO);\nconst getVerfifyKbaPrcRedirectSent = createAction(VERIFY_KBA_PRC_REDIRECT);\nconst cancelKbaCheckYourEntriesSent = createAction(CANCEL_KBA);\n\n\nconst getVerifyKbaInfo = () => getVerifyKbaInfoSent();\nconst showDisclaimerModal = () => showDisclaimerModalSent();\nconst setAnswerSelected = (index) => setAnswerSelectedSent(index);\nconst setRedirect = () => setRedirectSent();\nconst setCancelErrorModal = sendRedirect => setVerifyKbaUpdate({ sendRedirect });\nconst setOnTimeExpired = () => setOnTimeExpiredSent();\nconst setDisableFields = disableFields => setDisableFieldsSent({disableFields});\nconst cancelAndCheckYourEntries = () => cancelAndCheckYourEntriesSent();\nconst setConfirmModal = showModalCancel => setVerifyKbaUpdate({showModalCancel});\nconst getDisclaimerInfo = () => getDisclaimerInfoSent();\nconst getVerfifyKbaPrcRedirect = () => getVerfifyKbaPrcRedirectSent();\nconst cancelKbaCheckYourEntries = () => cancelKbaCheckYourEntriesSent();\n\n\nexport const actions = {\n getVerifyKbaInfo,\n showDisclaimerModal,\n setAnswerSelected,\n setRedirect,\n setCancelErrorModal,\n setOnTimeExpired,\n setDisableFields,\n cancelAndCheckYourEntries,\n setConfirmModal,\n getDisclaimerInfo,\n getVerfifyKbaPrcRedirect,\n cancelKbaCheckYourEntries\n};\n","import { handleActions } from 'redux-actions';\nimport { types } from './verify-kba-actions';\n\nconst {\n VERIFY_KBA_INFO_OPTIONS_SUCCESS,\n VERIFY_KBA_INFO_OPTIONS_FAIL,\n VERIFY_KBA_INFO_OPTIONS_UPDATE\n \n} = types;\n\nexport const initialState = {\n flowType: 'SSR-REACT',\n transactionId: '',\n verifyKbaObj: {\n showDisclaimer: true\n }\n\n};\n\nexport default handleActions(\n {\n [VERIFY_KBA_INFO_OPTIONS_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n [VERIFY_KBA_INFO_OPTIONS_FAIL]: (state, { payload }) => ({ ...state, ...payload }),\n [VERIFY_KBA_INFO_OPTIONS_UPDATE]: (state, { payload }) => ({ ...state, ...payload })\n \n },\n initialState,\n);\n","import reducer from './verify-kba-reducer';\nexport default reducer;\nexport { initialState } from './verify-kba-reducer';\nexport * from './verify-kba-actions';\nexport * from './verify-kba-constants';\n","import React from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { actions as localeActions } from '../../redux/ducks/locale';\nimport { actions as verifyKbaActions } from '../../redux/ducks/verify-kba';\nimport { actions as timeoutActions } from '../../redux/ducks/timeout';\nimport { RegistrationLayout } from '../../layouts';\nimport { VerifyKbaForm } from '../../components';\n\nexport const VerifyKbaContainer = props =>
;\n\nconst mapStateToProps = ({\n locale, sendingRequest, verifyKba, timeout, registration\n}) => {\n const branding = {};\n branding.footer = registration.footer;\n branding.organizationLogo = registration.organizationLogo;\n branding.productLogo = registration.productLogo;\n branding.background = registration.background;\n\n return ({\n ...locale,\n ...sendingRequest,\n ...verifyKba,\n ...timeout,\n ...branding\n});}\n// prettier-ignore\nconst mapDispatchToProps = dispatch => bindActionCreators(\n Object.assign({}, { ...localeActions }, { ...verifyKbaActions }, { ...timeoutActions }), dispatch,\n);\nconst mergeProps = (stateProps, dispatchProps, ownProps) => {\n const props = { ...ownProps, ...stateProps, ...dispatchProps };\n\n Object.assign(props, { mainPane:
});\n\n return props;\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n mergeProps,\n)(VerifyKbaContainer);\n","import { createTypes } from 'redux-action-types';\nimport { createAction } from 'redux-actions';\nimport { SMS_NAMESPACE } from '../constants';\n\nexport const types = createTypes(\n SMS_NAMESPACE,\n 'GET_401k_SIV_OPTIONS','GET_401k_SIV_OPTIONS_SUCCESS','GET_401k_SIV_OPTIONS_FAIL',\n 'SET_401k_SIV_FIELD',\n 'SET_401k_SIV_FIELD_SUCCESS',\n 'SET_401k_SIV_FIELD_FAIL',\n 'VERIFY_401k_SIV_OPTIONS',\n 'VERIFY_401k_ORG_RESPONSE',\n 'VERIFY_401k_MULTIORG_RESPONSE',\n 'ENABLE_401k_SUBMIT_BUTTON',\n 'CANCEL_AND_CHECK_401k_ENTRIES',\n 'SET_401k_RECAPTCHA_RESPONSE',\n 'SET_401k_ORG_SELECTED','SET_401k_ORG_SELECTED_SUCCESS','SET_401k_ORG_SELECTED_FAIL',\n 'LAUNCH_401k_IDENTITY','LAUNCH_401k_IDENTITY_SUCCESS','LAUNCH_401k_IDENTITY_FAIL',\n 'VERIFY_401k_SIV_OPTIONS_FAIL'\n);\n\nconst {\n GET_401k_SIV_OPTIONS,\n SET_401k_SIV_FIELD,\n VERIFY_401k_SIV_OPTIONS,\n ENABLE_401k_SUBMIT_BUTTON,\n CANCEL_AND_CHECK_401k_ENTRIES,\n SET_401k_RECAPTCHA_RESPONSE,\n SET_401k_ORG_SELECTED,\n LAUNCH_401k_IDENTITY\n} = types;\n\nconst getSivOptionsSent = createAction(GET_401k_SIV_OPTIONS);\n\nconst setSivFieldSent = createAction(SET_401k_SIV_FIELD);\n\nconst verifySivOptionsSent = createAction(VERIFY_401k_SIV_OPTIONS);\n\nconst enableSubmitButtonSent = createAction(ENABLE_401k_SUBMIT_BUTTON);\n\nconst cancelAndCheckYourEntriesSent = createAction(CANCEL_AND_CHECK_401k_ENTRIES);\n\nconst setRecaptchaResponseSent = createAction(SET_401k_RECAPTCHA_RESPONSE);\n\nconst setOrgSelectedSent = createAction(SET_401k_ORG_SELECTED);\n\nconst launch401kIdentitySent = createAction(LAUNCH_401k_IDENTITY);\n\nconst setSivField = (fieldkey, fieldValue) => setSivFieldSent({ fieldkey, fieldValue });\n\nconst verifySivOptions = () => verifySivOptionsSent();\n\nconst getSivOptions = () => getSivOptionsSent();\n\nconst enableSubmitButton = isFormValid => enableSubmitButtonSent({ isFormValid });\n\nconst cancelAndCheckYourEntries = () => cancelAndCheckYourEntriesSent();\n\nconst setRecaptchaResponse = recaptchaResponse => setRecaptchaResponseSent({recaptchaResponse});\n\nconst setCancelModalError = (showModalError) => setCancelModalSent({ showModalError });\n\nconst setOrgSelected = (payload) => setOrgSelectedSent(payload);\n\nconst launch401kIdentity = () => launch401kIdentitySent();\n\nconst setCancelModalSent = createAction(ENABLE_401k_SUBMIT_BUTTON);\n\nexport const actions = {\n getSivOptions,\n setSivField,\n verifySivOptions,\n enableSubmitButton,\n cancelAndCheckYourEntries,\n setRecaptchaResponse,\n setCancelModalError,\n setOrgSelected,\n launch401kIdentity\n};\n","import { handleActions } from 'redux-actions';\nimport { types } from './verify-401k-actions';\n\nconst {\n GET_401k_SIV_OPTIONS_SUCCESS,\n GET_401k_SIV_OPTIONS_FAIL,\n SET_401k_SIV_FIELD_SUCCESS,\n SET_401k_SIV_FIELD_FAIL,\n VERIFY_401k_ORG_RESPONSE,\n VERIFY_401k_MULTIORG_RESPONSE,\n ENABLE_401k_SUBMIT_BUTTON,\n SET_401k_RECAPTCHA_RESPONSE,\n SET_401k_ORG_SELECTED_SUCCESS,\n SET_401k_ORG_SELECTED_FAIL,\n LAUNCH_401k_IDENTITY_SUCCESS,\n LAUNCH_401k_IDENTITY_FAIL,\n VERIFY_401k_SIV_OPTIONS_FAIL,\n CANCEL_AND_CHECK_401k_ENTRIES\n} = types;\n\nexport const initialState = {\n flowType: 'SSR-REACT',\n sivOptions: null,\n transactionId: '',\n backgroundImagePath: '',\n firstName: '',\n lastName: '',\n ssn: '',\n firstNameValid: true,\n lastNameValid: true,\n ssnValid: true,\n fullDobValid: true,\n errorCode:'',\n isRecaptchaOn: false,\n recaptchaSuccess:false\n};\n\nexport default handleActions(\n {\n [GET_401k_SIV_OPTIONS_SUCCESS]: (state, { payload }) => ({ ...state, ...payload}),\n\n [GET_401k_SIV_OPTIONS_FAIL]: (state, { payload }) => ({ ...state, ...payload }),\n [SET_401k_SIV_FIELD_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n [SET_401k_SIV_FIELD_FAIL]: (state, { payload }) => ({\n ...state,\n ...payload,\n }),\n [VERIFY_401k_ORG_RESPONSE]: (state, { payload }) => ({\n ...state,\n ...payload,\n }),\n [VERIFY_401k_MULTIORG_RESPONSE]: (state, { payload }) => ({\n ...state,\n ...payload,\n }),\n [ENABLE_401k_SUBMIT_BUTTON]: (state, { payload }) => ({\n ...state,\n ...payload,\n }),\n [SET_401k_RECAPTCHA_RESPONSE]: (state, { payload }) => ({\n ...state,\n ...payload,\n }),\n [SET_401k_ORG_SELECTED_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }), \n [SET_401k_ORG_SELECTED_FAIL]: (state, { payload }) => ({ ...state, ...payload }),\n [LAUNCH_401k_IDENTITY_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }), \n [LAUNCH_401k_IDENTITY_FAIL]: (state, { payload }) => ({ ...state, ...payload }), \n [VERIFY_401k_SIV_OPTIONS_FAIL]: (state, { payload }) => ({ ...state, ...payload }), \n [CANCEL_AND_CHECK_401k_ENTRIES]: (state, { payload }) => ({ ...state, ...payload })\n },\n initialState,\n);\n","import reducer from './verify-401k-reducer';\n\nexport default reducer;\nexport { initialState } from './verify-401k-reducer';\n\nexport * from './verify-401k-actions';\nexport * from './verify-401k-constants';\n","import React from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { actions as localeActions } from '../../redux/ducks/locale';\nimport { actions as verify401kActions } from '../../redux/ducks/verify-401k';\nimport { actions as timeoutActions } from '../../redux/ducks/timeout';\nimport { RegistrationLayout } from '../../layouts';\nimport { Verify401kForm } from '../../components';\n\nexport const Verify401kContainer = props =>
;\n\nconst mapStateToProps = ({\n locale, sendingRequest, verify401k, timeout, registration\n}) => {\n const branding = {};\n branding.footer = registration.footer;\n branding.organizationLogo = registration.organizationLogo;\n branding.productLogo = registration.productLogo;\n branding.background = registration.background;\n\n return ({\n ...locale,\n ...sendingRequest,\n ...verify401k,\n ...timeout,\n ...branding\n});}\n// prettier-ignore\nconst mapDispatchToProps = dispatch => bindActionCreators(\n Object.assign({}, { ...localeActions }, { ...verify401kActions }, { ...timeoutActions }), dispatch,\n);\nconst mergeProps = (stateProps, dispatchProps, ownProps) => {\n const props = { ...ownProps, ...stateProps, ...dispatchProps };\n\n Object.assign(props, { mainPane:
});\n\n return props;\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n mergeProps,\n)(Verify401kContainer);\n","import { createTypes } from 'redux-action-types';\nimport { createAction } from 'redux-actions';\nimport { SMS_NAMESPACE } from '../constants';\n\nexport const types = createTypes(\n SMS_NAMESPACE,\n 'VERIFY_BEV_INFO_OPTIONS',\n 'VERIFY_BEV_INFO_OPTIONS_SUCCESS',\n 'VERIFY_BEV_INFO_OPTIONS_FAIL',\n 'VERIFY_BEV_INFO_UPDATE',\n 'VERIFY_BEV_DROPDOWN_SELECT',\n 'VERIFY_BEV_UPDATE_DATA',\n 'VERIFY_BEV_GET_DROPDOWN_VALUES',\n 'VERIFY_BEV_GET_W2_DROPDOWN_VALUES',\n 'VERIFY_BEV_SET_IPAY_RADIO_BTN',\n 'VERIFY_BEV_SUBMIT_BTN',\n 'CANCEL_BEV_AND_CHECK_YOUR_ENTRIES',\n 'ON_FINAL_VERIFY_BEV_SUCCESS'\n\n\n);\n\nconst {\n VERIFY_BEV_INFO_OPTIONS,\n VERIFY_BEV_INFO_UPDATE,\n VERIFY_BEV_DROPDOWN_SELECT,\n VERIFY_BEV_UPDATE_DATA,\n VERIFY_BEV_GET_DROPDOWN_VALUES,\n VERIFY_BEV_GET_W2_DROPDOWN_VALUES,\n VERIFY_BEV_SET_IPAY_RADIO_BTN,\n VERIFY_BEV_SUBMIT_BTN,\n CANCEL_BEV_AND_CHECK_YOUR_ENTRIES,\n ON_FINAL_VERIFY_BEV_SUCCESS\n\n\n} = types;\n\nconst getVerifyBevInfoSent = createAction(VERIFY_BEV_INFO_OPTIONS);\nconst setVerfiyBevUpdateSent = createAction(VERIFY_BEV_INFO_UPDATE);\nconst onDropDownSelectSent = createAction(VERIFY_BEV_DROPDOWN_SELECT);\nconst handleUpdateDataSent = createAction(VERIFY_BEV_UPDATE_DATA);\nconst getDropdownValuesSent = createAction(VERIFY_BEV_GET_DROPDOWN_VALUES);\nconst getW2DropdownValuesSent = createAction(VERIFY_BEV_GET_W2_DROPDOWN_VALUES);\nconst handleIpayRadioBtnSent = createAction(VERIFY_BEV_SET_IPAY_RADIO_BTN);\nconst onBevSubmitBtnSent = createAction(VERIFY_BEV_SUBMIT_BTN);\nconst cancelAndCheckYourEntriesSent = createAction(CANCEL_BEV_AND_CHECK_YOUR_ENTRIES);\nconst setRedirectPageSent = createAction(ON_FINAL_VERIFY_BEV_SUCCESS);\n\n\nconst getVerifyBevInfo = () => getVerifyBevInfoSent();\nconst showDraggableModal = (showDraggable) => setVerfiyBevUpdateSent({ showDraggable });\nconst onDropDownSelect = (payload) => onDropDownSelectSent(payload);\nconst enableSubmitButton = (isFormValid) => setVerfiyBevUpdateSent({isFormValid});\nconst handleUpdateData = (payload) => handleUpdateDataSent(payload);\nconst getDropdownValues = (payload) => getDropdownValuesSent(payload);\nconst getW2DropdownValues = (payload) => getW2DropdownValuesSent(payload);\nconst handleIpayRadioBtn = (payload) => handleIpayRadioBtnSent(payload);\nconst onBevSubmitBtn = () => onBevSubmitBtnSent();\nconst cancelAndCheckYourEntries = () => cancelAndCheckYourEntriesSent();\nconst setRedirectPage = () => setRedirectPageSent();\nconst setRecaptchaResponse = (recaptchaResponse) =>setVerfiyBevUpdateSent({recaptchaResponse});\nconst showIpayDraggableModal = (showIpayDraggable) => setVerfiyBevUpdateSent({ showIpayDraggable });\n\n\nexport const actions = {\n getVerifyBevInfo,\n showDraggableModal,\n onDropDownSelect,\n enableSubmitButton,\n handleUpdateData,\n getDropdownValues,\n getW2DropdownValues,\n handleIpayRadioBtn,\n onBevSubmitBtn,\n cancelAndCheckYourEntries,\n setRedirectPage,\n setRecaptchaResponse,\n showIpayDraggableModal\n};\n","import { handleActions } from 'redux-actions';\nimport { types } from './verify-bev-actions';\n\nconst {\n VERIFY_BEV_INFO_OPTIONS_SUCCESS,\n VERIFY_BEV_INFO_OPTIONS_FAIL,\n VERIFY_BEV_INFO_UPDATE\n\n} = types;\n\nexport const initialState = {\n flowType: 'SSR-REACT',\n transactionId: '',\n showDraggable: false,\n isFormValid: true,\n verifyBevObj: {\n showDiv: false,\n alreadyRegistered: false\n }\n\n};\n\nexport default handleActions(\n {\n [VERIFY_BEV_INFO_OPTIONS_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n [VERIFY_BEV_INFO_OPTIONS_FAIL]: (state, { payload }) => ({ ...state, ...payload }),\n [VERIFY_BEV_INFO_UPDATE]: (state, { payload }) => ({ ...state, ...payload }),\n },\n initialState,\n);\n","import reducer from './verify-bev-reducer';\nexport default reducer;\nexport { initialState } from './verify-bev-reducer';\nexport * from './verify-bev-actions';\nexport * from './verify-bev-constants';\n","import React from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { actions as localeActions } from '../../redux/ducks/locale';\nimport { actions as verifyBevActions } from '../../redux/ducks/verify-bev';\nimport { actions as timeoutActions } from '../../redux/ducks/timeout';\nimport { RegistrationLayout } from '../../layouts';\nimport { VerifyBevForm } from '../../components';\n\nexport const VerifyBevContainer = props =>
;\n\nconst mapStateToProps = ({\n locale, sendingRequest, verifyBev, timeout, registration\n}) => {\n const branding = {};\n branding.footer = registration.footer;\n branding.organizationLogo = registration.organizationLogo;\n branding.productLogo = registration.productLogo;\n branding.background = registration.background;\n\n return ({\n ...locale,\n ...sendingRequest,\n ...verifyBev,\n ...timeout,\n ...branding\n});}\n// prettier-ignore\nconst mapDispatchToProps = dispatch => bindActionCreators(\n Object.assign({}, { ...localeActions }, { ...verifyBevActions }, { ...timeoutActions }), dispatch,\n);\nconst mergeProps = (stateProps, dispatchProps, ownProps) => {\n const props = { ...ownProps, ...stateProps, ...dispatchProps };\n\n Object.assign(props, { mainPane:
});\n\n return props;\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n mergeProps,\n)(VerifyBevContainer);\n","import React from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { actions as localeActions } from '../../redux/ducks/locale';\nimport { actions as timeoutActions } from '../../redux/ducks/timeout';\nimport { ErrorForm } from '../../components';\nimport { RegistrationLayout } from '../../layouts';\n\nexport const ErrorContainer = props =>
;\n\nconst mapStateToProps = ({\n locale, timeout, registration\n}) => {\n const branding = {};\n branding.footer = registration.footer;\n branding.organizationLogo = registration.organizationLogo;\n branding.productLogo = registration.productLogo;\n branding.background = registration.background;\n\n return ({\n ...locale,\n ...timeout,\n ...branding\n});}\n// prettier-ignore\nconst mapDispatchToProps = dispatch => bindActionCreators(\n Object.assign({}, { ...localeActions }, { ...timeoutActions }), dispatch,\n);\nconst mergeProps = (stateProps, dispatchProps, ownProps) => {\n const props = { ...ownProps, ...stateProps, ...dispatchProps };\n\n Object.assign(props, { mainPane:
});\n\n return props;\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n mergeProps,\n)(ErrorContainer);\n","import { createTypes, async } from 'redux-action-types';\nimport { createAction } from 'redux-actions';\nimport { SMS_NAMESPACE } from '../constants';\n\nexport const types = createTypes(\n SMS_NAMESPACE,\n 'FIND_ME_INFO_OPTIONS',\n 'FIND_ME_UPDATE_FIELD',\n 'FIND_ME_FAIL',\n 'FIND_ME_UPDATE_LOCATION',\n 'FIND_ME_UPDATE_FIELD_VALUE',\n 'FIND_ME_SUBMIT_IDENTITY_OPTIONS',\n 'ON_FINAL_FIND_ME_SUCCESS',\n 'CANCEL_FINDME_AND_CHECK_YOUR_ENTRIES',\n 'FIND_ME_HAS_REG_CODE_OPTION',\n 'FIND_ME_ORG_SELECTED',\n 'FIND_ME_VERIFY_USER',\n 'FIND_ME_GO_TO_MAIN_PAGE',\n 'FIND_ME_GO_TO_PII_PAGE',\n 'FIND_ME_CHANNEL_SELECT',\n 'FIND_ME_VERIFY_OTP',\n 'FIND_ME_RESEND_OTP',\n 'FIND_ME_PII_INFO_OPTIONS',\n 'FIND_ME_GO_TO_SEARCH_PAGE',\n 'FIND_ME_GO_TO_ERROR_OPTIONS_PAGE',\n 'FIND_ME_SET_LOCALE',\n 'REDIRECT_TO_IDENTITY_PAGE','REDIRECT_TO_IDENTITY_PAGE_SUCCESS',\n 'UPDATE_LOCALE_FIELD','UPDATE_PAGE_DETAILS',\n 'SET_FINDME_SIV_FIELD','SET_FINDME_SIV_FIELD_FAIL','SET_FINDME_SIV_FIELD_SUCCESS',\n 'VERIFY_SIV_DATA','VERIFY_SIV_DATA_SUCCESS',\n 'FIND_ME_CONTRACTOR_OPTIONS',\n 'SET_CONTRACTOR_SIV_FIELD','SET_CONTRACTOR_SIV_FIELD_FAIL','SET_CONTRACTOR_SIV_FIELD_SUCCESS',\n 'VERIFY_CONTRACTOR_SIV_DATA','VERIFY_CONTRACTOR_SIV_DATA_SUCCESS',\n 'CONTRACTOR_ORG_SELECTED',\n 'CONTRACTOR_VERIFY_USER',\n 'REGISTRATION_LESS_FLOW',\n 'CONTINUE_REGISTRATION_FLOW','CONTINUE_REGISTRATION_FLOW_SUCCESS'\n);\n\nconst {\n FIND_ME_INFO_OPTIONS,\n FIND_ME_UPDATE_LOCATION,\n FIND_ME_UPDATE_FIELD,\n FIND_ME_UPDATE_FIELD_VALUE,\n FIND_ME_SUBMIT_IDENTITY_OPTIONS,\n ON_FINAL_FIND_ME_SUCCESS,\n CANCEL_FINDME_AND_CHECK_YOUR_ENTRIES,\n FIND_ME_HAS_REG_CODE_OPTION,\n FIND_ME_ORG_SELECTED,\n FIND_ME_VERIFY_USER,\n FIND_ME_GO_TO_MAIN_PAGE,\n FIND_ME_GO_TO_PII_PAGE,\n FIND_ME_CHANNEL_SELECT,\n FIND_ME_VERIFY_OTP,\n FIND_ME_RESEND_OTP,\n FIND_ME_PII_INFO_OPTIONS,\n FIND_ME_GO_TO_SEARCH_PAGE,\n FIND_ME_GO_TO_ERROR_OPTIONS_PAGE,\n FIND_ME_SET_LOCALE,\n REDIRECT_TO_IDENTITY_PAGE,\n UPDATE_PAGE_DETAILS,\n SET_FINDME_SIV_FIELD,\n VERIFY_SIV_DATA,\n FIND_ME_CONTRACTOR_OPTIONS,\n SET_CONTRACTOR_SIV_FIELD,\n VERIFY_CONTRACTOR_SIV_DATA,\n CONTRACTOR_ORG_SELECTED,\n CONTRACTOR_VERIFY_USER,\n REGISTRATION_LESS_FLOW,\n CONTINUE_REGISTRATION_FLOW\n} = types;\n\nconst getFindMeInfoSent = createAction(FIND_ME_INFO_OPTIONS);\nconst updateCountryOptionSent = createAction(FIND_ME_UPDATE_LOCATION);\nconst updateFieldValueSent = createAction(FIND_ME_UPDATE_FIELD_VALUE);\nconst updateFieldSent = createAction(FIND_ME_UPDATE_FIELD);\nconst identityOptionsSent = createAction(FIND_ME_SUBMIT_IDENTITY_OPTIONS);\nconst setRedirectSent = createAction(ON_FINAL_FIND_ME_SUCCESS);\nconst cancelAndCheckYourEntriesSent = createAction(CANCEL_FINDME_AND_CHECK_YOUR_ENTRIES);\nconst hasRegCodeSent = createAction(FIND_ME_HAS_REG_CODE_OPTION);\nconst orgSelectedSent = createAction(FIND_ME_ORG_SELECTED);\nconst setRedirectVerifyUserSent = createAction(FIND_ME_VERIFY_USER);\nconst goToMainPageSent = createAction(FIND_ME_GO_TO_MAIN_PAGE);\nconst goToPiiInfoPageSent = createAction(FIND_ME_GO_TO_PII_PAGE);\nconst goToEmailPhoneSearchPageSent = createAction(FIND_ME_GO_TO_SEARCH_PAGE);\nconst goToErrorOptionsPageSent = createAction(FIND_ME_GO_TO_ERROR_OPTIONS_PAGE);\nconst getContractorOptionsSent = createAction(FIND_ME_CONTRACTOR_OPTIONS);\nconst channelSelectSent = createAction(FIND_ME_CHANNEL_SELECT);\nconst submitAccessCodeSent = createAction(FIND_ME_VERIFY_OTP);\nconst resendOTPSent = createAction(FIND_ME_RESEND_OTP);\nconst getPiiOptionsSent = createAction(FIND_ME_PII_INFO_OPTIONS);\nconst setLocaleSent = createAction(FIND_ME_SET_LOCALE);\nconst redirectToIdentityPageSent = createAction(REDIRECT_TO_IDENTITY_PAGE);\nconst updateRadioChangeInfoSent = createAction(UPDATE_PAGE_DETAILS);\nconst setSivFieldSent = createAction(SET_FINDME_SIV_FIELD);\nconst verifySivDataSent = createAction(VERIFY_SIV_DATA);\nconst setContractorSivFieldSent = createAction(SET_CONTRACTOR_SIV_FIELD);\nconst verifyContractorSivDataSent = createAction(VERIFY_CONTRACTOR_SIV_DATA);\nconst contractorOrgSelectedSent = createAction(CONTRACTOR_ORG_SELECTED);\nconst setContractorVerifyUserInfoSent = createAction(CONTRACTOR_VERIFY_USER);\nconst registrationLessFlowSent = createAction(REGISTRATION_LESS_FLOW);\nconst continueRegistrationSent = createAction(CONTINUE_REGISTRATION_FLOW);\n\nconst getFindMeInfo = () => getFindMeInfoSent();\nconst updateCountryOption = (payload) => updateCountryOptionSent(payload);\nconst updateFieldValue = (payload) => updateFieldValueSent(payload);\nconst enableSubmitButton = isFormValid => updateFieldSent({ isFormValid });\nconst submitIdentityOptions = () => identityOptionsSent();\nconst setRedirect = () => setRedirectSent();\nconst cancelAndCheckYourEntries = () => cancelAndCheckYourEntriesSent();\nconst hasRegCode = (payload) => hasRegCodeSent(payload);\nconst orgSelected = (payload) => orgSelectedSent(payload);\nconst setRedirectVerifyUser = () => setRedirectVerifyUserSent();\nconst goToMainPage = () => goToMainPageSent();\nconst goToPiiInfoPage = () => goToPiiInfoPageSent();\nconst goToEmailPhoneSearchPage = () => goToEmailPhoneSearchPageSent();\nconst goToErrorOptionsPage = () => goToErrorOptionsPageSent();\nconst getContractorOptions = () => getContractorOptionsSent();\nconst channelSelect = (payload) => channelSelectSent(payload);\nconst submitAccessCode = () => submitAccessCodeSent();\nconst resendOTP = (payload) => resendOTPSent(payload);\nconst getPiiOptions = () => getPiiOptionsSent();\nconst setPrevPage = (prevPage) => updateFieldSent({ prevPage });\nconst setErrorPageInfo = (errorPageInfo) => updateFieldSent({ errorPageInfo });\nconst redirectToContactInfo = () => updateFieldSent({ sendRedirect:true });\nconst setLocale = (payload)=>setLocaleSent({ payload });\nconst redirectToIdentityPage = (payload) => redirectToIdentityPageSent(payload);\nconst updateRadioChangeInfo = (option) => updateRadioChangeInfoSent(option);\nconst setSivField = (payload) => setSivFieldSent(payload);\nconst verifySivData = (payload) => verifySivDataSent(payload);\nconst setContractorSivField = (payload) => setContractorSivFieldSent(payload);\nconst verifyContractorSivData = (payload) => verifyContractorSivDataSent(payload);\nconst contractorOrgSelected = (payload) => contractorOrgSelectedSent(payload);\nconst contractorVerifyUserInfo = () => setContractorVerifyUserInfoSent();\nconst registrationLessFlow = (payload) => registrationLessFlowSent(payload);\nconst continueRegistration = (payload) => continueRegistrationSent(payload);\n\nexport const actions = {\n getFindMeInfo,\n hasRegCode,\n cancelAndCheckYourEntries,\n setRedirect,\n setRedirectVerifyUser,\n updateFieldValue,\n enableSubmitButton,\n updateCountryOption,\n submitIdentityOptions,\n orgSelected,\n goToMainPage,\n channelSelect,\n submitAccessCode,\n resendOTP,\n goToPiiInfoPage,\n getPiiOptions,\n setPrevPage,\n setErrorPageInfo,\n goToErrorOptionsPage,\n goToEmailPhoneSearchPage,\n redirectToContactInfo,\n setLocale,\n redirectToIdentityPage,\n updateRadioChangeInfo,\n setSivField,\n verifySivData,\n getContractorOptions,\n setContractorSivField,\n verifyContractorSivData,\n contractorOrgSelected,\n contractorVerifyUserInfo,\n registrationLessFlow,\n continueRegistration\n};\n","import { handleActions } from 'redux-actions';\nimport { types } from './find-me-actions';\n\nconst {\n FIND_ME_UPDATE_FIELD,\n REDIRECT_TO_IDENTITY_PAGE_SUCCESS,\n CANCEL_FINDME_AND_CHECK_YOUR_ENTRIES,\n UPDATE_LOCALE_FIELD,\n SET_FINDME_SIV_FIELD_FAIL,SET_FINDME_SIV_FIELD_SUCCESS,\n VERIFY_SIV_DATA_SUCCESS,\n SET_CONTRACTOR_SIV_FIELD_FAIL,SET_CONTRACTOR_SIV_FIELD_SUCCESS,\n VERIFY_CONTRACTOR_SIV_DATA_SUCCESS,\n REGISTRATION_LESS_FLOW,\n CONTINUE_REGISTRATION_FLOW_SUCCESS\n} = types;\n\nexport const initialState = {\n flowType: 'SSR-REACT',\n findMeObj: {\n showDiv: false\n }\n\n};\n\nexport default handleActions(\n {\n [FIND_ME_UPDATE_FIELD]: (state, { payload }) => ({ ...state, ...payload }),\n\n [REDIRECT_TO_IDENTITY_PAGE_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n\n [UPDATE_LOCALE_FIELD]: (state, { payload }) => ({ ...state, ...payload }),\n\n [CANCEL_FINDME_AND_CHECK_YOUR_ENTRIES]: (state, { payload }) => ({ ...state, ...payload }),\n\n [SET_FINDME_SIV_FIELD_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n\n [SET_FINDME_SIV_FIELD_FAIL]: (state, { payload }) => ({ ...state, ...payload }),\n\n [VERIFY_SIV_DATA_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n\n [SET_CONTRACTOR_SIV_FIELD_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n\n [SET_CONTRACTOR_SIV_FIELD_FAIL]: (state, { payload }) => ({ ...state, ...payload }),\n\n [VERIFY_CONTRACTOR_SIV_DATA_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n\n [REGISTRATION_LESS_FLOW]: (state, { payload }) => ({ ...state, ...payload }),\n\n [CONTINUE_REGISTRATION_FLOW_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n\n },\n initialState,\n);\n","import reducer from './find-me-reducer';\nexport default reducer;\nexport { initialState } from './find-me-reducer';\nexport * from './find-me-actions';\nexport * from './find-me-constants';\n","import React from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { actions as localeActions } from '../../redux/ducks/locale';\nimport { actions as findMeActions } from '../../redux/ducks/find-me';\nimport { actions as timeoutActions } from '../../redux/ducks/timeout';\nimport { RegistrationLayout } from '../../layouts';\nimport { FindMeForm , FindMeVariantForm} from '../../components';\n\nexport const FindMeContainer = props =>
;\n\nconst mapStateToProps = ({\n locale, sendingRequest, findMe, timeout, registration\n}) => {\n const branding = {};\n branding.footer = registration.footer;\n branding.organizationLogo = registration.organizationLogo;\n branding.productLogo = registration.productLogo;\n branding.background = registration.background;\n branding.codelessVariantEnabled = registration.codelessVariantEnabled || false;\n\n return ({\n ...locale,\n ...sendingRequest,\n ...findMe,\n ...timeout,\n ...branding\n});}\n// prettier-ignore\nconst mapDispatchToProps = dispatch => bindActionCreators(\n Object.assign({}, { ...localeActions }, { ...findMeActions }, { ...timeoutActions }), dispatch,\n);\nconst mergeProps = (stateProps, dispatchProps, ownProps) => {\n const props = { ...ownProps, ...stateProps, ...dispatchProps };\n if(props.codelessVariantEnabled) \n Object.assign(props, { mainPane:
});\n else \n Object.assign(props, { mainPane:
});\n return props;\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n mergeProps,\n)(FindMeContainer);\n","import { createTypes } from 'redux-action-types';\nimport { createAction } from 'redux-actions';\nimport { SMS_NAMESPACE } from '../constants';\n\nexport const types = createTypes(\n SMS_NAMESPACE,\n 'FIND_ME_MOBILE_INFO_OPTIONS',\n 'FIND_ME_MOBILE_INFO_OPTIONS_SUCCESS',\n 'FIND_ME_MOBILE_INFO_OPTIONS_FAIL'\n);\n\nconst {\n FIND_ME_MOBILE_INFO_OPTIONS\n} = types;\n\nconst getFindMeMobileInfoSent = createAction(FIND_ME_MOBILE_INFO_OPTIONS);\n\n\nconst getFindMeMobileInfo = () => getFindMeMobileInfoSent();\n\nexport const actions = {\n getFindMeMobileInfo\n\n};\n","import { handleActions } from 'redux-actions';\nimport { types } from './find-me-mobile-actions';\n\nconst {\n FIND_ME_MOBILE_INFO_OPTIONS_SUCCESS,\n FIND_ME_MOBILE_INFO_OPTIONS_FAIL\n\n\n} = types;\n\nexport const initialState = {\n flowType: 'SSR-REACT',\n findMeMobileObj: { showDiv: false }\n\n};\n\nexport default handleActions(\n {\n [FIND_ME_MOBILE_INFO_OPTIONS_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n [FIND_ME_MOBILE_INFO_OPTIONS_FAIL]: (state, { payload }) => ({ ...state, ...payload })\n\n },\n initialState,\n);\n","import reducer from './find-me-mobile-reducer';\nexport default reducer;\nexport { initialState } from './find-me-mobile-reducer';\nexport * from './find-me-mobile-actions';\nexport * from './find-me-mobile-constants';\n","import React from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { actions as localeActions } from '../../redux/ducks/locale';\nimport { actions as findMeMobileActions } from '../../redux/ducks/find-me-mobile';\nimport { actions as timeoutActions } from '../../redux/ducks/timeout';\nimport { RegistrationLayout } from '../../layouts';\nimport { FindMeMobileForm } from '../../components';\n\nexport const FindMeMobileContainer = props =>
;\n\nconst loginTitle =
;\nconst mapStateToProps = ({\n locale, sendingRequest, findMeMobile, timeout, registration\n}) => {\n const branding = {};\n branding.footer = registration.footer;\n branding.organizationLogo = registration.organizationLogo;\n branding.productLogo = registration.productLogo;\n branding.background = registration.background;\n \n return ({\n ...locale,\n ...sendingRequest,\n ...findMeMobile,\n ...timeout,\n ...branding\n});}\n// prettier-ignore\nconst mapDispatchToProps = dispatch => bindActionCreators(\n Object.assign({}, { ...localeActions }, { ...findMeMobileActions }, { ...timeoutActions }), dispatch,\n);\nconst mergeProps = (stateProps, dispatchProps, ownProps) => {\n const props = { ...ownProps, ...stateProps, ...dispatchProps };\n\n Object.assign(props, { title: loginTitle, mainPane:
});\n\n return props;\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n mergeProps,\n)(FindMeMobileContainer);\n","import { createTypes } from 'redux-action-types';\nimport { createAction } from 'redux-actions';\nimport { SMS_NAMESPACE } from '../constants';\n\nexport const types = createTypes(\n SMS_NAMESPACE,\n 'VERIFY_IDENTITY_OPTIONS',\n 'VERIFY_IDENTITY_OPTIONS_SUCCESS',\n 'VERIFY_IDENTITY_OPTIONS_FAIL',\n 'ENABLE_ADMIN_FLOW_SUBMIT_BUTTON',\n 'CANCEL_ADMIN_FLOW_AND_CHECK_YOUR_ENTRIES',\n 'FETCH_DETAILS',\n 'SET_IDENTITY_FIELD',\n 'SET_IDENTITY_FIELD_SUCCESS',\n 'SET_IDENTITY_FIELD_FAIL',\n 'VERIFICATION_CODE_SENT',\n 'VERIFICATION_CODE_SENT_SUCCESS',\n 'VERIFY_ADMIN_OPTIONS_SUCCESS',\n 'VERIFY_ADMIN_RESEND_OTP',\n 'SET_AGREE_TERMS_CONDITION',\n 'SET_MODAL_FIELD'\n);\n\nconst {\n VERIFY_IDENTITY_OPTIONS,\n ENABLE_ADMIN_FLOW_SUBMIT_BUTTON,\n CANCEL_ADMIN_FLOW_AND_CHECK_YOUR_ENTRIES,\n FETCH_DETAILS,\n SET_IDENTITY_FIELD,\n VERIFICATION_CODE_SENT,\n VERIFY_ADMIN_OPTIONS_SUCCESS,\n VERIFY_ADMIN_RESEND_OTP,\n SET_AGREE_TERMS_CONDITION,\n SET_MODAL_FIELD\n} = types;\n\n\nconst verifyAdminInfoSent = createAction(VERIFY_IDENTITY_OPTIONS);\n\nconst enableSubmitButtonSent = createAction(ENABLE_ADMIN_FLOW_SUBMIT_BUTTON);\n\nconst cancelAndCheckYourEntriesSent = createAction(CANCEL_ADMIN_FLOW_AND_CHECK_YOUR_ENTRIES);\n\nconst fetchAdminDetailsSent = createAction(FETCH_DETAILS);\n\nconst setIdentityFieldSent = createAction(SET_IDENTITY_FIELD);\n\nconst setSubmitAccessCodeSent = createAction(VERIFICATION_CODE_SENT);\n\nconst getIdentityOptionsSucessSent = createAction(VERIFY_ADMIN_OPTIONS_SUCCESS);\n\nconst resendOtpSent = createAction(VERIFY_ADMIN_RESEND_OTP);\n\nconst setAgreeTermsConditionSent = createAction(SET_AGREE_TERMS_CONDITION);\n\nconst setCancelModalSent = createAction(SET_MODAL_FIELD);\n\nconst verifyIdentityOptions = () => verifyAdminInfoSent();\n\nconst enableSubmitButton = isFormValid => enableSubmitButtonSent({ isFormValid });\n\nconst cancelAndCheckYourEntries = () => cancelAndCheckYourEntriesSent();\n\nconst fetchAdminDetails = () => fetchAdminDetailsSent();\n\nconst setIdentityField = (fieldkey, fieldValue) => setIdentityFieldSent({ fieldkey, fieldValue });\n\nconst submitAccessCode = () => setSubmitAccessCodeSent();\n\nconst verifyAdminOptionsSucess = () => getIdentityOptionsSucessSent();\n\nconst setAgreeTermsCondition = (agreeTnC) => setAgreeTermsConditionSent({ agreeTnC });\n\nconst setCancelTnCModal = (showTnCModal) => setCancelModalSent({ showTnCModal });\n\nconst resendOTP = () => resendOtpSent();\n\nexport const actions = {\n verifyIdentityOptions,\n enableSubmitButton,\n cancelAndCheckYourEntries,\n fetchAdminDetails,\n setIdentityField,\n submitAccessCode,\n verifyAdminOptionsSucess,\n resendOTP,\n setAgreeTermsCondition,\n setCancelTnCModal\n};\n","import { handleActions } from 'redux-actions';\nimport { types } from './verify-admin-actions';\nimport { ReactGA } from '../../../util';\n\nconst {\n VERIFY_IDENTITY_OPTIONS,\n VERIFY_IDENTITY_OPTIONS_SUCCESS,\n VERIFY_IDENTITY_OPTIONS_FAIL,\n ENABLE_ADMIN_FLOW_SUBMIT_BUTTON,\n CANCEL_ADMIN_FLOW_AND_CHECK_YOUR_ENTRIES,\n FETCH_DETAILS,\n SET_IDENTITY_FIELD,\n SET_IDENTITY_FIELD_SUCCESS,\n SET_IDENTITY_FIELD_FAIL,\n VERIFICATION_CODE_SENT,\n VERIFICATION_CODE_SENT_SUCCESS,\n VERIFY_ADMIN_OPTIONS_SUCCESS,\n SET_AGREE_TERMS_CONDITION,\n SET_MODAL_FIELD,\n VERIFY_ADMIN_RESEND_OTP\n} = types;\n\nexport const initialState = {\n flowType: 'SSR-REACT',\n transactionId: '',\n backgroundImagePath: '',\n firstName: '',\n lastName: '',\n ssn4Valid: true,\n mobilePhoneValid: true,\n showVerifyCode:false\n};\n\nexport default handleActions(\n {\n\n [VERIFY_IDENTITY_OPTIONS_SUCCESS]: (state, { payload }) => ({\n ...state,\n ...payload,\n }),\n [VERIFY_IDENTITY_OPTIONS_FAIL]: (state, { payload }) => ({\n ...state,\n ...payload,\n }),\n [ENABLE_ADMIN_FLOW_SUBMIT_BUTTON]: (state, { payload }) => ({\n ...state,\n ...payload,\n }),\n [CANCEL_ADMIN_FLOW_AND_CHECK_YOUR_ENTRIES]: (state, { payload }) => ({\n ...state,\n ...payload,\n }),\n [FETCH_DETAILS]: (state, { payload }) => ({\n ...state,\n ...payload,\n }),\n [SET_IDENTITY_FIELD_SUCCESS]: (state, { payload }) => ({\n ...state,\n ...payload,\n }),\n [SET_IDENTITY_FIELD_FAIL]: (state, { payload }) => ({\n ...state,\n ...payload,\n }),\n [VERIFICATION_CODE_SENT_SUCCESS]: (state, { payload }) => ({\n ...state,\n ...payload,\n }),\n [VERIFY_ADMIN_OPTIONS_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n [SET_AGREE_TERMS_CONDITION]: (state, { payload }) => ({ ...state, ...payload }),\n [SET_MODAL_FIELD]: (state, { payload }) => ({ ...state, ...payload })\n },\n initialState,\n);\n","import reducer from './verify-admin-reducer';\n\nexport default reducer;\nexport { initialState } from './verify-admin-reducer';\n\nexport * from './verify-admin-actions';\nexport * from './verify-admin-constants';\n","import React from 'react';\nimport { bindActionCreators } from 'redux';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { actions as localeActions } from '../../redux/ducks/locale';\nimport { actions as verifyAdminActions } from '../../redux/ducks/verify-admin';\nimport { actions as timeoutActions } from '../../redux/ducks/timeout';\nimport { RegistrationLayout } from '../../layouts';\nimport { VerifyAdminForm } from '../../components';\n\nexport const VerifyAdminContainer = props =>
;\n\nconst mapStateToProps = ({\n locale, sendingRequest, verifyAdmin, timeout, registration\n}) => {\n const branding = {};\n branding.footer = registration.footer;\n branding.organizationLogo = registration.organizationLogo;\n branding.productLogo = registration.productLogo;\n branding.background = registration.background;\n \n return ({\n ...locale,\n ...sendingRequest,\n ...verifyAdmin,\n ...timeout,\n ...branding\n});}\n// prettier-ignore\nconst mapDispatchToProps = dispatch => bindActionCreators(\n Object.assign({}, { ...localeActions }, { ...verifyAdminActions }, { ...timeoutActions }), dispatch,\n);\nconst mergeProps = (stateProps, dispatchProps, ownProps) => {\n const props = { ...ownProps, ...stateProps, ...dispatchProps };\n\n Object.assign(props, { mainPane:
});\n\n return props;\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps,\n mergeProps,\n)(VerifyAdminContainer);\n","import React from 'react';\nimport { Route, Switch, Redirect } from 'react-router';\nimport {\n Loader, FindMeContainer, FindMeMobileContainer, IdentifyYourselfContainer, VerifyUserContainer, VerifyUserIdContainer, VerifyUserPinContainer, ErrorContainer, VerifyPICContainer, ContactInfoContainer, RegisterUserContainer, ConfirmationContainer, VerifyPrcContainer, ExternalVendorContainer, VerifyKbaContainer, Verify401kContainer, VerifyBevContainer,VerifyAdminContainer\n} from '../containers';\n\nconst Routes = () => (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default Routes;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ConnectedRouter } from 'connected-react-router';\nimport Routes from './routes';\n\nconst App = ({ history }) => (\n
\n \n \n);\n\nApp.propTypes = {\n history: PropTypes.shape,\n};\n\nexport default App;\n","import { createTypes, asyncAction } from 'redux-action-types';\nimport { createAction } from 'redux-actions';\nimport { NEXO_NAMESPACE } from '../../helpers/constants';\n\nexport const types = createTypes(NEXO_NAMESPACE, asyncAction('INITIAL_LOAD'));\n\nconst initialLoad = createAction(types.INITIAL_LOAD_REQUEST);\n\nexport const actions = {\n initialLoad,\n};\n","export const NEXO_NAMESPACE = '@@nexo/reducer/';\n","import { createTypes } from 'redux-action-types';\nimport { createAction } from 'redux-actions';\nimport { SMS_NAMESPACE } from '../constants';\n\nexport const types = createTypes(SMS_NAMESPACE, 'GET_TRANSACTION_DETAILS', 'GET_TRANSACTION_DETAILS_SUCCESS', 'GET_TRANSACTION_DETAILS_FAIL','UPDATE_LOCALE_FIELD','NEXO_SSR_REDIRECTION');\n\nconst { GET_TRANSACTION_DETAILS , NEXO_SSR_REDIRECTION } = types;\n\nconst getTransactionDetailsSent = createAction(GET_TRANSACTION_DETAILS);\n\nconst getNexoSSRRedirectionSent = createAction(NEXO_SSR_REDIRECTION);\n\nconst getTransactionDetails = () => getTransactionDetailsSent();\n\nconst getNexoSSRRedirection = () => getNexoSSRRedirectionSent();\n\nexport const loadTransactionDetails = () => getTransactionDetails();\n\nexport const actions = {\n getTransactionDetails,\n getNexoSSRRedirection\n};\n","import { handleActions } from 'redux-actions';\nimport { types } from './registration-actions';\n\nconst { GET_TRANSACTION_DETAILS_SUCCESS, GET_TRANSACTION_DETAILS_FAIL, NEXO_SSR_REDIRECTION } = types;\n\nexport const initialState = {\n flowType: 'SSR-REACT',\n transactionId: '',\n backgroundImagePath: '',\n sivOptions:'',\n sitekey:'',\n showExternalVendorsPage:false,\n isRecaptchaOn: false,\n orgIdForDeviceAssessment : ''\n};\n\nexport default handleActions(\n {\n [GET_TRANSACTION_DETAILS_SUCCESS]: (state, { payload }) => ({ ...state, ...payload }),\n [GET_TRANSACTION_DETAILS_FAIL]: (state, { payload }) => ({ ...state, ...payload }),\n [NEXO_SSR_REDIRECTION]: (state, { payload }) => ({ ...state, ...payload })\n },\n initialState,\n);\n","export const constants = {\n getTransactionDetailsEndPoint: '/pages/sms/ess/v3/ws/rest/pub/ssr/transaction',\n fidoLoggingEndpoint: '/pages/sms/ess/v3/ws/rest/pub/ssr/fidoLogging',\n registrationEncryption : \"#egEncryPtionV@|\",\n chooseVendors : \"/chooseVendors\",\n PATHVERIFYPICMOBILE: '/ssr/PIC/verifyUserPIC',\n PATHVERIFYCPCMOBILE: '/ssr/CPC/verifyUserRegcode',\n};","import reducer from './registration-reducer';\n\nexport default reducer;\nexport { initialState } from './registration-reducer';\n\nexport * from './registration-actions';\nexport * from './registration-constants';\n","import { actions as registrationActions, types as registrationActionTypes } from '../registration';\n\nconst { getTransactionDetails } = registrationActions;\n\nconst { GET_TRANSACTION_DETAILS_SUCCESS } = registrationActionTypes;\n\nconst initialLoadRequestActions = [getTransactionDetails];\nconst initialLoadSuccessActionTypes = [GET_TRANSACTION_DETAILS_SUCCESS];\n\nexport const constants = {\n INITIAL_LOAD_REQUEST_ACTIONS: initialLoadRequestActions,\n INITIAL_LOAD_SUCCESS_ACTION_TYPES: initialLoadSuccessActionTypes,\n};\n","import { merge, of } from 'rxjs';\nimport { mergeMap } from 'rxjs/operators';\nimport { ofType } from 'redux-observable';\n\nimport { types, constants } from '..';\n\nconst { INITIAL_LOAD_REQUEST } = types;\nconst { INITIAL_LOAD_REQUEST_ACTIONS } = constants;\n\nexport const initialLoadEpic = action$ => action$.pipe(\n ofType(INITIAL_LOAD_REQUEST),\n // prettier-ignore\n mergeMap(() => merge(\n ...INITIAL_LOAD_REQUEST_ACTIONS.map(action => of(action.apply())),\n )),\n);\n","const isBlank = str => (str || '').trim().length === 0;\nconst getDefaultErrorMessage = 'Error happened.';\n\n// prettier-ignore\nexport const getErrorMessage =\n err => err && !isBlank(err.message) ? err.message : getDefaultErrorMessage;\n","import { createTypes } from 'redux-action-types';\nimport { createAction } from 'redux-actions';\nimport { SMS_NAMESPACE } from '../constants';\n\nexport const types = createTypes(SMS_NAMESPACE, 'SENDING_REQUEST');\n\nconst { SENDING_REQUEST } = types;\n\nconst sendingRequest = (sending,flag) =>{ \n let payload = {};\n payload.sending = sending;\n payload.flag = flag;\n return createAction(SENDING_REQUEST)(payload)};\n\nexport const actions = {\n sendingRequest,\n};\n","import { handleActions } from 'redux-actions';\nimport { types } from './sending-request-actions';\n\nconst { SENDING_REQUEST } = types;\n\nexport const initialState = {\n currentlySending: false,\n errorMessage: '',\n showBusyIndicator: false\n};\n\nexport default handleActions(\n {\n // eslint-disable-next-line no-confusing-arrow\n [SENDING_REQUEST]: (state, { payload }) =>{\n let indicator = false;\n if(payload.flag!=undefined && payload.flag == true)\n indicator = true;\n \n \n return payload.sending === true ?\n { ...state, errorMessage: '', currentlySending: payload.sending,showBusyIndicator: indicator } :\n { ...state, currentlySending: payload.sending,showBusyIndicator: indicator }},\n },\n initialState,\n);\n","import reducer from './sending-request-reducer';\n\nexport default reducer;\nexport { initialState } from './sending-request-reducer';\n\nexport * from './sending-request-actions';\n","import { of } from 'rxjs';\nimport { actions } from '../../ducks/sending-request';\n\nconst { sendingRequest } = actions;\n\nexport const sendingRequestObservable = (sending, flag) => of(sendingRequest(sending, flag));\n","import { concat } from 'rxjs';\nimport { sendingRequestObservable } from './sending-request-actions';\n\n// prettier-ignore\nexport const sendingAsyncRequest = request => concat(\n sendingRequestObservable(true, true),\n request,\n sendingRequestObservable(false),\n);\n","import { createAction } from 'redux-actions';\nimport { push } from 'connected-react-router';\nimport { ofType } from 'redux-observable';\nimport {\n map, switchMap, catchError, concatMap,\n} from 'rxjs/operators';\nimport { ajax } from 'rxjs/ajax';\nimport { of } from 'rxjs';\nimport { updateIntl } from 'react-intl-redux';\nimport { types } from '../registration-actions';\nimport { getErrorMessage, sendingAsyncRequest } from '../../../helpers/epics';\nimport {\n initProfiling\n} from '../../../../util';\nimport { constants } from '../registration-constants';\nimport { WindowUtil,PendoUtil } from '../../../../util';\nimport { ReactGA } from '../../../../util';\nimport { createIntlPayload, getLocaleInitialState } from '../../../../util/locale';\nimport { actions as localeActions } from '../../locale/locale-actions';\nimport { constants as progressBarConstants } from '../../../../util/window/progress-bar-constants';\nimport { getLocaleImage } from '../../../../util/locale/locale-helper';\nimport axios from 'axios';\n\nconst {\n GET_TRANSACTION_DETAILS,\n GET_TRANSACTION_DETAILS_SUCCESS,\n GET_TRANSACTION_DETAILS_FAIL,\n UPDATE_LOCALE_FIELD,\n NEXO_SSR_REDIRECTION\n} = types;\n\nconst getTransactionDetailsSuccess = createAction(GET_TRANSACTION_DETAILS_SUCCESS);\nconst getTransactionDetailsFail = createAction(GET_TRANSACTION_DETAILS_FAIL);\nconst getNexoSSRRedirection = createAction(NEXO_SSR_REDIRECTION);\n\nconst sendFidoDetails = async ( fidoLoggingDetails, transactionId ) => {\n axios.post(constants.fidoLoggingEndpoint, fidoLoggingDetails, \n { headers: {\n\t\t\t'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': transactionId,\n } \n }\n )\n };\n\nconst transactionApi = (getState) => {\n \n let headerOptions = { 'Content-Type': 'application/json' };\n const res = WindowUtil.getInitalData();\n\n if (res.mobileFlow != undefined && res.transactionId != undefined && res.mobileFlow == \"true\") {\n headerOptions[\"X-TRANSACTIONID\"] = res.transactionId;\n }\n\n return ajax({\n url: constants.getTransactionDetailsEndPoint,\n method: 'POST',\n responseType: 'json',\n headers: headerOptions,\n body: WindowUtil.getQueryParams()\n});\n}\n\nconst handleResponse = (response, getState) => {\n var ele = document.getElementsByTagName('html')[0];\n let footer, background = {}, productLogo = {}, organizationLogo = {};\n let backgroundImage = '';\n let bgLocaleJson = '';\n\n const localeResponse = getLocaleInitialState(response.locale);\n getState.locale.locale = localeResponse.locale.locale;\n getState.intl.locale = localeResponse.intl.locale;\n getState.intl.messages = localeResponse.intl.messages;\n\n\n let brandingEvoData = {}; \n // Branding start\n const localBrandData = require('../../../../../local-branding/default-branding-prod.json');\n\n //redirection to NEXO SSR flow\n if (response.nexoPrcUrl) {\n return getNexoSSRRedirection({\n ssrDto : response,\n });\n }\n\n ReactGA.initialize(response.gaTrackingId);\n \n if (response.orgIdForDeviceAssessment &&\n (response.enableDeviceAssessmentV2 === 'true' || response.enableDeviceAssessmentV2 === true)) {\n initProfiling(response.orgIdForDeviceAssessment , response.transactionId); \n }\n if (response.brandingInfoDto !== undefined && response.brandingInfoDto.brands !== undefined) {\n footer = response.brandingInfoDto.brands.footer;\n brandingEvoData.primaryBtnColor=response.brandingInfoDto.brands.primaryBtnColor;\n brandingEvoData.primaryBtnDisabledColor=response.brandingInfoDto.brands.primaryBtnDisabledColor;\n brandingEvoData.primaryColorTitleText=response.brandingInfoDto.brands.primaryColorTitleText;\n brandingEvoData.primaryColorContentText=response.brandingInfoDto.brands.primaryColorContentText;\n brandingEvoData.primaryColorLinks=response.brandingInfoDto.brands.primaryColorLinks;\n brandingEvoData.btnBorderRadius=response.brandingInfoDto.brands.btnBorderRadius;\n brandingEvoData.primaryFont=response.brandingInfoDto.brands.primaryFont;\n\tbrandingEvoData.secondaryBtnColor=response.brandingInfoDto.brands.secondaryBtnColor;\n background = response.brandingInfoDto.brands.background;\n productLogo = response.brandingInfoDto.brands.productLogo;\n if(response.brandingInfoDto.brands.organizationLogo !== undefined ){\n if( response.brandingInfoDto.brands.organizationLogo.default !== \"\" || response.logoUrl.indexOf('OrganizationLogoServlet') !== -1 ){ \n organizationLogo = response.brandingInfoDto.brands.organizationLogo;\n }\n else {\n organizationLogo.default = response.logoUrl || \"\";\n organizationLogo.alignment = response.brandingInfoDto.brands.organizationLogo.alignment; \n }\n }\n //setting locale list based on footer values\n WindowUtil.setBrandingLocaleList(footer);\n \n ReactGA.sendevent('SSR_Flow', 'BRANDING_DEFAULT', 'NO');\n\n }\n else {\n // setting year value dynamically\n const currentYear = WindowUtil.getCurrentYear() || \"2020\";\n let text = null;\n localBrandData.brands.footer.items.map((value, key) => {\n if (value.id == \"copyright\") {\n text = value.component.text;\n Object.keys(text).forEach((componentKey) => {\n text[componentKey] = text[componentKey].replace(\"{year}\", currentYear);\n });\n localBrandData.brands.footer.items[key].component.text = text;\n }\n });\n\n background.default = response.backgroundUrl;\n footer = localBrandData.brands.footer;\n productLogo.default = response.productLogoUrl || 'default';\n productLogo.alignment = \"RIGHT\";\n organizationLogo.default = response.logoUrl;\n organizationLogo.alignment = \"LEFT\";\n ReactGA.sendevent('SSR_Flow', 'BRANDING_DEFAULT', 'YES');\n\n }\n\n // setting text message terms and condition\n\n footer.terms = localBrandData.terms;\n \n // mobile browser footer \n if(!response.mobileFlow && window.innerWidth < 479){\n footer.items.map((value, key) => {\n if (value.id == \"copyright\") {\n footer.copyRightValue = value;\n }\n });\n\n //check for mobileBrowser\n footer.showFooterContent = true;\n footer.cancelurl = response.returnUrl;\n }\n\n if (!response.mobileFlow) {\n footer.items.map((value, key) => {\n if (value.component.type == \"CO_BROWSE_COMPONENT\") {\n WindowUtil.loadCobrowse(); \n }\n });\n }\n\n /*if(response.cssBrandingEnabledFlag && !response.mobileFlow ) {\n WindowUtil.setBrandingParameters(brandingEvoData,response.cssBrandingEnabledFlag);\n }*/\n\n if(response.pendoEnabled != undefined && response.pendoEnabled === true){\n PendoUtil.pendoInitialize(response.pendoApiKey,response.transactionId)\n }\n\n // Branding end\n\n // setting background start\n\n //Check mobile flow\n if (response.mobileFlow || window.innerWidth<479) {\n var whileBG = `background:#f8f8ff;`;\n ele.setAttribute(\"style\", whileBG);\n }\n else if (background) {\n bgLocaleJson = background.i18n || '';\n backgroundImage =\n bgLocaleJson === '' ?\n background.default :\n getLocaleImage(bgLocaleJson, localeResponse.locale.locale);\n if (backgroundImage !== undefined) {\n const backgroundHtml = `background-image: url(${backgroundImage}); background-size: cover;`;\n ele.setAttribute('style', backgroundHtml);\n }\n \n }\n\n // setting background end\n\n if(response.fidoEnabled === true) \n {\n let fidoLoggingDetails = {};\n fidoLoggingDetails.availableForFIDO = WindowUtil.FIDOAuthenticationCheck();\n let device = \"DESKTOP_BROWSER\";\n if(response.mobileFlow === true){\n device = \"MOBILE_APP\";\n }\n else if(response.mobileFlow === false && window.innerWidth <= 479){\n device = \"MOBILE_BROWSER\";\n }\n fidoLoggingDetails.device = device;\n sendFidoDetails(fidoLoggingDetails,response.transactionId);\n }\n\n if (response.audioEyeEnabled) {\n WindowUtil.appendAudieoEyeJs();\n }\n\n ReactGA.sendevent('SSR_Flow', 'SELECTED_LOCALE', response.locale);\n\n response.locale = localeResponse.locale.locale;\n\n ReactGA.sendevent('SSR_Flow', 'RETURN_URL', response.returnUrl);\n\n // Setting flow type for progress bar\n getState.registration.currentStage = WindowUtil.getProgressBarViewId(response.viewId);\n \n //setting autofocus type\n WindowUtil.setAutoFocusOff(response.mobileFlow);\n \n if (response.mobileFlow) {\n if (response.code == 'INVALID_REGCODE') {\n //Invalid input from mobile\n ReactGA.sendevent('MOBILE_SSR', 'INVALID_MOBILE_INPUT', 'Invalid Input Data');\n }\n\n if (response.orgIdForDeviceAssessment != '' && response.daUrl != undefined) {\n WindowUtil.deviceAssessment(response.orgIdForDeviceAssessment, response.daUrl);\n }\n\n if (response.regCodeData != undefined && response.regCodeData != '') {\n \n PendoUtil.pendoIdentify(response.orgCd,response.regCodeData.companyName,response.transactionId)\n PendoUtil.pendoVisitorIdUpdate(response.associateId)\n\n if (response.regCodeData.sivOptions != null && response.regCodeData.sivOptions.isSivPIC) {\n ReactGA.pageview(constants.PATHVERIFYPICMOBILE);\n ReactGA.sendevent('MOBILE_SSR', 'MOBILE_INPUT', 'PRC');\n } else {\n ReactGA.pageview(constants.PATHVERIFYCPCMOBILE);\n ReactGA.sendevent('MOBILE_SSR', 'MOBILE_INPUT', 'ORC');\n if (response.recaptchaOn != undefined && response.recaptchaOn == true) {\n WindowUtil.recaptchaCall();\n }\n }\n if (response.regCodeData.showExternalVendorsPage) {\n return getTransactionDetailsSuccess({\n transactionId: response.transactionId,\n backgroundImagePath: response.backgroundUrl,\n viewId: constants.chooseVendors,\n returnUrl: response.returnUrl,\n gaTrackingId: response.gaTrackingId,\n mobileFlow: response.mobileFlow,\n sivViewId: response.viewId,\n sivOptions: response.regCodeData.sivOptions,\n showExternalVendorsPage: response.regCodeData.showExternalVendorsPage,\n extVendorList: response.regCodeData.extVendorList,\n companyName: response.regCodeData.companyName,\n message: response.message,\n code: response.code,\n title: response.title,\n sitekey: response.sitekey,\n isRecaptchaOn: response.recaptchaOn,\n orgIdForDeviceAssessment: response.orgIdForDeviceAssessment,\n locale: response.locale,\n progressBarEnabled: response.progressBarEnabled,\n codelessVariantEnabled: response.codelessVariantEnabled,\n footer,\n contractorEnableFlag: response.contractorEnableFlag,\n runAdminFlow: response.runAdminFlow,\n riskSessionId: response.riskSessionId,\n organizationId: response.organizationId,\n payrollPlusTextChange: response.payrollPlusTextChange\n });\n } else {\n return getTransactionDetailsSuccess({\n transactionId: response.transactionId,\n backgroundImagePath: response.backgroundUrl,\n returnUrl: response.returnUrl,\n gaTrackingId: response.gaTrackingId,\n mobileFlow: response.mobileFlow,\n sivViewId: response.viewId,\n viewId: response.viewId,\n sivOptions: response.regCodeData.sivOptions,\n showExternalVendorsPage: false,\n extVendorList: '',\n companyName: response.regCodeData.companyName,\n message: response.message,\n code: response.code,\n title: response.title,\n sitekey: response.sitekey,\n isRecaptchaOn: response.recaptchaOn,\n orgIdForDeviceAssessment: response.orgIdForDeviceAssessment,\n locale: response.locale,\n progressBarEnabled: response.progressBarEnabled,\n codelessVariantEnabled: response.codelessVariantEnabled,\n footer,\n contractorEnableFlag: response.contractorEnableFlag,\n runAdminFlow: response.runAdminFlow,\n riskSessionId: response.riskSessionId,\n organizationId: response.organizationId,\n payrollPlusTextChange: response.payrollPlusTextChange\n });\n }\n\n } else {\n return getTransactionDetailsSuccess({\n transactionId: response.transactionId,\n backgroundImagePath: response.backgroundUrl,\n returnUrl: response.returnUrl,\n gaTrackingId: response.gaTrackingId,\n mobileFlow: response.mobileFlow,\n sivViewId: response.viewId,\n viewId: response.viewId,\n sivOptions: '',\n showExternalVendorsPage: false,\n extVendorList: '',\n companyName: '',\n message: response.message,\n code: response.code,\n title: response.title,\n sitekey: response.sitekey,\n isRecaptchaOn: response.recaptchaOn,\n orgIdForDeviceAssessment: response.orgIdForDeviceAssessment,\n locale: response.locale,\n progressBarEnabled: response.progressBarEnabled,\n codelessVariantEnabled: response.codelessVariantEnabled,\n footer,\n contractorEnableFlag: response.contractorEnableFlag,\n runAdminFlow: response.runAdminFlow,\n riskSessionId: response.riskSessionIdt,\n organizationId: response.organizationId,\n payrollPlusTextChange: response.payrollPlusTextChange\n });\n }\n }\n if (response.is401k != null && response.is401k) {\n return getTransactionDetailsSuccess({\n transactionId: response.transactionId,\n backgroundImagePath: response.backgroundUrl,\n viewId: response.viewId,\n returnUrl: response.returnUrl,\n gaTrackingId: response.gaTrackingId,\n mobileFlow: response.mobileFlow,\n sivViewId: response.viewId,\n sivOptions: response.regCodeData.sivOptions,\n companyName: response.regCodeData.companyName,\n message: response.message,\n code: response.code,\n title: response.title,\n sitekey: response.sitekey,\n isRecaptchaOn: response.recaptchaOn,\n orgIdForDeviceAssessment: response.orgIdForDeviceAssessment,\n locale: response.locale,\n progressBarEnabled: response.progressBarEnabled,\n background,\n productLogo,\n organizationLogo,\n footer,\n riskSessionId: response.riskSessionId,\n organizationId: response.organizationId,\n payrollPlusTextChange: response.payrollPlusTextChange\n });\n }\n\n let isDeviceAssessmentDone = false;\n if (response.viewId === '/findMe') {\n if (response.orgIdForDeviceAssessment != '' && response.daUrl != undefined) {\n WindowUtil.deviceAssessment(response.orgIdForDeviceAssessment, response.daUrl);\n isDeviceAssessmentDone = true;\n }\n }\n\n return getTransactionDetailsSuccess({\n transactionId: response.transactionId,\n backgroundImagePath: response.backgroundUrl,\n viewId: response.viewId,\n returnUrl: response.returnUrl,\n gaTrackingId: response.gaTrackingId,\n mobileFlow: response.mobileFlow,\n sivViewId: response.viewId,\n sivOptions: '',\n showExternalVendorsPage: '',\n extVendorList: '',\n message: response.message,\n code: response.code,\n title: response.title,\n sitekey: response.sitekey,\n isRecaptchaOn: response.recaptchaOn,\n orgIdForDeviceAssessment: response.orgIdForDeviceAssessment,\n locale: response.locale,\n isEligibleForCodelessFlow: response.eligibleForCodelessFlow,\n isDeviceAssessmentDone: isDeviceAssessmentDone,\n embeddedPrcFlow: response.embeddedPrcFlow,\n progressBarEnabled: response.progressBarEnabled,\n background,\n productLogo,\n organizationLogo,\n footer,\n codelessVariantEnabled: response.codelessVariantEnabled,\n contractorEnableFlag: response.contractorEnableFlag,\n runAdminFlow: response.runAdminFlow,\n riskSessionId: response.riskSessionId,\n organizationId: response.organizationId,\n payrollPlusTextChange: response.payrollPlusTextChange\n });\n};\nconst getTransactionDetails = (getState) =>\n transactionApi(getState)\n .pipe(map(response => handleResponse(response.response, getState)),\n catchError(err => [getTransactionDetailsFail(getErrorMessage(err))]));\n\nconst updateLocaleField = (getState) =>\n handleLocaleField(getState)\n .pipe(map(getTransactionDetailsSuccess));\n\nconst handleLocaleField = (getState) => {\n let locale = getState.locale.locale;\n return of({\n locale\n });\n}\n\n/** ************NEXO SSR redirection************* */\nconst redirectToNexoSsrFlow = getState => handleRedirectToNexoSSr(getState).pipe(map(handleRedirectToNexoSSrwRedirect));\n\nconst handleRedirectToNexoSSr = (getState) => {\n const state = getState;\n\n return of({\n state,\n });\n};\n\nconst handleRedirectToNexoSSrwRedirect = (getState) => {\n getState = getState.state;\n\n window.location = getState.registration.ssrDto.nexoPrcUrl;\n};\n\nexport const getTransactionDetailsEpic = (action$, state) => action$.pipe(\n ofType(GET_TRANSACTION_DETAILS),\n switchMap(action => sendingAsyncRequest(getTransactionDetails(state.value))));\n\n\nexport const updateLocaleEpic = (action$, state) => action$.pipe(\n ofType(UPDATE_LOCALE_FIELD),\n switchMap(action => sendingAsyncRequest(updateLocaleField(state.value))));\n\n\nexport const startTransactionDetailsSuccessEpic = (action$, state) => action$.pipe(\n ofType(GET_TRANSACTION_DETAILS_SUCCESS),\n switchMap(action$ => of(push(state.value.registration.viewId))));\n\nexport const startTransactionDetailsFailureEpic = action$ => action$.pipe(\n ofType(GET_TRANSACTION_DETAILS_FAIL),\n switchMap(action$ => of(push('/error'))));\n\nexport const ssrRedirectionEpic = (action$, state) => action$.pipe(\n ofType(NEXO_SSR_REDIRECTION),\n switchMap(action => sendingAsyncRequest(redirectToNexoSsrFlow(state.value))),\n);","import { createAction } from 'redux-actions';\nimport { push } from 'connected-react-router';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport {\n map, switchMap, catchError, concatMap,\n} from 'rxjs/operators';\nimport { ajax } from 'rxjs/ajax';\nimport { throwError, of } from 'rxjs';\nimport { ofType } from 'redux-observable';\nimport { getErrorMessage, sendingAsyncRequest } from '../../../helpers/epics';\nimport { constants } from '../identify-yourself-constants';\nimport { types } from '../identify-yourself-actions';\nimport { ReactGA, WindowUtil, PendoUtil } from '../../../../util';\nimport Crypto from 'crypto-js';\nimport { constants as registrationConstants } from '../../registration/registration-constants';\nimport { constants as progressBarConstants } from '../../../../util/window/progress-bar-constants';\n\nconst {\n GET_SIV_OPTIONS,\n GET_SIV_OPTIONS_SUCCESS,\n GET_SIV_OPTIONS_FAIL,\n SET_SIV_FIELD,\n SET_SIV_FIELD_SUCCESS,\n SET_SIV_FIELD_FAIL,\n VERIFY_SIV_OPTIONS,\n VERIFY_SIV_OPTIONS_SUCCESS,\n VERIFY_SIV_OPTIONS_FAIL,\n CANCEL_AND_CHECK_YOUR_ENTRIES,\n NAVIGATE_TO_BEV,\n NAVIGATE_TO_BEV_SUCCESS\n} = types;\n\nconst getOrcSivOptionsSuccess = createAction(GET_SIV_OPTIONS_SUCCESS);\nconst getOrcSivOptionsFail = createAction(GET_SIV_OPTIONS_FAIL);\nconst setSivFieldSuccessSent = createAction(SET_SIV_FIELD_SUCCESS);\nconst setSivFieldFailSent = createAction(SET_SIV_FIELD_FAIL);\nconst verifySivOptionsSuccessSent = createAction(VERIFY_SIV_OPTIONS_SUCCESS);\nconst verifySivOptionsFailSent = createAction(VERIFY_SIV_OPTIONS_FAIL);\nconst cancelAndCheckYourEntriesSent = createAction(CANCEL_AND_CHECK_YOUR_ENTRIES);\nconst navigateToBevSuccess = createAction(NAVIGATE_TO_BEV_SUCCESS);\nconst isBlank = str => (str || '').trim().length === 0;\n\nconst sivOptionsApi = (ajax, transactionId) => ajax({\n url: constants.getSivOptionsDetailsEndPoint,\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': transactionId,\n }\n});\n\nconst handleResponse = (response, getState) => {\n \n //Capital One changes-------start\n let isErrorForModal = false;\n let errorCode = \"\";\n let isMobile = response.isMobile;\n let showModalTitle = response.title;\n let showModalMessage = response.message;\n \n if (response.code) {\n showModalTitle = response.title;\n showModalMessage = response.message;\n errorCode = response.code;\n isErrorForModal = true;\n // Setting flow type for progress bar \n getState.registration.currentStage = WindowUtil.getProgressBarViewId(progressBarConstants.verifyUserViewId);\n }\n \n let showModalError = isErrorForModal;\n //Capital One changes-------end\n\n // progress bar start\n let progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Identification, getState);\n // progress bar end\n \n PendoUtil.pendoIdentify(response.orgCd,response.regCodeData.companyName,getState.registration.transactionId)\n PendoUtil.pendoVisitorIdUpdate(response.associateId)\n\n return getOrcSivOptionsSuccess({\n sivOptions: response.regCodeData.sivOptions,\n clientName: response.regCodeData.companyName,\n progressBarData,\n response,\n showModalError,\n showModalTitle,\n showModalMessage,\n errorCode,\n isMobile,\n initialOptionFlag : true,\n initialRadioFlag:true\n });\n}\n\nconst sivOptionsFromState = (stateObj, recaptchaOn) => of({\n sivOptions: stateObj,\n isRecaptchaOn: recaptchaOn\n});\n\nconst handleStateSivResponse = (getState, response) => {\n const isMobile = getState.registration.mobileFlow;\n \n let clientName = getState.registration.companyName || getState.verifyUser.companyName;\n // progress bar start\n let progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Identification, getState);\n // progress bar end\n return getOrcSivOptionsSuccess({\n sivOptions: response.sivOptions,\n isMobile,\n isRecaptchaOn: response.isRecaptchaOn,\n clientName, progressBarData,\n initialOptionFlag : true,\n initialRadioFlag:true\n });\n}\n\nconst getSivOptions = (ajax, getState) => {\n const isMobile = getState.registration.mobileFlow;\n clearFieldValues(getState);\n getState.findMe.sendRedirect = false;\n if (getState.registration.sitekey != undefined && getState.registration.sitekey != '') {\n getState.identifyYourself.sitekey = getState.registration.sitekey;\n getState.identifyYourself.isRecaptchaOn = getState.registration.isRecaptchaOn;\n getState.identifyYourself.locale = getState.registration.locale;\n }\n if (getState.registration.sivOptions != '' && getState.registration.sivOptions != undefined) {\n return sivOptionsFromState(getState.registration.sivOptions, getState.registration.isRecaptchaOn).pipe(\n map(response => handleStateSivResponse(getState, response)),\n catchError(err => [getOrcSivOptionsFail(getErrorMessage(err))]));\n } else if (getState.verifyUser.sivOptions != '' && getState.verifyUser.sivOptions != undefined) {\n return sivOptionsFromState(getState.verifyUser.sivOptions, getState.verifyUser.isRecaptchaOn).pipe(\n map(response => handleStateSivResponse(getState, response)),\n catchError(err => [getOrcSivOptionsFail(getErrorMessage(err))]));\n } else {\n return sivOptionsApi(ajax, getState.registration.transactionId).pipe(\n map(response => { response.response.isMobile = isMobile; return handleResponse(response.response, getState) }),\n catchError(err => [getOrcSivOptionsFail(getErrorMessage(err))]));\n }\n}\n\nconst clearFieldValues = (getState) => {\n getState.identifyYourself.firstName = '';\n getState.identifyYourself.lastName = '';\n getState.identifyYourself.ssn = '';\n getState.identifyYourself.ssn4 ='';\n getState.identifyYourself.empId = '';\n getState.identifyYourself.wfnId = '';\n getState.identifyYourself.fullDay = '';\n getState.identifyYourself.fullMonth = '';\n getState.identifyYourself.fullYear = '';\n getState.identifyYourself.day = '';\n getState.identifyYourself.month = '';\n getState.identifyYourself.year = '';\n}\n{/***********************************************Validate and set siv field values****************************************************/ }\n\nconst setSivField = (payload, getState) =>\n validateAndSetSivField(payload, getState).pipe(\n map(setSivFieldSuccessSent),\n catchError(err => [handleSetSivFieldFailResponse(payload, getErrorMessage(err))])\n );\nconst validateAndSetSivField = (payload, getState) => {\n const identifyYourself = getState.identifyYourself;\n\n switch (payload.fieldkey) {\n case constants.RADIO: {\n return of({\n initialOptionFlag : false,\n radioValue : payload.fieldValue\n });\n }\n case constants.sivOptionIds.siv_firstName: {\n const firstNameRegEx = new RegExp(identifyYourself.sivOptions.availableSivOptions.siv_firstname.regExp);\n\n if (isBlank(payload.fieldValue) || firstNameRegEx.test(payload.fieldValue)) {\n return of({\n firstName: payload.fieldValue,\n firstNameValid: true,\n initialRadioFlag:false\n });\n }\n return throwError(new Error(identifyYourself.sivOptions.availableSivOptions.siv_firstname.invalidMessage));\n }\n case constants.sivOptionIds.siv_lastName: {\n const lastNameRegEx = new RegExp(identifyYourself.sivOptions.availableSivOptions.siv_lastname.regExp);\n\n if (isBlank(payload.fieldValue) || lastNameRegEx.test(payload.fieldValue)) {\n return of({\n lastName: payload.fieldValue,\n lastNameValid: true,\n initialRadioFlag:false\n });\n }\n return throwError(new Error(identifyYourself.sivOptions.availableSivOptions.siv_lastname.invalidMessage));\n }\n case constants.sivOptionIds.siv_ssn: {\n const ssnRegEx = new RegExp(identifyYourself.sivOptions.availableSivOptions.siv_ssn.regExp);\n\n if (isBlank(payload.fieldValue) || ssnRegEx.test(payload.fieldValue)) {\n var replacedSSN = payload.fieldValue.replace(/-/g, \"\");\n if (identifyYourself.sivOptions.sivCPCOr === true) {\n return of({\n ssn: replacedSSN,\n ssnValid: true,\n empId: '',\n wfnId: '',\n ssn4: '',\n });\n } else {\n return of({\n ssn: replacedSSN,\n ssnValid: true,\n });\n }\n }\n return throwError(new Error(identifyYourself.sivOptions.availableSivOptions.siv_ssn.invalidMessage));\n }\n case constants.sivOptionIds.siv_empid: {\n const empIdRegEx = new RegExp(identifyYourself.sivOptions.availableSivOptions.siv_empid.regExp);\n\n if (isBlank(payload.fieldValue) || empIdRegEx.test(payload.fieldValue)) {\n if (identifyYourself.sivOptions.sivCPCOr === true) {\n return of({\n empId: payload.fieldValue,\n empIdValid: true,\n ssn: '',\n wfnId: '',\n ssn4: ''\n });\n } else {\n return of({\n empId: payload.fieldValue,\n empIdValid: true\n });\n }\n }\n return throwError(new Error(identifyYourself.sivOptions.availableSivOptions.siv_empid.invalidMessage));\n }\n case constants.sivOptionIds.siv_wfnid: {\n const wfnIdRegEx = new RegExp(identifyYourself.sivOptions.availableSivOptions.siv_wfnid.regExp);\n\n if (isBlank(payload.fieldValue) || wfnIdRegEx.test(payload.fieldValue)) {\n if (identifyYourself.sivOptions.sivCPCOr === true) {\n return of({\n wfnId: payload.fieldValue,\n wfnIdValid: true,\n ssn: '',\n empId: '',\n ssn4: ''\n });\n } else {\n return of({\n wfnId: payload.fieldValue,\n wfnIdValid: true\n });\n }\n\n }\n return throwError(new Error(identifyYourself.sivOptions.availableSivOptions.siv_wfnid.invalidMessage));\n }\n case constants.sivOptionIds.siv_ssn4: {\n const ssn4RegEx = new RegExp(identifyYourself.sivOptions.availableSivOptions.siv_ssn4.regExp);\n\n if (isBlank(payload.fieldValue) || ssn4RegEx.test(payload.fieldValue)) {\n if (identifyYourself.sivOptions.sivCPCOr === true) {\n return of({\n ssn4: payload.fieldValue,\n ssn4Valid: true,\n ssn: '',\n wfnId: '',\n empId: ''\n });\n } else {\n return of({\n ssn4: payload.fieldValue,\n ssn4Valid: true\n });\n }\n\n }\n return throwError(new Error(identifyYourself.sivOptions.availableSivOptions.siv_ssn4.invalidMessage));\n }\n case constants.sivOptionIds.siv_dob_month: {\n return of({\n month: payload.fieldValue,\n day: ''\n });\n }\n case constants.sivOptionIds.siv_dob_day: {\n return of({\n day: payload.fieldValue,\n fullDay: '',\n fullMonth: '',\n fullYear: ''\n });\n }\n case constants.sivOptionIds.siv_dob_year: {\n return of({ year: payload.fieldValue });\n }\n case constants.sivOptionIds.siv_dob_full_month: {\n return of({\n fullMonth: payload.fieldValue,\n fullDay: ''\n });\n }\n case constants.sivOptionIds.siv_dob_full_day: {\n return of({\n fullDay: payload.fieldValue,\n day: '',\n month: ''\n });\n }\n case constants.sivOptionIds.siv_dob_full_year: {\n return of({ fullYear: payload.fieldValue });\n }\n case constants.sivOptionIds.siv_zipcode: {\n const zipcodeRegEx = new RegExp(identifyYourself.sivOptions.availableSivOptions.siv_zipcode.regExp);\n\n if (isBlank(payload.fieldValue) || zipcodeRegEx.test(payload.fieldValue)) {\n return of({\n zipcode: payload.fieldValue,\n zipcodeValid: true,\n });\n }\n return throwError(new Error(identifyYourself.sivOptions.availableSivOptions.siv_zipcode.invalidMessage));\n }\n default: {\n return throwError(new Error(constants.TROUBLE_SHOOT_MSG));\n }\n }\n};\n\nconst handleSetSivFieldFailResponse = (payload, errorMessage) => {\n switch (payload.fieldkey) {\n case constants.sivOptionIds.siv_firstName:\n return setSivFieldFailSent({\n errorMessageFN: errorMessage,\n firstName: payload.fieldValue,\n firstNameValid: false,\n sivOptionsValidated: false,\n });\n case constants.sivOptionIds.siv_lastName:\n return setSivFieldFailSent({\n errorMessageLN: errorMessage,\n lastName: payload.fieldValue,\n lastNameValid: false,\n sivOptionsValidated: false,\n });\n case constants.sivOptionIds.siv_ssn:\n return setSivFieldFailSent({\n errorMessageSsn: errorMessage,\n ssn: payload.fieldValue,\n ssnValid: false,\n sivOptionsValidated: false\n });\n case constants.sivOptionIds.siv_empid:\n return setSivFieldFailSent({\n errorMessageEmpId: errorMessage,\n empId: payload.fieldValue,\n empIdValid: false,\n sivOptionsValidated: false\n });\n case constants.sivOptionIds.siv_wfnid:\n return setSivFieldFailSent({\n errorMessageWfnId: errorMessage,\n wfnId: payload.fieldValue,\n wfnIdValid: false,\n sivOptionsValidated: false\n });\n case constants.sivOptionIds.siv_ssn4:\n return setSivFieldFailSent({\n errorMessageSsn4: errorMessage,\n ssn4: payload.fieldValue,\n ssn4Valid: false,\n sivOptionsValidated: false\n });\n case constants.sivOptionIds.siv_zipcode:\n return setSivFieldFailSent({\n errorMessageZipcode: errorMessage,\n zipcode: payload.fieldValue,\n zipcodeValid: false,\n sivOptionsValidated: false,\n });\n default: {\n return setSivFieldFailSent({\n errorMessage,\n });\n }\n }\n};\n\n{/**************************************************Verify SIV options****************************************************/ }\n\nconst submitSivOptions = (ajax, getState) =>\n verifySivOptions(ajax, getState).pipe(\n map(response => handleSubmitSivResponse(response.response, getState)),\n catchError(err => handleSubmitSivResponseFail(getState, getErrorMessage(err)))\n );\n\nconst verifySivOptions = (ajax, getState) => {\n const identifyYourself = getState.identifyYourself;\n let gaCategory = identifyYourself.gaCategory;\n const sivOptions = identifyYourself.sivOptions;\n\n var uiOptionsMap = {};\n var sivGroups = '';\n if (sivOptions.identifierTypes.length === 1) {\n sivGroups = sivOptions.identifierTypes[0];\n }\n\n var combinationSb = '';\n if (sivOptions.identifierTypes.length > 1) {\n let separator = \"_\";\n if (sivOptions.availableSivOptions.siv_empid && identifyYourself.empId != '' && !sivOptions.availableSivOptions.siv_wfnid) {\n combinationSb = combinationSb.concat('EMPID');\n combinationSb = combinationSb.concat(separator);\n } else if (!sivOptions.availableSivOptions.siv_empid && sivOptions.availableSivOptions.siv_wfnid && identifyYourself.wfnId != '') {\n combinationSb = combinationSb.concat('WFNID');\n combinationSb = combinationSb.concat(separator);\n }\n\n if (sivOptions.availableSivOptions.siv_ssn && identifyYourself.ssn != '' && identifyYourself.ssn4 === '') {\n combinationSb = combinationSb.concat('SSN');\n combinationSb = combinationSb.concat(separator);\n } else if (identifyYourself.ssn === '' && sivOptions.availableSivOptions.siv_ssn4 && identifyYourself.ssn4 != '') {\n combinationSb = combinationSb.concat('SSN4');\n combinationSb = combinationSb.concat(separator);\n }\n\n if (sivOptions.availableSivOptions.siv_fulldateofbirth && identifyYourself.fullDay != '' && identifyYourself.day === '') {\n combinationSb = combinationSb.concat('FDOB');\n combinationSb = combinationSb.concat(separator);\n } else if (identifyYourself.fullDay === '' && sivOptions.availableSivOptions.siv_dateofbirth && identifyYourself.day != '') {\n combinationSb = combinationSb.concat('PDOB');\n combinationSb = combinationSb.concat(separator);\n }\n\n let size = combinationSb.length - 1;\n if (combinationSb.lastIndexOf(separator) == size) {\n combinationSb = combinationSb.substring(0, size);\n }\n sivGroups = combinationSb;\n }\n \n if (sivOptions.availableSivOptions.siv_firstname && identifyYourself.firstName != '') {\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'FIRST_NAME');\n uiOptionsMap.siv_firstname = identifyYourself.firstName;\n sivOptions.availableSivOptions.siv_firstname.idenDataValue = identifyYourself.firstName;\n }\n if (sivOptions.availableSivOptions.siv_lastname && identifyYourself.lastName != '') {\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'LAST_NAME');\n uiOptionsMap.siv_lastname = identifyYourself.lastName;\n sivOptions.availableSivOptions.siv_lastname.idenDataValue = identifyYourself.lastName;\n }\n if (sivOptions.availableSivOptions.siv_empid && identifyYourself.empId != '') {\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'EMP_ID');\n uiOptionsMap.siv_empid = identifyYourself.empId;\n sivOptions.availableSivOptions.siv_empid.idenDataValue = identifyYourself.empId;\n }\n if (sivOptions.availableSivOptions.siv_wfnid && identifyYourself.wfnId != '') {\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'WFN');\n uiOptionsMap.siv_wfnid = identifyYourself.wfnId;\n sivOptions.availableSivOptions.siv_wfnid.idenDataValue = identifyYourself.wfnId;\n }\n if (sivOptions.availableSivOptions.siv_ssn && identifyYourself.ssn != '') {\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'SSN');\n var encryptedSsn = Crypto.AES.encrypt(identifyYourself.ssn, registrationConstants.registrationEncryption);\n uiOptionsMap.siv_ssn = encryptedSsn + '';\n sivOptions.availableSivOptions.siv_ssn.idenDataValue = identifyYourself.ssn;\n }\n if (sivOptions.availableSivOptions.siv_ssn4 && identifyYourself.ssn4 != '') {\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'SSN4');\n var encryptedSsn4 = Crypto.AES.encrypt(identifyYourself.ssn4, registrationConstants.registrationEncryption);\n uiOptionsMap.siv_ssn4 = encryptedSsn4 + '';\n sivOptions.availableSivOptions.siv_ssn4.idenDataValue = identifyYourself.ssn4;\n }\n if (sivOptions.availableSivOptions.siv_dateofbirth && identifyYourself.day != '') {\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'DOB');\n var inputmonthId = sivOptions.sivOptionsCalenderItems.monthItems.indexOf(identifyYourself.month) + 1;\n inputmonthId = ('0' + inputmonthId).slice(-2);\n var fulldob = '' + inputmonthId + identifyYourself.day;\n uiOptionsMap.siv_dateofbirth = fulldob;\n sivOptions.availableSivOptions.siv_dateofbirth.idenDataValue = fulldob;\n }\n if (sivOptions.availableSivOptions.siv_fulldateofbirth && identifyYourself.fullDay != '') {\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'FULL_DOB');\n var inputmonthId = sivOptions.sivOptionsCalenderItems.fullMonthItems.indexOf(identifyYourself.fullMonth) + 1;\n inputmonthId = ('0' + inputmonthId).slice(-2);\n var fulldob = '' + inputmonthId + identifyYourself.fullDay + identifyYourself.fullYear;\n uiOptionsMap.siv_fulldateofbirth = fulldob;\n sivOptions.availableSivOptions.siv_fulldateofbirth.idenDataValue = fulldob;\n }\n\n if (sivOptions.availableSivOptions.siv_zipcode && identifyYourself.zipcode != '') {\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'ZIPCODE');\n uiOptionsMap.siv_zipcode = identifyYourself.zipcode;\n sivOptions.availableSivOptions.siv_zipcode.idenDataValue = identifyYourself.zipcode;\n }\n \n return ajax({\n url: constants.sendOrcSivOptionsDetailsEndPoint,\n body: {\n 'sivPIC': sivOptions.sivPIC,\n 'uiSivOptionOptions': uiOptionsMap,\n 'recaptchaResponse': identifyYourself.recaptchaResponse,\n 'identifierType': sivGroups,\n 'identifierTypes': sivOptions.identifierTypes\n },\n method: 'POST',\n responseType: 'json',\n headers: {\n 'Content-Type': 'application/json',\n \"cache-control\": \"no-cache\",\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n });\n};\n\nconst handleSubmitSivResponse = (response, getState) => {\n let gaCategory = getState.identifyYourself.gaCategory;\n \n if (response.code != null && response.code == constants.HAS_BEVPRODUCT) {\n PendoUtil.pendoIdentify(response.orgCd,getState.identifyYourself.clientName,getState.registration.transactionId)\n PendoUtil.pendoVisitorIdUpdate(response.associateId)\n ReactGA.sendevent(gaCategory, 'IDENTIFY_YOURSELF', constants.HAS_BEVPRODUCT);\n return verifySivOptionsFailSent({\n showModalWhenBEVData: true,\n errorMsgTitle: response.title,\n welcomeMsg: response.message,\n errorCode: response.code,\n errorTitle: '',\n ssn4: '',\n ssn: '',\n recaptchaSuccess: true,\n viewId: response.viewId\n });\n }\n if (response.code != null && response.code == constants.ALREADY_REGISTERED) {\n ReactGA.sendevent(gaCategory, 'IDENTIFY_YOURSELF', constants.ALREADY_REGISTERED);\n console.log('TRUE;response.code=' + response.code);\n return cancelAndCheckYourEntriesSent({\n errorCode : response.code\n });\n }\n\n if (response.viewId.indexOf(constants.ERROR) == -1) {\n ReactGA.sendevent(gaCategory, 'IDENTIFY_YOURSELF', \"SUCCESS\");\n PendoUtil.pendoIdentify(response.orgCd,getState.identifyYourself.clientName,getState.registration.transactionId)\n PendoUtil.pendoVisitorIdUpdate(response.associateId)\n let identityToFindMeFlow = false;\n if(response.viewId === constants.FINDME_VIEW) {\n getState.findMe.sendRedirect = false; \n getState.externalVendor.sendRedirect = false;\n identityToFindMeFlow = true;\n return verifySivOptionsSuccessSent({\n viewId: constants.FINDME_VIEWID,\n identityToFindMeFlow,\n companyName: getState.identifyYourself.clientName,\n errorTitle: ''\n });\n }\n return verifySivOptionsSuccessSent({\n viewId: response.viewId\n });\n }\n\n if (response.code != null) {\n\n if (response.code == constants.EXCEEDED_ATTEMPTS || response.code == constants.FUNCTION_LOCKED || response.code == constants.RECAPTCHA_FAILED || response.code == constants.EMAIL_NOT_EXISTS\n || response.code == constants.NO_SIV_DEFINED || response.code == constants.ALREADY_REGISTERED_MULTI || response.code == constants.ALREADY_REGISTERED_SUSPENDED) {\n ReactGA.sendevent(gaCategory, 'IDENTIFY_YOURSELF', response.code);\n console.log('TRUE;response.code=' + response.code);\n return verifySivOptionsFailSent({\n showErrorModal: true,\n errorMsgTitle: response.title,\n welcomeMsg: response.message,\n errorTitle: '',\n ssn4: '',\n ssn: '',\n recaptchaSuccess: true\n });\n }\n }\n \n return verifySivOptionsFailSent({\n showErrorModal: false,\n errorTitle: response.message,\n ssn4: '',\n ssn: '',\n recaptchaSuccess: true\n });\n};\n\nconst handleSubmitSivResponseFail = (getState, response) => {\n return verifySivOptionsFailSent({\n showErrorModal: true,\n errorMsgTitle: getState.intl.messages['Txt_VGeneralErrorWindowTitle'],\n welcomeMsg: getState.intl.messages['Err_SystemErrorinRequest'],\n ssn4: '',\n ssn: ''\n });\n};\n\n{/**************************************************On cancel redirection****************************************************/ }\nconst redirectToLoginPage = getState => {\n const isMobile = getState.registration.mobileFlow;\n const url = getState.registration.returnUrl;\n const code = getState.identifyYourself.errorCode;\n const organizationId = getState.registration.organizationId;\n if (code != null && code === constants.ALREADY_REGISTERED) {\n return sendOkForAlreadyRegisteredUser(getState).pipe(map(response => handleAlreadyRegisteredResponse(response)),\n catchError(err => [(getErrorMessage(err))]));\n }\n // return window.location.href=constants.REDIRECT_FORGOT;\n if (isMobile && code != constants.ALREADY_REGISTERED) {\n console.log('Entered Mobile flow');\n closeMobileContainer(); //this is part of index.html\n return true;\n } else {\n return window.open(unescape(WindowUtil.validateRtnUrl(decodeURIComponent(url), organizationId)), '_self');\n }\n}\n\nconst handleAlreadyRegisteredResponse = (response) => {\n\n var wnd = window.open(\"about:blank\", \"_self\");\n wnd.document.write(response.response);\n wnd.document.close();\n}\n\nconst sendOkForAlreadyRegisteredUser = (getState) => ajax({\n url: constants.redirectToForgotFlowEndPoint,\n method: 'GET',\n headers: {\n 'Content-Type': 'text/plain',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId,\n },\n responseType: 'text/plain'\n});\n{/**************************************************Redirect to BEV flow****************************************************/ }\n\nconst redirectToBevFlow = getState =>\n of({\n viewId: getState.identifyYourself.viewId\n });\n\nconst redirectWhenBevProduct = getState => {\n return redirectToBevFlow(getState)\n .pipe(map(response => handleBevFlowResponse(response)),//.response\n catchError(err => [getErrorMessage(err)]));\n}\n\nconst handleBevFlowResponse = (response) => {\n return navigateToBevSuccess({\n viewId: response.viewId\n });\n}\n\n{/**************************************************Epics declaration****************************************************/ }\nexport const getSivOptionsEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(GET_SIV_OPTIONS),\n switchMap(action => sendingAsyncRequest(getSivOptions(ajax, state.value))));\n\nexport const setSivFieldEpic = (action$, state) => action$.pipe(\n ofType(SET_SIV_FIELD),\n switchMap(action => sendingAsyncRequest(setSivField(action.payload, state.value))));\n\nexport const verifySivOptionsEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(VERIFY_SIV_OPTIONS),\n switchMap(action => sendingAsyncRequest(submitSivOptions(ajax, state.value))));\n\nexport const getSivOptionsFailureEpic = action$ => action$.pipe(\n ofType(GET_SIV_OPTIONS_FAIL),\n switchMap(action$ => of(push('/error'))));\n\nexport const verifySivOptionsSuccessEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_SIV_OPTIONS_SUCCESS),\n switchMap(action$ => of(push(state.value.identifyYourself.viewId))));\n\nexport const verifySivOptionsFailEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_SIV_OPTIONS_FAIL),\n switchMap(action => of()));\n\nexport const cancelAndCheckYourEntriesEpic = (action$, state) => action$.pipe(\n ofType(CANCEL_AND_CHECK_YOUR_ENTRIES),\n switchMap(action => sendingAsyncRequest(redirectToLoginPage(state.value))),\n);\n\nexport const navigateBevProductEpic = (action$, state) => action$.pipe(\n ofType(NAVIGATE_TO_BEV),\n switchMap(action => sendingAsyncRequest(redirectWhenBevProduct(state.value))),\n);\n\nexport const navigateToBevSuccessEpic = (action$, state) => action$.pipe(\n ofType(NAVIGATE_TO_BEV_SUCCESS),\n switchMap(action$ => of(push(state.value.identifyYourself.viewId))));","import { createAction } from 'redux-actions';\nimport { push } from 'connected-react-router';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport {\n map, switchMap, catchError, concatMap,\n} from 'rxjs/operators';\nimport { ajax } from 'rxjs/ajax';\nimport { throwError, of } from 'rxjs';\nimport { ofType } from 'redux-observable';\nimport { getErrorMessage, sendingAsyncRequest } from '../../../helpers/epics';\nimport { constants } from '../verify-user-constants';\nimport { types } from '../verify-user-actions';\nimport { ReactGA } from '../../../../util';\nimport { WindowUtil,PendoUtil } from '../../../../util';\nimport { constants as progressBarConstants } from '../../../../util/window/progress-bar-constants';\nimport { getLocaleInitialState } from '../../../../util/locale';\n\nconst { VERIFY_REG_CODE, VERIFY_REG_CODE_SUCCESS, VERIFY_REG_CODE_FAIL, CANCEL_REGISTRATION_VERIFYUSER, CHECK_ERROR_MESSAGE, GET_IDENTITY_OPTIONS_SUCCESS, VERIFY_USER_INVALID_PRC_SET_LOCALE, UPDATE_LOCALE_FIELD } = types;\n\nconst verifyRegCodeSuccess = createAction(VERIFY_REG_CODE_SUCCESS);\nconst verifyRegCodeFail = createAction(VERIFY_REG_CODE_FAIL);\nconst cancelRegistrationSent = createAction(CANCEL_REGISTRATION_VERIFYUSER);\nconst checkRegCodeErrMessageSent = createAction(CHECK_ERROR_MESSAGE);\nconst getIdentityOptionsSuccess = createAction(GET_IDENTITY_OPTIONS_SUCCESS);\nconst setUpdateLocaleSuccess = createAction(UPDATE_LOCALE_FIELD);\n\nconst isBlank = str => (str || '' || 'undefined').trim().length === 0;\n\nconst checkRegCodeErrMessage = (getState) =>\n checkRegCodeErr(getState)\n .pipe(map(response => handleMessageResponse(response, getState)),\n catchError(err => [handleMessageResponse(getErrorMessage(err))]));\n\nconst checkRegCodeErr = (getState) => {\n if (getState.registration.mobileFlow && getState.registration.message != '' && getState.registration.message != undefined) {\n getState.verifyUser.errorTitle = getState.registration.message;\n if (getState.registration.code != null && (getState.registration.code == constants.NO_SIV_DEFINED || getState.registration.code == constants.FUNCTION_LOCKED ||\n getState.registration.code == constants.EMAIL_NOT_EXISTS || getState.registration.code == constants.ALREADY_REGISTERED_MULTI ||\n getState.registration.code == constants.ALREADY_REGISTERED_SUSPENDED || getState.registration.code == constants.EXCEEDED_ATTEMPTS ||\n getState.registration.code == constants.ALREADY_REGISTERED) && getState.registration.title != undefined) {\n getState.verifyUser.errorTitle = '';\n getState.verifyUser.errorMsgTitle = getState.registration.title;\n getState.verifyUser.welcomeMsg = getState.registration.message;\n getState.verifyUser.showFailedModal = true;\n return of({\n showFailedModal: true,\n errorMsgTitle: getState.registration.title,\n welcomeMsg: getState.registration.message,\n errorTitle: '',\n code: getState.registration.code\n });\n } else {\n return of({\n errorTitle: getState.registration.message,\n code: getState.registration.code\n });\n }\n }\n if (getState.registration.code != null && getState.registration.code != undefined && getState.registration.code == constants.ALREADY_REGISTERED) {\n getState.verifyUser.errorTitle = '';\n getState.verifyUser.errorMsgTitle = getState.registration.title;\n getState.verifyUser.welcomeMsg = getState.registration.message;\n getState.verifyUser.showFailedModal = true;\n return of({\n showFailedModal: true,\n errorMsgTitle: getState.registration.title,\n welcomeMsg: getState.registration.message,\n errorTitle: '',\n code: constants.ALREADY_REGISTERED_DUAL\n });\n } else if (getState.registration.code != null && getState.registration.code != undefined && getState.registration.code == constants.INVALID_REGCODE) {\n getState.registration.code = '';\n return of({\n errorTitle: getState.registration.message,\n code: getState.registration.code\n });\n }\n\n return of({\n errorTitle: '',\n code: getState.registration.code\n });\n}\n\nconst handleMessageResponse = (response, getState) => {\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = \"WEB_REGISTRATION_VERIFY_USER\";\n let pagePath = '/ssr/flowType/verifyUserForm';\n let pageView = pagePath + \"/web\";\n let isFindMeFlow = getState.findMe.findMeObj.showDiv || getState.registration.isEligibleForCodelessFlow || false;\n getState.findMe.sendRedirect = false;\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REGISTRATION_VERIFY_USER\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROSWER_REGISTRATION_VERIFY_USER\"; }\n\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n let hideFields = false;\n if (response.code != null && (response.code === constants.ALREADY_REGISTERED_DUAL || response.code === constants.PII_ERROR)) {\n hideFields = true;\n }\n // progress bar start\n let progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Enter_Code, getState);\n // progress bar end\n if (response.showFailedModal == true && response.code != null && response.code == constants.ALREADY_REGISTERED_DUAL) {\n return verifyRegCodeFail({\n showFailedModal: true,\n errorMsgTitle: response.errorMsgTitle,\n welcomeMsg: response.welcomeMsg,\n code: response.code,\n hideFields: hideFields,\n isFindMeFlow,\n progressBarData\n });\n }\n if(response.code === constants.ALREADY_REGISTERED) {\n return cancelRegistrationSent ({\n code : getState.registration.code\n });\n }\n if (response.showFailedModal == true) {\n return verifyRegCodeFail({\n showFailedModal: true,\n errorMsgTitle: response.errorMsgTitle,\n welcomeMsg: response.welcomeMsg,\n errorTitle: '',\n isMobile,\n isMobileBrowser,\n gaCategory,\n hideFields: hideFields,\n isFindMeFlow,\n progressBarData\n });\n }\n return verifyRegCodeFail({\n showFailedModal: false,\n errorTitle: response.errorTitle,\n code: response.code,\n isMobile,\n isMobileBrowser,\n gaCategory,\n hideFields: hideFields,\n isFindMeFlow,\n progressBarData\n });\n}\n\n//verifyRegCodeSuccess\nconst verifyRegCode = (ajax, regCode, getState) =>\n verifyRegCodeApi(ajax, regCode, getState)\n .pipe(map(response => handleResponse(getState, response.response)),\n catchError(err => [handleVerifyRegCodeResponseFail(getState, getErrorMessage(err))]));\n\nconst verifyRegCodeApi = (ajax, regCode, getState) => {\n console.log('registration code latest ==' + regCode + getState.registration.transactionId);\n if (isBlank(regCode) || regCode == 'undefined' || regCode == undefined) {\n return throwError(new Error(getState.intl.messages['verifyUser.emptyRegCode']));\n }\n return ajax({\n url: constants.getVerifyRegCodeEndPoint,\n method: 'POST',\n responseType: 'json',\n body: regCode,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId,\n }\n });\n};\n\nconst handleResponse = (getState, response) => {\n let updatedlocale = WindowUtil.getLocaleValue(getState.locale.locale);\n let gaCategory = getState.verifyUser.gaCategory;\n console.log('handleresponse=======>>' + response.viewId);\n let regCodeToFindMeFlow = false;\n if (response.viewId != 'Error') {\n ReactGA.sendevent(gaCategory, 'VERIFY_USER', 'SUCCESS');\n // call SIV options and then return the viewId\n\n console.log('valid reg code recaptcha =======>>' + response.recaptchaOn);\n getState.registration.isRecaptchaOn = response.recaptchaOn;\n \n if(response.viewId !== undefined && response.viewId === constants.FINDME_VIEW) {\n getState.findMe.sendRedirect = false;\n regCodeToFindMeFlow = true;\n return getIdentityOptionsSuccess({\n viewId: constants.FINDME_VIEWID,\n regCodeToFindMeFlow,\n regCode: '',\n errorTitle: ''\n });\n }\n\n\n return verifyRegCodeSuccess({\n viewId: getState.verifyUser.viewId,\n sivViewId: getState.verifyUser.sivViewId,\n sivOptions: getState.verifyUser.sivOptions,\n showExternalVendorsPage: getState.verifyUser.showExternalVendorsPage,\n extVendorList: getState.verifyUser.extVendorList,\n companyName: getState.verifyUser.companyName,\n regCode:''\n });\n } else {\n if (response.code != '' && response.code === constants.EXCEEDED_ATTEMPTS) {\n ReactGA.sendevent(gaCategory, 'VERIFY_USER', 'EXCEEDED_ATTEMPTS');\n return verifyRegCodeFail({\n showFailedModal: true,\n errorMsgTitle: response.title,\n welcomeMsg: response.message,\n errorTitle: '',\n embeddedPrcInvalid: true\n });\n }\n if (response.code != '' && response.code === constants.INVALID_REGCODE) {\n const embeddedPrcFlow = getState.registration.embeddedPrcFlow || false;\n let embeddedPrcInvalidSuccess = false;\n if(embeddedPrcFlow) {\n console.log('Embedded prc invalid flow=======');\n embeddedPrcInvalidSuccess = true;\n }\n ReactGA.sendevent(gaCategory, 'VERIFY_USER', 'INVALID_REGCODE');\n return verifyRegCodeFail({\n showFailedModal: false,\n errorTitle: response.message,\n embeddedPrcInvalid: true,\n updatedLocale: updatedlocale,\n embeddedPrcInvalidSuccess\n });\n }\n return verifyRegCodeFail({\n showFailedModal: true,\n errorMsgTitle: getState.intl.messages['Txt_VGeneralErrorWindowTitle'],\n welcomeMsg: getState.intl.messages['Err_SystemErrorinRequest'],\n errorTitle: '',\n embeddedPrcInvalid: true\n });\n }\n};\n\nconst handleVerifyRegCodeResponseFail = (getState, errorMessage) => {\n console.log('handle verify regcode response fail response' + errorMessage);\n return verifyRegCodeFail({\n showFailedModal: true,\n errorMsgTitle: getState.intl.messages['Txt_VGeneralErrorWindowTitle'],\n welcomeMsg: getState.intl.messages['Err_SystemErrorinRequest'],\n errorTitle: ''\n });\n};\n\n{/************************************Siv Options call*******************************************/ }\n\nconst getSivOptions = (ajax, getState) =>\n sivOptionsApi(ajax, getState)\n .pipe(map(response => handleSivResponse(getState, response.response)),\n catchError(err => [handleSivResponseFail(getState, getErrorMessage(err))]));\n\nconst sivOptionsApi = (ajax, getState) => ajax({\n url: constants.getPicSivOptionsDetailsEndPoint,\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n \"cache-control\": \"no-cache\",\n 'X-TRANSACTIONID': getState.registration.transactionId,\n }\n});\n\nconst handleSivResponse = (getState, response) => {\n console.log('handle siv response-----recaptcha:', response.recaptchaOn);\n if (response.viewId != 'Error') {\n if (getState.registration.orgIdForDeviceAssessment != ''\n && getState.registration.viewId != '/findMe'\n && response.viewId != '/verifyPic'\n && !getState.registration.isDeviceAssessmentDone) {\n WindowUtil.deviceAssessment(getState.registration.orgIdForDeviceAssessment, getState.registration.transactionId);\n }\n\n //Check regCodeData undefined and check showExternalVendorsPage flag\n if (response.regCodeData != undefined && response.regCodeData != '') {\n let viewId = response.viewId;\n\n if(response.runAdminV2Flow != undefined && response.runAdminV2Flow) {\n return getIdentityOptionsSuccess({\n viewId: viewId,\n sivViewId: response.viewId,\n sivOptions: response.regCodeData.sivOptions,\n runAdminFlow: response.runAdminFlow,\n runAdminAccountantConnectFlow: response.runAdminAccountantConnectFlow,\n runAdminV2Flow: response.runAdminV2Flow,\n firstName: response.firstName,\n lastName: response.lastName\n }); \n }\n if (response.regCodeData.showExternalVendorsPage) {\n viewId = constants.chooseVendorsViewId;\n }\n if (response.recaptchaOn != undefined && response.recaptchaOn == true && response.regCodeData.sivOptions.sivPIC == false) {\n WindowUtil.recaptchaCall();\n }\n \n PendoUtil.pendoIdentify(response.orgCd,response.regCodeData.companyName,getState.registration.transactionId)\n PendoUtil.pendoVisitorIdUpdate(response.associateId)\n\n return getIdentityOptionsSuccess({\n viewId: viewId,\n sivViewId: response.viewId,\n sivOptions: response.regCodeData.sivOptions,\n showExternalVendorsPage: response.regCodeData.showExternalVendorsPage,\n extVendorList: response.regCodeData.extVendorList,\n companyName: response.regCodeData.companyName,\n isRecaptchaOn: response.recaptchaOn,\n runAdminFlow: response.runAdminFlow,\n runAdminAccountantConnectFlow: response.runAdminAccountantConnectFlow,\n });\n } else {\n console.log('BEV flow.');\n if (response.recaptchaOn != undefined && response.recaptchaOn == true) {\n WindowUtil.recaptchaCall();\n }\n return getIdentityOptionsSuccess({\n viewId: response.viewId,\n sivViewId: response.viewId,\n isRecaptchaOn: response.recaptchaOn\n });\n }\n } else {\n if (response.viewId == constants.ERROR && response.title != null && response.title != undefined) {\n return verifyRegCodeFail({\n showFailedModal: true,\n errorMsgTitle: response.title,\n welcomeMsg: response.message,\n errorTitle: ''\n });\n }\n getState.verifyUser.errorTitle = response.message;\n return verifyRegCodeFail({\n errorTitle: response.message,\n });\n }\n}\nconst handleSivResponseFail = (getState, errorMessage) => {\n console.log('handle siv response fail response', errorMessage);\n if (getState.verifyUser.errorTitle != '') {\n return verifyRegCodeFail({\n errorTitle: getState.verifyUser.errorTitle,\n });\n }\n return verifyRegCodeFail({\n showFailedModal: true,\n errorMsgTitle: getState.intl.messages['Txt_VGeneralErrorWindowTitle'],\n welcomeMsg: getState.intl.messages['Err_SystemErrorinRequest'],\n errorTitle: ''\n });\n};\n\n{/************************************Cancel Registration*******************************************/ }\n\nconst redirectToLoginPage = getState => {\n const isMobile = getState.registration.mobileFlow;\n const url = getState.registration.returnUrl;\n const code = getState.registration.code;\n const verifyUserCode = getState.verifyUser.code;\n const organizationId = getState.registration.organizationId;\n console.log('code==========' + getState.verifyUser.code);\n if (verifyUserCode != null && verifyUserCode === constants.ALREADY_REGISTERED_DUAL) {\n return window.open(unescape(WindowUtil.validateRtnUrl(decodeURIComponent(url), organizationId)), '_self');\n }\n if (code != null && code === constants.ALREADY_REGISTERED) {\n return sendOkForAlreadyRegisteredUser(getState).pipe(map(response => handleAlreadyRegisteredResponse(response)),\n catchError(err => [(getErrorMessage(err))]));\n }\n if (isMobile && code != constants.ALREADY_REGISTERED) {\n console.log('Entered Mobile flow');\n closeMobileContainer(); //this is part of common.js\n return true;\n } else {\n return window.open(unescape(WindowUtil.validateRtnUrl(decodeURIComponent(url), organizationId)), '_self');\n }\n}\n\nconst handleAlreadyRegisteredResponse = (response) => {\n var wnd = window.open(\"about:blank\", \"_self\");\n wnd.document.write(response.response);\n wnd.document.close();\n}\n\nconst sendOkForAlreadyRegisteredUser = (getState) => ajax({\n url: constants.redirectToForgotFlowEndPoint,\n method: 'GET',\n headers: {\n 'Content-Type': 'text/plain',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId,\n },\n responseType: 'text/plain'\n});\n\n/**********************Set language**********************/\nconst setLocale = (payload, getState) =>\n setLocaleApi(payload, getState)\n .pipe(map(response => setLocaleHandler(response.response, payload, getState)),\n catchError(err => [verifyRegCodeFail(getErrorMessage(err))]));\n\nconst setLocaleApi = (payload, getState) => ajax({\n url: constants.setLocaleEndPoint,\n method: 'POST',\n responseType: 'json',\n body: payload.payload.suffix,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\n\nconst setLocaleHandler = (response, payload, getState) => {\n if (response.code == constants.SUCCESS) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'REGCODE_SET_LOCALE', 'SUCCESS');\n const updatedLocale = payload.payload.language;\n const localeResponse = getLocaleInitialState(payload.payload.suffix);\n getState.locale.locale = localeResponse.locale.locale;\n getState.intl.locale = localeResponse.intl.locale;\n getState.intl.messages = localeResponse.intl.messages;\n let errorTitle = '';\n WindowUtil.setCookieValue(getState.locale.locale);\n let progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Enter_Code, getState);\n return setUpdateLocaleSuccess({\n updatedLocale, errorTitle,\n progressBarData\n });\n }\n else {\n return verifyRegCodeFail({\n showFailedModal: true,\n errorMsgTitle: getState.intl.messages['Txt_VGeneralErrorWindowTitle'],\n welcomeMsg: getState.intl.messages['Err_SystemErrorinRequest'],\n errorTitle: ''\n });\n }\n\n}\n\n{/************************************Epics declaration*******************************************/ }\nexport const verifyRegCodeEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(VERIFY_REG_CODE),\n switchMap(action => sendingAsyncRequest(verifyRegCode(ajax, action.payload, state.value))));\n\nexport const verifyRegCodeSuccessEpic = (action$, state) => action$.pipe(\n ofType(GET_IDENTITY_OPTIONS_SUCCESS),\n switchMap(action$ => of(push(state.value.verifyUser.viewId))));\n\nexport const verifyRegCodeFailEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_REG_CODE_FAIL),\n switchMap(action => of()));\n\nexport const getSivOptionsEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(VERIFY_REG_CODE_SUCCESS),\n switchMap(action => sendingAsyncRequest(getSivOptions(ajax, state.value))));\n\nexport const cancelRegistrationEpic = (action$, state) => action$.pipe(\n ofType(CANCEL_REGISTRATION_VERIFYUSER),\n switchMap(action => sendingAsyncRequest(redirectToLoginPage(state.value))));\n\nexport const checkRegCodeErrMessageEpic = (action$, state) => action$.pipe(\n ofType(CHECK_ERROR_MESSAGE),\n switchMap(action => sendingAsyncRequest(checkRegCodeErrMessage(state.value))));\n\n export const setLocaleEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_USER_INVALID_PRC_SET_LOCALE),\n switchMap(action => sendingAsyncRequest(setLocale(action.payload, state.value))));\n","import { createAction } from 'redux-actions';\nimport { push } from 'connected-react-router';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport {\n map, switchMap, catchError, concatMap,\n} from 'rxjs/operators';\nimport { ajax } from 'rxjs/ajax';\nimport { throwError, of } from 'rxjs';\nimport { ofType } from 'redux-observable';\nimport { getErrorMessage, sendingAsyncRequest } from '../../../helpers/epics';\nimport { constants } from '../verify-user-id-constants';\nimport { types } from '../verify-user-id-actions';\nimport { ReactGA, WindowUtil, PendoUtil } from '../../../../util';\nimport { constants as progressBarConstants } from '../../../../util/window/progress-bar-constants';\n\nconst { VERIFY_USER_ID, VERIFY_USER_ID_SUCCESS, VERIFY_USER_ID_FAIL, CANCEL_REGISTRATION_VERIFY_USERID, CHECK_ERROR_MESSAGE, GET_UID_OPTIONS_SUCCESS } = types;\n\nconst verifyUserIdSuccess = createAction(VERIFY_USER_ID_SUCCESS);\nconst verifyUserIdFail = createAction(VERIFY_USER_ID_FAIL);\nconst cancelRegistrationSent = createAction(CANCEL_REGISTRATION_VERIFY_USERID);\nconst checkUserIdErrMessageSent = createAction(CHECK_ERROR_MESSAGE);\nconst getIdentityOptionsSuccess = createAction(GET_UID_OPTIONS_SUCCESS);\n\nconst isBlank = str => (str || '' || 'undefined').trim().length === 0;\n\nconst checkUserIdErrMessage = (getState) =>\n checkUserIdErr(getState)\n .pipe(map(response => handleMessageResponse(response, getState)),\n catchError(err => [handleMessageResponse(getErrorMessage(err))]));\n\nconst checkUserIdErr = (getState) => {\n if (getState.registration.mobileFlow && getState.registration.message != '' && getState.registration.message != undefined) {\n getState.verifyUserId.errorTitle = getState.registration.message;\n return of({\n errorTitle: getState.registration.message\n });\n }\n return of({\n errorTitle: ''\n });\n}\n\nconst handleMessageResponse = (response, getState) => {\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = \"WEB_REGISTRATION_VERIFY_USER_ID\";\n let pagePath = '/ssr/flowType/verifyUserId';\n let pageView = pagePath + \"/web\";\n\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REGISTRATION_VERIFY_USER_ID\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROSWER_REGISTRATION_VERIFY_USER_ID\"; }\n\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n // progress bar start\n let progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Identification, getState);\n // progress bar end\n return verifyUserIdFail({\n showFailedModal: false,\n errorTitle: response.errorTitle,\n isMobile,\n isMobileBrowser,\n gaCategory,\n progressBarData\n });\n}\n\n//verifyUserIdSuccess\nconst verifyUserId = (ajax, userId, getState) =>\n verifyUserIdApi(ajax, userId, getState)\n .pipe(map(response => handleResponse(getState, response.response)),\n catchError(err => [handleVerifyUserIdResponseFail(getState, getErrorMessage(err))]));\n\nconst verifyUserIdApi = (ajax, userId, getState) => {\n console.log('user id latest ==' + userId);\n if (isBlank(userId) || userId == 'undefined' || userId == undefined) {\n return throwError(new Error(getState.intl.messages['verifyUser.emptyRegCode']));\n }\n return ajax({\n url: constants.getVerifyUserIdEndPoint,\n method: 'POST',\n responseType: 'json',\n body: userId,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId,\n }\n });\n};\n\nconst handleResponse = (getState, response) => {\n console.log('handleresponse=======>>' + response.code);\n let gaCategory = getState.verifyUserId.gaCategory;\n if (response.code === constants.SUCCESS) {\n ReactGA.sendevent(gaCategory, 'VERIFY_USER_ID', 'SUCCESS');\n // call SIV options and then return the viewId\n return verifyUserIdSuccess({\n\n });\n } else {\n if(response.code === constants.ALREADY_REGISTERED) {\n return cancelRegistrationSent ({\n code : response.code\n });\n }\n if (response.code != '' && response.code === constants.EXCEEDED_ATTEMPTS) {\n ReactGA.sendevent(gaCategory, 'VERIFY_USER_ID', response.code);\n return verifyUserIdFail({\n showFailedModal: true,\n errorMsgTitle: response.title,\n welcomeMsg: response.message,\n errorTitle: '',\n code: response.code\n });\n }\n if (response.code != '' && response.code === constants.INVALID_USERID) {\n ReactGA.sendevent(gaCategory, 'VERIFY_USER_ID', 'INVALID_USER_ID');\n return verifyUserIdFail({\n showFailedModal: false,\n errorTitle: response.message\n });\n }\n if (response.code != '' && response.code === constants.USERID_NOT_FOUND) {\n ReactGA.sendevent(gaCategory, 'VERIFY_USER_ID', 'USERID_NOT_FOUND');\n return verifyUserIdFail({\n showFailedModal: false,\n errorTitle: response.message\n });\n }\n\n return verifyUserIdFail({\n showFailedModal: true,\n errorMsgTitle: getState.intl.messages['Txt_VGeneralErrorWindowTitle'],\n welcomeMsg: getState.intl.messages['Err_SystemErrorinRequest'],\n errorTitle: ''\n });\n }\n};\n\nconst handleVerifyUserIdResponseFail = (getState, errorMessage) => {\n console.log('handle verify userId response fail response' + errorMessage);\n return verifyUserIdFail({\n showFailedModal: true,\n errorMsgTitle: getState.intl.messages['Txt_VGeneralErrorWindowTitle'],\n welcomeMsg: getState.intl.messages['Err_SystemErrorinRequest'],\n errorTitle: ''\n });\n};\n\n{/************************************Siv Options call*******************************************/ }\n\nconst getSivOptions = (ajax, getState) =>\n sivOptionsApi(ajax, getState)\n .pipe(map(response => handleSivResponse(getState, response.response)),\n catchError(err => [handleSivResponseFail(getState, getErrorMessage(err))]));\n\nconst sivOptionsApi = (ajax, getState) => ajax({\n url: constants.getVerifyUserIdAfterPodRedirectEndPoint,\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n \"cache-control\": \"no-cache\",\n 'X-TRANSACTIONID': getState.registration.transactionId,\n }\n});\n\nconst handleSivResponse = (getState, response) => {\n console.log('handle user id siv response');\n if (response.viewId != 'Error') {\n return getIdentityOptionsSuccess({\n viewId: response.viewId,\n });\n } else {\n if(response.code != '' && response.code === constants.ALREADY_REGISTERED) {\n let gaCategory = getState.verifyUserId.gaCategory;\n ReactGA.sendevent(gaCategory, 'VERIFY_USER_ID', response.code);\n return cancelRegistrationSent ({\n code : response.code\n });\n }\n if (response.code != '' && response.code === constants.EXCEEDED_ATTEMPTS) {\n let gaCategory = getState.verifyUserId.gaCategory;\n ReactGA.sendevent(gaCategory, 'VERIFY_USER_ID', response.code);\n return verifyUserIdFail({\n showFailedModal: true,\n errorMsgTitle: response.title,\n welcomeMsg: response.message,\n errorTitle: '',\n code: response.code\n });\n }\n getState.verifyUserId.errorTitle = response.message;\n return verifyUserIdFail({\n errorTitle: response.message,\n });\n }\n}\nconst handleSivResponseFail = (getState, errorMessage) => {\n console.log('handle user id siv response fail response');\n if (getState.verifyUserId.errorTitle != '') {\n return verifyUserIdFail({\n errorTitle: getState.verifyUserId.errorTitle,\n });\n }\n return verifyUserIdFail({\n showFailedModal: true,\n errorMsgTitle: getState.intl.messages['Txt_VGeneralErrorWindowTitle'],\n welcomeMsg: getState.intl.messages['Err_SystemErrorinRequest'],\n errorTitle: ''\n });\n};\n\n{/************************************Cancel Registration*******************************************/ }\n\nconst redirectToLoginPage = getState => {\n const isMobile = getState.registration.mobileFlow;\n const url = getState.registration.returnUrl;\n const code = getState.verifyUserId.code;\n const organizationId = getState.registration.organizationId;\n if (code != null && code === constants.ALREADY_REGISTERED) {\n return sendOkForAlreadyRegisteredUser(getState).pipe(map(response => handleAlreadyRegisteredResponse(response)),\n catchError(err => [(getErrorMessage(err))]));\n }\n if (isMobile) {\n console.log('Entered Mobile flow');\n closeMobileContainer(); //this is part of common.js\n return true;\n } else {\n return window.open(unescape(WindowUtil.validateRtnUrl(decodeURIComponent(url), organizationId)), '_self');\n }\n}\nconst handleAlreadyRegisteredResponse = (response) => {\n var wnd = window.open(\"about:blank\", \"_self\");\n wnd.document.write(response.response);\n wnd.document.close();\n}\n\nconst sendOkForAlreadyRegisteredUser = (getState) => ajax({\n url: constants.redirectToForgotFlowEndPoint,\n method: 'GET',\n headers: {\n 'Content-Type': 'text/plain',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId,\n },\n responseType: 'text/plain'\n});\n\n{/************************************Epics declaration*******************************************/ }\nexport const verifyUserIdEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(VERIFY_USER_ID),\n switchMap(action => sendingAsyncRequest(verifyUserId(ajax, action.payload, state.value))));\n\nexport const verifyUserIdSuccessEpic = (action$, state) => action$.pipe(\n ofType(GET_UID_OPTIONS_SUCCESS),\n switchMap(action$ => of(push(state.value.verifyUserId.viewId))));\n\nexport const verifyUserIdFailEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_USER_ID_FAIL),\n switchMap(action => of()));\n\nexport const getSivOptionsEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(VERIFY_USER_ID_SUCCESS),\n switchMap(action => sendingAsyncRequest(getSivOptions(ajax, state.value))));\n\nexport const cancelRegistrationEpic = (action$, state) => action$.pipe(\n ofType(CANCEL_REGISTRATION_VERIFY_USERID),\n switchMap(action => sendingAsyncRequest(redirectToLoginPage(state.value))));\n\nexport const checkRegCodeErrMessageEpic = (action$, state) => action$.pipe(\n ofType(CHECK_ERROR_MESSAGE),\n switchMap(action => sendingAsyncRequest(checkUserIdErrMessage(state.value))));\n","import { createAction } from 'redux-actions';\nimport { push } from 'connected-react-router';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport {\n map, switchMap, catchError, concatMap,\n} from 'rxjs/operators';\nimport { ajax } from 'rxjs/ajax';\nimport { throwError, of } from 'rxjs';\nimport { ofType } from 'redux-observable';\nimport { getErrorMessage, sendingAsyncRequest } from '../../../helpers/epics';\nimport { constants } from '../verify-user-pin-constants';\nimport { types } from '../verify-user-pin-actions';\nimport { ReactGA, WindowUtil, PendoUtil } from '../../../../util';\nimport { constants as progressBarConstants } from '../../../../util/window/progress-bar-constants';\n\nconst { VERIFY_USER_PIN, VERIFY_USER_PIN_SUCCESS, VERIFY_USER_PIN_FAIL, CANCEL_REGISTRATION_VERIFY_USERPIN, CHECK_ERROR_MESSAGE } = types;\n\nconst verifyUserPinSuccess = createAction(VERIFY_USER_PIN_SUCCESS);\nconst verifyUserPinFail = createAction(VERIFY_USER_PIN_FAIL);\nconst cancelRegistrationSent = createAction(CANCEL_REGISTRATION_VERIFY_USERPIN);\nconst checkUserPinErrMessageSent = createAction(CHECK_ERROR_MESSAGE);\n\nconst isBlank = str => (str || '' || 'undefined').trim().length === 0;\n\nconst checkUserPinErrMessage = (getState) =>\n checkUserPinErr(getState)\n .pipe(map(response => handleMessageResponse(response, getState)),\n catchError(err => [handleMessageResponse(getErrorMessage(err))]));\n\nconst checkUserPinErr = (getState) => {\n if (getState.registration.mobileFlow && getState.registration.message != '' && getState.registration.message != undefined) {\n getState.verifyUserPin.errorTitle = getState.registration.message;\n return of({\n errorTitle: getState.registration.message\n });\n }\n return of({\n errorTitle: ''\n });\n}\n\nconst handleMessageResponse = (response, getState) => {\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = \"WEB_REGISTRATION_VERIFY_USER_PIN\";\n let pagePath = '/ssr/flowType/verifyUserPin';\n let pageView = pagePath + \"/web\";\n\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REGISTRATION_VERIFY_USER_PIN\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROSWER_REGISTRATION_VERIFY_USER_PIN\"; }\n\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n // progress bar start\n let progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Identification, getState);\n // progress bar end\n return verifyUserPinFail({\n showFailedModal: false,\n errorTitle: response.errorTitle,\n isMobile,\n isMobileBrowser,\n gaCategory,\n progressBarData\n });\n}\n\n//verifyUserPinSuccess\nconst verifyUserPin = (ajax, userPin, getState) =>\n verifyUserPinApi(ajax, userPin, getState)\n .pipe(map(response => handleResponse(getState, response.response)),\n catchError(err => [handleVerifyUserPinResponseFail(getState, getErrorMessage(err))]));\n\nconst verifyUserPinApi = (ajax, userPin, getState) => {\n console.log('registration code latest ==' + userPin);\n if (isBlank(userPin) || userPin == 'undefined' || userPin == undefined) {\n return throwError(new Error(getState.intl.messages['verifyUser.emptyRegCode']));\n }\n return ajax({\n url: constants.getVerifyUserPinEndPoint,\n method: 'POST',\n responseType: 'json',\n body: userPin,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId,\n }\n });\n};\n\nconst handleResponse = (getState, response) => {\n let gaCategory = getState.verifyUserPin.gaCategory;\n console.log('handleresponse=======>>' + response.viewId);\n if (response.viewId != 'Error') {\n console.log('valid reg code=======>>');\n ReactGA.sendevent(gaCategory, 'VERIFY_USER_PIN', 'SUCCESS');\n // call SIV options and then return the viewId\n return verifyUserPinSuccess({\n viewId: response.viewId\n });\n } else {\n if (response.code != '' && (response.code === constants.EXCEEDED_ATTEMPTS || response.code === constants.ALREADY_REGISTERED)) {\n ReactGA.sendevent(gaCategory, 'VERIFY_USER_PIN', response.code);\n return verifyUserPinFail({\n showFailedModal: true,\n errorMsgTitle: response.title,\n welcomeMsg: response.message,\n errorTitle: ''\n });\n }\n if (response.code != '' && response.code === constants.INVALID_USERPIN) {\n ReactGA.sendevent(gaCategory, 'VERIFY_USER_PIN', 'INVALID_USERPIN');\n return verifyUserPinFail({\n showFailedModal: false,\n errorTitle: response.message\n });\n }\n if (response.code != '' && response.code === constants.INVALID_PIN) {\n ReactGA.sendevent(gaCategory, 'VERIFY_USER_PIN', 'INVALID_PIN');\n return verifyUserPinFail({\n showFailedModal: false,\n errorTitle: response.message\n });\n }\n return verifyUserPinFail({\n showFailedModal: true,\n errorMsgTitle: getState.intl.messages['Txt_VGeneralErrorWindowTitle'],\n welcomeMsg: getState.intl.messages['Err_SystemErrorinRequest'],\n errorTitle: ''\n });\n }\n};\n\nconst handleVerifyUserPinResponseFail = (getState, errorMessage) => {\n console.log('handle verify userPin response fail response' + errorMessage);\n return verifyUserPinFail({\n showFailedModal: true,\n errorMsgTitle: getState.intl.messages['Txt_VGeneralErrorWindowTitle'],\n welcomeMsg: getState.intl.messages['Err_SystemErrorinRequest'],\n errorTitle: ''\n });\n};\n\n\n{/************************************Cancel Registration*******************************************/ }\n\nconst redirectToLoginPage = getState => {\n const isMobile = getState.registration.mobileFlow;\n const url = getState.registration.returnUrl;\n const organizationId = getState.registration.organizationId;\n if (isMobile) {\n console.log('Entered Mobile flow');\n closeMobileContainer(); //this is part of common.js\n return true;\n } else {\n return window.open(unescape(WindowUtil.validateRtnUrl(decodeURIComponent(url), organizationId)), '_self');\n }\n}\n\n{/************************************Epics declaration*******************************************/ }\n\nexport const verifyUserPinEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(VERIFY_USER_PIN),\n switchMap(action => sendingAsyncRequest(verifyUserPin(ajax, action.payload, state.value))));\n\nexport const verifyUserPinSuccessEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_USER_PIN_SUCCESS),\n switchMap(action$ => of(push(state.value.verifyUserPin.viewId))));\n\nexport const verifyUserPinFailEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_USER_PIN_FAIL),\n switchMap(action => of()));\n\nexport const cancelRegistrationEpic = (action$, state) => action$.pipe(\n ofType(CANCEL_REGISTRATION_VERIFY_USERPIN),\n switchMap(action => sendingAsyncRequest(redirectToLoginPage(state.value))));\n\nexport const checkRegCodeErrMessageEpic = (action$, state) => action$.pipe(\n ofType(CHECK_ERROR_MESSAGE),\n switchMap(action => sendingAsyncRequest(checkUserPinErrMessage(state.value))));\n","import { createAction } from 'redux-actions';\nimport { push } from 'connected-react-router';\nimport {\n map, switchMap, catchError, concatMap,\n} from 'rxjs/operators';\nimport { ajax } from 'rxjs/ajax';\nimport { of, Observable } from 'rxjs';\nimport { ofType } from 'redux-observable';\nimport { getErrorMessage, sendingAsyncRequest } from '../../../helpers/epics';\nimport { store } from '../../../store';\nimport { types } from '../timeout-actions';\nimport { constants } from '../timeout-constants';\nimport { WindowUtil } from '../../../../util';\n\nconst {\n CHECK_SESSION_TIMEOUT,\n GET_SESSION_TIMEOUT_CONFIG,\n GET_SESSION_TIMEOUT_CONFIG_SUCCESS,\n GET_SESSION_TIMEOUT_CONFIG_FAIL,\n SESSION_TIMEOUT,\n SESSION_TIMEOUT_WARN,\n SESSION_TIMEOUT_INITIATE,\n CHECK_WARNING_TIMEOUT,\n UPDATE_SESSION_TIMEOUT,\n REDIRECT_TO_LOGIN_PAGE\n} = types;\n\nconst { checkSessionEndPoint, sessionTimeoutEndPoint } = constants;\n\nconst setInitiateSuccess = createAction(SESSION_TIMEOUT);\n\nconst sessionTimeoutWarnSent = createAction(SESSION_TIMEOUT);\nconst getSessionTimeoutConfigSuccess = createAction(GET_SESSION_TIMEOUT_CONFIG_SUCCESS);\nconst getSessionTimeoutConfigFail = createAction(GET_SESSION_TIMEOUT_CONFIG_FAIL);\nconst setTimeOutField = createAction(UPDATE_SESSION_TIMEOUT);\n\nconst getSessionTimeoutConfigApi = getState => ajax({\n url: `${sessionTimeoutEndPoint}`,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n },\n method: 'POST',\n responseType: 'json',\n}).pipe(\n map(response => handleGetSessionTimeoutConfigResponse(response.response, getState)),\n catchError(err => of(getSessionTimeoutConfigFail(getErrorMessage(err)))),\n);\n\nconst warningTimeoutApi = (payload, getState) => ajax({\n url: `${checkSessionEndPoint}`,\n headers: payload.headers,\n method: 'POST',\n responseType: 'json',\n}).pipe(\n concatMap(response => handleWarningTimeoutResponse(response.response, payload, getState)),\n catchError(err => of(getSessionTimeoutConfigFail(getErrorMessage(err)))),\n);\n\nconst handleWarningTimeoutResponse = (response, payload, getState) => {\n const timeout = Object.assign({}, getState.timeout);\n response = response.status;\n if (payload.returnClick) {\n if (response !== null && response === 'valid') {\n return of({ timeoutWarn: false, timeout: false, reloadTimeout: true });\n }\n return of({ timeout: true });\n }\n\n if (response !== null && response === 'valid') {\n return of({ timeoutWarn: true, timeout: false });\n }\n return of({ timeout: true });\n};\n\nconst handleGetSessionTimeoutConfigResponse = (response, getState) => {\n const timeout = Object.assign({}, getState.timeout);\n\n if (response !== null) {\n timeout.warningTime = response.warningTimeout || constants.warningTime;\n timeout.signoutTime = response.sessionTimeOut || constants.signoutTime;\n timeout.userActivityCutoff = response.userActivityCutoff || constants.userActivityCutoff;\n return getSessionTimeoutConfigSuccess(timeout);\n }\n return getSessionTimeoutConfigFail();\n};\n\nconst callWarningTimeoutService = (revClientTimestamp, getState) => callWarningTimeoutServiceHandler(revClientTimestamp, getState).pipe(\n map((response) => {\n const payload = {};\n\n if (response.reloadTimeout) {\n payload.reloadTimeout = response.reloadTimeout;\n } else if (response != undefined) {\n payload.timeout = response.timeout;\n payload.timeoutWarn = response.timeoutWarn;\n }\n return setTimeOutField({ payload });\n }),\n catchError(err => of(getSessionTimeoutConfigFail(getErrorMessage(err)))),\n);\n\nconst callWarningTimeoutServiceHandler = (payload, getState) => {\n\n if (payload.returnClick) {\n const headers = {};\n\n headers['Content-Type'] = 'application/json';\n headers['cache-control'] = 'no-cache';\n payload.headers = headers;\n return warningTimeoutApi(payload, getState);\n }\n\n const revClientTimestamp = payload.revClientTimestamp;\n const userActivityCutoff = getState.timeout.userActivityCutoff;\n let isUserActive = true;\n const currentTimestamp = new Date();\n const timeSinceClientActive = currentTimestamp.getTime() - revClientTimestamp.getTime();\n\n if (timeSinceClientActive > userActivityCutoff) {\n isUserActive = false;\n }\n if (!isUserActive) {\n const headers = {};\n\n headers['Content-Type'] = 'application/json';\n headers['cache-control'] = 'no-cache';\n headers['x-lastaccessedtime'] = timeSinceClientActive;\n payload.headers = headers;\n payload.returnClick = false;\n return warningTimeoutApi(payload, getState);\n }\n return of({ reloadTimeout: true });\n};\n\nconst redirectToLoginPage = getState => {\n const isMobile = getState.registration.mobileFlow;\n const url = getState.registration.returnUrl;\n const organizationId = getState.registration.organizationId;\n if (isMobile) {\n closeMobileContainer(); //this is part of index.html\n return true;\n } else {\n return window.open(unescape(WindowUtil.validateRtnUrl(decodeURIComponent(url), organizationId)), '_self');\n }\n}\n\nconst callSessionTimeoutConfigService = getState => getSessionTimeoutConfigApi(getState);\n\nexport const getSessionTimeoutConfigEpic = (action$, state) => action$.pipe(\n ofType(GET_SESSION_TIMEOUT_CONFIG),\n switchMap(action => sendingAsyncRequest(callSessionTimeoutConfigService(state.value))),\n);\n\nexport const getWarningTimeoutEpic = (action$, state) => action$.pipe(\n ofType(CHECK_WARNING_TIMEOUT),\n switchMap(action => sendingAsyncRequest(callWarningTimeoutService(action.payload, state.value))),\n);\n\nexport const getSessionTimeoutConfigFailEpic = action$ => action$.pipe(\n ofType(GET_SESSION_TIMEOUT_CONFIG_FAIL),\n switchMap(action$ => of(push('/error'))),\n);\n\nexport const redirectToLoginPageEpic = (action$, state) => action$.pipe(\n ofType(REDIRECT_TO_LOGIN_PAGE),\n switchMap(action => sendingAsyncRequest(redirectToLoginPage(state.value))),\n);","import { createAction } from 'redux-actions';\nimport { push } from 'connected-react-router';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport {\n map, switchMap, catchError, concatMap,\n} from 'rxjs/operators';\nimport { ajax } from 'rxjs/ajax';\nimport { throwError, of } from 'rxjs';\nimport { ofType } from 'redux-observable';\nimport { getErrorMessage, sendingAsyncRequest } from '../../../helpers/epics';\nimport { types } from '../verify-pic-actions';\nimport { constants } from '../verify-pic-constants';\nimport { ReactGA, WindowUtil, PendoUtil } from '../../../../util';\nimport Crypto from 'crypto-js';\nimport { constants as registrationConstants } from '../../registration/registration-constants';\nimport { constants as progressBarConstants } from '../../../../util/window/progress-bar-constants';\nimport { getLocaleInitialState } from '../../../../util/locale';\n\nconst {\n GET_PIC_SIV_OPTIONS,\n GET_PIC_SIV_OPTIONS_SUCCESS,\n GET_PIC_SIV_OPTIONS_FAIL,\n SET_PIC_SIV_FIELD,\n SET_PIC_SIV_FIELD_SUCCESS,\n SET_PIC_SIV_FIELD_FAIL,\n VERIFY_PIC_SIV_OPTIONS,\n VERIFY_PIC_SIV_OPTIONS_SUCCESS,\n VERIFY_PIC_SIV_OPTIONS_FAIL,\n CANCEL_PIC_AND_CHECK_YOUR_ENTRIES,\n VERIFY_PIC_SET_LOCALE,\n GET_PIC_SIV_OPTIONS_LOCALE_UPDATE,\n UPDATE_LOCALE_FIELD_PIC\n\n} = types;\n\nconst getPicSivOptionsSuccess = createAction(GET_PIC_SIV_OPTIONS_SUCCESS);\nconst getPicSivOptionsFail = createAction(GET_PIC_SIV_OPTIONS_FAIL);\nconst setSivFieldSuccessSent = createAction(SET_PIC_SIV_FIELD_SUCCESS);\nconst setSivFieldFailSent = createAction(SET_PIC_SIV_FIELD_FAIL);\nconst verifySivOptionsSuccessSent = createAction(VERIFY_PIC_SIV_OPTIONS_SUCCESS);\nconst verifySivOptionsFailSent = createAction(VERIFY_PIC_SIV_OPTIONS_FAIL);\nconst isBlank = str => (str || '').trim().length === 0;\nconst cancelAndCheckYourEntriesSent = createAction(CANCEL_PIC_AND_CHECK_YOUR_ENTRIES);\nconst setUpdateLocaleSuccess = createAction(UPDATE_LOCALE_FIELD_PIC);\n\nconst sivOptionsApi = (ajax, transactionId) => ajax({\n url: constants.getPicSivOptionsDetailsEndPoint,\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n \"cache-control\": \"no-cache\",\n 'X-TRANSACTIONID': transactionId,\n }\n});\n\nconst handleResponse = (getState, response) => {\n let embeddedPrcFlow = getState.registration.embeddedPrcFlow || false;\n const isMobile = getState.registration.mobileFlow;\n \n console.log('Embedded prc invalid flow and redirected to pic after successful entry=======');\n // progress bar start\n if(embeddedPrcFlow) {\n if(getState.verifyUser.embeddedPrcInvalidSuccess !== undefined && getState.verifyUser.embeddedPrcInvalidSuccess) {\n getState.registration.currentStage = WindowUtil.getProgressBarViewId(progressBarConstants.verifyUserViewId);\n embeddedPrcFlow = false;\n } else {\n getState.registration.currentStage = WindowUtil.getProgressBarViewId(progressBarConstants.verifyPicViewId);\n } \n } \n let progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Identification, getState);\n // progress bar end\n\n PendoUtil.pendoIdentify(response.orgCd,response.regCodeData.companyName,getState.registration.transactionId) \n PendoUtil.pendoVisitorIdUpdate(response.associateId)\n\n let updatedlocale = WindowUtil.getLocaleValue(getState.locale.locale);\n return getPicSivOptionsSuccess({\n sivOptions: response.regCodeData.sivOptions,\n clientName: response.regCodeData.companyName,\n progressBarData,\n isMobile,\n response,\n embeddedPrcFlow,\n updatedlocale\n });\n}\n\nconst handlePICResponse = (getState, response) => {\n let updatedlocale = WindowUtil.getLocaleValue(getState.locale.locale);\n return setSivFieldSuccessSent({\n sivOptions: response.regCodeData.sivOptions,\n updatedlocale\n });\n}\n\n\nconst sivOptionsFromState = (stateObj) => of({\n sivOptions: stateObj\n});\n\nconst handleStateSivResponse = (getState, response) => {\n const isMobile = getState.registration.mobileFlow;\n let updatedlocale = WindowUtil.getLocaleValue(getState.locale.locale);\n let embeddedPrcFlow = getState.registration.embeddedPrcFlow || false;\n let clientName = getState.registration.companyName || getState.verifyUser.companyName;\n const runAdminFlow = getState.verifyUser.runAdminFlow;\n const runAdminAccountantConnectFlow = getState.verifyUser.runAdminAccountantConnectFlow;\n\n console.log('Embedded prc invalid flow and redirected to pic after successful entry=======');\n // progress bar start\n if(embeddedPrcFlow) {\n if(getState.verifyUser.embeddedPrcInvalidSuccess !== undefined && getState.verifyUser.embeddedPrcInvalidSuccess) {\n getState.registration.currentStage = WindowUtil.getProgressBarViewId(progressBarConstants.verifyUserViewId);\n embeddedPrcFlow = false;\n } else {\n getState.registration.currentStage = WindowUtil.getProgressBarViewId(progressBarConstants.verifyPicViewId);\n } \n } \n let progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Identification, getState);\n // progress bar end\n\n return getPicSivOptionsSuccess({\n sivOptions: response.sivOptions,\n isMobile,\n clientName,\n progressBarData,\n embeddedPrcFlow,\n updatedlocale,\n runAdminFlow,\n runAdminAccountantConnectFlow,\n });\n}\n\nconst getSivOptions = (ajax, getState) => {\n const isMobile = getState.registration.mobileFlow;\n console.log('sivOptions call in PIC ======>' + getState.verifyUser.sivOptions);\n if (getState.registration.sivOptions != '' && getState.registration.sivOptions != undefined) {\n console.log('sivOptions from transaction in PIC');\n return sivOptionsFromState(getState.registration.sivOptions)\n .pipe(map(response => handleStateSivResponse(getState, response)),\n catchError(err => [getPicSivOptionsFail(getErrorMessage(err))]));\n } else if (getState.verifyUser.sivOptions != '' && getState.verifyUser.sivOptions != undefined) {\n console.log('sivOptions from orgverify in PIC');\n return sivOptionsFromState(getState.verifyUser.sivOptions)\n .pipe(map(response => handleStateSivResponse(getState, response)),\n catchError(err => [getPicSivOptionsFail(getErrorMessage(err))]));\n } else {\n console.log('invoke sivOptions in PIC');\n return sivOptionsApi(ajax, getState.registration.transactionId)\n .pipe(map(response => { response.response.isMobile = isMobile; return handleResponse(getState, response.response) }),\n catchError(err => [getPicSivOptionsFail(getErrorMessage(err))]));\n }\n}\n\nconst validateAndSetSivField = (payload, getState) => {\n const identifyYourself = getState.verifyPic;\n\n switch (payload.fieldkey) {\n case constants.RADIO_OPTION: {\n return of({\n radioValue : payload.fieldValue\n });\n }\n case constants.sivOptionIds.siv_firstName: {\n const firstNameRegEx = new RegExp(identifyYourself.sivOptions.availableSivOptions.siv_firstname.regExp);\n\n if (isBlank(payload.fieldValue) || firstNameRegEx.test(payload.fieldValue)) {\n return of({\n firstName: payload.fieldValue,\n firstNameValid: true,\n });\n }\n\n return throwError(new Error(identifyYourself.sivOptions.availableSivOptions.siv_firstname.invalidMessage));\n }\n case constants.sivOptionIds.siv_lastName: {\n const lastNameRegEx = new RegExp(identifyYourself.sivOptions.availableSivOptions.siv_lastname.regExp);\n\n if (isBlank(payload.fieldValue) || lastNameRegEx.test(payload.fieldValue)) {\n return of({\n lastName: payload.fieldValue,\n lastNameValid: true,\n });\n }\n return throwError(new Error(identifyYourself.sivOptions.availableSivOptions.siv_lastname.invalidMessage));\n }\n case constants.sivOptionIds.siv_employee_id: {\n const employeeIdRegEx = new RegExp(identifyYourself.sivOptions.availableSivOptions.siv_empid.regExp);\n\n if (isBlank(payload.fieldValue) || employeeIdRegEx.test(payload.fieldValue)) {\n return of({\n empId: payload.fieldValue,\n empIdValid: true,\n wfnId: '',\n ssn: '',\n ssn4: '',\n fullMonth: '',\n fullDay: ''\n });\n }\n return throwError(new Error(identifyYourself.sivOptions.availableSivOptions.siv_empid.invalidMessage));\n }\n case constants.sivOptionIds.siv_wfn_associate_id: {\n const wfnAssociateIdRegEx = new RegExp(identifyYourself.sivOptions.availableSivOptions.siv_wfnid.regExp);\n\n if (isBlank(payload.fieldValue) || wfnAssociateIdRegEx.test(payload.fieldValue)) {\n return of({\n wfnId: payload.fieldValue,\n wfnIdValid: true,\n empId: '',\n ssn: '',\n ssn4: '',\n fullMonth: '',\n fullDay: ''\n });\n }\n return throwError(new Error(identifyYourself.sivOptions.availableSivOptions.siv_wfnid.invalidMessage));\n }\n case constants.sivOptionIds.siv_ssn: {\n const ssnRegEx = new RegExp(identifyYourself.sivOptions.availableSivOptions.siv_ssn.regExp);\n\n if (isBlank(payload.fieldValue) || ssnRegEx.test(payload.fieldValue)) {\n var replacedSSN = payload.fieldValue.replace(/-/g, \"\");\n return of({\n ssn: replacedSSN,\n ssnValid: true,\n wfnId: '',\n empId: '',\n ssn4: '',\n fullMonth: '',\n fullDay: ''\n });\n }\n return throwError(new Error(identifyYourself.sivOptions.availableSivOptions.siv_ssn4.invalidMessage));\n }\n case constants.sivOptionIds.siv_last4_ssn: {\n const ssn4RegEx = new RegExp(identifyYourself.sivOptions.availableSivOptions.siv_ssn4.regExp);\n\n if (isBlank(payload.fieldValue) || ssn4RegEx.test(payload.fieldValue)) {\n return of({\n ssn4: payload.fieldValue,\n ssn4Valid: true,\n wfnId: '',\n empId: '',\n ssn: '',\n fullMonth: '',\n fullDay: ''\n });\n }\n return throwError(new Error(identifyYourself.sivOptions.availableSivOptions.siv_ssn4.invalidMessage));\n }\n case constants.sivOptionIds.siv_dob_month: {\n return of({\n fullMonth: payload.fieldValue,\n wfnId: '',\n ssn: '',\n ssn4: '',\n empId: '',\n fullDay: ''\n });\n }\n case constants.sivOptionIds.siv_dob_day: {\n return of({\n fullDay: payload.fieldValue,\n wfnId: '',\n ssn: '',\n ssn4: '',\n empId: ''\n });\n }\n\n default: {\n return throwError(new Error(constants.TROUBLE_SHOOT_MSG));\n }\n }\n};\n\nconst verifySivOptions = (ajax, getState) => {\n const identifyYourself = getState.verifyPic;\n const sivOptions = identifyYourself.sivOptions;\n const gaCategory = identifyYourself.gaCategory;\n var uiOptionsMap = {};\n var radioOptionValue = '';\n\n if (sivOptions.availableSivOptions.siv_firstname && identifyYourself.firstName != '') {\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'FIRST_NAME');\n uiOptionsMap.siv_firstname = identifyYourself.firstName;\n sivOptions.availableSivOptions.siv_firstname.idenDataValue = identifyYourself.firstName;\n }\n if (sivOptions.availableSivOptions.siv_lastname && identifyYourself.lastName != '') {\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'LAST_NAME');\n uiOptionsMap.siv_lastname = identifyYourself.lastName;\n sivOptions.availableSivOptions.siv_lastname.idenDataValue = identifyYourself.lastName;\n }\n if (sivOptions.availableSivOptions.siv_empid && identifyYourself.empId != '') {\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'EMP_ID');\n uiOptionsMap.siv_empid = identifyYourself.empId;\n radioOptionValue = 'siv_empid';\n sivOptions.availableSivOptions.siv_empid.idenDataValue = identifyYourself.empId;\n }\n if (sivOptions.availableSivOptions.siv_wfnid && identifyYourself.wfnId != '') {\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'WFN_ID');\n uiOptionsMap.siv_wfnid = identifyYourself.wfnId;\n radioOptionValue = 'siv_wfnid';\n sivOptions.availableSivOptions.siv_wfnid.idenDataValue = identifyYourself.wfnId;\n }\n if (sivOptions.availableSivOptions.siv_ssn && identifyYourself.ssn != '') {\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'SSN');\n uiOptionsMap.siv_ssn = identifyYourself.ssn;\n radioOptionValue = 'siv_ssn';\n sivOptions.availableSivOptions.siv_ssn.idenDataValue = identifyYourself.ssn;\n }\n if (sivOptions.availableSivOptions.siv_ssn4 && identifyYourself.ssn4 != '') {\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'SSN4');\n if (identifyYourself.ssn4 != '' && identifyYourself.ssn4 != undefined) {\n var encryptedSsn = Crypto.AES.encrypt(identifyYourself.ssn4, registrationConstants.registrationEncryption);\n uiOptionsMap.siv_ssn4 = encryptedSsn + '';\n }\n radioOptionValue = 'siv_ssn4';\n sivOptions.availableSivOptions.siv_ssn4.idenDataValue = identifyYourself.ssn4;\n }\n var inputFullMonthId = sivOptions.sivOptionsCalenderItems.monthItems.indexOf(identifyYourself.fullMonth) + 1;\n inputFullMonthId = ('0' + inputFullMonthId).slice(-2);\n var fulldob = '' + inputFullMonthId + identifyYourself.fullDay;\n\n if (sivOptions.availableSivOptions.siv_dateofbirth && identifyYourself.fullDay != '') {\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'DOB');\n uiOptionsMap.siv_dateofbirth = fulldob;\n radioOptionValue = 'siv_dateofbirth';\n sivOptions.availableSivOptions.siv_dateofbirth.idenDataValue = fulldob;\n }\n\n return ajax({\n url: constants.sendPicSivOptionsDetailsEndPoint,\n body: {\n 'sivPIC': sivOptions.sivPIC,\n 'radioOptionValue': radioOptionValue,\n 'uiSivOptionOptions': uiOptionsMap\n },\n method: 'POST',\n responseType: 'json',\n headers: {\n 'Content-Type': 'application/json',\n \"cache-control\": \"no-cache\",\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n });\n};\n\nconst handleSetSivFieldFailResponse = (payload, errorMessage) => {\n switch (payload.fieldkey) {\n case constants.sivOptionIds.siv_firstName:\n return setSivFieldFailSent({\n errorMessageFN: errorMessage,\n firstName: payload.fieldValue,\n firstNameValid: false,\n sivOptionsValidated: false,\n });\n case constants.sivOptionIds.siv_lastName:\n return setSivFieldFailSent({\n errorMessageLN: errorMessage,\n lastName: payload.fieldValue,\n lastNameValid: false,\n sivOptionsValidated: false,\n });\n case constants.sivOptionIds.siv_employee_id:\n return setSivFieldFailSent({\n errorMessageEmpId: errorMessage,\n empId: payload.fieldValue,\n empIdValid: false,\n sivOptionsValidated: false,\n });\n case constants.sivOptionIds.siv_wfn_associate_id:\n return setSivFieldFailSent({\n errorMessageWfnId: errorMessage,\n wfnId: payload.fieldValue,\n wfnIdValid: false,\n sivOptionsValidated: false,\n });\n case constants.sivOptionIds.siv_last4_ssn:\n return setSivFieldFailSent({\n errorMessageSsn4: errorMessage,\n ssn4: payload.fieldValue,\n ssn4Valid: false,\n sivOptionsValidated: false,\n });\n case constants.sivOptionIds.siv_ssn:\n return setSivFieldFailSent({\n errorMessageSsn: errorMessage,\n ssn: payload.fieldValue,\n ssnValid: false,\n sivOptionsValidated: false,\n });\n default: {\n return setSivFieldFailSent({\n errorMessage,\n });\n }\n }\n};\n\nconst setSivField = (payload, getState) =>\n validateAndSetSivField(payload, getState)\n .pipe(map(setSivFieldSuccessSent),\n catchError(err => [handleSetSivFieldFailResponse(payload, getErrorMessage(err))]));\n\nconst handleSubmitSivResponse = (response, getState) => {\n const identifyYourself = getState.verifyPic;\n const gaCategory = identifyYourself.gaCategory;\n\n console.log('handleSubmitSivResponse:' + response)\n\n if (response.code != null && response.code == constants.ALREADY_REGISTERED) {\n ReactGA.sendevent(gaCategory, 'VERIFY_PIC', response.code);\n \n return cancelAndCheckYourEntriesSent({\n errorCode : response.code\n })\n }\n\n if (response.viewId.indexOf(constants.ERROR) == -1) {\n PendoUtil.pendoIdentify(response.orgCd,getState.verifyPic.clientName,getState.registration.transactionId)\n PendoUtil.pendoVisitorIdUpdate(response.associateId)\n \n ReactGA.sendevent(gaCategory, 'VERIFY_PIC', 'SUCCESS');\n return verifySivOptionsSuccessSent({\n viewId: response.viewId\n });\n }\n\n if (response.code != null) {\n\n if (response.code == constants.INVALID_SIVDATA || response.code == constants.DUPLICATE_SSN4) {\n ReactGA.sendevent(gaCategory, 'VERIFY_PIC', response.code);\n return verifySivOptionsFailSent({\n showErrorModal: false,\n errorTitle: response.message,\n ssn4: '',\n ssn: ''\n });\n }\n if (response.code != null && (response.code == constants.EXCEEDED_ATTEMPTS || response.code == constants.EMAIL_NOT_EXISTS\n || response.code == constants.NO_SIV_DEFINED || response.code == constants.CLIENT_SETUP_ERROR || response.code == constants.ALREADY_REGISTERED_SUSPENDED)) {\n console.log('TRUE;response.code=' + response.code);\n ReactGA.sendevent(gaCategory, 'VERIFY_PIC', response.code);\n return verifySivOptionsFailSent({\n showErrorModal: true,\n errorMsgTitle: response.title,\n welcomeMsg: response.message,\n errorTitle: '',\n ssn4: '',\n ssn: ''\n });\n }\n\n console.log('response.message=' + response.message);\n return verifySivOptionsFailSent({\n showErrorModal: false,\n errorTitle: response.message,\n ssn4: '',\n ssn: ''\n });\n }\n};\n\nconst handleSubmitSivResponseFail = (response) => {\n return verifySivOptionsFailSent({\n showErrorModal: true,\n errorMsgTitle: getState.intl.messages['Txt_VGeneralErrorWindowTitle'],\n welcomeMsg: getState.intl.messages['Err_SystemErrorinRequest'],\n ssn4: '',\n ssn: ''\n });\n};\nconst submitSivOptions = (ajax, getState) =>\n verifySivOptions(ajax, getState)\n .pipe(map(response => handleSubmitSivResponse(response.response, getState)),\n catchError(err => handleSubmitSivResponseFail(getErrorMessage(err))));\n\nconst redirectToLoginPage = getState => {\n const isMobile = getState.registration.mobileFlow;\n const url = getState.registration.returnUrl;\n const code = getState.verifyPic.errorCode;\n const organizationId = getState.registration.organizationId;\n if (code != null && code === constants.ALREADY_REGISTERED) {\n return sendOkForAlreadyRegisteredUser(getState).pipe(map(response => handleAlreadyRegisteredResponse(response)),\n catchError(err => [(getErrorMessage(err))]));\n }\n if (isMobile && code != constants.ALREADY_REGISTERED) {\n console.log('Entered Mobile flow');\n closeMobileContainer(); //this is part of index.html\n return true;\n } else {\n return window.open(unescape(WindowUtil.validateRtnUrl(decodeURIComponent(url), organizationId)), '_self');\n }\n}\n\nconst handleAlreadyRegisteredResponse = (response) => {\n var wnd = window.open(\"about:blank\", \"_self\");\n wnd.document.write(response.response);\n wnd.document.close();\n}\n\nconst sendOkForAlreadyRegisteredUser = (getState) => ajax({\n url: constants.redirectToForgotFlowEndPoint,\n method: 'GET',\n headers: {\n 'Content-Type': 'text/plain',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId,\n },\n responseType: 'text/plain'\n});\n\n/**********************Set language**********************/\nconst setLocale = (payload, getState) =>\n setLocaleApi(payload, getState)\n .pipe(map(response => setLocaleHandler(response.response, payload, getState)),\n catchError(err => [getPicSivOptionsFail(getErrorMessage(err))]));\n\nconst setLocaleApi = (payload, getState) => ajax({\n url: constants.setLocaleEndPoint,\n method: 'POST',\n responseType: 'json',\n body: payload.payload.suffix,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\n\nconst setLocaleHandler = (response, payload, getState) => {\n if (response.code == constants.SUCCESS) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'VERIFY_PIC_SET_LOCALE', 'SUCCESS');\n const updatedlocale = payload.payload.language;\n const localeResponse = getLocaleInitialState(payload.payload.suffix);\n getState.locale.locale = localeResponse.locale.locale;\n getState.intl.locale = localeResponse.intl.locale;\n getState.intl.messages = localeResponse.intl.messages;\n WindowUtil.setCookieValue(getState.locale.locale);\n let progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Identification, getState);\n return setUpdateLocaleSuccess({\n updatedlocale, progressBarData\n });\n }\n else {\n ReactGA.sendevent(getState.findMe.gaCategory, 'VERIFY_PIC_SET_LOCALE', 'FAILED');\n return getPicSivOptionsFail();\n }\n\n}\n\n\n/**********************Pic Sivoptions**********************/\nconst getPicSivOptions = (ajax, getState) =>\n sivOptionsApi(ajax, getState.registration.transactionId)\n .pipe(map(response => { \n const isMobile = getState.registration.mobileFlow;\n response.response.isMobile = isMobile;\n return handlePICResponse(getState, response.response) \n }),\n catchError(err => [getPicSivOptionsFail(getErrorMessage(err))]));\n\n\nexport const getSivOptionsEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(GET_PIC_SIV_OPTIONS),\n switchMap(action => sendingAsyncRequest(getSivOptions(ajax, state.value))));\n\nexport const setSivFieldEpic = (action$, state) => action$.pipe(\n ofType(SET_PIC_SIV_FIELD),\n switchMap(action => sendingAsyncRequest(setSivField(action.payload, state.value))));\n\nexport const verifySivOptionsEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(VERIFY_PIC_SIV_OPTIONS),\n switchMap(action => sendingAsyncRequest(submitSivOptions(ajax, state.value))));\n\nexport const getSivOptionsFailureEpic = action$ => action$.pipe(\n ofType(GET_PIC_SIV_OPTIONS_FAIL),\n switchMap(action$ => of(push('/error'))));\n\nexport const verifySivOptionsSuccessEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_PIC_SIV_OPTIONS_SUCCESS),\n switchMap(action$ => of(push(state.value.verifyPic.viewId))));\n\nexport const verifySivOptionsFailEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_PIC_SIV_OPTIONS_FAIL),\n switchMap(action => of()));\n\nexport const cancelAndCheckYourEntriesEpic = (action$, state) => action$.pipe(\n ofType(CANCEL_PIC_AND_CHECK_YOUR_ENTRIES),\n switchMap(action => sendingAsyncRequest(redirectToLoginPage(state.value))),\n);\n\nexport const setLocaleEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_PIC_SET_LOCALE),\n switchMap(action => sendingAsyncRequest(setLocale(action.payload, state.value))));\n\nexport const getPicSivOptionsEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(GET_PIC_SIV_OPTIONS_LOCALE_UPDATE),\n switchMap(action => sendingAsyncRequest(getPicSivOptions(ajax, state.value))));","import { createAction } from 'redux-actions';\nimport { push } from 'connected-react-router';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport {\n map, switchMap, catchError, concatMap,\n} from 'rxjs/operators';\nimport { ajax } from 'rxjs/ajax';\nimport { throwError, of } from 'rxjs';\nimport { ofType } from 'redux-observable';\nimport { getErrorMessage, sendingAsyncRequest } from '../../../helpers/epics';\nimport { constants } from '../contact-info-constants';\nimport { types } from '../contact-info-actions';\nimport { ReactGA, WindowUtil, PendoUtil } from '../../../../util';\nimport { constants as progressBarConstants } from '../../../../util/window/progress-bar-constants';\n\nconst {\n CONTACT_INFO_OPTIONS,\n CONTACT_INFO_OPTIONS_SUCCESS,\n CONTACT_INFO_OPTIONS_FAIL,\n SET_CONTACT_FIELD,\n SET_CONTACT_FIELD_SUCCESS,\n SET_CONTACT_FIELD_FAIL,\n ENABLE_SECOUNDARY_FORM,\n ENABLE_SECOUNDARY_FORM_SUCCESS,\n ENABLE_PHONE_FIELD,\n ENABLE_PHONE_FIELD_SUCCESS,\n ON_FINAL_SUBMIT_SUCCESS,\n CONTACT_FINAL_SUBMIT,\n ON_FINAL_SUBMIT_FAILURE,\n SET_CONTINUE_MODAL,\n ON_FINAL_CONTACT_INFO_SUCCESS,\n ON_FINAL_SUBMIT_ALERT_SUCCESS,\n CANCEL_CONTACT_AND_CHECK_YOUR_ENTRIES,\n PERSONAL_PHONE_INFO,\n CONTACT_INFO_ACCESS_CODE_SENT\n\n} = types;\n\n\nconst getContactInfoOptionsSuccess = createAction(CONTACT_INFO_OPTIONS_SUCCESS);\nconst getContactInfoOptionsFail = createAction(CONTACT_INFO_OPTIONS_FAIL);\nconst setContactFieldSuccessSent = createAction(SET_CONTACT_FIELD_SUCCESS);\nconst setContactFieldFailSent = createAction(SET_CONTACT_FIELD_FAIL);\nconst setSecoundaryFormEnabled = createAction(ENABLE_SECOUNDARY_FORM_SUCCESS);\nconst setPhoneFieldEnabled = createAction(ENABLE_PHONE_FIELD_SUCCESS);\nconst onSetFinalSubmit = createAction(ON_FINAL_SUBMIT_SUCCESS);\nconst onSetFinalSubmitAlert = createAction(ON_FINAL_SUBMIT_ALERT_SUCCESS);\nconst setFinalSubmitFail = createAction(ON_FINAL_SUBMIT_FAILURE);\n\nconst isBlank = str => (str || '').trim().length === 0;\n\nconst getFeedDataApi = (ajax, getState) => ajax({\n url: constants.getContactDetailsFeedDataEndPoint,\n method: 'POST',\n responseType: 'json',\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\n\nconst verifyContactsApi = (ajax, getState, reqObj) => ajax({\n url: constants.getVerifyContactDetailsEndPoint,\n method: 'POST',\n responseType: 'json',\n body: {\n 'associateContactInfoCollection': reqObj\n },\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\nconst getPersonalPhoneInfoApi = (ajax, getState) => ajax({\n url: constants.getVerifyPrcGenerateCodeAPI,\n method: 'POST',\n responseType: 'json',\n body: constants.PROOFING_PERSONAL_PHONE,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\nconst setSubmitAccessCodeApi = (ajax, inputPRC, getState) => ajax({\n url: constants.getVerifyPrcSubmitCodeAPI,\n method: 'POST',\n responseType: 'json',\n body: inputPRC,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\nconst sendingFinalSubmit = (ajax, getState, reqObj) => verifyContactsApi(ajax, getState, reqObj).pipe(\n map(response => handleSubmitResponse(response.response, getState)),\n catchError(err => setFinalSubmitFail(getErrorMessage(err))),\n);\n\n/******************************Preparing Submit Response Object START *******************************************/\n\nconst setFinalSubmit = (ajax, getState) => {\n let secoundaryPhone = false;\n const reqObj = {};\n const associateContactInfo = [];\n const contactInfo = Object.assign({}, getState.contactInfo);\n let gaCategory = contactInfo.gaCategory;\n let contactInfoObj = Object.assign({}, getState.contactInfo.contactInfoObj);\n let contactInfoOptions = Object.assign({}, getState.contactInfo.contactInfoOptions);\n if (contactInfo.isFormValid != undefined && contactInfo.isFormValid == false)\n return of();\n if (!isBlank(contactInfoObj.pEmail)) {\n const contMechPurpTypeNm = getContMechPurpTypeNm(contactInfo, contactInfoObj.peType);\n associateContactInfo.push({\n \"contactInfo\": contactInfoObj.pEmail, \"communicationType\": \"EMAIL\",\n \"contMechPurpTypeNm\": contMechPurpTypeNm, \"tcChecked\": null, \"countryPhoneCode\": null,\n \"contactExtn\": null, \"primary\": true, \"tsType\": (contactInfoObj.radio5 == 'Yes' ? 'ACCEPT' : 'DECLINE')\n });\n ReactGA.sendevent(gaCategory, 'PRIMARY', 'EMAIL');\n if (contMechPurpTypeNm == \"PERSONAL\" && contactInfoObj.tsEligible)\n ReactGA.sendevent(gaCategory, 'TOTALSOURCE', contactInfoObj.radio5 == 'Yes' ? 'ACCEPT' : 'DECLINE');\n }\n if (!isBlank(contactInfoObj.bMobile)) {\n let extn = contactInfoObj.extn1;\n const phoneMechPurpTypeNm = getPhoneMechPurpTypeNm(contactInfo, contactInfoObj.bmType);\n if (phoneMechPurpTypeNm.cType == \"OFFICE_PHONE\") {\n contactInfoObj.radio1 = null;\n }\n else {\n ReactGA.sendevent(gaCategory, phoneMechPurpTypeNm.cType, contactInfoObj.radio1);\n extn = null;\n }\n associateContactInfo.push({\n \"contactInfo\": contactInfoObj.bMobile, \"communicationType\": phoneMechPurpTypeNm.cType,\n \"contMechPurpTypeNm\": phoneMechPurpTypeNm.pType, \"tcChecked\": contactInfoObj.radio1, \"countryPhoneValue\": contactInfoObj.ccodeValue1,\n \"contactExtn\": extn, \"primary\": true\n });\n ReactGA.sendevent(gaCategory, phoneMechPurpTypeNm.pType, phoneMechPurpTypeNm.cType);\n\n }\n if (!isBlank(contactInfoObj.sEmail)) {\n const contMechPurpTypeNm = getContMechPurpTypeNm(contactInfo, contactInfoObj.seType);\n associateContactInfo.push({\n \"contactInfo\": contactInfoObj.sEmail, \"communicationType\": \"EMAIL\",\n \"contMechPurpTypeNm\": contMechPurpTypeNm, \"tcChecked\": null, \"countryPhoneValue\": null,\n \"contactExtn\": null, \"tsType\": (contactInfoObj.radio5 == 'Yes' ? 'ACCEPT' : 'DECLINE')\n });\n ReactGA.sendevent(gaCategory, 'SECONDARY', 'EMAIL');\n if (contMechPurpTypeNm == \"PERSONAL\" && contactInfoObj.tsEligible)\n ReactGA.sendevent(gaCategory, 'TOTALSOURCE', contactInfoObj.radio5 == 'Yes' ? 'ACCEPT' : 'DECLINE');\n }\n if (!isBlank(contactInfoObj.pMobile)) {\n let extn = contactInfoObj.extn2;\n const phoneMechPurpTypeNm = getPhoneMechPurpTypeNm(contactInfo, contactInfoObj.pmType);\n if (phoneMechPurpTypeNm.cType == \"OFFICE_PHONE\") {\n contactInfoObj.radio2 = null;\n }\n else {\n ReactGA.sendevent(gaCategory, phoneMechPurpTypeNm.cType, contactInfoObj.radio2);\n extn = null;\n }\n if(contactInfoOptions.embeddedPicEmailNotUnique) {\n associateContactInfo.push({\n \"contactInfo\": contactInfoObj.pMobile, \"communicationType\": phoneMechPurpTypeNm.cType,\n \"contMechPurpTypeNm\": phoneMechPurpTypeNm.pType, \"tcChecked\": contactInfoObj.radio1, \"countryPhoneValue\": contactInfoObj.ccodeValue1,\n \"contactExtn\": extn\n });\n } else {\n associateContactInfo.push({\n \"contactInfo\": contactInfoObj.pMobile, \"communicationType\": phoneMechPurpTypeNm.cType,\n \"contMechPurpTypeNm\": phoneMechPurpTypeNm.pType, \"tcChecked\": contactInfoObj.radio2, \"countryPhoneValue\": contactInfoObj.ccodeValue2,\n \"contactExtn\": extn\n });\n }\n \n ReactGA.sendevent(gaCategory, phoneMechPurpTypeNm.pType, phoneMechPurpTypeNm.cType);\n\n }\n if (!isBlank(contactInfoObj.bLandline)) {\n let extn = contactInfoObj.extn3;\n const phoneMechPurpTypeNm = getPhoneMechPurpTypeNm(contactInfo, contactInfoObj.blType);\n if (phoneMechPurpTypeNm.cType == \"OFFICE_PHONE\") {\n contactInfoObj.radio3 = null;\n }\n else {\n ReactGA.sendevent(gaCategory, phoneMechPurpTypeNm.cType, contactInfoObj.radio3);\n extn = null;\n }\n associateContactInfo.push({\n \"contactInfo\": contactInfoObj.bLandline, \"communicationType\": phoneMechPurpTypeNm.cType,\n \"contMechPurpTypeNm\": phoneMechPurpTypeNm.pType, \"tcChecked\": contactInfoObj.radio3, \"countryPhoneValue\": contactInfoObj.ccodeValue3,\n \"contactExtn\": extn\n });\n ReactGA.sendevent(gaCategory, phoneMechPurpTypeNm.pType, phoneMechPurpTypeNm.cType);\n }\n if (!isBlank(contactInfoObj.pLandline)) {\n let extn = contactInfoObj.extn4;\n const phoneMechPurpTypeNm = getPhoneMechPurpTypeNm(contactInfo, contactInfoObj.plType);\n if (phoneMechPurpTypeNm.cType == \"OFFICE_PHONE\") {\n contactInfoObj.radio4 = null;\n }\n else {\n ReactGA.sendevent(gaCategory, phoneMechPurpTypeNm.cType, contactInfoObj.radio4);\n extn = null;\n }\n associateContactInfo.push({\n \"contactInfo\": contactInfoObj.pLandline, \"communicationType\": phoneMechPurpTypeNm.cType,\n \"contMechPurpTypeNm\": phoneMechPurpTypeNm.pType, \"tcChecked\": contactInfoObj.radio4, \"countryPhoneValue\": contactInfoObj.ccodeValue4,\n \"contactExtn\": extn\n });\n ReactGA.sendevent(gaCategory, phoneMechPurpTypeNm.pType, phoneMechPurpTypeNm.cType);\n }\n reqObj.associateContactInfo = associateContactInfo;\n return sendingFinalSubmit(ajax, getState, reqObj);\n}\n\n/******************************Preparing Submit Response Object END *******************************************/\n\nconst getContMechPurpTypeNm = (contactInfo, type) => {\n const index = contactInfo.contactInfoOptions.emailItems.indexOf(type);\n if (index == 0) return \"BUSINESS\";\n else return \"PERSONAL\";\n\n}\nconst getCountryCodeValue = (contactInfo, value) => {\n if (!isBlank(value)) {\n const index = contactInfo.contactInfoOptions.countryCodes.indexOf(value);\n if (index == -1) return null;\n else return contactInfo.contactInfoOptions.countryCodesList[index].value;\n }\n else return null;\n}\n\n\nconst getPhoneMechPurpTypeNm = (contactInfo, type) => {\n const index = contactInfo.contactInfoOptions.phoneItems.indexOf(type);\n if(contactInfo.contactInfoOptions.embeddedPicEmailNotUnique) {\n return { \"cType\": \"CELL_PHONE\", \"pType\": \"PERSONAL\" };\n } else if (contactInfo.contactInfoOptions.runAdminFlow) {\n if (index == 0) return { \"cType\": \"CELL_PHONE\", \"pType\": \"BUSINESS\" };\n else return { \"cType\": \"CELL_PHONE\", \"pType\": \"PERSONAL\" };\n }\n else {\n if (index == 0) return { \"cType\": \"CELL_PHONE\", \"pType\": \"BUSINESS\" };\n if (index == 1) return { \"cType\": \"OFFICE_PHONE\", \"pType\": \"BUSINESS\" };\n if (index == 2) return { \"cType\": \"CELL_PHONE\", \"pType\": \"PERSONAL\" };\n else return { \"cType\": \"HOME_PHONE\", \"pType\": \"PERSONAL\" };\n }\n\n\n}\n\nconst handleSubmitResponse = (response, getState) => {\n getState.verifyPrc.sendRedirect = false;\n const contactInfo = Object.assign({}, getState.contactInfo);\n let gaCategory = contactInfo.gaCategory;\n let contactInfoObj = contactInfo.contactInfoObj;\n let errorFields = response.errorFieldType;\n contactInfoObj.fieldValid = [true, true, true, true, true, true];\n contactInfoObj.showAlert = false;\n contactInfoObj.contactAdminMsg = response.contactAdminMsg || null;\n contactInfoObj.showNudgePage = response.showNudgePage;\n if (response.code !== undefined && response.code == 'Err_NotAuthorizedforTask') {\n let showModalError = true;\n contactInfoObj.showModalMessage = response.message;\n contactInfoObj.showModalTitle = response.title;\n let isAuthorized = false;\n ReactGA.sendevent(gaCategory, 'CONTACT_INFO', 'NOT_AUTHORIZED');\n return onSetFinalSubmit({ isAuthorized, contactInfoObj, showModalError });\n }\n\n if (response.showOtpVerification) {\n contactInfoObj.isProofingContactInfo = response.showOtpVerification;\n return onSetFinalSubmit({ contactInfoObj });\n }\n\n if (errorFields != null) {\n\n errorFields = errorFields.split(\",\");\n errorFields.map((value, key) => {\n let field = value.split(\"-\");\n\n if (field[0] == \"EMAIL\" && field[1] == \"PERSONAL\") {\n\n const pos = getErrorFieldIndex(contactInfo, null, 1, 1);\n\n contactInfoObj.fieldValid[pos] = false;\n\n }\n else if (field[0] == \"EMAIL\" && field[1] == \"BUSINESS\") {\n const pos = getErrorFieldIndex(contactInfo, null, 0, 1);\n contactInfoObj.fieldValid[pos] = false;\n\n }\n else if (field[0] == \"CELL_PHONE\" && field[1] == \"PERSONAL\") {\n const pos = getErrorFieldIndex(contactInfo, 2, null, 2);\n contactInfoObj.fieldValid[pos] = false;\n\n }\n else if (field[0] == \"CELL_PHONE\" && field[1] == \"BUSINESS\") {\n const pos = getErrorFieldIndex(contactInfo, 0, null, 2);\n contactInfoObj.fieldValid[pos] = false;\n\n }\n else if (field[0] == \"HOME_PHONE\" && field[1] == \"PERSONAL\") {\n const pos = getErrorFieldIndex(contactInfo, 3, null, 2);\n contactInfoObj.fieldValid[pos] = false;\n\n }\n else if (field[0] == \"OFFICE_PHONE\" && field[1] == \"BUSINESS\") {\n const pos = getErrorFieldIndex(contactInfo, 1, null, 2);\n contactInfoObj.fieldValid[pos] = false;\n\n }\n });\n }\n\n if (response.code == 'Lbl_AccountLocked') {\n contactInfoObj.showModalMessage = response.message;\n contactInfoObj.showModalTitle = response.title;\n ReactGA.sendevent(gaCategory, 'CONTACT_INFO', 'ACCOUNT_LOCKED');\n return onSetFinalSubmit({ showModalLock: \"true\", contactInfoObj })\n } else if (response.code == 'EXCEEDED_ATTEMPTS') {\n let showModalError = true;\n contactInfoObj.showModalMessage = response.message;\n contactInfoObj.showModalTitle = response.title;\n ReactGA.sendevent(gaCategory, 'CONTACT_INFO', 'EXCEEDED_ATTEMPTS');\n return onSetFinalSubmit({ showModalLock: \"true\", contactInfoObj, showModalError })\n }\n else if (response.modelType != null && response.validationPassed == true) {\n ReactGA.sendevent(gaCategory, 'CONTACT_INFO', response.code);\n if (response.message != null) {\n let showModalInfo = false;\n let showModalWarn = false;\n let showModalError = false;\n if (response.modalType == \"ERROR\") {\n showModalError = true;\n }\n else if (response.modalType == \"INFO\") {\n showModalInfo = true;\n }\n else {\n showModalWarn = true;\n }\n contactInfoObj.showModalMessage = response.message;\n contactInfoObj.showModalTitle = response.title;\n return onSetFinalSubmit({ viewId: response.viewId, showModalInfo, showModalWarn, showModalError, contactInfoObj })\n }\n\n }\n else if (response.validationPassed == false) {\n ReactGA.sendevent(gaCategory, 'CONTACT_INFO', response.code);\n contactInfoObj.showAlert = true;\n if (response.message != null) {\n contactInfoObj.showAlertMessage = response.message;\n }\n contactInfo.contactInfoObj = contactInfoObj;\n return onSetFinalSubmitAlert({ viewId: response.viewId, contactInfo });\n }\n else {\n return onSetFinalSubmit({ viewId: response.viewId, sendRedirect: true, contactInfoObj });\n }\n\n}\n\nconst getContactInfo = (ajax, getState) => getFeedDataApi(ajax, getState).pipe(\n map(response => handleResponse(response.response, getState)),\n catchError(err => getContactInfoOptionsFail(getErrorMessage(err))),\n);\n\nconst handleResponse = (data, getState) => {\n /*************************************Constructing contact info options *******************************************/\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = \"WEB_REGISTRATION_CONTACT\";\n if (isMobile) gaCategory = \"MOBILE_REGISTRATION_CONTACT\";\n if (window.innerWidth <= 479 && isMobile == false) gaCategory = \"MOBILEBROSWER_REGISTRATION_CONTACT\";\n\n let contactInfo = Object.assign({}, getState.contactInfo);\n let contactInfoOptions = contactInfo.contactInfoOptions;\n let contactInfoObj = contactInfo.contactInfoObj;\n contactInfoObj.cssTitle = false;\n contactInfoObj.headerTitle = getState.intl.messages['contactInfo.title'];\n let pagePath = '/ssr/capitalOne/contactInfo';\n if (data.extAccountVedorName && data.extAccountVedorName == 'CAPITALONE') {\n console.log(\"in capitalOne success\");\n getState.registration.currentStage = WindowUtil.getProgressBarViewId(progressBarConstants.verifyUser);\n contactInfoObj.headerTitle = getState.intl.messages['contactInfo.capitalOneTitle'];\n contactInfoObj.cssTitle = true;\n }\n else pagePath = '/ssr/pic/contactInfo';\n let pageView = pagePath + \"/web\";\n if (isMobile) pageView = pagePath + \"/mobile\";\n if (window.innerWidth <= 479 && isMobile == false) pageView = pagePath + \"/mobilebrowser\";\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n let isAuthorized = true;\n // progress bar start\n contactInfoObj.progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Contact_Info, getState);\n // progress bar end\n\n if (data.code !== undefined && data.code == 'Err_NotAuthorizedforTask') {\n let showModalError = true;\n contactInfoObj.showModalMessage = data.message;\n contactInfoObj.showModalTitle = data.title;\n ReactGA.sendevent(gaCategory, 'CONTACT_INFO', 'NOT_AUTHORIZED');\n isAuthorized = false;\n return setContactFieldFailSent({ isAuthorized, contactInfoObj, showModalError });\n }\n\n var priorityList = [5, 5, 5, 5];\n var valueList = [null, null, null, null];\n var EFlag = [null, null, null, null];\n contactInfoOptions.emailItems = [];\n contactInfoOptions.phoneItems = [];\n contactInfoOptions.countryCodes = [];\n contactInfoOptions.emailValidationPolicy = data.emailRegex;\n contactInfoOptions.mobileValidationPolicy = data.phoneRegex;\n contactInfoOptions.emailInvalidMessage = getState.intl.messages['emailInvalidMessage'];\n contactInfoOptions.mobileInvalidMessage = getState.intl.messages['mobileInvalidMessage'];\n contactInfoOptions.emailItems.push(getState.intl.messages['emailItem1']);\n contactInfoOptions.emailItems.push(getState.intl.messages['emailItem2']);\n contactInfoOptions.runAdminFlow = getState.verifyUser.runAdminFlow || false;\n contactInfoOptions.embeddedPicEmailNotUnique = data.embeddedPicEmailNotUnique || false;\n if (contactInfo.contactInfoOptions.embeddedPicEmailNotUnique) {\n contactInfoObj.phoneCount = 0;\n contactInfoOptions.phoneItems.push(getState.intl.messages['emailItem2'] + ', ' + getState.intl.messages['phoneItem1']);\n } else if (getState.verifyUser.runAdminFlow) {\n contactInfoObj.phoneCount = 0;\n contactInfoOptions.phoneItems.push(getState.intl.messages['emailItem1'] + ', ' + getState.intl.messages['phoneItem1']);\n contactInfoOptions.phoneItems.push(getState.intl.messages['emailItem2'] + ', ' + getState.intl.messages['phoneItem1']);\n\n } else {\n contactInfoOptions.phoneItems.push(getState.intl.messages['emailItem1'] + ', ' + getState.intl.messages['phoneItem1']);\n contactInfoOptions.phoneItems.push(getState.intl.messages['emailItem1'] + ', ' + getState.intl.messages['phoneItem2']);\n contactInfoOptions.phoneItems.push(getState.intl.messages['emailItem2'] + ', ' + getState.intl.messages['phoneItem1']);\n contactInfoOptions.phoneItems.push(getState.intl.messages['emailItem2'] + ', ' + getState.intl.messages['phoneItem2']);\n\n }\n\n\n if (data.regisNoCode) {\n contactInfoObj.bMobileRequired = true;\n }\n else {\n contactInfoObj.bMobileRequired = false;\n }\n\n\n\n contactInfoObj.onlyCountries = [];\n for (var i = 0; i < data.countryCodes.length; i++) {\n contactInfoObj.onlyCountries.push(data.countryCodes[i].value.toLowerCase());\n }\n\n if (data.tsEligible) {\n contactInfoObj.tsEligible = true;\n data.tsTypes.map((value, key) => {\n contactInfoObj.tsTypes[key] = value.label;\n });\n\n let t = contactInfoObj.tsTypes[0];\n contactInfoObj.tsTypes[3] = contactInfoObj.tsTypes[1];\n let start = t.indexOf(\">\") + 1;\n let end = t.indexOf(\"\") - start;\n contactInfoObj.tsTypes[1] = t.substr(start, end);\n contactInfoObj.tsTypes[0] = t.substr(0, t.indexOf(\"
\") + 4);\n contactInfoObj.tsUrl = data.tsUrl;\n\n\n\n }\n\n data.associateContactInfoDetails.associateContactInfoCollection.associateContactInfo.map((value, key) => {\n\n if (value.communicationType == \"EMAIL\" && value.contMechPurpTypeNm == \"PERSONAL\" && value.contactInfo != null) {\n EFlag[1] = value.contactInfo;\n EFlag[3] = value.enabled;\n EFlag[5] = value.primary;\n\n }\n if (value.communicationType == \"EMAIL\" && value.contMechPurpTypeNm == \"BUSINESS\" && value.contactInfo != null) {\n EFlag[0] = value.contactInfo;\n EFlag[2] = value.enabled;\n EFlag[4] = value.primary;\n\n }\n\n if (value.communicationType == \"EMAIL\" && value.contMechPurpTypeNm == \"BUSINESS\" && data.businessEmail == true) {\n EFlag[0] = value.contactInfo;\n EFlag[2] = value.enabled;\n EFlag[4] = value.primary;\n\n }\n \n if (contactInfo.contactInfoOptions.embeddedPicEmailNotUnique) {\n if (value.communicationType == \"CELL_PHONE\" && value.contMechPurpTypeNm == \"PERSONAL\" && value.contactInfo != null) {\n\n priorityList[0] = 0;\n valueList[0] = { field: value.contactInfo, countrycode: value.countryPhoneCode, enabled: value.enabled, primary: value.primary, countrycodeValue: value.countryPhoneValue };\n\n }\n } else if (getState.verifyUser.runAdminFlow) {\n if (value.communicationType == \"CELL_PHONE\" && value.contMechPurpTypeNm == \"PERSONAL\" && value.contactInfo != null) {\n\n priorityList[1] = 1;\n valueList[1] = { field: value.contactInfo, countrycode: value.countryPhoneCode, enabled: value.enabled, primary: value.primary, countrycodeValue: value.countryPhoneValue };\n\n }\n\n if (value.communicationType == \"CELL_PHONE\" && value.contMechPurpTypeNm == \"BUSINESS\" && value.contactInfo != null) {\n priorityList[0] = 0;\n valueList[0] = { field: value.contactInfo, countrycode: value.countryPhoneCode, enabled: value.enabled, primary: value.primary, countrycodeValue: value.countryPhoneValue };\n }\n } else {\n if (value.communicationType == \"CELL_PHONE\" && value.contMechPurpTypeNm == \"PERSONAL\" && value.contactInfo != null) {\n\n priorityList[2] = 2;\n valueList[2] = { field: value.contactInfo, countrycode: value.countryPhoneCode, enabled: value.enabled, primary: value.primary, countrycodeValue: value.countryPhoneValue };\n\n }\n\n if (value.communicationType == \"CELL_PHONE\" && value.contMechPurpTypeNm == \"BUSINESS\" && value.contactInfo != null) {\n priorityList[0] = 0;\n valueList[0] = { field: value.contactInfo, countrycode: value.countryPhoneCode, enabled: value.enabled, primary: value.primary, countrycodeValue: value.countryPhoneValue };\n }\n\n if (value.communicationType == \"HOME_PHONE\" && value.contMechPurpTypeNm == \"PERSONAL\" && value.contactInfo != null) {\n priorityList[3] = 3;\n valueList[3] = { field: value.contactInfo, countrycode: value.countryPhoneCode, enabled: value.enabled, primary: value.primary, countrycodeValue: value.countryPhoneValue };\n }\n\n if (value.communicationType == \"OFFICE_PHONE\" && value.contMechPurpTypeNm == \"BUSINESS\" && value.contactInfo != null) {\n priorityList[1] = 1;\n valueList[1] = { field: value.contactInfo, countrycode: value.countryPhoneCode, enabled: value.enabled, primary: value.primary, countrycodeValue: value.countryPhoneValue };\n }\n }\n\n\n\n\n });\n\n /******************************Setting EMAIL and Phone fields *******************************************/\n\n if (EFlag[0] == null && EFlag[1] == null && data.businessEmail) {\n contactInfoObj.fieldDisable[2] = true;\n contactInfoObj.emailDisabled = true;\n contactInfoObj.seType = contactInfoOptions.emailItems[0];\n contactInfoObj.peType = contactInfoOptions.emailItems[1];\n }\n\n if (EFlag[0] != null && EFlag[1] != null) {\n contactInfoObj.showSecoundaryForm = true;\n if (EFlag[4]) {\n contactInfoObj.seType = contactInfoOptions.emailItems[1];\n contactInfoObj.pEmail = EFlag[0];\n contactInfoObj.sEmail = EFlag[1];\n contactInfoObj.peType = contactInfoOptions.emailItems[0];\n if (EFlag[2] == false) {\n contactInfoObj.fieldDisable[0] = true;\n contactInfoObj.emailDisabled = true;\n }\n if (EFlag[3] == false) {\n contactInfoObj.fieldDisable[2] = true;\n contactInfoObj.emailDisabled = true;\n }\n\n }\n else {\n contactInfoObj.seType = contactInfoOptions.emailItems[0];\n contactInfoObj.pEmail = EFlag[1];\n contactInfoObj.sEmail = EFlag[0];\n contactInfoObj.peType = contactInfoOptions.emailItems[1];\n if (EFlag[2] == false) {\n contactInfoObj.fieldDisable[2] = true;\n contactInfoObj.emailDisabled = true;\n }\n if (EFlag[3] == false) {\n contactInfoObj.fieldDisable[0] = true;\n contactInfoObj.emailDisabled = true;\n }\n }\n }\n else if (EFlag[0] != null) {\n contactInfoObj.seType = contactInfoOptions.emailItems[1];\n contactInfoObj.pEmail = EFlag[0];\n contactInfoObj.peType = contactInfoOptions.emailItems[0];\n if (EFlag[2] == false) {\n contactInfoObj.fieldDisable[0] = true;\n contactInfoObj.emailDisabled = true;\n } \n }\n else if (EFlag[1] != null) {\n if (data.businessEmail) {\n contactInfoObj.fieldDisable[2] = true;\n contactInfoObj.emailDisabled = true;\n contactInfoObj.seType = contactInfoOptions.emailItems[0];\n contactInfoObj.peType = contactInfoOptions.emailItems[1];\n contactInfoObj.pEmail = EFlag[1];\n } else {\n contactInfoObj.seType = contactInfoOptions.emailItems[0];\n contactInfoObj.pEmail = EFlag[1];\n contactInfoObj.peType = contactInfoOptions.emailItems[1];\n if (EFlag[3] == false) {\n contactInfoObj.fieldDisable[0] = true;\n contactInfoObj.emailDisabled = true;\n }\n }\n\n }\n\n priorityList = priorityList.sort();\n /********************Sort according to Primary Flag START *********************************/\n const primaryPos = findPrimaryPos(valueList);\n\n if (primaryPos != -1) {\n\n let pos = priorityList.indexOf(primaryPos);\n\n let temp = priorityList[pos];\n priorityList.splice(pos, 1);\n priorityList.unshift(temp);\n\n }\n\n /********************Sort according to Primary Flag END *********************************/\n\n contactInfo.contactInfoOptions = contactInfoOptions;\n contactInfo.contactInfoObj = contactInfoObj;\n\n if (contactInfo.contactInfoOptions.embeddedPicEmailNotUnique) {\n contactInfo = setPhoneFieldValue(\"pmType\", \"pMobile\", \"ccode1\", \"ccodeValue1\", 0, contactInfo, priorityList, valueList)\n } else if (getState.verifyUser.runAdminFlow) {\n contactInfo = setPhoneFieldValue(\"bmType\", \"bMobile\", \"ccode1\", \"ccodeValue1\", 0, contactInfo, priorityList, valueList)\n contactInfo = setPhoneFieldValue(\"pmType\", \"pMobile\", \"ccode2\", \"ccodeValue2\", 1, contactInfo, priorityList, valueList)\n }\n else {\n contactInfo = setPhoneFieldValue(\"bmType\", \"bMobile\", \"ccode1\", \"ccodeValue1\", 0, contactInfo, priorityList, valueList)\n contactInfo = setPhoneFieldValue(\"pmType\", \"pMobile\", \"ccode2\", \"ccodeValue2\", 1, contactInfo, priorityList, valueList)\n contactInfo = setPhoneFieldValue(\"blType\", \"bLandline\", \"ccode3\", \"ccodeValue3\", 2, contactInfo, priorityList, valueList)\n contactInfo = setPhoneFieldValue(\"plType\", \"pLandline\", \"ccode4\", \"ccodeValue4\", 3, contactInfo, priorityList, valueList)\n }\n \n /******************************Setting Phone fields END *******************************************/\n\n contactInfoOptions = contactInfo.contactInfoOptions;\n contactInfoObj = contactInfo.contactInfoObj;\n\n /******************************Setting INITIAL STATE if Null *******************************************/\n\n if (contactInfoObj.peType == null && contactInfoObj.seType == null) {\n contactInfoObj.peType = contactInfoOptions.emailItems[0];\n contactInfoObj.seType = contactInfoOptions.emailItems[1];\n }\n\n if(contactInfoOptions.embeddedPicEmailNotUnique && contactInfoObj.pmType == null) {\n contactInfoObj.pmType = contactInfoOptions.phoneItems[0];\n contactInfoObj.phoneHistory[0] = \"pmType\";\n }\n else if (contactInfoObj.bmType == null) {\n if (getState.verifyUser.runAdminFlow) {\n contactInfoObj.bmType = contactInfoOptions.phoneItems[1];\n contactInfoObj.phoneHistory[1] = \"bmType\";\n } else {\n contactInfoObj.bmType = contactInfoOptions.phoneItems[2];\n contactInfoObj.phoneHistory[2] = \"bmType\";\n }\n\n }\n\n if (!contactInfoObj.showSecoundaryForm) {\n if (contactInfoObj.pEmail != null && contactInfoObj.bMobile != null) {\n contactInfoObj.showSecoundaryForm = true;\n if (contactInfoObj.seType == null) {\n if (EFlag[0] != null) {\n contactInfoObj.seType = contactInfoOptions.emailItems[1];\n\n }\n else if (EFlag[1] != null) {\n contactInfoObj.seType = contactInfoOptions.emailItems[0];\n }\n }\n\n const pos = getEmptyPosition(getState);\n if (pos != -1 && contactInfoObj.pmType == null) {\n contactInfoObj.pmType = contactInfoOptions.phoneItems[pos];\n contactInfoObj.phoneHistory[pos] = \"pmType\";\n }\n\n\n }\n }\n else if (contactInfoObj.sEmail != null && contactInfoObj.pMobile == null) {\n const pos = getEmptyPosition(getState);\n if (pos != -1 && contactInfoObj.pmType == null) {\n contactInfoObj.pmType = contactInfoOptions.phoneItems[pos];\n contactInfoObj.phoneHistory[pos] = \"pmType\";\n }\n }\n\n\n /*************************************END *******************************************/\n return getContactInfoOptionsSuccess({\n contactInfoOptions: contactInfoOptions,\n contactInfoObj: contactInfoObj,\n isMobileBrowser,\n isMobile,\n gaCategory,\n isAuthorized\n });\n\n}\n\nconst getErrorFieldIndex = (contactInfo, pos, emailType, type) => {\n const contactInfoObj = contactInfo.contactInfoObj;\n const contactInfoOptions = contactInfo.contactInfoOptions;\n\n if (type == 1) {\n\n if (contactInfoOptions.emailItems[emailType] == contactInfoObj.peType) return 0;\n else return 2;\n\n\n }\n else {\n if (contactInfoObj.phoneHistory[pos] == \"bmType\") return 1;\n if (contactInfoObj.phoneHistory[pos] == \"pmType\") return 3;\n if (contactInfoObj.phoneHistory[pos] == \"blType\") return 4;\n if (contactInfoObj.phoneHistory[pos] == \"plType\") return 5;\n\n\n }\n}\n\n\n\nconst setSForm = getState =>\n setSFormToTrue(getState).pipe(map(setSecoundaryFormEnabled));\n\nconst setPField = getState =>\n setPhoneFieldEnable(getState).pipe(map(setPhoneFieldEnabled));\n\nconst formatResponse = (response) => {\n\n if (response.associateContactInfoCollection != null) {\n response.associateContactInfoCollection.associateContactInfo.map((value, key) => {\n if (!isBlank(value.communicationType) && !isBlank(value.contMechPurpTypeNm)) {\n if (value.communicationType == \"email\" && value.contMechPurpTypeNm == \"business\") {\n response.emailDropdown = \"Business\";\n response.email = value.contactInfo;\n }\n if (value.communicationType == \"email\" && value.contMechPurpTypeNm == \"personal\") {\n response.emailDropdown1 = \"Secondary\";\n response.semail = value.contactInfo;\n response.showSecoundaryForm = true;\n }\n\n }\n })\n }\n\n return response;\n}\n\nconst validateAndSetContactField = (payload, getState) => {\n\n\n const contactInfoOptions = getState.contactInfo.contactInfoOptions;\n\n const contactInfoObj = Object.assign({}, getState.contactInfo.contactInfoObj)\n\n switch (payload.fieldkey) {\n\n /*************************************Field Set start case 0 *******************************************/\n case constants.contactInfoIds.fieldSet: {\n\n const regEx = new RegExp(contactInfoOptions[payload.fieldValue.validationPolicy]);\n if (isBlank(payload.fieldValue.value) || regEx.test(payload.fieldValue.value)) {\n\n contactInfoObj[payload.fieldValue.fieldName] = payload.fieldValue.value;\n contactInfoObj[payload.fieldValue.fieldValid] = true;\n contactInfoObj.fieldValid[payload.fieldValue.errorIndex] = true;\n return of({\n contactInfoObj\n });\n }\n return throwError(new Error(contactInfoOptions[payload.fieldValue.invalidMessage]));\n }\n\n /*************************************Field Set end *******************************************/\n\n case constants.contactInfoIds.phoneSet: {\n if (!isBlank(payload.fieldValue.formattedNumber)) {\n contactInfoObj[payload.fieldValue.fieldName] = payload.fieldValue.formattedNumber;\n contactInfoObj[payload.fieldValue.fieldValid] = payload.fieldValue.isValid;\n contactInfoObj[payload.fieldValue.ccodeValueField] = payload.fieldValue.iso2;\n contactInfoObj[payload.fieldValue.ccodeField] = payload.fieldValue.ccode;\n contactInfoObj.fieldValid[payload.fieldValue.errorIndex] = payload.fieldValue.isValid;\n\n\n }\n else {\n contactInfoObj[payload.fieldValue.fieldName] = null;\n contactInfoObj[payload.fieldValue.fieldValid] = true;\n contactInfoObj[payload.fieldValue.ccodeValueField] = null;\n contactInfoObj.fieldValid[payload.fieldValue.errorIndex] = true;\n contactInfoObj[payload.fieldValue.radioField] = null;\n\n }\n\n return of({\n contactInfoObj\n });\n }\n\n\n\n\n\n\n\n /*************************************Country Code Start case 1 *******************************************/\n case constants.contactInfoIds.cCode: {\n contactInfoObj[payload.fieldValue.fieldName] = payload.fieldValue.value;\n return of({\n contactInfoObj: contactInfoObj\n });\n }\n\n /*************************************Country Code end *******************************************/\n\n case constants.contactInfoIds.emailTypeSet: {\n contactInfoObj[payload.fieldValue.fieldName2] = contactInfoObj[payload.fieldValue.fieldName1];\n contactInfoObj[payload.fieldValue.fieldName1] = payload.fieldValue.value;\n return of({\n contactInfoObj\n });\n\n }\n /*************************************email type end *******************************************/\n\n case constants.contactInfoIds.mobileTypeSet: {\n\n /*************************************check disabled checkbox *******************************************/\n const pos = contactInfoOptions.phoneItems.indexOf(payload.fieldValue.value);\n\n const Obj = getState.contactInfo.contactInfoObj;\n\n\n if (Obj.phoneHistoryDisable[pos]) {\n return of();\n }\n /*************************************End *******************************************/\n\n const contactInfoObj = smartSwitchDropDown(getState, payload.fieldValue.value, payload.fieldValue.fieldName);\n contactInfoObj[payload.fieldValue.fieldName] = payload.fieldValue.value;\n return of({\n\n contactInfoObj\n });\n\n }\n\n /*************************************Mobile type end *******************************************/\n\n case constants.contactInfoIds.radioSet: {\n let phoneValue = contactInfoObj[payload.fieldValue.phoneField];\n if (phoneValue == undefined || phoneValue == null)\n return of();\n\n contactInfoObj[payload.fieldValue.fieldName] = payload.fieldValue.value;\n return of({\n contactInfoObj: contactInfoObj\n });\n\n }\n\n case constants.contactInfoIds.extnSet: {\n let num = null;\n if (!isBlank(payload.fieldValue.value))\n num = payload.fieldValue.value.replace(/\\D/g, '');\n contactInfoObj[payload.fieldValue.fieldName] = num;\n return of({\n contactInfoObj: contactInfoObj\n });\n\n }\n\n default: {\n return throwError(new Error('somethig went wrong'));\n }\n }\n};\n\nconst findPrimaryPos = (valueList) => {\n\n let pos = -1;\n valueList.map((value, key) => {\n if (value != null) {\n\n if (value.primary == true) pos = key;\n }\n });\n\n return pos;\n}\n\n\nconst setPhoneFieldValue = (fieldName, textName, cc, ccValue, pos, contactInfo, priorityList, valueList) => {\n\n const contactInfoObj = contactInfo.contactInfoObj;\n const contactInfoOptions = contactInfo.contactInfoOptions;\n\n if (priorityList[pos] != 5) {\n\n const index = priorityList[pos];\n const value = valueList[index];\n contactInfoObj[textName] = value.field;\n contactInfoObj[cc] = value.countrycode;\n contactInfoObj[ccValue] = value.countrycodeValue;\n\n if (index == 0) {\n contactInfoObj[fieldName] = contactInfoOptions.phoneItems[0];\n }\n\n if (index == 1) {\n contactInfoObj[fieldName] = contactInfoOptions.phoneItems[1];\n }\n\n if (index == 2) {\n contactInfoObj[fieldName] = contactInfoOptions.phoneItems[2];\n }\n\n\n if (index == 3) {\n contactInfoObj[fieldName] = contactInfoOptions.phoneItems[3];\n }\n contactInfoObj.phoneHistory[index] = fieldName;\n if (pos == 1) {\n contactInfoObj.showSecoundaryForm = true;\n }\n if (pos == 0 && value.enabled == false) {\n contactInfoObj.fieldDisable[1] = true;\n contactInfoObj.phoneHistoryDisable[index] = true;\n }\n if (pos == 1 && value.enabled == false) {\n contactInfoObj.fieldDisable[3] = true;\n contactInfoObj.phoneHistoryDisable[index] = true;\n }\n if (pos == 2) {\n contactInfoObj.phoneCount = 1;\n contactInfoOptions.bLandlineRenderable = true;\n if (value.enabled == false) {\n contactInfoObj.fieldDisable[4] = true;\n contactInfoObj.phoneHistoryDisable[index] = true;\n }\n }\n if (pos == 3) {\n contactInfoObj.phoneCount = 0;\n contactInfoOptions.pLandlineRenderable = true;\n if (value.enabled == false) {\n contactInfoObj.fieldDisable[5] = true;\n contactInfoObj.phoneHistoryDisable[index] = true;\n }\n }\n\n }\n return contactInfo;\n}\n\n\nconst getHistoryPosition = (getState, key) => {\n\n\n const phoneHistory = getState.contactInfo.contactInfoObj.phoneHistory;\n if (phoneHistory[key] == null) {\n\n return -1;\n\n }\n else {\n return key;\n }\n\n}\n\nconst smartSwitchDropDown = (getState, fieldValue, pType) => {\n const contactInfo = Object.assign({}, getState.contactInfo.contactInfoObj);\n const contactInfoOptions = Object.assign({}, getState.contactInfo.contactInfoOptions);\n const pos = getHistoryPosition(getState, contactInfoOptions.phoneItems.indexOf(fieldValue));\n if (pos != -1) {\n contactInfo[contactInfo.phoneHistory[pos]] = contactInfo[pType];\n contactInfo.phoneHistory[contactInfo.phoneHistory.indexOf(pType)] = contactInfo.phoneHistory[pos];\n contactInfo.phoneHistory[pos] = pType;\n\n }\n else {\n const existingPos = contactInfo.phoneHistory.indexOf(pType);\n if (existingPos != -1) {\n contactInfo.phoneHistory[existingPos] = null;\n }\n contactInfo.phoneHistory[contactInfoOptions.phoneItems.indexOf(fieldValue)] = pType;\n }\n\n return contactInfo;\n\n}\n\nconst getEmptyPosition = (getState) => {\n\n const phoneHistory = getState.contactInfo.contactInfoObj.phoneHistory;\n\n for (var i = 0; i < phoneHistory.length; i++) {\n if (phoneHistory[i] == null) {\n return i;\n }\n }\n return -1;\n}\nconst setSFormToTrue = (getState) => {\n const pos = getEmptyPosition(getState);\n const contactInfo = Object.assign({}, getState.contactInfo.contactInfoObj);\n const contactInfoOptions = getState.contactInfo.contactInfoOptions;\n const pmType = contactInfo.pmType;\n if (pos != -1 && pmType == null) {\n\n contactInfo.pmType = contactInfoOptions.phoneItems[pos];\n contactInfo.phoneHistory[pos] = \"pmType\";\n }\n\n if (contactInfo.seType == null) {\n if (contactInfo.peType == contactInfoOptions.emailItems[0]) {\n contactInfo.seType = contactInfoOptions.emailItems[1];\n }\n else contactInfo.seType = contactInfoOptions.emailItems[0];\n }\n\n contactInfo.showSecoundaryForm = true;\n\n return of({\n\n contactInfoObj: contactInfo\n\n });\n\n};\n\nconst setPhoneFieldEnable = (getState) => {\n\n const contactInfoOptions = Object.assign({}, getState.contactInfo.contactInfoOptions);\n const contactInfo = Object.assign({}, getState.contactInfo.contactInfoObj);\n\n var count = contactInfo.phoneCount;\n\n count = count - 1;\n contactInfo.phoneCount = count;\n if (count == 0) {\n contactInfoOptions.pLandlineRenderable = true;\n const pos = getEmptyPosition(getState);\n if (pos != -1 && contactInfo.plType == null) {\n\n contactInfo.plType = contactInfoOptions.phoneItems[pos];\n contactInfo.phoneHistory[pos] = \"plType\";\n }\n\n }\n else if (count == 1) {\n contactInfoOptions.bLandlineRenderable = true;\n const pos = getEmptyPosition(getState);\n if (pos != -1 && contactInfo.blType == null) {\n\n contactInfo.blType = contactInfoOptions.phoneItems[pos];\n contactInfo.phoneHistory[pos] = \"blType\";\n }\n\n }\n return of({\n contactInfoObj: contactInfo,\n contactInfoOptions\n\n });\n\n};\n\n\nconst handleSetContactFieldFailResponse = (getState, payload, errorMessage) => {\n\n const contactInfoObj = Object.assign({}, getState.contactInfo.contactInfoObj)\n\n\n switch (payload.fieldkey) {\n\n /*************************************Failed start case 0 *******************************************/\n\n\n case constants.contactInfoIds.fieldSet:\n\n\n contactInfoObj[payload.fieldValue.fieldName] = payload.fieldValue.value;\n contactInfoObj[payload.fieldValue.fieldValid] = false;\n contactInfoObj.errorMessage[payload.fieldValue.errorIndex] = errorMessage;\n contactInfoObj.fieldValid[payload.fieldValue.errorIndex] = false;\n\n\n return setContactFieldFailSent({\n errorMessage,\n contactInfoObj\n\n });\n\n /*************************************Failed end case 0 *******************************************/\n\n default: {\n return setSivFieldFailSent({\n errorMessage,\n });\n }\n }\n};\n\nconst personalPhoneInfo = (ajax, getState) => {\n return getPersonalPhoneInfoApi(ajax, getState)\n .pipe(map(response => handleResponsePersonalPhone(response.response, getState)),\n catchError(err => [getContactInfoOptionsFail(getErrorMessage(err))]));\n}\n\nconst handleResponsePersonalPhone = (response, getState) => {\n let contactInfoObj = Object.assign({}, getState.contactInfo.contactInfoObj)\n contactInfoObj.showAlert = false;\n contactInfoObj.prcValid = true;\n let showModalError = false;\n\n if (response.expiry !== undefined) {\n contactInfoObj.showVerify = true;\n contactInfoObj.showOnScreen = response.showOnScreen;\n contactInfoObj.accessCode = response.accessCode;\n contactInfoObj.expiry = response.expiry;\n contactInfoObj.selectedIdentityValue = response.maskedValue;\n return onSetFinalSubmit({\n contactInfoObj\n });\n\n }\n else {\n showModalError = true;\n contactInfoObj.showModalMessage = response.message;\n contactInfoObj.showModalTitle = response.title;\n\n return onSetFinalSubmit({\n contactInfoObj, showModalError\n });\n }\n\n}\n\nconst setSubmitAccessCode = (ajax, getState) => {\n let inputPRC = getState.contactInfo.otpCode;\n if (getState.contactInfo.isOTPFormValid != undefined && getState.contactInfo.isOTPFormValid == false)\n return of();\n return setSubmitAccessCodeApi(ajax, inputPRC, getState)\n .pipe(map(response => handleResponseAccessCode(response.response, getState)),\n catchError(err => [getContactInfoOptionsFail(getErrorMessage(err))]));\n}\n\nconst handleResponseAccessCode = (response, getState) => {\n let contactInfoObj = Object.assign({}, getState.contactInfo.contactInfoObj);\n\n if (response.code == constants.TYPE_SUCCESS) {\n return onSetFinalSubmit({\n viewId: response.viewId,\n sendRedirect: true\n });\n\n }\n else {\n if (response.code == constants.TYPE_ERROR_INVALID || response.code == constants.TYPE_ERROR_EXPIRED) {\n contactInfoObj.showAlert = true;\n contactInfoObj.prcValid = false;\n contactInfoObj.showAlertMessage = response.message;\n\n return onSetFinalSubmit({\n contactInfoObj\n });\n }\n else {\n let showModalError = true;\n contactInfoObj.showModalMessage = response.message;\n contactInfoObj.showModalTitle = response.title;\n\n return onSetFinalSubmit({\n contactInfoObj, showModalError\n });\n }\n }\n\n}\n\nconst redirectToLoginPage = getState => {\n const isMobile = getState.registration.mobileFlow;\n const url = getState.registration.returnUrl;\n const organizationId = getState.registration.organizationId\n if (isMobile) {\n closeMobileContainer(); //this is part of index.html\n return true;\n } else {\n return window.open(unescape(WindowUtil.validateRtnUrl(decodeURIComponent(url), organizationId)), '_self');\n }\n}\n\nconst setContactField = (payload, getState) => validateAndSetContactField(payload, getState).pipe(\n map(setContactFieldSuccessSent),\n catchError(err => [handleSetContactFieldFailResponse(getState, payload, getErrorMessage(err))]),\n);\n\nexport const getContactInfoEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(CONTACT_INFO_OPTIONS),\n switchMap(action => sendingAsyncRequest(getContactInfo(ajax, state.value))),\n);\n\nexport const setContactFieldEpic = (action$, state) => action$.pipe(\n ofType(SET_CONTACT_FIELD),\n switchMap(action => sendingAsyncRequest(setContactField(action.payload, state.value))),\n);\n\nexport const setSecoundaryFormEpic = (action$, state) => action$.pipe(\n ofType(ENABLE_SECOUNDARY_FORM),\n switchMap(action => sendingAsyncRequest(setSForm(state.value))),\n);\n\nexport const setPhoneFieldEpic = (action$, state) => action$.pipe(\n ofType(ENABLE_PHONE_FIELD),\n switchMap(action => sendingAsyncRequest(setPField(state.value))),\n);\n\nexport const onFinalSubmitEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(CONTACT_FINAL_SUBMIT),\n switchMap(action => sendingAsyncRequest(setFinalSubmit(ajax, state.value))),\n);\n\nexport const cancelAndCheckYourEntriesEpic = (action$, state) => action$.pipe(\n ofType(CANCEL_CONTACT_AND_CHECK_YOUR_ENTRIES),\n switchMap(action => sendingAsyncRequest(redirectToLoginPage(state.value))),\n);\n\nexport const onSetFinalSubmitEpic = (action$, state) => action$.pipe(\n ofType(ON_FINAL_CONTACT_INFO_SUCCESS),\n switchMap(action$ => {\n state.value.contactInfo.showModalInfo = false;\n state.value.contactInfo.showModalWarn = false;\n state.value.contactInfo.showModalError = false;\n ReactGA.sendevent(state.value.contactInfo.gaCategory, 'CONTACT_INFO', 'SUCCESS');\n return of(push(state.value.contactInfo.viewId))\n }),\n);\n\nexport const getContactInfoOptionsFailureEpic = action$ => action$.pipe(\n ofType(CONTACT_INFO_OPTIONS_FAIL),\n switchMap(action$ => of(push('/error'))),\n);\n\nexport const personalPhoneInfoEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(PERSONAL_PHONE_INFO),\n switchMap(action => sendingAsyncRequest(personalPhoneInfo(ajax, state.value))),\n);\n\nexport const setSubmitAccessCodeEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(CONTACT_INFO_ACCESS_CODE_SENT),\n switchMap(action => sendingAsyncRequest(setSubmitAccessCode(ajax, state.value))));","import { createAction } from 'redux-actions';\nimport { push } from 'connected-react-router';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport {\n map, switchMap, catchError, concatMap,debounceTime\n} from 'rxjs/operators';\nimport { ajax } from 'rxjs/ajax';\nimport { throwError, of } from 'rxjs';\nimport { ofType } from 'redux-observable';\nimport { getErrorMessage, sendingAsyncRequest } from '../../../helpers/epics';\nimport { types } from '../register-user-actions';\nimport { constants } from '../register-user-constants';\nimport { ReactGA, WindowUtil, PendoUtil } from '../../../../util';\nimport Crypto from 'crypto-js';\nimport { constants as registrationConstants } from '../../registration/registration-constants';\nimport { constants as progressBarConstants } from '../../../../util/window/progress-bar-constants';\n\nconst {\n GET_USER_ID_OPTIONS,\n GET_USER_ID_OPTIONS_SUCCESS, GET_USER_ID_OPTIONS_FAIL,\n SET_REGISTER_OPTIONS_FIELD,\n SET_REGISTER_OPTIONS_FIELD_SUCCESS, SET_REGISTER_OPTIONS_FIELD_FAIL,\n VERIFY_REGISTER_OPTIONS,\n VERIFY_REGISTER_OPTIONS_SUCCESS, VERIFY_REGISTER_OPTIONS_FAIL,\n ENABLE_REGISTER_BUTTON,\n SET_QUESTIONS_FIELD,\n SET_QUESTIONS_FIELD_SUCCESS, SET_QUESTIONS_FIELD_FAIL,\n SET_ANSWERS_FIELD,\n SET_ANSWERS_FIELD_SUCCESS, SET_ANSWERS_FIELD_FAIL,\n VERIFY_SECURITY_QUESTIONS,\n VERIFY_SECURITY_QUESTIONS_SUCCESS, VERIFY_SECURITY_QUESTIONS_FAIL,\n ENABLE_SECURITY_QA_BUTTON,\n CHECK_USERID_AVAILABILITY,\n CHECK_USERID_AVAILABILITY_SUCCESS, CHECK_USERID_AVAILABILITY_FAIL,\n CANCEL_REGISTRATION\n} = types;\n\nconst isBlank = str => (str || '').trim().length === 0;\n\nconst comparePasswordFields = (otherVal, enteredVal) => {\n let result = true;\n if (otherVal == undefined || otherVal == '' || enteredVal == '') {\n return result;\n }\n\n if (enteredVal.length > 1 && otherVal.length > 1 && enteredVal.length > otherVal.length) {\n result = false;\n console.log('length mismatch result=======================>' + result);\n return result;\n }\n\n for (var i = 0; i < enteredVal.length; i++) {\n if (otherVal[i] != enteredVal[i]) {\n result = false;\n break;\n }\n }\n console.log('result=======================>' + result);\n return result;\n}\n\nconst getUserIdOptionsSuccess = createAction(GET_USER_ID_OPTIONS_SUCCESS);\nconst getUserIdOptionsFail = createAction(GET_USER_ID_OPTIONS_FAIL);\nconst setRegisterOptionsFieldSuccessSent = createAction(SET_REGISTER_OPTIONS_FIELD_SUCCESS);\nconst setRegisterOptionsFieldFailSent = createAction(SET_REGISTER_OPTIONS_FIELD_FAIL);\nconst verifyRegisterOptionsSuccessSent = createAction(VERIFY_REGISTER_OPTIONS_SUCCESS);\nconst verifyRegisterOptionsFailSent = createAction(VERIFY_REGISTER_OPTIONS_FAIL);\n\nconst setQuestionsFieldSuccessSent = createAction(SET_QUESTIONS_FIELD_SUCCESS);\nconst setQuestionsFieldFailSent = createAction(SET_QUESTIONS_FIELD_FAIL);\nconst setAnswersFieldSuccessSent = createAction(SET_ANSWERS_FIELD_SUCCESS);\nconst setAnswersFieldFailSent = createAction(SET_ANSWERS_FIELD_FAIL);\nconst verifySecurityQuestionsSuccessSent = createAction(VERIFY_SECURITY_QUESTIONS_SUCCESS);\nconst verifySecurityQuestionsFailSent = createAction(VERIFY_SECURITY_QUESTIONS_FAIL);\nconst enableSecurityQAButtonSent = createAction(ENABLE_SECURITY_QA_BUTTON);\n\nconst checkUserIdAvailableSuccessSent = createAction(CHECK_USERID_AVAILABILITY_SUCCESS);\nconst checkUserIdAvailableFailSent = createAction(CHECK_USERID_AVAILABILITY_FAIL);\n\nconst cancelRegistrationSent = createAction(CANCEL_REGISTRATION);\nconst handleUserIdOptionsResponse = (response, getState) => {\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = \"WEB_REGISTRATION_REGISTER_USER\";\n let pagePath = '/ssr/cpc/registration';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REGISTRATION_REGISTER_USER\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROSWER_REGISTRATION_REGISTER_USER\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n // progress bar start\n let progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Create_Account, getState);\n // progress bar end\n let title = getState.intl.messages['r_registerUser.title'];\n let replacedTitle = title.replace(\"{0}\", response.firstNameForTitle);\n let pageInfo = getState.intl.messages['r_registerUser.pageInfo'];\n let replacedPageInfo = pageInfo.replace(\"{0}\", '' + response.companyName + ' ');\n const passwordIndicatorToggle = response.passwordRuleFlag;\n\n return getUserIdOptionsSuccess({\n passwordIndicatorToggle,\n title: replacedTitle,\n userIdType: response.userIdType,\n userIdLabelName: response.userIdLabelName,\n passwordLabelName: response.passwordLabelName,\n confirmPasswordLabelName: response.confirmPasswordLabelName,\n showSecurityQuestions: false,\n showTc: response.showTc,\n userIdValue: response.userIdValue,\n userLastName: response.lastName,\n companyName: replacedPageInfo,\n mobileFlow: getState.registration.mobileFlow,\n isMobile,\n isMobileBrowser,\n gaCategory,\n progressBarData\n });\n}\n\n{/************************************Get UserId and Password options*******************************************/ }\nconst getUserIdOptions = (ajax, getState) =>\n userIdOptionsApi(ajax, getState.registration.transactionId).pipe(\n map(response => handleUserIdOptionsResponse(response.response, getState)),\n catchError(err => [getUserIdOptionsFail(getErrorMessage(err))])\n );\n\nconst userIdOptionsApi = (ajax, transactionId) => ajax({\n url: constants.getuserIdOptionsEndPoint,\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': transactionId,\n }\n});\n\n{/************************************set the UserId and Password options*******************************************/ }\n\nconst setRegisterOptionsField = (payload, getState) =>\n validateAndSetRegisterField(payload, getState)\n .pipe(map(setRegisterOptionsFieldSuccessSent),\n catchError(err => [handleSetRegisterFieldFailResponse(payload, getErrorMessage(err), getState)]));\n\nconst validateAndSetRegisterField = (payload, getState) => {\n const registerUser = Object.assign({}, getState.registerUser);\n switch (payload.fieldkey) {\n case constants.registerOptionIds.userid: {\n const userIdRegex = new RegExp(registerUser.userIdRegExp);\n\n if (isBlank(payload.fieldValue) || userIdRegex.test(payload.fieldValue)) {\n return of({\n userId: payload.fieldValue,\n userIdValid: true,\n availableUserResponse: ''\n });\n }\n return throwError(new Error(registerUser.userIdInvalidMessage));\n }\n case constants.registerOptionIds.partialuserid: {\n const userIdRegex = new RegExp(registerUser.userIdRegExp);\n\n if (isBlank(payload.fieldValue) || userIdRegex.test(payload.fieldValue)) {\n return of({\n partialUserId: payload.fieldValue,\n partialUserIdValid: true,\n availableUserResponse: ''\n });\n }\n return throwError(new Error(registerUser.userIdInvalidMessage));\n }\n case constants.registerOptionIds.password: {\n const pswRegex = new RegExp(registerUser.passwordRegExp);\n\n if (!comparePasswordFields(registerUser.confirmpassword, payload.fieldValue)) {\n return throwError(new Error(getState.intl.messages['registerUser.passwordMismatch']));\n }\n if (isBlank(payload.fieldValue) || pswRegex.test(payload.fieldValue)) {\n return of({\n password: payload.fieldValue,\n passwordValid: true,\n pswerrorMessage: '',\n confirmpswerrorMessage: '',\n confirmpasswordValid: true\n });\n }\n return throwError(new Error(registerUser.passwordInvalidMessage));\n }\n case constants.registerOptionIds.confirmpassword: {\n const confirmpswRegex = new RegExp(registerUser.confirmPasswordRegExp);\n\n if (!comparePasswordFields(registerUser.password, payload.fieldValue)) {\n return throwError(new Error(getState.intl.messages['registerUser.passwordMismatch']));\n }\n if (isBlank(payload.fieldValue) || confirmpswRegex.test(payload.fieldValue)) {\n return of({\n confirmpassword: payload.fieldValue,\n confirmpasswordValid: true,\n pswerrorMessage: '',\n confirmpswerrorMessage: ''\n });\n }\n return throwError(new Error(registerUser.confirmPasswordInvalidMessage));\n }\n default: {\n return throwError(new Error(constants.TROUBLE_SHOOT_MSG));\n }\n }\n};\n\nconst handleSetRegisterFieldFailResponse = (payload, errorMessage, getState) => {\n switch (payload.fieldkey) {\n case constants.registerOptionIds.userid:\n return setRegisterOptionsFieldFailSent({\n uiderrorMessage: errorMessage,\n userId: payload.fieldValue,\n userIdValid: false\n });\n case constants.registerOptionIds.partialuserid:\n return setRegisterOptionsFieldFailSent({\n partialuiderrorMessage: errorMessage,\n partialUserId: payload.fieldValue,\n partialUserIdValid: false\n });\n case constants.registerOptionIds.password: {\n if (errorMessage != null && errorMessage == getState.intl.messages['registerUser.passwordMismatch']) {\n return setRegisterOptionsFieldFailSent({\n pswerrorMessage: errorMessage,\n password: payload.fieldValue,\n passwordValid: false,\n confirmpswerrorMessage: ''\n });\n }\n return setRegisterOptionsFieldFailSent({\n pswerrorMessage: errorMessage,\n password: payload.fieldValue,\n passwordValid: false\n });\n }\n case constants.registerOptionIds.confirmpassword: {\n if (errorMessage != null && errorMessage == getState.intl.messages['registerUser.passwordMismatch']) {\n return setRegisterOptionsFieldFailSent({\n pswerrorMessage: '',\n confirmpswerrorMessage: errorMessage,\n confirmpassword: payload.fieldValue,\n confirmpasswordValid: false\n });\n }\n return setRegisterOptionsFieldFailSent({\n confirmpswerrorMessage: errorMessage,\n confirmpassword: payload.fieldValue,\n confirmpasswordValid: false\n });\n }\n default: {\n return setRegisterOptionsFieldFailSent({\n errorMessage,\n });\n }\n }\n};\n\n{/************************************check User Availability*******************************************/ }\n\nconst submitUserId = (ajax, getState) =>\n checkUserIdAvailability(ajax, getState)\n .pipe(map(response => handleSubmitUserIdResponse(getState, response.response)),\n catchError(err => [handleSubmitUserIdResponseFail(getErrorMessage(err))]));\n\nconst checkUserIdAvailability = (ajax, getState) => {\n const registerUser = getState.registerUser;\n let userId = '';\n if (registerUser.userIdType === constants.fullUserIdType) {\n userId = registerUser.userId;\n }\n if (registerUser.userIdType === constants.partialUserIdType && registerUser.partialUserId != '') {\n userId = registerUser.partialUserId + registerUser.userIdValue;\n }\n registerUser.finalUserIdValue = userId;\n var encryptedUID = Crypto.AES.encrypt(registerUser.finalUserIdValue, registrationConstants.registrationEncryption);\n if (userId != '' && registerUser.availableUserResponse === '') {\n return ajax({\n url: constants.checkuserIdAvailabilityEndPoint,\n body: {\n 'userIdType': registerUser.userIdType,\n 'userIdValue': (encryptedUID + '')\n },\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId,\n }\n });\n }\n return of({\n userId: userId\n })\n}\n\nconst handleSubmitUserIdResponse = (getState, response) => {\n const registerUser = getState.registerUser;\n let userId = '';\n if (registerUser.userIdType === constants.fullUserIdType) {\n userId = registerUser.userId;\n }\n if (registerUser.userIdType === constants.partialUserIdType) {\n userId = registerUser.partialUserId;\n }\n if (registerUser.availableUserResponse === constants.invalidUserId) {\n return checkUserIdAvailableSuccessSent({\n availableUserResponse: registerUser.availableUserResponse,\n userIdValid: false,\n partialUserIdValid: false,\n uiderrorMessage: '',\n partialuiderrorMessage: '',\n fetchedUserId:userId\n });\n }\n if (registerUser.availableUserResponse === constants.validUserId) {\n return checkUserIdAvailableSuccessSent({\n availableUserResponse: registerUser.availableUserResponse,\n userIdValid: true,\n partialUserIdValid: true,\n uiderrorMessage: '',\n partialuiderrorMessage: '',\n errorTitle: '',\n fetchedUserId:userId\n });\n }\n if (userId === '') {\n return checkUserIdAvailableSuccessSent({\n availableUserResponse: '',\n userIdValid: true,\n partialUserIdValid: true,\n uiderrorMessage: '',\n partialuiderrorMessage: '',\n fetchedUserId:userId\n });\n }\n if ((response.code != null && response.code === constants.validUserId) || registerUser.availableUserResponse === constants.validUserId) {\n return checkUserIdAvailableSuccessSent({\n availableUserResponse: response.code,\n userIdValid: true,\n partialUserIdValid: true,\n errorTitle: '',\n fetchedUserId:userId\n });\n }\n if (response.code != null && response.code === constants.invalidUserId) {\n return checkUserIdAvailableSuccessSent({\n availableUserResponse: response.code,\n userIdValid: false,\n partialUserIdValid: false,\n uiderrorMessage: '',\n partialuiderrorMessage: '',\n fetchedUserId:userId\n });\n }\n if (response.title !== null && response.message !== null) {\n return checkUserIdAvailableFailSent({\n showFailedModal: true,\n errorMsgTitle: response.title,\n welcomeMsg: response.message,\n errorTitle: '',\n });\n }\n return checkUserIdAvailableFailSent({\n errorTitle: constants.TROUBLE_SHOOT_MSG\n });\n}\n\nconst handleSubmitUserIdResponseFail = (errorMessage) => {\n console.log('handle submit userId fail response' + errorMessage);\n return checkUserIdAvailableFailSent({\n errorTitle: errorMessage,\n });\n};\n\n{/************************************Submit userId and password fields*******************************************/ }\n\nconst submitRegisterOptions = (ajax, getState) =>\n verifyRegisterOptions(ajax, getState)\n .pipe(map(response => handleSubmitRegisterResponse(getState, response.response)),\n catchError(err => [handleSubmitRegisterResponseFail(getState, getErrorMessage(err))]));\n\nconst verifyRegisterOptions = (ajax, getState) => {\n const registerUser = getState.registerUser;\n // verify the userId and psw fields\n let agreedTnC = false;\n\n if (registerUser.showTc === true && registerUser.agreeTnC === true) {\n agreedTnC = registerUser.agreeTnC;\n }\n if (registerUser.userIdType === constants.sysgeneratedUserIdType) {\n registerUser.finalUserIdValue = registerUser.userIdValue;\n }\n if (registerUser.password === registerUser.confirmpassword) {\n var encryptedPW = Crypto.AES.encrypt(registerUser.password, registrationConstants.registrationEncryption);\n var encryptedUID = Crypto.AES.encrypt(registerUser.finalUserIdValue, registrationConstants.registrationEncryption);\n\n return ajax({\n url: constants.postUserIdPswOptionsEndPoint,\n body: {\n 'userIdType': registerUser.userIdType,\n 'userIdValue': (encryptedUID + ''),\n 'passwordValue': (encryptedPW + ''),\n 'confirmPasswordValue': (encryptedPW + ''),\n 'userAgreedTc': agreedTnC\n },\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId,\n }\n });\n\n }\n if (registerUser.password !== registerUser.confirmpassword) {\n return throwError(new Error(getState.intl.messages['registerUser.passwordMismatch']));\n }\n};\n\nconst handleSubmitRegisterResponse = (getState, response) => {\n const isMobile = getState.registration.mobileFlow;\n const gaCategory = getState.registerUser.gaCategory;\n if (response.viewId.indexOf(constants.ERROR) == -1 && response.viewId === constants.securityQnA) {\n let pagePath = '/ssr/cpc/securityQna';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n return verifyRegisterOptionsSuccessSent({\n showSecurityQuestions: true,\n title: getState.intl.messages['r_securityQA.title'],\n securityQnATextList: response.securityQnATextList,\n availableUserResponse: '',\n securityQnAIdList: response.securityQnAIdList,\n secondAnsValid: true,\n thirdAnsValid: true,\n firstAnsValid: true,\n errorTitle: ''\n });\n }\n if (response.viewId.indexOf(constants.ERROR) == -1 && response.viewId === constants.confirmationPage) {\n ReactGA.sendevent(gaCategory, 'REGISTER_USER', 'REGISTER_USER_SUCCESS');\n const isMobile = getState.registration.mobileFlow;\n if (isMobile) {\n console.log('Entered Mobile flow');\n saveMobileUserIdInContainer(getState.registerUser.finalUserIdValue);\n closeMobileContainer(); //this is part of common.js\n return true;\n } else {\n return verifyRegisterOptionsSuccessSent({\n viewId: response.viewId\n });\n }\n }\n if (response.code == constants.INVALID_REG_DATA) {\n ReactGA.sendevent(gaCategory, 'REGISTER_USER', response.code);\n return verifyRegisterOptionsFailSent({\n showFailedModal: false,\n errorTitle: response.message,\n pswerrorMessage: '',\n passwordValid: false,\n confirmpasswordValid: false,\n pswerrorMessage: response.errFieldsMap.password\n });\n }\n if (response.code == constants.REGISTRATION_FAILED || response.code == constants.CLIENT_SETUP_ERROR || (response.title !== null && response.message !== null)) {\n ReactGA.sendevent(gaCategory, 'REGISTER_USER', response.code);\n return verifyRegisterOptionsFailSent({\n showFailedModal: true,\n errorMsgTitle: response.title,\n welcomeMsg: response.message,\n errorTitle: '',\n });\n }\n return verifyRegisterOptionsFailSent({\n showFailedModal: false,\n errorTitle: response.message,\n pswerrorMessage: '',\n passwordValid: false,\n confirmpasswordValid: false\n });\n}\n\nconst handleSubmitRegisterResponseFail = (getState, errorMessage) => {\n console.log('handle submit register fail response' + errorMessage);\n const registerUser = getState.registerUser;\n if (registerUser.password !== registerUser.confirmpassword) {\n return verifyRegisterOptionsFailSent({\n pswerrorMessage: errorMessage,\n password: '',\n confirmpassword: '',\n passwordValid: false,\n confirmpasswordValid: false,\n availableUserResponse: ''\n });\n }\n return verifyRegisterOptionsFailSent({\n showFailedModal: true,\n errorMsgTitle: getState.intl.messages['Txt_VGeneralErrorWindowTitle'],\n welcomeMsg: getState.intl.messages['Err_SystemErrorinRequest'],\n pswerrorMessage: '',\n availableUserResponse: ''\n });\n};\n\n{/************************************Security Questions and Answers*******************************************/ }\n\nconst setQuestionsField = (payload, getState) =>\n validateAndSetQuestionField(payload, getState)\n .pipe(map(setQuestionsFieldSuccessSent),\n catchError(setQuestionsFieldFailSent));\n\nconst validateAndSetQuestionField = (payload, getState) => {\n const registerUser = Object.assign({}, getState.registerUser);\n switch (payload.fieldkey) {\n case constants.registerOptionIds.firstquestion: {\n return of({\n firstQuestion: payload.fieldValue,\n firstAnswer: ''\n });\n }\n case constants.registerOptionIds.secondquestion: {\n return of({\n secondQuestion: payload.fieldValue,\n secondAnswer: ''\n });\n }\n case constants.registerOptionIds.thirdquestion: {\n return of({\n thirdQuestion: payload.fieldValue,\n thirdAnswer: ''\n });\n }\n default: {\n return throwError(new Error(constants.TROUBLE_SHOOT_MSG));\n }\n }\n};\n\n\nconst setAnswersField = (payload, getState) =>\n validateAndSetAnswersField(payload, getState)\n .pipe(map(setAnswersFieldSuccessSent),\n catchError(err => [handleSetAnswersFieldFailResponse(payload, getErrorMessage(err))]));\n\nconst validateAndSetAnswersField = (payload, getState) => {\n const registerUser = Object.assign({}, getState.registerUser);\n switch (payload.fieldkey) {\n case constants.registerOptionIds.firstanswer: {\n const ansRegex = new RegExp(constants.SecurityAnsRegex);\n if (isBlank(payload.fieldValue) || !ansRegex.test(payload.fieldValue)) {\n return of({\n firstAnswer: payload.fieldValue,\n firstAnsValid: true,\n firstAnsInlineErrMessage: ''\n });\n }\n return throwError(new Error(getState.intl.messages['securityQA.invalidAnsText']));\n }\n case constants.registerOptionIds.secondanswer: {\n const ansRegex = new RegExp(constants.SecurityAnsRegex);\n\n if (isBlank(payload.fieldValue) || !ansRegex.test(payload.fieldValue)) {\n return of({\n secondAnswer: payload.fieldValue,\n secondAnsValid: true,\n secondAnsInlineErrMessage: ''\n });\n }\n return throwError(new Error(getState.intl.messages['securityQA.invalidAnsText']));\n }\n case constants.registerOptionIds.thirdanswer: {\n const ansRegex = new RegExp(constants.SecurityAnsRegex);\n\n if (isBlank(payload.fieldValue) || !ansRegex.test(payload.fieldValue)) {\n return of({\n thirdAnswer: payload.fieldValue,\n thirdAnsValid: true,\n thirdAnsInlineErrMessage: ''\n });\n }\n return throwError(new Error(getState.intl.messages['securityQA.invalidAnsText']));\n }\n default: {\n return throwError(new Error(constants.TROUBLE_SHOOT_MSG));\n }\n }\n};\n\nconst handleSetAnswersFieldFailResponse = (payload, errorMessage) => {\n switch (payload.fieldkey) {\n case constants.registerOptionIds.firstanswer:\n return setAnswersFieldFailSent({\n firstAnsErrMessage: errorMessage,\n firstAnswer: payload.fieldValue,\n firstAnsValid: false\n });\n case constants.registerOptionIds.secondanswer:\n return setAnswersFieldFailSent({\n secondAnsErrMessage: errorMessage,\n secondAnswer: payload.fieldValue,\n secondAnsValid: false\n });\n case constants.registerOptionIds.thirdanswer:\n return setAnswersFieldFailSent({\n thirdAnsErrMessage: errorMessage,\n thirdAnswer: payload.fieldValue,\n thirdAnsValid: false\n });\n default: {\n return setAnswersFieldFailSent({\n errorMessage,\n });\n }\n }\n};\n\n{/************************************Submit Security Questions and Answers*******************************************/ }\n\nconst submitSecurityQuestions = (ajax, getState) =>\n verifySecurityQuestions(ajax, getState)\n .pipe(map(response => handleRegistrationFinalResponse(getState, response.response)),\n catchError(err => [handleSubmitSecurityQuestionsResponseFail(getState, getErrorMessage(err))]));\n\nconst verifySecurityQuestions = (ajax, getState) => {\n const registerUser = getState.registerUser;\n const firstIndex = registerUser.securityQnATextList.indexOf(registerUser.firstQuestion);\n const secondIndex = registerUser.securityQnATextList.indexOf(registerUser.secondQuestion);\n const thirdIndex = registerUser.securityQnATextList.indexOf(registerUser.thirdQuestion);\n\n if (registerUser.firstAnswer.toUpperCase() === registerUser.secondAnswer.toUpperCase() &&\n registerUser.firstAnswer.toUpperCase() === registerUser.thirdAnswer.toUpperCase()) {\n return throwError(new Error(getState.intl.messages['securityQA.uniqueAnswerText']));\n }\n\n // verify the security question and answers\n if ((registerUser.firstAnswer.toUpperCase() === registerUser.secondAnswer.toUpperCase()) ||\n (registerUser.firstAnswer.toUpperCase() === registerUser.thirdAnswer.toUpperCase()) ||\n (registerUser.secondAnswer.toUpperCase() === registerUser.thirdAnswer.toUpperCase())) {\n return throwError(new Error(getState.intl.messages['securityQA.uniqueAnswerText']));\n }\n\n if (registerUser.showSecurityQuestions === true) {\n var encryptedAnswer1 = Crypto.AES.encrypt(registerUser.firstAnswer, registrationConstants.registrationEncryption);\n var encryptedAnswer2 = Crypto.AES.encrypt(registerUser.secondAnswer, registrationConstants.registrationEncryption);\n var encryptedAnswer3 = Crypto.AES.encrypt(registerUser.thirdAnswer, registrationConstants.registrationEncryption);\n var encryptedPassword = Crypto.AES.encrypt(registerUser.password, registrationConstants.registrationEncryption);\n var encryptedUID = Crypto.AES.encrypt(registerUser.finalUserIdValue, registrationConstants.registrationEncryption);\n return ajax({\n url: constants.postUserIdPswOptionsEndPoint,\n body: {\n 'userIdValue': (encryptedUID + ''),\n 'passwordValue': (encryptedPassword + ''),\n 'securityQnAResp': {\n 'questionText1': registerUser.firstQuestion,\n 'questionId1': registerUser.securityQnAIdList[firstIndex],\n 'answer1': (encryptedAnswer1 + ''),\n 'questionText2': registerUser.secondQuestion,\n 'questionId2': registerUser.securityQnAIdList[secondIndex],\n 'answer2': (encryptedAnswer2 + ''),\n 'questionText3': registerUser.thirdQuestion,\n 'questionId3': registerUser.securityQnAIdList[thirdIndex],\n 'answer3': (encryptedAnswer3 + '')\n },\n 'userAgreedTc': registerUser.agreeTnC\n },\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId,\n }\n });\n }\n};\n\nconst handleRegistrationFinalResponse = (getState, response) => {\n const gaCategory = getState.registerUser.gaCategory;\n \n if (response.code == constants.REGISTRATION_COMPLETE || response.viewId === constants.confirmationPage) {\n ReactGA.sendevent(gaCategory, 'REGISTER_USER', 'Q_AND_A_SUCCESS');\n const isMobile = getState.registration.mobileFlow;\n if (isMobile) {\n console.log('Entered Mobile flow');\n saveMobileUserIdInContainer(getState.registerUser.finalUserIdValue);\n closeMobileContainer(); //this is part of common.js\n return true;\n }\n return verifySecurityQuestionsSuccessSent({\n viewId: response.viewId\n });\n\n }\n else if (response.code == constants.INVALID_REG_DATA) {\n ReactGA.sendevent(gaCategory, 'REGISTER_USER', response.code);\n let firstAnswerErr = '', secondAnswerErr = '', thirdAnswerErr = '', firstAnswerValid = true, secondAnswerValid = true, thirdAnswerValid = true;\n if (response.errFieldsMap != null && response.errFieldsMap != undefined) {\n if (response.errFieldsMap.answer1 != null && response.errFieldsMap.answer1 != undefined) {\n firstAnswerErr = response.errFieldsMap.answer1;\n firstAnswerValid = false;\n }\n if (response.errFieldsMap.answer2 != null && response.errFieldsMap.answer2 != undefined) {\n secondAnswerErr = response.errFieldsMap.answer2;\n secondAnswerValid = false;\n }\n if (response.errFieldsMap.answer3 != null && response.errFieldsMap.answer3 != undefined) {\n thirdAnswerErr = response.errFieldsMap.answer3;\n thirdAnswerValid = false;\n }\n }\n return verifySecurityQuestionsFailSent({\n showFailedModal: false,\n errorTitle: response.message,\n firstAnsInlineErrMessage: firstAnswerErr,\n secondAnsInlineErrMessage: secondAnswerErr,\n thirdAnsInlineErrMessage: thirdAnswerErr,\n firstAnsValid: firstAnswerValid,\n secondAnsValid: secondAnswerValid,\n thirdAnsValid: thirdAnswerValid,\n firstAnsErrMessage: '',\n secondAnsErrMessage: '',\n thirdAnsErrMessage: ''\n });\n }\n else if (response.code == constants.REGISTRATION_FAILED || response.code == constants.CLIENT_SETUP_ERROR || (response.title !== null && response.message !== null)) {\n ReactGA.sendevent(gaCategory, 'REGISTER_USER', response.code);\n return verifySecurityQuestionsFailSent({\n showFailedModal: true,\n errorMsgTitle: response.title,\n welcomeMsg: response.message,\n errorTitle: '',\n });\n }\n};\n\nconst handleSubmitSecurityQuestionsResponseFail = (getState, errorMessage) => {\n console.log('handle submit security QA fail response' + errorMessage);\n const registerUser = getState.registerUser;\n if (registerUser.firstAnswer.toUpperCase() === registerUser.secondAnswer.toUpperCase()\n && registerUser.firstAnswer.toUpperCase() === registerUser.thirdAnswer.toUpperCase()) {\n return verifySecurityQuestionsFailSent({\n firstAnsInlineErrMessage: errorMessage,\n firstAnsValid: false,\n secondAnsInlineErrMessage: errorMessage,\n secondAnsValid: false,\n thirdAnsInlineErrMessage: errorMessage,\n thirdAnsValid: false,\n firstAnsErrMessage: '',\n secondAnsErrMessage: '',\n thirdAnsErrMessage: ''\n });\n }\n if (registerUser.firstAnswer.toUpperCase() === registerUser.secondAnswer.toUpperCase()) {\n return verifySecurityQuestionsFailSent({\n firstAnsInlineErrMessage: errorMessage,\n firstAnsValid: false,\n secondAnsInlineErrMessage: errorMessage,\n secondAnsValid: false,\n firstAnsErrMessage: '',\n secondAnsErrMessage: '',\n });\n }\n if (registerUser.firstAnswer.toUpperCase() === registerUser.thirdAnswer.toUpperCase()) {\n return verifySecurityQuestionsFailSent({\n firstAnsInlineErrMessage: errorMessage,\n firstAnsValid: false,\n thirdAnsInlineErrMessage: errorMessage,\n thirdAnsValid: false,\n firstAnsErrMessage: '',\n thirdAnsErrMessage: '',\n });\n }\n if (registerUser.secondAnswer.toUpperCase() === registerUser.thirdAnswer.toUpperCase()) {\n return verifySecurityQuestionsFailSent({\n thirdAnsInlineErrMessage: errorMessage,\n thirdAnsValid: false,\n secondAnsInlineErrMessage: errorMessage,\n secondAnsValid: false,\n secondAnsErrMessage: '',\n thirdAnsErrMessage: ''\n });\n }\n\n return verifySecurityQuestionsFailSent({\n errorTitle: errorMessage\n });\n};\n\n{/************************************Cancel Registration*******************************************/ }\n\nconst redirectToLoginPage = getState => {\n const isMobile = getState.registration.mobileFlow;\n const url = getState.registration.returnUrl;\n const organizationId = getState.registration.organizationId;\n if (isMobile) {\n console.log('Entered Mobile flow');\n closeMobileContainer(); //this is part of common.js\n return true;\n } else {\n WindowUtil.setUserIdCookieValue(getState.registerUser.finalUserIdValue);\n return window.open(unescape(WindowUtil.validateRtnUrl(decodeURIComponent(url), organizationId)), '_self');\n }\n}\n\n{/************************************Epics declarations*******************************************/ }\nexport const getUserIdOptionsEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(GET_USER_ID_OPTIONS),\n switchMap(action => sendingAsyncRequest(getUserIdOptions(ajax, state.value))));\n\nexport const setRegisterFieldEpic = (action$, state) => action$.pipe(\n ofType(SET_REGISTER_OPTIONS_FIELD),\n switchMap(action => sendingAsyncRequest(setRegisterOptionsField(action.payload, state.value))));\n\nexport const verifyRegisterOptionsEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(VERIFY_REGISTER_OPTIONS),\n switchMap(action => sendingAsyncRequest(submitRegisterOptions(ajax, state.value))));\n\nexport const getUserIdOptionsFailureEpic = action$ => action$.pipe(\n ofType(GET_USER_ID_OPTIONS_FAIL), switchMap(action$ => of(push('/error'))));\n\nexport const verifyRegisterOptionsSuccessEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_REGISTER_OPTIONS_SUCCESS),\n switchMap(action$ => of(push(state.value.registerUser.viewId))));\n\nexport const verifySecurityQuestionsSuccessEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_SECURITY_QUESTIONS_SUCCESS),\n switchMap(action$ => of(push(state.value.registerUser.viewId))));\n\nexport const verifyRegisterOptionsFailEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_REGISTER_OPTIONS_FAIL),\n switchMap(action => of()));\n\nexport const verifySecurityQuestionsFailEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_SECURITY_QUESTIONS_FAIL),\n switchMap(action => of()));\n\nexport const setQuestionsFieldEpic = (action$, state) => action$.pipe(\n ofType(SET_QUESTIONS_FIELD),\n switchMap(action => sendingAsyncRequest(setQuestionsField(action.payload, state.value))));\n\nexport const setAnswersFieldEpic = (action$, state) => action$.pipe(\n ofType(SET_ANSWERS_FIELD),\n switchMap(action => sendingAsyncRequest(setAnswersField(action.payload, state.value))));\n\nexport const verifySecurityQuestionsEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(VERIFY_SECURITY_QUESTIONS),\n switchMap(action => sendingAsyncRequest(submitSecurityQuestions(ajax, state.value))));\n\nexport const checkUserIdAvailabilityEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(CHECK_USERID_AVAILABILITY),\n debounceTime(constants.checkUserIdAvailabilityDebounceTime),\n switchMap(action => sendingAsyncRequest(submitUserId(ajax, state.value))));\n\nexport const cancelRegistrationEpic = (action$, state) => action$.pipe(\n ofType(CANCEL_REGISTRATION),\n switchMap(action => sendingAsyncRequest(redirectToLoginPage(state.value))));","import { createAction } from 'redux-actions';\nimport { push } from 'connected-react-router';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport {\n map, switchMap, catchError, concatMap,\n} from 'rxjs/operators';\nimport { ajax } from 'rxjs/ajax';\nimport { throwError, of } from 'rxjs';\nimport { ofType } from 'redux-observable';\nimport { getErrorMessage, sendingAsyncRequest } from '../../../helpers/epics';\nimport { constants } from '../confirmation-constants';\nimport { types } from '../confirmation-actions';\nimport { ReactGA, PendoUtil } from '../../../../util';\n\nconst {\n CONFIRMATION_INFO_OPTIONS,\n CONFIRMATION_INFO_OPTIONS_SUCCESS,\n CONFIRMATION_INFO_OPTIONS_FAIL,\n CONFIRMATION_GO_TO_PRODUCT\n} = types;\n\nconst getConfirmationInfoOptionsSuccess = createAction(CONFIRMATION_INFO_OPTIONS_SUCCESS);\nconst getConfirmationInfoOptionsFail = createAction(CONFIRMATION_INFO_OPTIONS_FAIL);\n\nconst isBlank = str => (str || '').trim().length === 0;\n\n//const getConfirmationData = () => Observable.ajax.getJSON('/public/mocks/confirmation.json');\nconst getConfirmationData = (ajax, getState) => ajax({\n url: constants.getConfirmationDetailsEndPoint,\n method: 'POST',\n responseType: 'json',\n headers: {\n 'Content-Type': 'application/json',\n \"cache-control\": \"no-cache\",\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\nconst goToProductAPI = (ajax, payload, getState) => ajax({\n url: constants.logProductUrlEndPoint,\n method: 'POST',\n responseType: 'json',\n body: payload,\n headers: {\n 'Content-Type': 'application/json',\n \"cache-control\": \"no-cache\",\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\n\nconst getConfirmationInfo = (ajax, getState) => getConfirmationData(ajax, getState).pipe(\n map(response => handleResponse(response.response, getState)),\n catchError(err => getConfirmationInfoOptionsFail(getErrorMessage(err))),\n);\n\n//Splunk tracking\nconst goToProduct = (ajax, payload, getState) => goToProductAPI(ajax, payload, getState).pipe(\n map(response => handleProductResponse(response, getState)),\n catchError(handleFailedProductResponse)\n);\n\nconst handleProductResponse = (res, getState) => {\n const confirmation = Object.assign({}, getState.confirmation);\n return getConfirmationInfoOptionsSuccess({ confirmation });\n}\n\nconst handleFailedProductResponse = () => {\n return of();\n}\n\nconst handleResponse = (data, getState) => {\n\n const isMobile = getState.registration.mobileFlow;\n let gaCategory = \"WEB_REGISTRATION_CONFIRMATION\";\n let pagePath = '/ssr/pic/confirmation';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REGISTRATION_CONFIRMATION\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROSWER_REGISTRATION_CONFIRMATION\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n data.showDiv = true;\n let selectedLocale = getState.intl.locale;\n if (selectedLocale != undefined) {\n data.srcApple = \"images/Badges/apple_\" + selectedLocale + \".png\";\n data.srcAndriod = \"images/Badges/andriod_\" + selectedLocale + \".png\";\n\n }\n else {\n data.srcApple = \"images/Badges/apple_en.png\";\n data.srcAndriod = \"images/Badges/andriod_en.png\";\n\n }\n return getConfirmationInfoOptionsSuccess({\n gaCategory,\n isMobile,\n confirmationInfoObj: data\n });\n}\n\nexport const getContactInfoEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(CONFIRMATION_INFO_OPTIONS),\n switchMap(action => sendingAsyncRequest(getConfirmationInfo(ajax, state.value))),\n);\n\nexport const goToProductEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(CONFIRMATION_GO_TO_PRODUCT),\n switchMap(action => sendingAsyncRequest(goToProduct(ajax, action.payload, state.value))),\n);\n\nexport const getContactInfoOptionsFailureEpic = action$ => action$.pipe(\n ofType(CONFIRMATION_INFO_OPTIONS_FAIL),\n switchMap(action$ => of(push('/error'))),\n);\n","import { createAction } from 'redux-actions';\nimport { push } from 'connected-react-router';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport {\n map, switchMap, catchError, concatMap,\n} from 'rxjs/operators';\nimport { ajax } from 'rxjs/ajax';\nimport { throwError, of } from 'rxjs';\nimport { ofType } from 'redux-observable';\nimport { getErrorMessage, sendingAsyncRequest } from '../../../helpers/epics';\nimport { constants } from '../verify-prc-constants';\nimport { types } from '../verify-prc-actions';\nimport { ReactGA, WindowUtil, PendoUtil } from '../../../../util';\nimport { constants as progressBarConstants } from '../../../../util/window/progress-bar-constants';\n\nconst {\n VERIFY_PRC_INFO_OPTIONS,\n VERIFY_PRC_INFO_OPTIONS_SUCCESS,\n VERIFY_PRC_INFO_OPTIONS_FAIL,\n CANCEL_PRC_AND_CHECK_YOUR_ENTRIES,\n SET_IDENTITY_SELECTED,\n SET_IDENTITY_SELECTED_SUCCESS,\n SET_IDENTITY_SELECTED_FAIL,\n ACCESS_CODE_SENT,\n ACCESS_CODE_SENT_SUCCESS,\n SET_VERIFY_PRC_REDIRECT,\n SET_VERIFY_PRC_KBA_REDIRECT,\n SET_VERIFY_PRC_POSTAL_REDIRECT,\n VERIFY_PHONE_ON_FLY,\n VERIFY_PHONE_ON_FLY_BACK,\n SET_PHONEONFLY_SELECTED,\n RESEND_OTP,\n EDIT_CONTACT_INFO,\n SKIP_NUDGE_ACTIVATION\n\n} = types;\n\n\nconst getConfirmationInfoOptionsSuccess = createAction(VERIFY_PRC_INFO_OPTIONS_SUCCESS);\nconst getVerifyPrcOptionsFail = createAction(VERIFY_PRC_INFO_OPTIONS_FAIL);\nconst setIdentitySelectedSuccess = createAction(SET_IDENTITY_SELECTED_SUCCESS);\nconst setAccessCodeSuccess = createAction(ACCESS_CODE_SENT_SUCCESS);\nconst setIdentitySelectedFail = createAction(SET_IDENTITY_SELECTED_FAIL);\nconst setSubmitAccessCodeFail = createAction(SET_IDENTITY_SELECTED_FAIL);\nconst setVerifyPhoneOnFlyCodeSuccess = createAction(SET_PHONEONFLY_SELECTED);\n\n\nconst isBlank = str => (str || '').trim().length === 0;\n\n\n\n//const getFeedDataApi = () => Observable.ajax.getJSON('/public/mocks/verifyPrc.json');\n//const setIdentitySelectedApi = () => Observable.ajax.getJSON('/public/mocks/verifyPrcS.json');\n//const setSubmitAccessCodeApi = () => Observable.ajax.getJSON('/public/mocks/verifyPrcF.json');\n\n\nconst getFeedDataApi = (ajax, getState) =>{\n var url = getState.contactInfo.contactInfoObj.showNudgePage ? constants.getNudgeInitialDataAPI : constants.getVerifyPrcInitialDataAPI\n return ajax({\n url: url,\n method: 'POST',\n responseType: 'json',\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n });\n}\n\nconst setIdentitySelectedApi = (ajax, contactId, getState) => ajax({\n url: constants.getVerifyPrcGenerateCodeAPI,\n method: 'POST',\n responseType: 'json',\n body: contactId,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\nconst setSubmitAccessCodeApi = (ajax, inputPRC, getState) => ajax({\n url: constants.getVerifyPrcSubmitCodeAPI,\n method: 'POST',\n responseType: 'json',\n body: inputPRC,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\nconst setverifyPhoneOnFlyApi = (ajax, mobileObj, getState) => ajax({\n url: constants.getPhoneOnFlyAPI,\n method: 'POST',\n responseType: 'json',\n body: mobileObj,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\n\nconst setverifyPhoneOnFlyReEntry = () => {\n return of({\n \"title\": constants.PHONEONTHEFLYFAIL_TITLE,\n \"hideText\": true,\n });\n};\n\n\nconst getVerifyPrcInfo = (ajax, getState) =>\n getFeedDataApi(ajax, getState)\n .pipe(map(response => handleResponse(response.response, getState)),\n catchError(err => [getVerifyPrcOptionsFail(getErrorMessage(err))]));\n\n\nconst setIdentitySelected = (ajax, payload, getState) => {\n let contactId = getState.verifyPrc.verifyPrcObj.associateContactInfo[payload].contactId;\n let channelObj={contactId:contactId}\n let commType = getState.verifyPrc.verifyPrcObj.associateContactInfo[payload].communicationType;\n const gaCategory = getState.verifyPrc.gaCategory;\n if (constants.TYPE_EMAIL == commType) {\n ReactGA.sendevent(gaCategory, 'COMMUNICATION_CHANNEL', 'EMAIL');\n channelObj.commType='EMAIL';\n } else if (constants.TYPE_CELL_PHONE == commType) {\n ReactGA.sendevent(gaCategory, 'COMMUNICATION_CHANNEL', 'MOBILE');\n channelObj.commType='MOBILE';\n } else {\n ReactGA.sendevent(gaCategory, 'COMMUNICATION_CHANNEL', 'POSTAL_MAIL');\n channelObj.commType='POSTAL_MAIL';\n }\n return setIdentitySelectedApi(ajax, contactId, getState)\n .pipe(map(response => handleResponseIdentitySelected(response.response, payload, getState,channelObj)),\n catchError(err => [setIdentitySelectedFail(getErrorMessage(err))]));\n}\nconst goToPostalCode = (ajax, getState) => {\n const gaCategory = getState.verifyPrc.gaCategory;\n let contactId = constants.TYPE_POSTAL_CODE;\n ReactGA.sendevent(gaCategory, 'COMMUNICATION_CHANNEL', 'POSTAL_MAIL');\n return setIdentitySelectedApi(ajax, contactId, getState)\n .pipe(map(response => handlePostalCodeSelected(response.response, getState)),\n catchError(err => [setIdentitySelectedFail(getErrorMessage(err))]));\n}\n\nconst verifyOtpPhoneOnFly = (ajax, payload, getState) => {\n\n const gaCategory = getState.verifyPrc.gaCategory;\n let contactId = constants.TYPE_PHONE_ON_FLY;\n let channelObj={contactId:contactId,commType:'PHONE_ON_FLY'};\n ReactGA.sendevent(gaCategory, 'COMMUNICATION_CHANNEL', 'PHONE_ON_FLY');\n payload.length = getState.verifyPrc.verifyPrcObj.disableFields.length - 1;\n return setIdentitySelectedApi(ajax, contactId, getState)\n .pipe(map(response => handleResponseIdentitySelected(response.response, payload, getState,channelObj)),\n catchError(err => [setIdentitySelectedFail(getErrorMessage(err))]));\n}\n\nconst resendOtpToselectedContactId = (ajax, payload, getState) => {\n const gaCategory = getState.verifyPrc.gaCategory;\n let contactId = getState.verifyPrc.verifyPrcObj.contactId;\n ReactGA.sendevent(gaCategory, 'COMMUNICATION_CHANNEL', getState.verifyPrc.verifyPrcObj.commType);\n payload.length = getState.verifyPrc.verifyPrcObj.disableFields.length - 1;\n return setIdentitySelectedApi(ajax, contactId, getState)\n .pipe(map(response => setIdentitySelectedSuccess(getState.verifyPrc)),\n catchError(err => [setIdentitySelectedFail(getErrorMessage(err))]));\n}\n\nconst handlePostalCodeSelected = (response, getState) => {\n let verifyPrcObj = Object.assign({}, getState.verifyPrc.verifyPrcObj);\n if (response.code == constants.TYPE_SUCCESS) {\n let showModalInfo = true;\n verifyPrcObj.showModalTitle = response.title;\n verifyPrcObj.showModalMessage = response.message;\n return setIdentitySelectedSuccess({\n verifyPrcObj, showModalInfo\n });\n }\n else {\n let showModalError = true;\n let showOtcModal = true;\n verifyPrcObj.showModalTitle = response.title;\n verifyPrcObj.showModalMessage = response.message;\n return setIdentitySelectedSuccess({\n verifyPrcObj, showModalError, showOtcModal\n });\n }\n}\n\n\nconst setSubmitAccessCode = (ajax, payload, getState) => {\n let inputPRC = getState.verifyPrc.otcCode;\n if (getState.verifyPrc.isFormValid != undefined && getState.verifyPrc.isFormValid == false)\n return of();\n return setSubmitAccessCodeApi(ajax, inputPRC, getState)\n .pipe(map(response => handleResponseAccessCode(response.response, payload, getState)),\n catchError(err => [setSubmitAccessCodeFail(getErrorMessage(err))]));\n}\n\nconst setverifyPhoneOnFly = (ajax, payload, getState) => {\n let mobileObj = {};\n mobileObj.contactInfo = getState.verifyPrc.mnumber;\n mobileObj.dialCode = getState.verifyPrc.dialCode;\n mobileObj.purposeType = getState.verifyPrc.verifyPrcObj.phoneItems[0];\n mobileObj.countryCode = getState.verifyPrc.countryCode;\n if (getState.verifyPrc.prevDialCode === mobileObj.dialCode && getState.verifyPrc.prevNumber === mobileObj.contactInfo)\n {\n return setverifyPhoneOnFlyReEntry()\n .pipe(map(response => handleResponsePhoneReEntry(response,getState)));\n }\n else{\n return setverifyPhoneOnFlyApi(ajax, mobileObj, getState)\n .pipe(map(response => handleResponsePhoneOnFlyVerification(response.response, payload, getState)),\n catchError(err => [setSubmitAccessCodeFail(getErrorMessage(err))]));\n }\n}\n\nconst handleResponse = (data, getState) => {\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = \"WEB_REGISTRATION_VERIFY_PRC\";\n let pagePath = '/ssr/cpc/prc';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REGISTRATION_VERIFY_PRC\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROSWER_REGISTRATION_VERIFY_PRC\"; }\n let showPhoneOnFly = false;\n\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n // progress bar start\n let progressBarData;\n if( getState.contactInfo.contactInfoObj && getState.contactInfo.contactInfoObj.showNudgePage ==true){\n console.log(\"enetered into nudge flow\");\n progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Contact_Info, getState);\n }else{\n console.log(\"enetered into normal flow\");\n progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Identification, getState);\n }\n // progress bar end\n\n let verifyPrcObj = Object.assign({}, getState.verifyPrc.verifyPrcObj);\n verifyPrcObj = data;\n verifyPrcObj.phoneItems = [];\n verifyPrcObj.onlyCountries = [\"us\"];\n verifyPrcObj.phoneItems.push(getState.intl.messages['emailItem2']);\n verifyPrcObj.phoneItems.push(getState.intl.messages['emailItem1']);\n let selectedPhone = getState.intl.messages['emailItem2'];\n let mobilePhoneValid = true;\n verifyPrcObj.multiOrg = false;\n verifyPrcObj.isPhoneOnFlyEnabled = verifyPrcObj.phoneOnFlyFlag;\n let phoneOnFlyFail = false;\n let hideText = false;\n let phoneOnFlyAlert = false;\n let phoneOnFlyAlertError = false;\n verifyPrcObj.mykplanFlow = false;\n let phoneReEntryError = false;\n verifyPrcObj.firstName = WindowUtil.firstNameFormat(verifyPrcObj.firstName);\n verifyPrcObj.findMeFlow = getState.findMe.findMeObj.verifyflow || false;\n if (getState.registration.viewId == constants.mykPlan_viewId) {\n verifyPrcObj.mykplanFlow = true;\n }\n\n if (getState.findMe.findMeObj.multiOrg || getState.verify401k.userWithMultiOrg) {\n verifyPrcObj.multiOrg = true;\n }\n verifyPrcObj.showAlert = false;\n let showVerify = true;\n let showOtcModal = false;\n verifyPrcObj.showDiv = true;\n verifyPrcObj.showDiffMethodBtn = true;\n let disableFields = [];\n let prcAlreadyExists = data.prcAlreadyExists;\n let isPhoneOnFlyBlocked = data.phoneOnFlyBlocked;\n let phoneCommunicationExist = false ;\n verifyPrcObj.prcValid = true;\n verifyPrcObj.enablePostal = false;\n\n if (data.associateContactInfo == undefined || data.associateContactInfo.length == 0) {\n if (data.kbaDisabled)\n verifyPrcObj.showDiffMethodBtn = false;\n else verifyPrcObj.showDiffMethodBtn = true;\n }\n else {\n verifyPrcObj.associateContactInfo = data.associateContactInfo;\n verifyPrcObj.kbaDisabled = verifyPrcObj.kbaDisabled;\n data.associateContactInfo.map((value, key) => {\n if (value.communicationType == constants.TYPE_POSTAL_CODE) {\n verifyPrcObj.enablePostal = true;\n verifyPrcObj.postalInfo = value.contactInfo;\n }\n if(value.communicationType == constants.TYPE_CELL_PHONE){\n phoneCommunicationExist = true;\n }\n if (!value.enabled)\n disableFields.push(true);\n else disableFields.push(false);\n });\n }\n let mnumber;\n let dialCode;\n let pofBackEnabled = false;\n if (verifyPrcObj.isPhoneOnFlyEnabled) {\n verifyPrcObj.showDiffMethodBtn = true\n if(disableFields.length == 0) {\n phoneCommunicationExist = false\n }\n pofBackEnabled = showDifferentMethodBtn(disableFields, verifyPrcObj.kbaDisabled, verifyPrcObj.enablePostal);\n if (isPhoneOnFlyBlocked) {\n disableFields.push(true);\n }\n else {\n disableFields.push(false);\n }\n mnumber = '';\n dialCode = '';\n }\n verifyPrcObj.disableFields = disableFields;\n let title = constants.VERIFYPRC_TITLE;\n if (prcAlreadyExists) {\n ReactGA.sendevent(gaCategory, 'PRC', 'ALREADY_EXISTS');\n title = constants.OTP_HEADING_ALREADY_PRC_EXIST;\n }\n\n PendoUtil.pendoIdentify(verifyPrcObj.orgCd,verifyPrcObj.clientName,getState.registration.transactionId)\n PendoUtil.pendoVisitorIdUpdate(verifyPrcObj.associateId)\n verifyPrcObj.showNudgePage = getState.contactInfo.contactInfoObj? getState.contactInfo.contactInfoObj.showNudgePage:false;\n getState.contactInfo.sendRedirect=false;\n return getConfirmationInfoOptionsSuccess({\n verifyPrcObj, phoneCommunicationExist, pofBackEnabled, phoneReEntryError, phoneOnFlyAlertError, hideText, showVerify, phoneOnFlyFail, phoneOnFlyAlert, mobilePhoneValid, mnumber, dialCode, selectedPhone, showPhoneOnFly, showOtcModal, title, prcAlreadyExists, isMobileBrowser, isMobile, gaCategory, progressBarData\n });\n}\n\n\nconst handleResponseIdentitySelected = (response, payload, getState, channelObj) => {\n let verifyPrcObj = Object.assign({}, getState.verifyPrc.verifyPrcObj);\n let showOtcModal = false;\n let pofBackEnabled = getState.verifyPrc.onlyPofExist;\n verifyPrcObj.contactId = channelObj.contactId;\n verifyPrcObj.commType = channelObj.commType;\n if (!getState.verifyPrc.showPhoneOnFly) {\n verifyPrcObj.disableFields[payload] = true;\n }\n else {\n verifyPrcObj.disableFields[payload.length] = true;\n }\n\n if( verifyPrcObj.disableFields[verifyPrcObj.disableFields.length - 1] === false){\n verifyPrcObj.disableFields[verifyPrcObj.disableFields.length - 1] = true\n pofBackEnabled = showDifferentMethodBtn(verifyPrcObj.disableFields, verifyPrcObj.kbaDisabled, verifyPrcObj.enablePostal);\n verifyPrcObj.disableFields[verifyPrcObj.disableFields.length - 1] = false\n }\n\n verifyPrcObj.showDiffMethodBtn = showDifferentMethodBtn(verifyPrcObj.disableFields, verifyPrcObj.kbaDisabled, verifyPrcObj.enablePostal);\n \n verifyPrcObj.showAlert = false;\n verifyPrcObj.prcValid = true;\n let otcCode = \"\";\n let phoneOnFlyAlert = false;\n\n if (response.code == constants.TYPE_SUCCESS) {\n let showVerify = false;\n let title = constants.OTP_HEADING;\n if (!getState.verifyPrc.showPhoneOnFly) {\n verifyPrcObj.selectedIdentityValue = verifyPrcObj.associateContactInfo[payload].contactInfo;\n }\n else {\n verifyPrcObj.selectedIdentityValue = payload.phoneOnFlyNumber;\n title = constants.POF_OTP_HEADING;\n }\n verifyPrcObj.showOnScreen = response.showOnScreen;\n verifyPrcObj.accessCode = response.accessCode;\n verifyPrcObj.expiry = response.expiry;\n let showPhoneOnFly = false;\n return setIdentitySelectedSuccess({\n verifyPrcObj, showVerify, pofBackEnabled, title, showOtcModal, otcCode, showPhoneOnFly, phoneOnFlyAlert\n });\n\n }\n else {\n if (!getState.verifyPrc.showPhoneOnFly) {\n showOtcModal = false;\n }\n else {\n showOtcModal = true;\n }\n let showPhoneOnFly = false;\n let showModalError = true;\n verifyPrcObj.showModalTitle = response.title;\n verifyPrcObj.showModalMessage = response.message;\n return setIdentitySelectedSuccess({\n verifyPrcObj, showModalError, pofBackEnabled, showOtcModal, otcCode, phoneOnFlyAlert, showPhoneOnFly\n });\n }\n\n}\n\nconst showDifferentMethodBtn = (disableFields, showKba, enablePostal) => {\n if (showKba == false)\n return true;\n if (enablePostal) return true;\n for (var i = 0; i < disableFields.length; i++) {\n if (disableFields[i] == false) return true;\n }\n return false;\n}\n\nconst handleResponseAccessCode = (response, payload, getState) => {\n let verifyPrcObj = Object.assign({}, getState.verifyPrc.verifyPrcObj);\n if (response.code == constants.TYPE_SUCCESS) {\n return setAccessCodeSuccess({\n viewId: response.viewId,\n sendRedirect: true\n });\n\n }\n else {\n if (response.code == constants.TYPE_ERROR_INVALID || response.code == constants.TYPE_ERROR_EXPIRED) {\n verifyPrcObj.showAlert = true;\n verifyPrcObj.prcValid = false;\n verifyPrcObj.showAlertMessage = response.message;\n\n return setAccessCodeSuccess({\n verifyPrcObj\n });\n }\n else {\n let showOtcModal = true;\n let showModalError = true;\n verifyPrcObj.showModalTitle = response.title;\n verifyPrcObj.showModalMessage = response.message;\n return setAccessCodeSuccess({\n verifyPrcObj, showModalError, showOtcModal\n });\n }\n }\n\n}\n\nconst handleResponsePhoneReEntry = (response ,getState ) => {\n if(getState.verifyPrc.phoneOnFlyAlertError){\n let title = constants.PHONEONTHEFLY_TITLE;\n let phoneOnFlyAlert = true;\n return setAccessCodeSuccess({\n title,\n phoneOnFlyAlert,\n phoneReEntryError:false\n });\n }\n else{ \n return setAccessCodeSuccess({\n title: response.title,\n hideText: response.hideText,\n phoneReEntryError:true\n });\n }\n}\n\nconst handleResponsePhoneOnFlyVerification = (response, payload, getState) => {\n let verifyPrcObj = Object.assign({}, getState.verifyPrc.verifyPrcObj);\n let isCodeless = response.codelessFlowFlag;\n let phoneOnFlyNumber;\n let prevNumber = getState.verifyPrc.mnumber;\n let prevDialCode = getState.verifyPrc.dialCode;\n const gaCategory = getState.verifyPrc.gaCategory;\n if (response.code == constants.PHONEONFLY_SUCCESS) {\n ReactGA.sendevent(gaCategory, 'PHONEONTHEFLY', 'SUCCESS');\n phoneOnFlyNumber = response.contactInfo;\n return setVerifyPhoneOnFlyCodeSuccess({\n verifyPrcObj,\n phoneOnFlyNumber,\n });\n }\n else if (response.code == constants.INVALID_PHONE) {\n ReactGA.sendevent(gaCategory, 'PHONEONTHEFLY', 'INVALID_PHONE');\n verifyPrcObj.enteredNumber = getState.verifyPrc.mnumber;\n let phoneOnFlyAlert = false;\n let phoneOnFlyAlertError = false; \n let title = constants.PHONEONTHEFLYFAIL_TITLE;\n let phoneOnFlyFail = false;\n\n return setAccessCodeSuccess({\n verifyPrcObj,\n title,\n phoneOnFlyAlert,\n hideText:true,\n phoneOnFlyFail,\n prevNumber,\n prevDialCode,\n phoneOnFlyAlertError,\n phoneReEntryError:false\n });\n }\n else if (response.code == constants.MAX_ATTEMPTS_EXCEEDED) {\n ReactGA.sendevent(gaCategory, 'PHONEONTHEFLY', 'MAX_ATTEMPTS_EXCEEDED');\n verifyPrcObj.disableFields[verifyPrcObj.disableFields.length - 1] = true;\n verifyPrcObj.showDiffMethodBtn = showDifferentMethodBtn(verifyPrcObj.disableFields, verifyPrcObj.kbaDisabled, verifyPrcObj.enablePostal);\n if (verifyPrcObj.showDiffMethodBtn == false) {\n if (isCodeless) {\n return setAccessCodeSuccess({\n viewId: response.viewId,\n sendRedirect: true,\n });\n }\n else {\n let showOtcModal = true;\n let showModalError = true;\n verifyPrcObj.showModalTitle = response.title;\n verifyPrcObj.showModalMessage = response.message;\n return setAccessCodeSuccess({\n verifyPrcObj, showModalError, showOtcModal\n });\n }\n }\n else {\n verifyPrcObj.disableFields[verifyPrcObj.disableFields.length - 1] = true;\n let title = \"verifyprctitle\";\n let phoneOnFlyFail = false;\n return setAccessCodeSuccess({\n showPhoneOnFly: false,\n showVerify: true,\n verifyPrcObj,\n title,\n phoneOnFlyFail\n });\n }\n }\n else {\n if (response.code == constants.NON_UNIQUE_PHONE) {\n ReactGA.sendevent(gaCategory, 'PHONEONTHEFLY', 'NON_UNIQUE_PHONE');\n let phoneOnFlyAlert = true;\n verifyPrcObj.showAlertMessage = response.message;\n let title = constants.PHONEONTHEFLY_TITLE;\n let phoneOnFlyAlertError = true;\n return setAccessCodeSuccess({\n phoneOnFlyAlert,\n verifyPrcObj,\n hideText:false,\n title,\n prevNumber,\n prevDialCode,\n phoneOnFlyAlertError,\n phoneReEntryError:false\n });\n }\n else {\n ReactGA.sendevent(gaCategory, 'PHONEONTHEFLY', 'FAIL');\n let showOtcModal = true;\n let showModalError = true;\n verifyPrcObj.showModalTitle = response.title;\n verifyPrcObj.showModalMessage = response.message;\n return setAccessCodeSuccess({\n verifyPrcObj, showModalError, showOtcModal\n });\n }\n }\n\n}\n\n\nexport const getVerifyPrcInfoEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(VERIFY_PRC_INFO_OPTIONS),\n switchMap(action => sendingAsyncRequest(getVerifyPrcInfo(ajax, state.value))));\n\nexport const goToKBASentCallEpic = action$ => action$.pipe(\n ofType(SET_VERIFY_PRC_KBA_REDIRECT),\n switchMap(action$ => of(push('/verifyKba'))));\n\nexport const editContactInfo = action$ => {\n return action$.pipe(\n ofType(EDIT_CONTACT_INFO),\n switchMap(action$ => of(push('/contactInfo'))));\n};\n\nexport const setIdentitySelectedEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(SET_IDENTITY_SELECTED),\n switchMap(action => sendingAsyncRequest(setIdentitySelected(ajax, action.payload, state.value))),\n);\n\nexport const resendOTP = (action$, state, { ajax }) => action$.pipe(\n ofType(RESEND_OTP),\n switchMap(action => sendingAsyncRequest(resendOtpToselectedContactId(ajax, {}, state.value))),\n);\n\nexport const verifyOtpPhoneOnFlyEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(SET_PHONEONFLY_SELECTED),\n switchMap(action => sendingAsyncRequest(verifyOtpPhoneOnFly(ajax, action.payload, state.value))),\n);\n\nexport const setSubmitAccessCodeEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(ACCESS_CODE_SENT),\n switchMap(action => sendingAsyncRequest(setSubmitAccessCode(ajax, action.payload, state.value))));\n\nexport const setverifyPhoneOnFlyEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(VERIFY_PHONE_ON_FLY),\n switchMap(action => sendingAsyncRequest(setverifyPhoneOnFly(ajax, action.payload, state.value))));\n\nexport const goToPostalCodeEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(SET_VERIFY_PRC_POSTAL_REDIRECT),\n switchMap(action => sendingAsyncRequest(goToPostalCode(ajax, state.value))));\n\nconst redirectToLoginPage = getState => {\n const isMobile = getState.registration.mobileFlow;\n const url = getState.registration.returnUrl;\n const organizationId = getState.registration.organizationId;\n if (isMobile) {\n closeMobileContainer(); //this is part of index.html\n return true;\n } else {\n return window.open(unescape(WindowUtil.validateRtnUrl(decodeURIComponent(url), organizationId)), '_self');\n }\n}\n\nconst verifyPhoneOnFlyBack = getState => verifyPhoneOnFlyBackClick(getState).pipe(\n map(setAccessCodeSuccess),\n);\n\nconst verifyPhoneOnFlyBackClick = getState => {\n\n let title;\n let phoneOnFlyAlert = false;\n if (!getState.verifyPrc.phoneOnFlyFail) {\n title = constants.VERIFYPRC_TITLE;\n }\n else {\n title = constants.PHONEONTHEFLYFAIL_TITLE;\n }\n return of({\n title,\n showVerify: true,\n showPhoneOnFly: false,\n phoneOnFlyAlert\n });\n}\n\nexport const getVerifyPrcInfoOptionsFailureEpic = action$ => action$.pipe(\n ofType(VERIFY_PRC_INFO_OPTIONS_FAIL),\n switchMap(action$ => of(push('/error'))));\n\nexport const setRedirectSentEpic = (action$, state) => action$.pipe(\n ofType(SET_VERIFY_PRC_REDIRECT),\n switchMap(action$ => {\n ReactGA.sendevent(state.value.verifyPrc.gaCategory, 'VERIFY_PRC', 'SUCCESS');\n return of(push(state.value.verifyPrc.viewId))\n }));\n\nexport const setIdentitySelectedFailureEpic = action$ => action$.pipe(\n ofType(SET_IDENTITY_SELECTED_FAIL),\n switchMap(action$ => of(push('/error'))));\n\nexport const cancelAndCheckYourEntriesEpic = (action$, state) => action$.pipe(\n ofType(CANCEL_PRC_AND_CHECK_YOUR_ENTRIES),\n switchMap(action => sendingAsyncRequest(redirectToLoginPage(state.value))),\n);\nexport const verifyPhoneOnFlyBackEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_PHONE_ON_FLY_BACK),\n switchMap(action => sendingAsyncRequest(verifyPhoneOnFlyBack(state.value))),\n);\nexport const skipNudgeActivation = action$ => {\n return action$.pipe(\n ofType(SKIP_NUDGE_ACTIVATION),\n switchMap(action$ => of(push('/registration'))));\n };\n","import { createAction } from 'redux-actions';\nimport { push } from 'connected-react-router';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport {\n map, switchMap, catchError, concatMap,\n} from 'rxjs/operators';\nimport { ajax } from 'rxjs/ajax';\nimport { throwError, of } from 'rxjs';\nimport { ofType } from 'redux-observable';\nimport { getErrorMessage, sendingAsyncRequest } from '../../../helpers/epics';\nimport { types } from '../external-vendor-actions';\nimport { constants } from '../external-vendor-constants';\nimport { ReactGA, WindowUtil, PendoUtil } from '../../../../util';\nimport { constants as progressBarConstants } from '../../../../util/window/progress-bar-constants';\n\nconst {\n EXTERNAL_VENDOR_INFO_OPTIONS,\n EXTERNAL_VENDOR_INFO_OPTIONS_SUCCESS,\n EXTERNAL_VENDOR_INFO_OPTIONS_FAIL,\n CANCEL_VENDOR_AND_CHECK_YOUR_ENTRIES,\n SET_MANUAL_SELECTED,\n SET_MANUAL_SELECTED_SUCCESS,\n OPEN_EXTERNAL_VENDOR_REDIRECT,\n SET_EXTERNAL_VENDOR_REDIRECT\n} = types;\n\nconst getExternalVendorInfoOptionsSuccess = createAction(EXTERNAL_VENDOR_INFO_OPTIONS_SUCCESS);\nconst getVerifyPrcOptionsFail = createAction(EXTERNAL_VENDOR_INFO_OPTIONS_FAIL);\nconst setManualSelectedSuccess = createAction(SET_MANUAL_SELECTED_SUCCESS);\n\nconst getFeedDataApi = (getState) => {\n //return Observable.ajax.getJSON('/public/mocks/externalVendor.json')\n if (getState.verifyUser.extVendorList != undefined && getState.verifyUser.extVendorList != '') {\n return of({\n \"extVendorList\": getState.verifyUser.extVendorList,\n \"viewId\": getState.verifyUser.sivViewId,\n \"companyName\": getState.verifyUser.companyName\n });\n } else {\n return of({\n \"extVendorList\": getState.registration.extVendorList,\n \"viewId\": getState.registration.sivViewId,\n \"companyName\": getState.registration.companyName\n });\n }\n};\n\nconst getManualSelected = (getState) => {\n let sendRedirect = true;\n return of({\n sendRedirect\n });\n}\n\nconst logExternalVendor = (ajax,getState) => {\n return ajax({\n url: constants.LOG_EXTERNAL_VENDOR,\n method: 'POST',\n responseType: 'json',\n headers: {\n 'Content-Type': 'application/json',\n \"cache-control\": \"no-cache\",\n \"X-TRANSACTIONID\": getState.registration.transactionId\n }\n });\n //return Observable.ajax.getJSON('/public/mocks/logExternalVendor.json');\n}\n\nconst handleExternalVendorResponse = (data, getState) => {\n let redirectUrl = getState.externalVendor.externalVendorObj.extVendorList[0].redirectUrl;\n window.open(unescape(decodeURIComponent(redirectUrl)), '_self')\n}\n\nconst openExtVendor = (ajax,getState) => logExternalVendor(ajax,getState).pipe(\n map(response => handleExternalVendorResponse(response, getState)),\n catchError(err => [getErrorMessage(err)]),\n);\n\nconst getVerifyPrcInfo = (getState) => getFeedDataApi(getState).pipe(\n map(response => handleResponse(response, getState)),\n catchError(err => getVerifyPrcOptionsFail(getErrorMessage(err))),\n);\n\nconst setManualSelected = (getState) =>\n getManualSelected(getState).pipe(map(setManualSelectedSuccess));\n\nconst setSubmitAccessCode = (payload,getState) => setSubmitAccessCodeApi(payload, getState).pipe(\n map(response => handleResponseAccessCode(response,payload, getState)),\n catchError(err => setSubmitAccessCodeFail(getErrorMessage(err))),\n);\n\nconst handleResponse = (data, getState) => {\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = \"WEB_REGISTRATION_CHOOSE_VENDORS\";\n let pagePath = '/ssr/flowType/chooseManuallyOrCapitalone';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REGISTRATION_CHOOSE_VENDORS\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROSWER_REGISTRATION_CHOOSE_VENDORS\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n let externalVendorObj = Object.assign({}, getState.externalVendor.externalVendorObj);\n externalVendorObj = data;\n externalVendorObj.showDiv = true;\n externalVendorObj.title = getState.intl.messages['externalVendor.title'] + \" \" + externalVendorObj.companyName;\n let viewId = data.viewId;\n // progress bar start\n let progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Identification, getState);\n // progress bar end\n\n return getExternalVendorInfoOptionsSuccess({\n externalVendorObj, viewId, isMobileBrowser, isMobile, gaCategory, progressBarData\n });\n}\n\nexport const getVerifyPrcInfoEpic = (action$, state) => action$.pipe(\n ofType(EXTERNAL_VENDOR_INFO_OPTIONS),\n switchMap(action => sendingAsyncRequest(getVerifyPrcInfo(state.value))),\n);\n\nexport const openExternalVendorEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(OPEN_EXTERNAL_VENDOR_REDIRECT),\n switchMap(action => sendingAsyncRequest(openExtVendor(ajax,state.value))),\n);\n\nexport const setManualSelectedEpic = (action$, state) => action$.pipe(\n ofType(SET_MANUAL_SELECTED),\n switchMap(action => sendingAsyncRequest(setManualSelected(state.value))),\n);\n\nconst redirectToLoginPage = getState => {\n const isMobile = getState.registration.mobileFlow;\n const url = getState.registration.returnUrl;\n const organizationId = getState.registration.organizationId\n if (isMobile) {\n closeMobileContainer(); //this is part of index.html\n return true;\n } else {\n return window.open(unescape(WindowUtil.validateRtnUrl(decodeURIComponent(url), organizationId)), '_self');\n }\n}\n\nexport const getExternalVendorInfoOptionsFailureEpic = action$ => action$.pipe(\n ofType(EXTERNAL_VENDOR_INFO_OPTIONS_FAIL),\n switchMap(action$ => of(push('/error'))),\n);\n\nexport const setRedirectSentEpic = (action$, state) => action$.pipe(\n ofType(SET_EXTERNAL_VENDOR_REDIRECT),\n switchMap(action$ => of(push(state.value.externalVendor.viewId))),\n);\n\nexport const cancelAndCheckYourEntriesEpic = (action$, state) => action$.pipe(\n ofType(CANCEL_VENDOR_AND_CHECK_YOUR_ENTRIES),\n switchMap(action => sendingAsyncRequest(redirectToLoginPage(state.value))),\n);\n\n","import { createAction } from 'redux-actions';\nimport { push } from 'connected-react-router';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport {\n map, switchMap, catchError, concatMap,\n} from 'rxjs/operators';\nimport { ajax } from 'rxjs/ajax';\nimport { throwError, of } from 'rxjs';\nimport { ofType } from 'redux-observable';\nimport { getErrorMessage, sendingAsyncRequest } from '../../../helpers/epics';\nimport { constants } from '../verify-kba-constants';\nimport { types } from '../verify-kba-actions';\nimport { ReactGA, WindowUtil, PendoUtil } from '../../../../util';\nimport { constants as progressBarConstants } from '../../../../util/window/progress-bar-constants';\n\nconst {\n VERIFY_KBA_INFO_OPTIONS,\n VERIFY_KBA_INFO_OPTIONS_SUCCESS,\n VERIFY_KBA_INFO_OPTIONS_FAIL,\n VERIFY_KBA_INFO_OPTIONS_UPDATE,\n VERIFY_KBA_TIME_EXPIRED,\n VERIFY_KBA_SET_ANSWER_SELECTED,\n VERIFY_KBA_REDIRECT,\n CANCEL_KBA_AND_CHECK_YOUR_ENTRIES,\n VERIFY_KBA_PRC_REDIRECT,\n KBA_DISCLAIMER_INFO,\n CANCEL_KBA\n} = types;\n\n\nconst getVerifyKbaInfoOptionsSuccess = createAction(VERIFY_KBA_INFO_OPTIONS_SUCCESS);\nconst getVerifyKbaOptionsFail = createAction(VERIFY_KBA_INFO_OPTIONS_FAIL);\nconst setKbaValueSuccessSent = createAction(VERIFY_KBA_INFO_OPTIONS_UPDATE);\n\n\n//const getFeedDataApi = (getState) => Observable.ajax.getJSON('/public/mocks/verifyKbaInit.json');\n//const getFeedDataApi1 = (getState) => Observable.ajax.getJSON('/public/mocks/verifyKbaInitFailed.json');\n\n//const setAnswerSelectedApi = () => Observable.ajax.getJSON('/public/mocks/verifyKbaNextQst.json');\n//const setAnswerSelectedApi2 = () => Observable.ajax.getJSON('/public/mocks/verifyKbaPassed.json');\n//const setAnswerSelectedApi3 = () => Observable.ajax.getJSON('/public/mocks/verifyKbaFailed.json');\n//const setOnTimeExpiredApi = () => Observable.ajax.getJSON('/public/mocks/verifyKbaTimeExpired.json');\n\n\n\nconst getFeedDataApi = (ajax, getState) => ajax({\n url: constants.getVerifyKbaInitialDataAPI,\n method: 'POST',\n responseType: 'json',\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\nconst setAnswerSelectedApi = (ajax, req, getState) => ajax({\n url: constants.getVerifyKbaNextQuestionAPI,\n method: 'POST',\n responseType: 'json',\n body: {\n 'answerID': req.answerID,\n 'questionID': req.questionID\n\n },\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\n\nconst setOnTimeExpiredApi = (ajax, getState) => ajax({\n url: constants.getVerifyKbaTimeoutAPI,\n method: 'POST',\n responseType: 'json',\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\n\nconst getVerifyKbaInfo = (ajax, getState) =>\n getFeedDataApi(ajax, getState)\n .pipe(map(response => handleResponse(response.response, getState)),\n catchError(err => [getVerifyKbaOptionsFail(getErrorMessage(err))]));\n\nconst setOnTimeExpired = (ajax, getState) =>\n setOnTimeExpiredApi(ajax, getState)\n .pipe(map(response => handleTimeExpiredResponse(response.response, getState)),\n catchError(err => [getVerifyKbaOptionsFail(getErrorMessage(err))]));\n\n\nconst setOnCancel = (ajax, getState) =>\n setOnTimeExpiredApi(ajax, getState)\n .pipe(map(response => handleCancelResponse(response.response, getState)),\n catchError(err => [getVerifyKbaOptionsFail(getErrorMessage(err))]));\n\n\nconst handleCancelResponse = (response, getState) => {\n return setKbaValueSuccessSent({\n sendCancelRedirect: true\n });\n\n}\n\nconst showDisclaimerModal = (getState) =>\n showDisclaimerModalHandler(getState)\n .pipe(map(setKbaValueSuccessSent),\n catchError(err => [getVerifyKbaOptionsFail(getErrorMessage(err))]));\n\n\n\nconst showDisclaimerModalHandler = (data, getState) => {\n let verifyKbaObj = Object.assign({}, getState.verifyKba.verifyKbaObj);\n verifyKbaObj.showDisclaimer = true;\n return of({\n verifyKbaObj\n });\n}\n\nconst getDisclaimerInfo = (getState) =>\n getDisclaimerInfoSent(getState)\n .pipe(map(response => setKbaValueSuccessSent(response)));\n\n\nconst getDisclaimerInfoSent = (getState) => {\n let verifyPrc = Object.assign({}, getState.verifyPrc);\n let redirectPrc = verifyPrc.verifyPrcObj.showDiffMethodBtn;\n let disableFields = verifyPrc.verifyPrcObj.disableFields;\n let isPrc = verifyPrc.verifyPrcObj.showDiv;\n let fromPrc = false;\n const isMobile = getState.registration.mobileFlow;\n let gaCategory = \"WEB_REGISTRATION_VERIFY_KBA\";\n let pagePath = '/ssr/flowType/verifyKba';\n let pageView = pagePath + \"/web\";\n\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REGISTRATION_VERIFY_KBA\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROSWER_REGISTRATION_VERIFY_KBA\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n // progress bar start\n let stage = progressBarConstants.Identification;\n if (getState.contactInfo.contactInfoOptions.emailItems != null) stage = progressBarConstants.Contact_Info;\n let progressBarData = WindowUtil.getProgressBarData(stage, getState);\n // progress bar end\n \n if (redirectPrc != undefined && redirectPrc && isPrc != undefined && isPrc) {\n for (var i = 0; i < disableFields.length; i++) {\n if (disableFields[i] == false) fromPrc = true;\n }\n\n }\n return of({\n fromPrc,\n gaCategory,\n isMobile,\n progressBarData\n });\n}\n\n\nconst handleResponse = (response, getState) => {\n let verifyKbaObj = Object.assign({}, getState.verifyKba.verifyKbaObj);\n if (response.code == constants.TYPE_QUESTIONS) {\n verifyKbaObj = response;\n verifyKbaObj.showDisclaimer = false;\n verifyKbaObj.isBlocked = false;\n verifyKbaObj.showDiv = true;\n // progress bar start\n let stage = progressBarConstants.Identification;\n if (getState.contactInfo.contactInfoOptions.emailItems != null) stage = progressBarConstants.Contact_Info;\n let progressBarData = WindowUtil.getProgressBarData(stage, getState);\n // progress bar end\n return getVerifyKbaInfoOptionsSuccess({\n verifyKbaObj, progressBarData\n });\n }\n else {\n verifyKbaObj.showModalError = true;\n verifyKbaObj.showModalTitle = response.title;\n verifyKbaObj.showModalMessage = response.message;\n verifyKbaObj.isBlocked = true;\n verifyKbaObj.showDiv = false;\n verifyKbaObj.showDisclaimer = false;\n return setKbaValueSuccessSent({\n verifyKbaObj\n });\n }\n\n\n}\n\n\nconst handleTimeExpiredResponse = (response, getState) => {\n let verifyKbaObj = Object.assign({}, getState.verifyKba.verifyKbaObj);\n if (response.code == constants.TYPE_EXPIRED) {\n verifyKbaObj.showModalError = true;\n verifyKbaObj.showModalTitle = response.title;\n verifyKbaObj.showModalMessage = response.message;\n return setKbaValueSuccessSent({\n verifyKbaObj\n });\n }\n else return setKbaValueSuccessSent({\n viewId: response.viewId,\n sendRedirect: true\n });\n\n}\n\nconst setAnswerSelected = (ajax, index, getState) => {\n let verifyKbaObj = Object.assign({}, getState.verifyKba.verifyKbaObj);\n var req = {};\n req.questionID = verifyKbaObj.questionID;\n req.answerID = verifyKbaObj.answers[index].answerID;\n return setAnswerSelectedApi(ajax, req, getState)\n .pipe(map(response => handleResponseAnswerSelected(response.response, index, getState)),\n catchError(err => [getVerifyKbaOptionsFail(getErrorMessage(err))]));\n}\nconst handleResponseAnswerSelected = (response, index, getState) => {\n let verifyKbaObj = Object.assign({}, getState.verifyKba.verifyKbaObj);\n if (response.code == constants.TYPE_QUESTIONS) {\n if(document.getElementById(\"promptId\")!==undefined){\n document.getElementById(\"promptId\").focus();\n }\n return handleResponse(response, getState);\n }\n \n\n else if (response.code == constants.TYPE_PASSED) {\n return setKbaValueSuccessSent({\n viewId: response.viewId,\n sendRedirect: true\n });\n }\n else {\n verifyKbaObj.showModalError = true;\n verifyKbaObj.showModalTitle = response.title;\n verifyKbaObj.showModalMessage = response.message;\n verifyKbaObj.isBlocked = true;\n return setKbaValueSuccessSent({\n verifyKbaObj\n });\n }\n}\n\nexport const getVerifyKbaInfoEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(VERIFY_KBA_INFO_OPTIONS),\n switchMap(action => sendingAsyncRequest(getVerifyKbaInfo(ajax, state.value))));\n\nexport const setOnTimeExpiredEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(VERIFY_KBA_TIME_EXPIRED),\n switchMap(action => sendingAsyncRequest(setOnTimeExpired(ajax, state.value))));\n\nexport const cancelKbaEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(CANCEL_KBA),\n switchMap(action => sendingAsyncRequest(setOnCancel(ajax, state.value))));\n\n\nconst redirectToLoginPage = getState => {\n getState.verifyKba.sendCancelRedirect = false;\n const isMobile = getState.registration.mobileFlow;\n const url = getState.registration.returnUrl;\n if (isMobile) {\n closeMobileContainer(); //this is part of index.html\n return true;\n } else {\n return window.open(unescape(WindowUtil.validateRtnUrl(decodeURIComponent(url))), '_self');\n }\n}\n\nexport const setAnswerSelectedEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(VERIFY_KBA_SET_ANSWER_SELECTED),\n switchMap(action => sendingAsyncRequest(setAnswerSelected(ajax, action.payload, state.value))));\n\nexport const cancelAndCheckYourEntriesEpic = (action$, state) => action$.pipe(\n ofType(CANCEL_KBA_AND_CHECK_YOUR_ENTRIES),\n switchMap(action => sendingAsyncRequest(redirectToLoginPage(state.value))),\n);\n\nexport const getDisclaimerInfoEpic = (action$, state) => action$.pipe(\n ofType(KBA_DISCLAIMER_INFO),\n switchMap(action => sendingAsyncRequest(getDisclaimerInfo(state.value))));\n\nexport const getVerfiyKbaInfoOptionsFailureEpic = action$ => action$.pipe(\n ofType(VERIFY_KBA_INFO_OPTIONS_FAIL),\n switchMap(action$ => of(push('/error'))));\n\nexport const setRedirectSentEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_KBA_REDIRECT),\n switchMap(action$ => {\n ReactGA.sendevent(state.value.verifyKba.gaCategory, 'VERIFY_KBA', 'SUCCESS');\n return of(push(state.value.verifyKba.viewId))\n }));\n\nexport const setPrcRedirectSentEpic = action$ => action$.pipe(\n ofType(VERIFY_KBA_PRC_REDIRECT),\n switchMap(action$ => of(push('/verifyPrc'))));\n\n","import { createAction } from 'redux-actions';\nimport { push } from 'connected-react-router';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport {\n map, switchMap, catchError, concatMap,\n} from 'rxjs/operators';\nimport { ajax } from 'rxjs/ajax';\nimport { throwError, of } from 'rxjs';\nimport { ofType } from 'redux-observable';\nimport { getErrorMessage, sendingAsyncRequest } from '../../../helpers/epics';\nimport { constants } from '../verify-401k-constants';\nimport { types } from '../verify-401k-actions';\nimport { ReactGA, PendoUtil } from '../../../../util';\nimport Crypto from 'crypto-js';\nimport { constants as registrationConstants } from '../../registration/registration-constants';\nimport { WindowUtil } from '../../../../util';\nimport { constants as progressBarConstants } from '../../../../util/window/progress-bar-constants';\n\nconst {\n GET_401k_SIV_OPTIONS,\n GET_401k_SIV_OPTIONS_SUCCESS,\n GET_401k_SIV_OPTIONS_FAIL,\n SET_401k_SIV_FIELD,\n SET_401k_SIV_FIELD_SUCCESS,\n SET_401k_SIV_FIELD_FAIL,\n VERIFY_401k_SIV_OPTIONS,\n VERIFY_401k_ORG_RESPONSE,\n VERIFY_401k_MULTIORG_RESPONSE,\n CANCEL_AND_CHECK_401k_ENTRIES,\n SET_401k_ORG_SELECTED,\n SET_401k_ORG_SELECTED_SUCCESS,\n SET_401k_ORG_SELECTED_FAIL,\n LAUNCH_401k_IDENTITY,\n LAUNCH_401k_IDENTITY_SUCCESS,\n LAUNCH_401k_IDENTITY_FAIL,\n VERIFY_401k_SIV_OPTIONS_FAIL\n} = types;\n\nconst get401kSivOptionsSuccess = createAction(GET_401k_SIV_OPTIONS_SUCCESS);\nconst get401kSivOptionsFail = createAction(GET_401k_SIV_OPTIONS_FAIL);\nconst setSivFieldSuccessSent = createAction(SET_401k_SIV_FIELD_SUCCESS);\nconst setSivFieldFailSent = createAction(SET_401k_SIV_FIELD_FAIL);\nconst verify401kOrgResponse = createAction(VERIFY_401k_ORG_RESPONSE);\nconst verify401kMultiOrgResponse = createAction(VERIFY_401k_MULTIORG_RESPONSE);\nconst cancelAndCheckYourEntriesSent = createAction(CANCEL_AND_CHECK_401k_ENTRIES);\nconst setOrgSelectedSuccess = createAction(SET_401k_ORG_SELECTED_SUCCESS);\nconst setOrgSelectedFail = createAction(SET_401k_ORG_SELECTED_FAIL);\nconst launch401kIdentitySuccess = createAction(LAUNCH_401k_IDENTITY_SUCCESS);\nconst launch401kIdentityFail = createAction(LAUNCH_401k_IDENTITY_FAIL);\nconst verify401koptionFail = createAction(VERIFY_401k_SIV_OPTIONS_FAIL);\nconst isBlank = str => (str || '').trim().length === 0;\n\nconst getSivOptions = (getState) =>\n sivOptionsApi(getState)\n .pipe(map(response => handleSivResponse(response, getState)),\n catchError(err => [handleSivFailResponse(getState, getErrorMessage(err))]));\n\nconst sivOptionsApi = (getState) => {\n if (getState.registration.sivOptions != '' && getState.registration.sivOptions != undefined) {\n getState.verify401k.sivOptions = getState.registration.sivOptions;\n getState.verify401k.sitekey = getState.registration.sitekey;\n getState.verify401k.isRecaptchaOn = getState.registration.isRecaptchaOn;\n getState.verify401k.locale = getState.registration.locale;\n if (getState.registration.orgIdForDeviceAssessment != '') {\n WindowUtil.deviceAssessment(getState.registration.orgIdForDeviceAssessment, getState.registration.transactionId);\n }\n if (getState.registration.isRecaptchaOn != undefined && getState.registration.isRecaptchaOn == true) {\n WindowUtil.recaptchaCall();\n }\n return of({\n sivOptions: getState.registration.sivOptions\n });\n }\n return of({\n sivOptions: ''\n });\n}\n\nconst handleSivResponse = (response, getState) => {\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = \"WEB_REGISTRATION_VERIFY_401K\";\n let pagePath1 = '/ssr/401K/searchAssociate';\n let pagePath2 = '/ssr/flowType/401K';\n let pageView1 = pagePath1 + \"/web\";\n let pageView2 = pagePath2 + \"/web\";\n if (isMobile) { pageView1 = pagePath1 + \"/mobile\"; pageView2 = pagePath2 + \"/mobile\"; gaCategory = \"MOBILE_REGISTRATION_VERIFY_401K\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView1 = pagePath1 + \"/mobilebrowser\"; pageView2 = pagePath2 + \"/mobilebrowser\"; gaCategory = \"MOBILEBROSWER_REGISTRATION_VERIFY_401K\"; }\n ReactGA.pageview(pageView1);\n ReactGA.pageview(pageView2);\n\n // progress bar start\n let progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Identification, getState);\n // progress bar end\n\n return get401kSivOptionsSuccess({\n sivOptions: response.sivOptions,\n isMobile,\n isMobileBrowser,\n gaCategory,\n title: getState.intl.messages['identifyYourself.title'],\n userWithMultiOrg: false,\n progressBarData\n });\n}\n\nconst handleSivFailResponse = (getState, response) => {\n console.log('Siv fail error response ============================> ' + JSON.stringify(response));\n return get401kSivOptionsFail({\n showErrorModal: false,\n errorTitle: getState.intl.messages['Txt_VGeneralErrorWindowTitle']\n });\n}\n{/***********************************************Validate and set siv field values****************************************************/ }\n\nconst setSivField = (payload, getState) =>\n validateAndSetSivField(payload, getState)\n .pipe(map(setSivFieldSuccessSent),\n catchError(err => [handleSetSivFieldFailResponse(payload, getErrorMessage(err))]));\n\nconst validateAndSetSivField = (payload, getState) => {\n const identifyYourself = getState.verify401k;\n\n switch (payload.fieldkey) {\n case constants.sivOptionIds.siv_firstName: {\n const firstNameRegEx = new RegExp(identifyYourself.sivOptions.availableSivOptions.siv_firstname.regExp);\n\n if (isBlank(payload.fieldValue) || firstNameRegEx.test(payload.fieldValue)) {\n return of({\n firstName: payload.fieldValue,\n firstNameValid: true,\n });\n }\n return throwError(new Error(identifyYourself.sivOptions.availableSivOptions.siv_firstname.invalidMessage));\n }\n case constants.sivOptionIds.siv_lastName: {\n const lastNameRegEx = new RegExp(identifyYourself.sivOptions.availableSivOptions.siv_lastname.regExp);\n\n if (isBlank(payload.fieldValue) || lastNameRegEx.test(payload.fieldValue)) {\n return of({\n lastName: payload.fieldValue,\n lastNameValid: true,\n });\n }\n return throwError(new Error(identifyYourself.sivOptions.availableSivOptions.siv_lastname.invalidMessage));\n }\n case constants.sivOptionIds.siv_ssn: {\n const ssnRegEx = new RegExp(identifyYourself.sivOptions.availableSivOptions.siv_ssn.regExp);\n\n if (isBlank(payload.fieldValue) || ssnRegEx.test(payload.fieldValue)) {\n var replacedSSN = payload.fieldValue.replace(/-/g, \"\");\n return of({\n ssn: replacedSSN,\n ssnValid: true,\n });\n }\n return throwError(new Error(identifyYourself.sivOptions.availableSivOptions.siv_ssn.invalidMessage));\n }\n\n case constants.sivOptionIds.siv_dob_full_month: {\n return of({\n fullMonth: payload.fieldValue,\n fullDay: ''\n });\n }\n case constants.sivOptionIds.siv_dob_full_day: {\n return of({ fullDay: payload.fieldValue });\n }\n case constants.sivOptionIds.siv_dob_full_year: {\n return of({ fullYear: payload.fieldValue });\n }\n\n default: {\n return throwError(new Error(constants.TROUBLE_SHOOT_MSG));\n }\n }\n};\n\nconst handleSetSivFieldFailResponse = (payload, errorMessage) => {\n switch (payload.fieldkey) {\n case constants.sivOptionIds.siv_firstName:\n return setSivFieldFailSent({\n errorMessageFN: errorMessage,\n firstName: payload.fieldValue,\n firstNameValid: false,\n sivOptionsValidated: false,\n });\n case constants.sivOptionIds.siv_lastName:\n return setSivFieldFailSent({\n errorMessageLN: errorMessage,\n lastName: payload.fieldValue,\n lastNameValid: false,\n sivOptionsValidated: false,\n });\n case constants.sivOptionIds.siv_ssn:\n return setSivFieldFailSent({\n errorMessageSsn: errorMessage,\n ssn: payload.fieldValue,\n ssnValid: false,\n sivOptionsValidated: false,\n });\n default: {\n return setSivFieldFailSent({\n errorMessage,\n });\n }\n }\n};\n\n{/**************************************************Verify 401k options****************************************************/ }\n\nconst submitSivOptions = (ajax, getState) =>\n verifySivOptions(ajax, getState)\n .pipe(map(response => handleSubmitSivResponse(response.response, getState)),\n catchError(err => handleSubmitSivResponseFail(getState, getErrorMessage(err))));\n\nconst verifySivOptions = (ajax, getState) => {\n const identifyYourself = getState.verify401k;\n const sivOptions = identifyYourself.sivOptions;\n const gaCategory = identifyYourself.gaCategory;\n var uiOptionsMap = {};\n\n if (sivOptions.availableSivOptions.siv_firstname && identifyYourself.firstName != '') {\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'FIRST_NAME');\n uiOptionsMap.siv_firstname = identifyYourself.firstName;\n sivOptions.availableSivOptions.siv_firstname.idenDataValue = identifyYourself.firstName;\n }\n if (sivOptions.availableSivOptions.siv_lastname && identifyYourself.lastName != '') {\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'LAST_NAME');\n uiOptionsMap.siv_lastname = identifyYourself.lastName;\n sivOptions.availableSivOptions.siv_lastname.idenDataValue = identifyYourself.lastName;\n }\n\n if (sivOptions.availableSivOptions.siv_ssn && identifyYourself.ssn != '') {\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'SSN');\n var encryptedSsn = Crypto.AES.encrypt(identifyYourself.ssn, registrationConstants.registrationEncryption);\n uiOptionsMap.siv_ssn = encryptedSsn + '';\n sivOptions.availableSivOptions.siv_ssn.idenDataValue = identifyYourself.ssn;\n }\n\n if (sivOptions.availableSivOptions.siv_fulldateofbirth && identifyYourself.fullDay != '') {\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'DOB');\n var inputmonthId = sivOptions.sivOptionsCalenderItems.fullMonthItems.indexOf(identifyYourself.fullMonth) + 1;\n inputmonthId = ('0' + inputmonthId).slice(-2);\n var fulldob = '' + inputmonthId + identifyYourself.fullDay + identifyYourself.fullYear;\n uiOptionsMap.siv_fulldateofbirth = fulldob;\n sivOptions.availableSivOptions.siv_fulldateofbirth.idenDataValue = fulldob;\n }\n\n return ajax({\n url: constants.verify401kDetailsEndPoint,\n body: {\n 'sivPIC': sivOptions.sivPIC,\n 'uiSivOptionOptions': uiOptionsMap,\n 'recaptchaResponse': identifyYourself.recaptchaResponse\n },\n method: 'POST',\n responseType: 'json',\n headers: {\n 'Content-Type': 'application/json',\n \"cache-control\": \"no-cache\",\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n });\n};\n\nconst handleSubmitSivResponse = (response, getState) => {\n console.log('handleSubmitSivResponse:' + response);\n const identifyYourself = getState.verify401k;\n const gaCategory = identifyYourself.gaCategory;\n\n if (response.code != null && response.code == constants.SUCCESS) {\n if (response.userWithMultiOrg === true && response.orgChoices != null) {\n var multiOrgs = [];\n var multiOrgIndex = [];\n let k = 0;\n for (var key in response.orgChoices) {\n multiOrgs[k] = response.orgChoices[key];\n multiOrgIndex[k] = key;\n k++;\n }\n let multiOrgtitle = getState.intl.messages['lbl_multiOrgPageTitle'];\n let replacedTitle = multiOrgtitle.replace(\"{0}\", identifyYourself.firstName);\n return verify401kMultiOrgResponse({\n userWithMultiOrg: response.userWithMultiOrg,\n multiOrgs: multiOrgs,\n multiOrgPageInfo: response.multiOrgMsg,\n title: replacedTitle,\n multiOrgIndex: multiOrgIndex,\n launch401kIdentityCall: false,\n errorTitle: ''\n });\n }\n else if (response.userWithMultiOrg === false && response.orgIndex != '') {\n PendoUtil.pendoVisitorIdUpdate(response.associateId)\n console.log('==handleSubmitSivResponse else if block:' + response.orgIndex);\n return verify401kOrgResponse({\n launch401kIdentityCall: true\n });\n }\n }\n\n if (response.code != null) {\n if (response.code == constants.ALREADY_REGISTERED || response.code == constants.ALREADY_REGISTERED_MULTI || response.code == constants.ALREADY_REGISTERED_SUSPENDED) {\n ReactGA.sendevent(gaCategory, 'VERIFY_401K', response.code);\n console.log('TRUE;response.code=' + response.code);\n if(response.code == constants.ALREADY_REGISTERED) {\n return cancelAndCheckYourEntriesSent({\n errorCode: response.code\n });\n }\n return verify401koptionFail({\n showErrorModal: true,\n errorMsgTitle: response.title,\n welcomeMsg: response.message,\n errorCode: response.code,\n errorTitle: '',\n ssn: ''\n });\n }\n if (response.code == constants.EXCEEDED_ATTEMPTS || response.code == constants.FUNCTION_LOCKED || response.code == constants.KBA_LOCKED ||\n response.code == constants.EMAIL_NOT_EXISTS || response.code == constants.RECAPTCHA_FAILED || response.code == constants.NO_SIV_DEFINED) {\n\n ReactGA.sendevent(gaCategory, 'VERIFY_401K', response.code);\n console.log('TRUE;response.code=' + response.code);\n return verify401koptionFail({\n showErrorModal: true,\n errorMsgTitle: response.title,\n welcomeMsg: response.message,\n errorTitle: '',\n ssn: '',\n recaptchaSuccess: true\n });\n }\n }\n console.log('response.message=' + response.message);\n return verify401koptionFail({\n showErrorModal: false,\n errorTitle: response.message,\n ssn: '',\n recaptchaSuccess: true\n });\n};\n\nconst handleSubmitSivResponseFail = (getState, response) => {\n return verify401koptionFail({\n showErrorModal: true,\n errorMsgTitle: getState.intl.messages['Txt_VGeneralErrorWindowTitle'],\n welcomeMsg: getState.intl.messages['Err_SystemErrorinRequest'],\n ssn: '',\n errorTitle: '',\n });\n};\n\n{/**************************************************Launch 401k Identity****************************************************/ }\nconst launch401kIdentity = (ajax, getState) =>\n launch401kIdentityApi(ajax, getState)\n .pipe(map(response => handlelaunch401kIdentityResponse(response.response, getState)),\n catchError(err => handlelaunch401kFailResponse(getState,getErrorMessage(err))));\n\nconst launch401kIdentityApi = (ajax, getState) => {\n return ajax({\n url: constants.launch401kDetailsEndPoint,\n method: 'POST',\n responseType: 'json',\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n });\n}\n\nconst handlelaunch401kIdentityResponse = (response, getState) => {\n const identifyYourself = getState.verify401k;\n const gaCategory = identifyYourself.gaCategory;\n console.log(\"handlelaunch401kIdentityResponse\" + response);\n if (response.code != null && (response.code == constants.ALREADY_REGISTERED || response.code == constants.ALREADY_REGISTERED_MULTI)) {\n ReactGA.sendevent(gaCategory, 'VERIFY_401K', response.code);\n console.log('TRUE;response.code=' + response.code);\n if(response.code == constants.ALREADY_REGISTERED) {\n return cancelAndCheckYourEntriesSent({\n errorCode: response.code\n });\n }\n return launch401kIdentityFail({\n showErrorModal: true,\n errorMsgTitle: response.title,\n welcomeMsg: response.message,\n errorCode: response.code,\n errorTitle: '',\n ssn: ''\n });\n }\n\n if (response.viewId.indexOf(constants.ERROR) == -1) {\n ReactGA.sendevent(gaCategory, 'VERIFY_401K', 'SUCCESS');\n return launch401kIdentitySuccess({\n viewId: response.viewId\n });\n }\n if (response.viewId == constants.ERROR && response.title != null && response.title != undefined) {\n return launch401kIdentityFail({\n showErrorModal: true,\n errorMsgTitle: response.title,\n welcomeMsg: response.message,\n errorTitle: '',\n });\n }\n return launch401kIdentityFail({\n showErrorModal: false,\n errorTitle: response.message\n });\n}\n\nconst handlelaunch401kFailResponse = (getState,errorMessage) => {\n console.log(\"handlelaunch401kFailResponse\" + errorMessage);\n return launch401kIdentityFail({\n showErrorModal: true,\n errorMsgTitle: getState.intl.messages['Txt_VGeneralErrorWindowTitle'],\n welcomeMsg: getState.intl.messages['Err_SystemErrorinRequest'],\n ssn: '',\n errorTitle: '',\n });\n}\n\n\n{/**************************************************multiOrgs page-Org selection****************************************************/ }\n\nconst setOrgSelected = (ajax, payload, getState) => {\n var selectedOrg = getState.verify401k.multiOrgs[payload];\n var selectedOrgIndex = getState.verify401k.multiOrgIndex[payload];\n return setOrgSelectedApi(ajax, selectedOrgIndex, getState)\n .pipe(map(response => handleResponseOrgSelected(response.response, selectedOrg, getState)),\n catchError(err => [handleResponseOrgSelectedFailure(getErrorMessage(err),getState)]));\n}\n\nconst setOrgSelectedApi = (ajax, index, getState) => {\n console.log(\"selected org Index\", index);\n return ajax({\n url: constants.confirm401kDetailsEndPoint,\n method: 'POST',\n responseType: 'json',\n body: index,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n });\n}\n\nconst handleResponseOrgSelected = (response,selectedOrg, getState) => {\n console.log(\"handleResponseOrgSelected\", response);\n \n const identifyYourself = getState.verify401k;\n const gaCategory = identifyYourself.gaCategory;\n if (response.code != null && response.code == constants.ALREADY_REGISTERED) {\n ReactGA.sendevent(gaCategory, 'VERIFY_401K', response.code);\n console.log('TRUE;response.code=' + response.code);\n if(response.code == constants.ALREADY_REGISTERED) {\n return cancelAndCheckYourEntriesSent({\n errorCode: response.code\n });\n }\n return setOrgSelectedFail({\n showErrorModal: true,\n errorMsgTitle: response.title,\n welcomeMsg: response.message,\n errorCode: response.code,\n errorTitle: '',\n ssn: ''\n });\n }\n if (response.viewId.indexOf(constants.ERROR) == -1 || response.code == constants.SUCCESS) {\n PendoUtil.pendoIdentify(response.orgCd,selectedOrg,getState.registration.transactionId)\n PendoUtil.pendoVisitorIdUpdate(response.associateId)\n return setOrgSelectedSuccess({\n launch401kIdentityCall: true\n });\n }\n if (response.viewId == constants.ERROR && response.title != null && response.title != undefined) {\n return setOrgSelectedFail({\n showErrorModal: true,\n errorMsgTitle: response.title,\n welcomeMsg: response.message,\n errorTitle: '',\n });\n }\n return setOrgSelectedFail({\n showErrorModal: false,\n errorTitle: response.message\n });\n}\n\nconst handleResponseOrgSelectedFailure = (response, getState) => {\n return setOrgSelectedFail({\n showErrorModal: true,\n errorMsgTitle: getState.intl.messages['Txt_VGeneralErrorWindowTitle'],\n welcomeMsg: getState.intl.messages['Err_SystemErrorinRequest'],\n errorTitle: '',\n });\n}\n{/**************************************************On cancel redirection****************************************************/ }\nconst redirectToLoginPage = getState => {\n const isMobile = getState.registration.mobileFlow;\n const url = getState.registration.returnUrl;\n const code = getState.verify401k.errorCode;\n const organizationId = getState.registration.organizationId;\n if (code != null && code === constants.ALREADY_REGISTERED) {\n return sendOkForAlreadyRegisteredUser(getState).pipe(map(response => handleAlreadyRegisteredResponse(response)),\n catchError(err => [(getErrorMessage(err))]));\n }\n if (isMobile && code != constants.ALREADY_REGISTERED) {\n console.log('Entered Mobile flow');\n closeMobileContainer(); //this is part of index.html\n return true;\n } else {\n return window.open(unescape(WindowUtil.validateRtnUrl(decodeURIComponent(url), organizationId)), '_self');\n }\n}\n\nconst handleAlreadyRegisteredResponse = (response) => {\n var wnd = window.open(\"about:blank\", \"_self\");\n wnd.document.write(response.response);\n wnd.document.close();\n}\n\nconst sendOkForAlreadyRegisteredUser = (getState) => ajax({\n url: constants.redirectToForgotFlowEndPoint,\n method: 'GET',\n headers: {\n 'Content-Type': 'text/plain',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId,\n },\n responseType: 'text/plain'\n});\n\n\n{/**************************************************Epics declaration****************************************************/ }\nexport const getSivOptionsEpic = (action$, state) => action$.pipe(\n ofType(GET_401k_SIV_OPTIONS),\n switchMap(action => sendingAsyncRequest(getSivOptions(state.value))));\n\nexport const setSivFieldEpic = (action$, state) => action$.pipe(\n ofType(SET_401k_SIV_FIELD),\n switchMap(action => sendingAsyncRequest(setSivField(action.payload, state.value))));\n\nexport const verifySivOptionsEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(VERIFY_401k_SIV_OPTIONS),\n switchMap(action => sendingAsyncRequest(submitSivOptions(ajax, state.value))));\n\nexport const getSivOptionsFailureEpic = action$ => action$.pipe(\n ofType(GET_401k_SIV_OPTIONS_FAIL),\n switchMap(action$ => of(push('/error'))));\n\nexport const verifySivOptionsFailEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_401k_SIV_OPTIONS_FAIL),\n switchMap(action => of()));\n\nexport const cancelAndCheckYourEntriesEpic = (action$, state) => action$.pipe(\n ofType(CANCEL_AND_CHECK_401k_ENTRIES),\n switchMap(action => sendingAsyncRequest(redirectToLoginPage(state.value))),\n);\n\nexport const setOrgSelectedEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(SET_401k_ORG_SELECTED),\n switchMap(action => sendingAsyncRequest(setOrgSelected(ajax, action.payload, state.value))));\n\nexport const launch401kIdentityEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(VERIFY_401k_ORG_RESPONSE),\n switchMap(action => sendingAsyncRequest(launch401kIdentity(ajax, state.value))));\n\nexport const setOrgSelectedFailureEpic = (action$, state) => action$.pipe(\n ofType(SET_401k_ORG_SELECTED_FAIL), switchMap(action => of()));\n\nexport const launch401kIdentitySuccessEpic = (action$, state) => action$.pipe(\n ofType(LAUNCH_401k_IDENTITY_SUCCESS),\n switchMap(action$ => of(push(state.value.verify401k.viewId))));\n\nexport const launch401kIdentityFailEpic = (action$, state) => action$.pipe(\n ofType(LAUNCH_401k_IDENTITY_FAIL), switchMap(action => of()));\n\nexport const launch401kIdentityFromMultiOrgEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(SET_401k_ORG_SELECTED_SUCCESS),\n switchMap(action => sendingAsyncRequest(launch401kIdentity(ajax, state.value))));","import { createAction } from 'redux-actions';\nimport { push } from 'connected-react-router';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport {\n map, switchMap, catchError, concatMap,\n} from 'rxjs/operators';\nimport { ajax } from 'rxjs/ajax';\nimport { throwError, of } from 'rxjs';\nimport { ofType } from 'redux-observable';\nimport { getErrorMessage, sendingAsyncRequest } from '../../../helpers/epics';\nimport { constants } from '../verify-bev-constants';\nimport { types } from '../verify-bev-actions';\nimport { ReactGA } from '../../../../util';\nimport Crypto from 'crypto-js';\nimport { constants as registrationConstants } from '../../registration/registration-constants';\nimport { WindowUtil, PendoUtil } from '../../../../util';\nimport { constants as progressBarConstants } from '../../../../util/window/progress-bar-constants';\n\nconst {\n VERIFY_BEV_INFO_OPTIONS,\n VERIFY_BEV_INFO_OPTIONS_SUCCESS,\n VERIFY_BEV_INFO_OPTIONS_FAIL,\n VERIFY_BEV_DROPDOWN_SELECT,\n VERIFY_BEV_UPDATE_DATA,\n VERIFY_BEV_GET_DROPDOWN_VALUES,\n VERIFY_BEV_GET_W2_DROPDOWN_VALUES,\n VERIFY_BEV_SET_IPAY_RADIO_BTN,\n VERIFY_BEV_SUBMIT_BTN,\n CANCEL_BEV_AND_CHECK_YOUR_ENTRIES,\n ON_FINAL_VERIFY_BEV_SUCCESS\n\n} = types;\n\nconst isBlank = str => (str || '').trim().length === 0;\n\nconst getVerifyBevInfoOptionsSuccess = createAction(VERIFY_BEV_INFO_OPTIONS_SUCCESS);\nconst getVerifyBevOptionsFail = createAction(VERIFY_BEV_INFO_OPTIONS_FAIL);\n\nconst getFeedDataApi = (ajax,transactionId) => {\n return ajax({\n url: constants.getBEVFeedData,\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': transactionId,\n }\n });\n}\n\nconst getBEVProductDetails = (ajax,transactionId, reqObj) => {\n \n return ajax({\n url: constants.chooseProduct,\n method: 'POST',\n responseType: 'json',\n body: reqObj,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': transactionId,\n }\n });\n}\n\nconst verifyBevSubmitBtnApi = (ajax,getState) => {\n let transactionId = getState.registration.transactionId;\n\n let verifyBevObj = getState.verifyBev.verifyBevObj;\n let initData = verifyBevObj.initData;\n let reqObj = {};\n \n reqObj.firstNameValueLabel = {};\n reqObj.lastNameValueLabel = {};\n reqObj.productMBean = {};\n\n let fn = Crypto.AES.encrypt(verifyBevObj.firstName, registrationConstants.registrationEncryption);\n let ln = Crypto.AES.encrypt(verifyBevObj.lastName, registrationConstants.registrationEncryption);\n\n reqObj.firstNameValueLabel.value = fn + '';\n reqObj.lastNameValueLabel.value = ln + '';\n reqObj.productMBean.selectedProduct = initData.productMBean.selectedProduct;\n reqObj.productMBean.iPayFormType = initData.productMBean.iPayFormType;\n reqObj.recaptchaResponse = getState.verifyBev.recaptchaResponse;\n const gaCategory = getState.verifyBev.gaCategory;\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'FIRST_NAME');\n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'LAST_NAME');\n\n let selectedName = getSelectedBean(reqObj.productMBean.selectedProduct, verifyBevObj.isIPayYes);\n\n if (selectedName != null) {\n reqObj[selectedName] = {};\n for (var propName in initData[selectedName]) {\n if (initData[selectedName][propName].value != undefined && !isBlank(initData[selectedName][propName].value)) {\n reqObj[selectedName][propName] = {};\n let value = initData[selectedName][propName].value;\n ReactGA.sendevent(gaCategory, 'SUBMITTED', propName);\n var encryptedValue = Crypto.AES.encrypt(value, registrationConstants.registrationEncryption);\n reqObj[selectedName][propName].value = encryptedValue + '';\n }\n }\n } else {\n console.log(\"selectedName name is null\");\n reqObj = initData;\n reqObj.firstNameValueLabel.value = verifyBevObj.firstName;\n reqObj.lastNameValueLabel.value = verifyBevObj.lastName;\n }\n return ajax({\n url: constants.verifyBEVUser,\n method: 'POST',\n responseType: 'json',\n body:reqObj,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': transactionId,\n }\n });\n}\n\n//const getFeedDataApi = (getState) => Observable.ajax.getJSON('/public/mocks/verifyBev.json');\n//const getBEVProductDetails = (getState) => Observable.ajax.getJSON('/public/mocks/verifyBevFreedom.json');\n//const getBEVProductDetails = (getState) => Observable.ajax.getJSON('/public/mocks/verifyBevEtime.json');\n//const getBEVProductDetails = (getState) => Observable.ajax.getJSON('/public/mocks/verifyBevHrNet.json');\n//const getBEVProductDetails = (getState) => Observable.ajax.getJSON('/public/mocks/verifyBevIpay.json');\n//const getBEVProductDetails = (getState) => Observable.ajax.getJSON('/public/mocks/verifyBevPCSNonPCS.json');\n//const getBEVProductDetails = (getState) => Observable.ajax.getJSON('/public/mocks/verifyBevW2.json');\n//const verifyBevSubmitBtnApi = (getState) => Observable.ajax.getJSON('/public/mocks/verifyBevAlert.json');\n\n\nconst verifyBevGetDropdownValues = (payload, getState) =>\n getVerifyBevDropdownHandler(payload, getState)\n .pipe(map(response => getVerifyBevInfoOptionsSuccess(response, getState)),\n catchError(err => [getVerifyBevOptionsFail(getErrorMessage(err))]));\n\nconst verifyBevSetIpayRadioBtn = (payload, getState) =>\n verifyBevSetIpayRadioBtnHandler(payload, getState)\n .pipe(map(response => getVerifyBevInfoOptionsSuccess(response, getState)),\n catchError(err => [getVerifyBevOptionsFail(getErrorMessage(err))]));\n\nconst verifyBevSubmitBtn = (ajax,getState) =>\n verifyBevSubmitBtnApi(ajax,getState)\n .pipe(map(response => getVerifyBevSubmitHandler(response.response, getState)),\n catchError(err => [getVerifyBevOptionsFail(getErrorMessage(err))]));\n\nconst verifyBevGetW2DropdownValues = (payload, getState) =>\n getVerifyBevW2DropdownHandler(payload, getState)\n .pipe(map(response => getVerifyBevInfoOptionsSuccess(response, getState)),\n catchError(err => [getVerifyBevOptionsFail(getErrorMessage(err))]));\n\nconst getVerifyBevDropdownHandler = (selectedName, getState) => {\n let verifyBevObj = Object.assign({}, getState.verifyBev.verifyBevObj);\n verifyBevObj.w2YearList = [];\n verifyBevObj.fullMonthItems = [];\n verifyBevObj.fullDayItems = [];\n verifyBevObj.initData[selectedName].fullYearId.options.map((value, key) => { verifyBevObj.w2YearList.push(value.label) });\n verifyBevObj.initData[selectedName].fullMonthId.options.map((value, key) => { verifyBevObj.fullMonthItems.push(value.label) });\n verifyBevObj.initData[selectedName].fullDayId.options.map((value, key) => { verifyBevObj.fullDayItems.push(value.label) });\n\n verifyBevObj.initData[selectedName].fullYearId.options = [];\n verifyBevObj.initData[selectedName].fullMonthId.options = [];\n verifyBevObj.initData[selectedName].fullDayId.options = [];\n\n return of({\n verifyBevObj\n });\n}\n\nconst getVerifyBevSubmitHandler = (response, getState) => {\n let verifyBevObj = Object.assign({}, getState.verifyBev.verifyBevObj);\n const gaCategory = getState.verifyBev.gaCategory;\n if (response.code == \"SUCCESS\") {\n return getVerifyBevInfoOptionsSuccess({\n viewId: response.viewId,\n sendRedirect: true\n });\n\n } else if (response.modelType != undefined && response.modelType != null) {\n verifyBevObj.showModalError = true;\n verifyBevObj.showModalTitle = response.title;\n verifyBevObj.alreadyRegistered = false;\n verifyBevObj.showModalMessage = response.message;\n if (response.code == constants.ALREADY_REGISTERED) {\n ReactGA.sendevent(gaCategory, 'VERIFY_BEV', 'ALREADY_REGISTERED');\n verifyBevObj.alreadyRegistered = true;\n }\n return getVerifyBevInfoOptionsSuccess({\n verifyBevObj\n });\n\n }\n else {\n let fieldName = null;\n verifyBevObj.showAlert = true;\n verifyBevObj.showAlertMessage = response.message;\n let selectedObj = verifyBevObj.serviceSelectedObj;\n verifyBevObj.errorFieldsBackend = [false, false, false, false, false, false, false, false, false, false];\n for (let key in response.errFieldsMap) {\n fieldName = key;\n }\n let index = getIndexErrorField(fieldName, selectedObj, verifyBevObj);\n if (index != null) {\n verifyBevObj.errorFieldsBackend[index] = true;\n }\n return getVerifyBevInfoOptionsSuccess({\n verifyBevObj\n });\n\n }\n\n\n}\n\nconst getIndexErrorField = (field, selectedName, verifyBevObj) => {\n if (selectedName == \"iPayPayStmtNonPCSMBean\") {\n if (field == \"co\") return 0;\n if (field == \"fileNumber\") return 1;\n if (field == \"adviceNumber\") return 2;\n if (field == \"ssn\") return 3;\n else return null;\n\n }\n if (selectedName == \"w2ServiceMBean\") {\n if (field == \"ssn\") return 3;\n }\n if (field == \"employeeNumber\" || field == \"employee\" || field == \"controlNumber\" || field == \"employeeId\") {\n return 0;\n }\n if (field == \"niNumber\" || field == \"ssn\" || field == \"companyCode\") {\n return 1;\n }\n if (field == \"postalCode\" || field == \"wages\" || field == \"zipCode\") {\n return 2;\n }\n else return null;\n\n}\n\n\nconst verifyBevSetIpayRadioBtnHandler = (radioValue, getState) => {\n let verifyBevObj = Object.assign({}, getState.verifyBev.verifyBevObj);\n let iPayPayStmtMBean = verifyBevObj.initData.iPayPayStmtMBean;\n let iPayPayStmtNonPCSMBean = verifyBevObj.initData.iPayPayStmtNonPCSMBean;\n verifyBevObj.radio = radioValue;\n verifyBevObj.isIPayYes = null;\n verifyBevObj.iPayShow = true;\n verifyBevObj.w2YearList = [];\n verifyBevObj.fullMonthItems = [];\n verifyBevObj.fullDayItems = [];\n\n\n if (radioValue == \"yes\") {\n verifyBevObj.initData.iPayPayStmtMBean.fullYearId.options.map((value, key) => { verifyBevObj.w2YearList.push(value.label) });\n verifyBevObj.initData.iPayPayStmtMBean.fullMonthId.options.map((value, key) => { verifyBevObj.fullMonthItems.push(value.label) });\n verifyBevObj.initData.iPayPayStmtMBean.fullDayId.options.map((value, key) => { verifyBevObj.fullDayItems.push(value.label) });\n verifyBevObj.initData.productMBean.iPayFormType = \"PCS\";\n verifyBevObj.isIPayYes = true;\n }\n else {\n verifyBevObj.initData.iPayPayStmtNonPCSMBean.fullYearId.options.map((value, key) => { verifyBevObj.w2YearList.push(value.label) });\n verifyBevObj.initData.iPayPayStmtNonPCSMBean.fullMonthId.options.map((value, key) => { verifyBevObj.fullMonthItems.push(value.label) });\n verifyBevObj.initData.iPayPayStmtNonPCSMBean.fullDayId.options.map((value, key) => { verifyBevObj.fullDayItems.push(value.label) });\n verifyBevObj.initData.productMBean.iPayFormType = \"NONPCS\";\n verifyBevObj.isIPayYes = false;\n }\n verifyBevObj.initData.iPayPayStmtMBean = iPayPayStmtMBean;\n return of({\n verifyBevObj\n });\n}\n\n\nconst getVerifyBevW2DropdownHandler = (selectedProduct, getState) => {\n let verifyBevObj = Object.assign({}, getState.verifyBev.verifyBevObj);\n verifyBevObj.w2YearList = [];\n verifyBevObj.initData[selectedProduct].w2Year.options.map((value, key) => { verifyBevObj.w2YearList.push(value.label) });\n\n return of({\n verifyBevObj\n });\n}\n\nconst handleUpdateData = (payload, getState) =>\n updateDataHandler(payload, getState)\n .pipe(map(response => getVerifyBevInfoOptionsSuccess(response)),\n catchError(err => [getVerifyBevOptionsFail(getErrorMessage(err))]));\n\n\nconst updateDataHandler = (payload, getState) => {\n let verifyBevObj = Object.assign({}, getState.verifyBev.verifyBevObj);\n if (payload.type == 1)\n verifyBevObj[payload.fieldName] = payload.fieldValue;\n else if (payload.type == 3) {\n if (payload.regEx != null && !isBlank(payload.regEx)) {\n const regEx = new RegExp(payload.regEx);\n if (isBlank(payload.fieldValue) || regEx.test(payload.fieldValue)) {\n verifyBevObj.errorFields[payload.index] = false;\n verifyBevObj.errorFieldsBackend[payload.index] = false;\n\n }\n else {\n verifyBevObj.errorFields[payload.index] = true;\n verifyBevObj.errorFieldsBackend[payload.index] = true;\n }\n\n }\n else {\n verifyBevObj.errorFields[payload.index] = false;\n verifyBevObj.errorFieldsBackend[payload.index] = false;\n }\n verifyBevObj.initData[\"iPayPayStmtNonPCSMBean\"][payload.fieldName].value = payload.fieldValue;\n verifyBevObj.initData[\"iPayPayStmtMBean\"][payload.fieldName].value = payload.fieldValue;\n\n\n }\n else {\n if (payload.regEx != null && !isBlank(payload.regEx)) {\n const regEx = new RegExp(payload.regEx);\n if (isBlank(payload.fieldValue) || regEx.test(payload.fieldValue)) {\n verifyBevObj.errorFields[payload.index] = false;\n verifyBevObj.errorFieldsBackend[payload.index] = false;\n\n }\n else {\n verifyBevObj.errorFields[payload.index] = true;\n verifyBevObj.errorFieldsBackend[payload.index] = true;\n }\n\n }\n else {\n verifyBevObj.errorFields[payload.index] = false;\n verifyBevObj.errorFieldsBackend[payload.index] = false;\n\n }\n verifyBevObj.initData[payload.parentName][payload.fieldName].value = payload.fieldValue;\n }\n if (payload.fieldName == \"fullMonthId\") {\n console.log('payload.fieldValue: ' + payload.fieldValue);\n const inputMonthId = verifyBevObj.fullMonthItems.indexOf(payload.fieldValue)+1;\n console.log('inputMonthId: ' + inputMonthId);\n if (inputMonthId == 1 || inputMonthId == 3 || inputMonthId == 5 || inputMonthId == 7 || inputMonthId == 8 || inputMonthId == 10 || inputMonthId == 12) {\n verifyBevObj.fullDayItems = constants.monthWith31days;\n }\n if (inputMonthId == 4 || inputMonthId == 6 || inputMonthId == 9 || inputMonthId == 11) {\n verifyBevObj.fullDayItems = constants.monthWith30days;\n }\n if (inputMonthId == 2) {\n verifyBevObj.fullDayItems = constants.monthWith29days;\n }\n verifyBevObj.initData[payload.parentName][\"fullDayId\"].value = '';\n }\n return of({\n verifyBevObj\n });\n}\n\nconst getVerifyBevInfo = (ajax,getState) =>\n getFeedDataApi(ajax,getState.registration.transactionId)\n .pipe(map(response => handleResponse(response.response, getState)),\n catchError(err => [getVerifyBevOptionsFail(getErrorMessage(err))]));\n\nconst getVerifyBevDropdownSelect = (ajax,payload, getState) => {\n let verifyBevObj = Object.assign({}, getState.verifyBev.verifyBevObj);\n let selectedProduct = getSelectedProduct(payload, verifyBevObj.initData.productMBean.bevProducts);\n console.log(\"selectedProduct\", selectedProduct);\n verifyBevObj.initData.productMBean.selectedProduct = selectedProduct;\n return getBEVProductDetails(ajax,getState.registration.transactionId, selectedProduct)\n .pipe(map(response => handleResponse(response.response, getState)),\n catchError(err => [getVerifyBevOptionsFail(getErrorMessage(err))]));\n}\n\nconst getDropDownValue = (value, list) => {\n\n for (var i = 0; i < list.length; i++) {\n if (list[i].productDisplayName == value) return list[i].value;\n }\n}\n\nconst getSelectedProduct = (value, list) => {\n console.log(\"getSelectedProduct method\", value);\n for (var i = 0; i < list.length; i++) {\n console.log(\"list[i].productDisplayName\", list[i].productDisplayName);\n if (list[i].productDisplayName == value) {\n console.log(\"list[i]\", list[i]);\n return list[i];\n }\n }\n}\n\n\nconst handleResponse = (data, getState) => {\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = \"WEB_REGISTRATION_VERIFY_BEV\";\n let pagePath = '/ssr/flowType/verifyBev';\n let pageView = pagePath + \"/web\";\n \n if(isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REGISTRATION_VERIFY_BEV\";}\n if(window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROSWER_REGISTRATION_VERIFY_BEV\";}\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n // progress bar start\n let progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Identification, getState);\n // progress bar end\n\n let verifyBevObj = Object.assign({}, getState.verifyBev.verifyBevObj);\n verifyBevObj.initData = data;\n verifyBevObj.errorFields = [false, false, false, false, false, false, false, false, false, false];\n verifyBevObj.errorFieldsBackend = [false, false, false, false, false, false, false, false, false, false];\n verifyBevObj.showDiv = true;\n verifyBevObj.serviceDropDownList = [];\n verifyBevObj.showAlert = false;\n\n if (!isBlank(data.firstNameValueLabel.value))\n verifyBevObj.firstName = data.firstNameValueLabel.value;\n\n if (!isBlank(data.lastNameValueLabel.value))\n verifyBevObj.lastName = data.lastNameValueLabel.value;\n\n if (data.productMBean.selectedProduct != null && data.productMBean.selectedProduct.productDisplayName != null) {\n verifyBevObj.serviceSelected = data.productMBean.selectedProduct.productDisplayName;\n verifyBevObj.serviceSelectedObj = getObjName(data.productMBean.selectedProduct.productCd);\n verifyBevObj.sitekey = getState.registration.sitekey;\n\n const isMobile = getState.registration.mobileFlow;\n console.log(\"bev----isMobile-\", isMobile);\n if (isMobile) {\n console.log(\"bev----isRecaptchaOn-\", getState.registration.isRecaptchaOn);\n verifyBevObj.isRecaptchaOn = getState.registration.isRecaptchaOn;\n } else {\n console.log(\"bev----isRecaptchaOn-\", getState.verifyUser.isRecaptchaOn);\n verifyBevObj.isRecaptchaOn = getState.verifyUser.isRecaptchaOn;\n }\n \n verifyBevObj.locale = getState.registration.locale;\n }\n verifyBevObj.initData.productMBean.bevProducts.map((value, key) => { verifyBevObj.serviceDropDownList.push(value.productDisplayName) });\n return getVerifyBevInfoOptionsSuccess({\n verifyBevObj,\n recaptchaResponse: null,\n showIpayDraggable: false,\n showDraggable: false,\n isMobileBrowser,\n isMobile,\n gaCategory,\n progressBarData\n });\n}\n\nconst getSelectedBean = (selectedProduct, isIPayYes) => {\n let productTag = selectedProduct.productTag;\n let productCd = selectedProduct.productCd;\n let docType = \"\";\n if (productCd.match(\"#\")) {\n docType = productCd.substring(productCd.indexOf(\"#\") + 1, productCd.length);\n }\n if (productTag.match(\"^eTime\")) {\n return \"etimeBev\"\n } else if (productTag.match(\"^iPay\")) {\n if (docType == \"payStmt\") {\n if (isIPayYes) {\n return \"iPayPayStmtMBean\";\n } else {\n return \"iPayPayStmtNonPCSMBean\";\n }\n } else if (docType == \"w2Stmt\") {\n return \"iPayW2ServiceMBean\";\n }\n } else if (productTag.match(\"^W2ONLY\")) {\n return \"w2ServiceMBean\";\n } else if (productTag.match(\"^Freedom\")) {\n if (productCd == \"Freedom\") {\n return \"freedomMBean\";\n }\n if (productCd == \"HRnet\") {\n return \"hrNetMBean\";\n }\n }\n}\n\nconst getObjName = (name) => {\n if (name == \"EeT\") return \"etimeBev\";\n if (name == \"Freedom\") return \"freedomMBean\";\n if (name == \"HRnet\") return \"hrNetMBean\";\n if (name == \"iPay#w2Stmt\") return \"iPayW2ServiceMBean\";\n if (name == \"iPay#payStmt\") return \"iPayPayStmtNonPCSMBean\";\n if (name == \"W2ONLY\") return \"w2ServiceMBean\";\n\n}\n\nconst sendOkForAlreadyRegisteredUser = (getState) => ajax({\n url: constants.redirectToForgotFlowEndPoint,\n method: 'GET',\n headers: {\n 'Content-Type': 'text/plain',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId,\n },\n responseType: 'text/plain'\n});\n\nconst handleAlreadyRegisteredResponse = (response) => {\n //console.log(response.response, '\\n already registered response::');\n //console.log('\\n already registered response::'+ response);\n\n var wnd = window.open(\"about:blank\", \"_self\");\n wnd.document.write(response.response);\n wnd.document.close();\n}\n\nconst redirectToLoginPage = getState => {\n const isMobile = getState.registration.mobileFlow;\n const verifyBevObj = Object.assign({}, getState.verifyBev.verifyBevObj);\n const url = getState.registration.returnUrl;\n const organizationId = getState.registration.organizationId;\n if (verifyBevObj.alreadyRegistered) {\n return sendOkForAlreadyRegisteredUser(getState).pipe(map(response => handleAlreadyRegisteredResponse(response)),\n catchError(err => [(getErrorMessage(err))]));\n } else if (isMobile) {\n closeMobileContainer(); //this is part of index.html\n return true;\n } else {\n return window.open(unescape(WindowUtil.validateRtnUrl(decodeURIComponent(url), organizationId)), '_self');\n }\n}\n\nexport const getVerifyBevInfoEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(VERIFY_BEV_INFO_OPTIONS),\n switchMap(action => sendingAsyncRequest(getVerifyBevInfo(ajax,state.value))));\n\nexport const getVerifyBevDropdownSelectEpic = (action$, state, {ajax}) => action$.pipe(\n ofType(VERIFY_BEV_DROPDOWN_SELECT),\n switchMap(action => sendingAsyncRequest(getVerifyBevDropdownSelect(ajax,action.payload, state.value))));\n\nexport const handleUpdateDataEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_BEV_UPDATE_DATA),\n switchMap(action => sendingAsyncRequest(handleUpdateData(action.payload, state.value))));\n\nexport const verifyBevGetDropdownValuesEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_BEV_GET_DROPDOWN_VALUES),\n switchMap(action => sendingAsyncRequest(verifyBevGetDropdownValues(action.payload, state.value))));\n\nexport const verifyBevGetW2DropdownValuesEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_BEV_GET_W2_DROPDOWN_VALUES),\n switchMap(action => sendingAsyncRequest(verifyBevGetW2DropdownValues(action.payload, state.value))));\n\nexport const verifyBevSetIpayRadioBtnEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_BEV_SET_IPAY_RADIO_BTN),\n switchMap(action => sendingAsyncRequest(verifyBevSetIpayRadioBtn(action.payload, state.value))));\n\nexport const verifyBevSubmitBtnEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(VERIFY_BEV_SUBMIT_BTN),\n switchMap(action => sendingAsyncRequest(verifyBevSubmitBtn(ajax,state.value))));\n\nexport const cancelAndCheckYourEntriesEpic = (action$, state) => action$.pipe(\n ofType(CANCEL_BEV_AND_CHECK_YOUR_ENTRIES),\n switchMap(action => sendingAsyncRequest(redirectToLoginPage(state.value))),\n);\n\nexport const getVerifyPrcInfoOptionsFailureEpic = action$ => action$.pipe(\n ofType(VERIFY_BEV_INFO_OPTIONS_FAIL), switchMap(action$ => of(push('/error'))));\n\nexport const onSetFinalSubmitEpic = (action$, state) => action$.pipe(\n ofType(ON_FINAL_VERIFY_BEV_SUCCESS),\n switchMap(action$ => {\n ReactGA.sendevent(state.value.verifyBev.gaCategory, 'VERIFY_BEV', 'SUCCESS');\n return of(push(state.value.verifyBev.viewId))\n }));\n","import { createAction } from 'redux-actions';\nimport { push } from 'connected-react-router';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport {\n map, switchMap, catchError, concatMap,\n} from 'rxjs/operators';\nimport { ajax } from 'rxjs/ajax';\nimport { throwError, of } from 'rxjs';\nimport { ofType } from 'redux-observable';\nimport { getErrorMessage, sendingAsyncRequest } from '../../../helpers/epics';\nimport { constants } from '../find-me-constants';\nimport { types } from '../find-me-actions';\nimport { ReactGA, PendoUtil } from '../../../../util';\nimport { WindowUtil } from '../../../../util';\nimport Crypto from 'crypto-js';\nimport { constants as registrationConstants } from '../../registration/registration-constants';\nimport { constants as progressBarConstants } from '../../../../util/window/progress-bar-constants';\nimport { getLocaleInitialState } from '../../../../util/locale';\nimport Cookies from 'js-cookie';\n\nconst {\n FIND_ME_INFO_OPTIONS,\n FIND_ME_UPDATE_FIELD,\n FIND_ME_FAIL,\n FIND_ME_UPDATE_LOCATION,\n FIND_ME_UPDATE_FIELD_VALUE,\n FIND_ME_SUBMIT_IDENTITY_OPTIONS,\n ON_FINAL_FIND_ME_SUCCESS,\n CANCEL_FINDME_AND_CHECK_YOUR_ENTRIES,\n FIND_ME_HAS_REG_CODE_OPTION,\n FIND_ME_ORG_SELECTED,\n FIND_ME_VERIFY_USER,\n FIND_ME_GO_TO_MAIN_PAGE,\n FIND_ME_GO_TO_PII_PAGE,\n FIND_ME_CHANNEL_SELECT,\n FIND_ME_VERIFY_OTP,\n FIND_ME_RESEND_OTP,\n FIND_ME_PII_INFO_OPTIONS,\n FIND_ME_GO_TO_SEARCH_PAGE,\n FIND_ME_GO_TO_ERROR_OPTIONS_PAGE,\n FIND_ME_SET_LOCALE,\n REDIRECT_TO_IDENTITY_PAGE,\n REDIRECT_TO_IDENTITY_PAGE_SUCCESS,\n UPDATE_LOCALE_FIELD,\n UPDATE_PAGE_DETAILS,\n SET_FINDME_SIV_FIELD,\n SET_FINDME_SIV_FIELD_SUCCESS,\n SET_FINDME_SIV_FIELD_FAIL,\n VERIFY_SIV_DATA,VERIFY_SIV_DATA_SUCCESS,\n FIND_ME_CONTRACTOR_OPTIONS,\n VERIFY_CONTRACTOR_SIV_DATA,VERIFY_CONTRACTOR_SIV_DATA_SUCCESS,\n SET_CONTRACTOR_SIV_FIELD,\n SET_CONTRACTOR_SIV_FIELD_SUCCESS,\n SET_CONTRACTOR_SIV_FIELD_FAIL,\n CONTRACTOR_ORG_SELECTED,\n CONTRACTOR_VERIFY_USER,\n REGISTRATION_LESS_FLOW,\n CONTINUE_REGISTRATION_FLOW,\n CONTINUE_REGISTRATION_FLOW_SUCCESS\n} = types;\n\nconst isBlank = str => (str || '').trim().length === 0;\n\nconst setFindMeFieldSuccess = createAction(FIND_ME_UPDATE_FIELD);\nconst setUpdateLocaleSuccess = createAction(UPDATE_LOCALE_FIELD);\nconst setFindMeFieldFail = createAction(FIND_ME_FAIL);\nconst redirectToIdentitySuccess = createAction(REDIRECT_TO_IDENTITY_PAGE_SUCCESS);\nconst cancelAndRedirectSuccess = createAction(CANCEL_FINDME_AND_CHECK_YOUR_ENTRIES);\n\nconst setSivFieldSuccessSent = createAction(SET_FINDME_SIV_FIELD_SUCCESS);\nconst setSivFieldFailSent = createAction(SET_FINDME_SIV_FIELD_FAIL);\nconst verifySivDataSuccessSent = createAction(VERIFY_SIV_DATA_SUCCESS);\nconst verifyContractorSivSuccess = createAction(VERIFY_CONTRACTOR_SIV_DATA_SUCCESS);\nconst continueRegistrationSuccess = createAction(CONTINUE_REGISTRATION_FLOW_SUCCESS);\n\n/*************************************find me info**************************************** */\nconst getFindMeInfo = (getState) =>\n getFindMeInfoHandler(getState)\n .pipe(map(response => handleResponse(response, getState)),\n catchError(err => [setFindMeFieldFail(getErrorMessage(err))]));\n\nconst getFindMeInfoHandler = (getState) => {\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = \"WEB_REGISTRATION_FIND_ME_LANDING\";\n let pagePath = '/ssr/flowType/findme/landing';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REGISTRATION_FIND_ME_LANDING\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROWSER_REGISTRATION_FIND_ME_LANDING\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n return of({\n isMobileBrowser, isMobile, gaCategory\n });\n};\n\nconst handleResponse = (data, getState) => {\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n findMeObj.title = getState.intl.messages['verifyUser.title'];\n findMeObj.showDiv = true;\n findMeObj.page = constants.LANDING_PAGE;\n\n // progress bar start\n findMeObj.progressBarData = {};\n findMeObj.progressBarData.showProgressBar = false;\n // progress bar end\n\n findMeObj.redirectionFrom = '';\n let progressBarData = '';\n if(getState.verifyUser.regCodeToFindMeFlow !== undefined && getState.verifyUser.regCodeToFindMeFlow) {\n findMeObj.page = constants.ERROR_OPTIONS_PAGE;\n findMeObj.redirectionFrom = constants.REGCODE_PAGE;\n findMeObj.progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Enter_Code, getState); \n } else if(getState.identifyYourself.identityToFindMeFlow !== undefined && getState.identifyYourself.identityToFindMeFlow) {\n findMeObj.page = constants.ERROR_OPTIONS_PAGE;\n findMeObj.redirectionFrom = constants.ORC_IDENTITY_PAGE;\n findMeObj.companyName = getState.identifyYourself.companyName;\n findMeObj.progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Identification, getState); \n }\n let sendRedirect = false;\n findMeObj.locale = WindowUtil.getLocaleValue(getState.locale.locale);\n findMeObj.isCodelessVariant = false;\n findMeObj.isCodelessVariant = getState.registration.codelessVariantEnabled;\n findMeObj.radioOption = constants.EMAIL_PHONE_RADIO;\n \n return setFindMeFieldSuccess({\n findMeObj,\n isMobileBrowser: data.isMobileBrowser,\n isMobile: data.isMobile,\n gaCategory: data.gaCategory,\n sendRedirect\n });\n}\n\n/**********************Reg Code YES/NO**********************/\nconst hasRegCode = (payload, getState) =>\n hasRegCodeApi(payload, getState)\n .pipe(map(response => hasRegCodeHandler(response.response, payload, getState)),\n catchError(err => [setFindMeFieldFail(getErrorMessage(err))]));\n\nconst hasRegCodeApi = (payload, getState) => {\n if (!getState.registration.isDeviceAssessmentDone && payload === 'EMAIL_OR_PHONE') {\n if (getState.registration.orgIdForDeviceAssessment != '') {\n WindowUtil.deviceAssessment(getState.registration.orgIdForDeviceAssessment, getState.registration.transactionId);\n getState.registration.isDeviceAssessmentDone = true;\n }\n }\n return ajax({\n url: constants.hasRegCodeApiEndPoint,\n method: 'POST',\n responseType: 'json',\n body: payload,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n });\n}\n\nconst hasRegCodeHandler = (response, payload, getState) => {\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = null;\n\n findMeObj = {};\n findMeObj.isCodelessVariant = getState.registration.codelessVariantEnabled;\n findMeObj.radioOption = constants.EMAIL_PHONE_RADIO;\n findMeObj.showDiv = true;\n findMeObj.title = getState.intl.messages['verifyUser.title'];\n let showModalWarn = false;\n let showModalTitle = null;\n let showModalMessage = null;\n\n if (response.code == constants.SUCCESS) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'LANDING_PAGE', 'SUCCESS');\n\n if (response.viewId == constants.findMeEmailPhoneSearchViewId) {\n if(findMeObj.isCodelessVariant) {\n gaCategory = \"WEB_REGISTRATION_CODELESS_EMAILPHONE_PII\";\n let pagePath = '/ssr/flowType/codeless/emailphone_pii';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REGISTRATION_CODELESS_EMAILPHONE_PII\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROWSER_REGISTRATION_CODELESS_EMAILPHONE_PII\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n } else {\n gaCategory = \"WEB_REGISTRATION_CODELESS_EMAIL_PHONE\";\n let pagePath = '/ssr/flowType/codeless/email_phone';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REGISTRATION_CODELESS_EMAIL_PHONE\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROWSER_REGISTRATION_CODELESS_EMAIL_PHONE\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n }\n \n // progress bar start and handling back btn\n getState.registration.currentStage = WindowUtil.getProgressBarViewId(progressBarConstants.findMeViewId);\n findMeObj.progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Search, getState);\n // progress bar end\n findMeObj.page = constants.EMAILPHONESEARCH_PAGE;\n findMeObj.emailPhoneValid = true;\n findMeObj.onlyCountries = [];\n for (var i = 0; i < response.countryCodes.length; i++) {\n findMeObj.onlyCountries.push(response.countryCodes[i].value.toLowerCase());\n }\n findMeObj.contractorEnableFlag = false;\n if(getState.registration.contractorEnableFlag){\n findMeObj.contractorEnableFlag = true;\n }\n }\n else {\n //changing current stage for progressbar\n getState.registration.currentStage = WindowUtil.getProgressBarViewId(response.viewId);\n\n let sendRedirect = true;\n let viewId = response.viewId;\n getState.verifyUser.regCodeToFindMeFlow = false;\n findMeObj.redirectionFrom = '';\n let errorPageInfo = '';\n return setFindMeFieldSuccess({\n findMeObj, sendRedirect, viewId , errorPageInfo\n });\n }\n }\n else {\n ReactGA.sendevent(getState.findMe.gaCategory, 'LANDING_PAGE', 'FAILED');\n showModalMessage = getState.intl.messages['Err_SystemErrorinRequest'];\n showModalWarn = true;\n showModalTitle = getState.intl.messages['Txt_VGeneralErrorWindowTitle'];\n return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, findMeObj\n });\n }\n return setFindMeFieldSuccess({\n findMeObj, isMobileBrowser, isMobile, gaCategory\n });\n}\n/**********************Set language**********************/\nconst setLocale = (payload, getState) =>\n setLocaleApi(payload, getState)\n .pipe(map(response => setLocaleHandler(response.response, payload, getState)),\n catchError(err => [setFindMeFieldFail(getErrorMessage(err))]));\n\nconst setLocaleApi = (payload, getState) => ajax({\n url: constants.setLocaleEndPoint,\n method: 'POST',\n responseType: 'json',\n body: payload.payload.suffix,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\n\nconst setLocaleHandler = (response, payload, getState) => {\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n findMeObj.locale = payload.payload.language;\n const localeResponse = getLocaleInitialState(payload.payload.suffix);\n getState.locale.locale = localeResponse.locale.locale;\n getState.intl.locale = localeResponse.intl.locale;\n getState.intl.messages = localeResponse.intl.messages;\n if (response.code == constants.SUCCESS) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'SET_LOCALE', 'SUCCESS');\n // setting language cookie\n\n WindowUtil.setCookieValue(getState.locale.locale);\n }\n else {\n ReactGA.sendevent(getState.findMe.gaCategory, 'LANDING_PAGE', 'FAILED');\n showModalMessage = getState.intl.messages['Err_SystemErrorinRequest'];\n showModalWarn = true;\n showModalTitle = getState.intl.messages['Txt_VGeneralErrorWindowTitle'];\n return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, findMeObj\n });\n }\n return setUpdateLocaleSuccess({\n findMeObj\n });\n}\n/*****************************Email/Phone search page******************************************* */\nconst channelSelect = (payload, getState) =>\n channelSelectApi(payload, getState)\n .pipe(map(response => channelSelectHandler(response.response, payload, getState)),\n catchError(err => [setFindMeFieldFail(getErrorMessage(err))]));\n\nconst channelSelectApi = (payload, getState) => ajax({\n url: payload.endPoint,\n method: 'POST',\n responseType: 'json',\n body: payload.value,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\nconst channelSelectHandler = (response, payload, getState) => {\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n findMeObj.verifyUserCall = false;\n let code = response.code || \"500\";\n findMeObj.showAlert = false;\n let showModalWarn = false;\n let showModalTitle = null;\n let showModalMessage = null;\n\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = null;\n\n if (code == constants.SUCCESS) {\n\n // backend call verify user\n ReactGA.sendevent(getState.findMe.gaCategory, 'CHANNELS_PAGE', 'SUCCESS');\n findMeObj.verifyUserCall = true;\n findMeObj.callVerifyUserFromSearch = true;\n }\n else if (code == constants.FINDME_USER_NOT_FOUND) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'CHANNELS_PAGE', 'NOT_FOUND');\n findMeObj.errorPageInfo = '' + findMeObj.searchValue + ' ' + getState.intl.messages['findMe.notFoundInfo'];\n let errorPageInfo = findMeObj.errorPageInfo;\n findMeObj.page = constants.ERROR_OPTIONS_PAGE;\n gaCategory = \"WEB_REG_CODELESS_ERROR_OPTIONS_NO_USER\";\n let pagePath = '/ssr/flowType/findme/errorpage/no_user_found';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REG_CODELESS_ERROR_OPTIONS_NO_USER\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROWSER_REG_CODELESS_ERROR_OPTIONS_NO_USER\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n\n return setFindMeFieldSuccess({\n findMeObj,\n errorPageInfo, gaCategory, isMobileBrowser, isMobile\n });\n }\n else if (code == constants.FINDME_MULTIPLE_USERS_FOUND) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'CHANNELS_PAGE', 'MULTI_USER');\n let multipleError = getState.intl.messages['findMe.foundMultipleEntries'];\n findMeObj.errorPageInfo = multipleError.replace(\"{0}\", '' + findMeObj.searchValue + ' ');\n let errorPageInfo = findMeObj.errorPageInfo;\n findMeObj.page = constants.ERROR_OPTIONS_PAGE;\n gaCategory = \"WEB_REG_CODELESS_ERROR_OPTIONS_MULTI_USER\";\n let pagePath = '/ssr/flowType/findme/errorpage/multi_user_found';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REG_CODELESS_ERROR_OPTIONS_MULTI_USER\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROWSER_REG_CODELESS_ERROR_OPTIONS_MULTI_USER\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n\n return setFindMeFieldSuccess({\n findMeObj,\n errorPageInfo, gaCategory, isMobileBrowser, isMobile\n });\n }\n else if (code == constants.ALREADY_REGISTERED) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'CHANNELS_PAGE', 'ALREADY_REGISTERED');\n findMeObj.errorPageInfo = getState.intl.messages['findMe.alreadyRegistered'];\n let errorPageInfo = findMeObj.errorPageInfo;\n findMeObj.redirectToPiiPage = true;\n findMeObj.radioOption = constants.PII_RADIO;\n gaCategory = \"WEB_REG_CODELESS_ALREADY_REGISTERED_PII\";\n let pagePath = '/ssr/flowType/findme/already_registered/pii';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REG_CODELESS_ALREADY_REGISTERED_PII\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROWSER_REG_CODELESS_ALREADY_REGISTERED_PII\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n return setFindMeFieldSuccess({\n findMeObj,\n errorPageInfo, gaCategory, isMobileBrowser, isMobile,\n code: constants.ALREADY_REGISTERED\n });\n }\n else if (response.message != null && response.title != null) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'CHANNELS_PAGE', 'FAILED');\n showModalMessage = response.message;\n showModalWarn = true;\n showModalTitle = response.title;\n return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, findMeObj\n });\n }\n else if (response.message != null) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'CHANNELS_PAGE', 'ERROR');\n findMeObj.showAlertMessage = response.message;\n showModalWarn = false;\n findMeObj.showAlert = true;\n return setFindMeFieldSuccess({\n showModalWarn, findMeObj\n });\n }\n else {\n ReactGA.sendevent(getState.findMe.gaCategory, 'CHANNELS_PAGE', 'FAILED');\n showModalMessage = getState.intl.messages['Err_SystemErrorinRequest'];\n showModalWarn = true;\n showModalTitle = getState.intl.messages['Txt_VGeneralErrorWindowTitle'];\n return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, findMeObj\n });\n }\n return setFindMeFieldSuccess({\n findMeObj\n });\n}\n\n/***********************************Init load Pii otions********************************************** */\n\nconst getPiiOptions = (getState) =>\n getPiiOptionsApi(getState)\n .pipe(map(response => handlePiiOptionsResponse(response.response, getState)),\n catchError(err => [setFindMeFieldFail(getErrorMessage(err))]));\n\nconst getPiiOptionsApi = (getState) => ajax({\n url: constants.piiOptionsEndPoint,\n method: 'POST',\n responseType: 'json',\n body: 'PII',\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\nconst handlePiiOptionsResponse = (response, getState) => {\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n findMeObj = {};\n findMeObj.isCodelessVariant = getState.registration.codelessVariantEnabled;\n findMeObj.radioOption = constants.PII_RADIO;\n findMeObj.progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Search, getState);\n findMeObj.showDiv = true;\n let showModalWarn = false;\n let showModalTitle = null;\n let showModalMessage = null;\n findMeObj.verifyUserCall = false;\n\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = null;\n\n if (response.code == constants.SUCCESS) {\n if (response.viewId == constants.findMePiiSearchViewId && response.sivOptions != undefined && response.sivOptions != null) {\n findMeObj.sivOptionsCalenderItems = response.sivOptionsCalenderItems;\n findMeObj.sivOptions = response.sivOptions;\n findMeObj.page = constants.PII_PAGE;\n if(findMeObj.isCodelessVariant) {\n gaCategory = \"WEB_REGISTRATION_CODELESS_EMAILPHONE_PII\";\n let pagePath = '/ssr/flowType/codeless/emailphone_pii';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REGISTRATION_CODELESS_EMAILPHONE_PII\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROWSER_REGISTRATION_CODELESS_EMAILPHONE_PII\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n } else {\n gaCategory = \"WEB_REG_CODELESS_PII\"; \n let pagePath = '/ssr/flowType/findme/pii';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REG_CODELESS_PII\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROWSER_REG_CODELESS_PII\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n } \n\n let countryDropdown = [];\n countryDropdown.push(getState.intl.messages['findMe.USA']);\n countryDropdown.push(getState.intl.messages['findMe.CANADA']);\n findMeObj.countryDropdown = countryDropdown;\n findMeObj.selectedCountry = countryDropdown[0];\n if(findMeObj.isCodelessVariant) {\n findMeObj.radio1 = constants.SSN;\n } else {\n findMeObj.radio1 = constants.EMP_ID;\n } \n let errorFields = [];\n findMeObj.ssnType = \"siv_ssn\";\n for (var key in findMeObj.sivOptions) {\n // handling ssn4 case\n if (findMeObj.sivOptions[key].idenDataId == \"siv_ssn4\") {\n findMeObj.sivOptions[\"siv_ssn\"] = findMeObj.sivOptions[\"siv_ssn4\"];\n findMeObj.sivOptions[\"siv_ssn\"].idenDataId = \"siv_ssn\";\n delete findMeObj.sivOptions[\"siv_ssn4\"];\n let fieldName = findMeObj.sivOptions[\"siv_ssn\"].idenDataId;\n errorFields[fieldName] = {};\n errorFields[fieldName].validationError = false;\n findMeObj.ssnType = \"siv_ssn4\";\n }\n else {\n let fieldName = findMeObj.sivOptions[key].idenDataId;\n errorFields[fieldName] = {};\n errorFields[fieldName].validationError = false;\n }\n }\n findMeObj.errorFields = errorFields;\n }\n } else {\n showModalMessage = getState.intl.messages['Err_SystemErrorinRequest'];\n showModalWarn = true;\n showModalTitle = getState.intl.messages['Txt_VGeneralErrorWindowTitle'];\n return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, findMeObj\n });\n }\n return setFindMeFieldSuccess({\n findMeObj, gaCategory, isMobileBrowser, isMobile\n });\n}\n\n/***********************************verify Pii otions********************************************** */\n\nconst getCountryValue = (getState) => {\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n const index = findMeObj.countryDropdown.indexOf(findMeObj.selectedCountry);\n if (index == 0) return \"USA\";\n else return \"CANADA\";\n}\nconst submitIdentityOptions = (getState) => {\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n let reqObj = {};\n if (findMeObj.sivOptions[\"siv_country\"]) {\n reqObj.siv_country = {};\n reqObj.siv_country.idenDataId = findMeObj.sivOptions[\"siv_country\"].idenDataId;\n reqObj.siv_country.idenDataValue = getCountryValue(getState);\n }\n if (findMeObj.sivOptions[\"siv_firstname\"]) {\n reqObj.siv_firstname = {};\n reqObj.siv_firstname.idenDataId = findMeObj.sivOptions[\"siv_firstname\"].idenDataId;\n reqObj.siv_firstname.idenDataValue = findMeObj.sivOptions[\"siv_firstname\"].idenDataValue;\n }\n if (findMeObj.sivOptions[\"siv_lastname\"]) {\n reqObj.siv_lastname = {};\n reqObj.siv_lastname.idenDataId = findMeObj.sivOptions[\"siv_lastname\"].idenDataId;\n reqObj.siv_lastname.idenDataValue = findMeObj.sivOptions[\"siv_lastname\"].idenDataValue;\n }\n\n if (findMeObj.sivOptions[\"siv_fulldateofbirth\"]) {\n var inputmonthId = findMeObj.sivOptionsCalenderItems.fullMonthItems.indexOf(findMeObj.fullMonth) + 1;\n inputmonthId = ('0' + inputmonthId).slice(-2);\n var fulldob = '' + findMeObj.fullYear + \"-\" + inputmonthId + \"-\" + findMeObj.fullDay;\n reqObj.siv_fulldateofbirth = {};\n reqObj.siv_fulldateofbirth.idenDataId = findMeObj.sivOptions[\"siv_fulldateofbirth\"].idenDataId;\n reqObj.siv_fulldateofbirth.idenDataValue = fulldob;\n\n }\n\n if (findMeObj.selectedCountry == findMeObj.countryDropdown[0]) {\n if (findMeObj.radio1 == \"empId\") {\n reqObj.siv_empid = {};\n reqObj.siv_empid.idenDataId = findMeObj.sivOptions[\"siv_empid\"].idenDataId;\n reqObj.siv_empid.idenDataValue = findMeObj.sivOptions[\"siv_empid\"].idenDataValue;\n }\n else {\n reqObj[findMeObj.ssnType] = {};\n reqObj[findMeObj.ssnType].idenDataId = findMeObj.ssnType;\n let ssnRequest = findMeObj.sivOptions[\"siv_ssn\"].idenDataValue.replace(/-/g, \"\");\n reqObj[findMeObj.ssnType].idenDataValue = '' + Crypto.AES.encrypt(ssnRequest, registrationConstants.registrationEncryption);\n }\n }\n\n if (findMeObj.selectedCountry != findMeObj.countryDropdown[0]) {\n reqObj.siv_empid = {};\n reqObj.siv_empid.idenDataId = findMeObj.sivOptions[\"siv_empid\"].idenDataId;\n reqObj.siv_empid.idenDataValue = findMeObj.sivOptions[\"siv_empid\"].idenDataValue;\n }\n\n return submitIdentityOptionsHandler(reqObj, getState);\n}\n\nconst submitIdentityOptionsHandler = (reqObj, getState) =>\n submitIdentityOptionsApi(reqObj, getState)\n .pipe(map(response => handleIdentityOptions(response.response, getState)),\n catchError(err => [setFindMeFieldFail(getErrorMessage(err))]));\n\nconst submitIdentityOptionsApi = (reqObj, getState) => ajax({\n url: constants.submitIdentityOptionsApiEndPoint,\n method: 'POST',\n responseType: 'json',\n body: reqObj,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\nconst handleIdentityOptions = (response, getState) => {\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n findMeObj.showAlert = false;\n findMeObj.verifyUserCall = false;\n let showModalWarn = false;\n let showModalTitle = null;\n let showModalMessage = null;\n let code = response.code || \"500\";\n\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = null;\n\n if (code == constants.SUCCESS) {\n if (response.clientNames != undefined && response.clientNames != null) {\n // progress bar start\n findMeObj.progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Identification, getState);\n // progress bar end\n ReactGA.sendevent(getState.findMe.gaCategory, 'PII_SUBMIT', 'MULTI_ORG');\n var multiOrgs = [];\n var multiOrgIndex = [];\n let k = 0;\n for (var key in response.clientNames) {\n multiOrgs[k] = response.clientNames[key];\n multiOrgIndex[k] = key;\n k++;\n }\n findMeObj.multiOrgs = multiOrgs;\n findMeObj.multiOrgIndex = multiOrgIndex;\n findMeObj.page = constants.MULTIORG_PAGE;\n gaCategory = \"WEB_REG_CODELESS_PII_MULTIORG\";\n let pagePath = '/ssr/flowType/findme/multiorg';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REG_CODELESS_MULTIORG\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROWSER_REG_CODELESS_MULTIORG\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n }\n else {\n ReactGA.sendevent(getState.findMe.gaCategory, 'PII_SUBMIT', 'SUCCESS');\n findMeObj.verifyUserCall = true;\n }\n }\n else if (code == constants.ALREADY_REGISTERED) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'PII_SUBMIT', 'ALREADY_REGISTERED');\n showModalMessage = response.message;\n showModalWarn = true;\n showModalTitle = response.title;\n findMeObj.alreadyRegistered = true;\n return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, findMeObj\n });\n }\n else if (response.message != null && response.title != null) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'PII_SUBMIT', 'FAILED');\n showModalMessage = response.message;\n showModalWarn = true;\n showModalTitle = response.title;\n return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, findMeObj\n });\n }\n else if (response.message != null) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'PII_SUBMIT', 'ERROR');\n findMeObj.showAlertMessage = response.message;\n showModalWarn = false;\n findMeObj.showAlert = true;\n if (findMeObj.sivOptions[\"siv_ssn\"]) {\n findMeObj.sivOptions[\"siv_ssn\"].idenDataValue = '';\n }\n return setFindMeFieldSuccess({\n showModalWarn, findMeObj\n });\n }\n else {\n ReactGA.sendevent(getState.findMe.gaCategory, 'PII_SUBMIT', 'FAILED');\n showModalMessage = getState.intl.messages['Err_SystemErrorinRequest'];\n showModalWarn = true;\n showModalTitle = getState.intl.messages['Txt_VGeneralErrorWindowTitle'];\n return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, findMeObj\n });\n }\n\n return setFindMeFieldSuccess({\n findMeObj, gaCategory, isMobileBrowser, isMobile\n });\n}\n\n/************************************verifyUser call details********************************************* */\n\nconst verifyUserInfo = (getState) => verifyUserApi(getState).pipe(map(response => handleVerifyUserResponse(response.response, getState)),\n catchError(err => [(getErrorMessage(err))]));\n\nconst verifyUserApi = (getState) => ajax({\n url: constants.submitPodRedirectionApiEndPoint,\n method: 'POST',\n responseType: 'json',\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\nconst handleVerifyUserResponse = (response, getState) => {\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n let showModalWarn = false;\n let showModalTitle = null;\n let showModalMessage = null;\n let code = response.code || \"500\";\n findMeObj.firstName = response.firstName;\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n findMeObj.contactAdminMsg = response.contactAdminMsg || null;\n findMeObj.verifyUserCall = false;\n findMeObj.contractorEnableFlag = false;\n if(getState.registration.contractorEnableFlag){\n findMeObj.contractorEnableFlag = true;\n }\n //if code is success and contains sivoptions then show new SIV options page\n if(code === constants.SUCCESS && response.sivOptionsBean) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'VERIFY_USER', 'EMAIL_PHONE_SIV_PAGE');\n let viewId = response.viewId;\n if(response.registrationLessFlowEnabled !== undefined && response.registrationLessFlowEnabled) {\n \n if(response.fedOnlyEnabled !== undefined && response.fedOnlyEnabled) {\n\n findMeObj.page = constants.REGISTRATIONLESS_FED_PAGE;\n } else {\n findMeObj.page = constants.REGISTRATIONLESS_DUAL_PAGE;\n } \n findMeObj.emailSearchFed = true; \n //sivoptions add\n } else { \n findMeObj.page = constants.EMAIL_PHONE_SIV_PAGE;\n } \n let emailPhoneSearchSivObj = Object.assign({}, getState.findMe.emailPhoneSearchSivObj);\n emailPhoneSearchSivObj.sivOptions = response.sivOptionsBean;\n emailPhoneSearchSivObj.availableSivOptions = response.sivOptionsBean !== undefined ? response.sivOptionsBean.availableSivOptions : null;\n findMeObj.identifiedUserFirstName = response.firstName;\n findMeObj.firstName = response.firstName;\n findMeObj.clientName = response.clientName;\n PendoUtil.pendoIdentify(response.orgCd,response.clientName,getState.registration.transactionId)\n PendoUtil.pendoVisitorIdUpdate(response.associateId)\n \n\n if(emailPhoneSearchSivObj.availableSivOptions.siv_ssn4 !== undefined || emailPhoneSearchSivObj.availableSivOptions.siv_dateofbirth !== undefined ||\n emailPhoneSearchSivObj.availableSivOptions.siv_empid !== undefined || emailPhoneSearchSivObj.availableSivOptions.siv_wfnid !== undefined) {\n emailPhoneSearchSivObj.initialLoad = true;\n emailPhoneSearchSivObj.ssn4Valid = true;emailPhoneSearchSivObj.ssn4='';\n emailPhoneSearchSivObj.empIdValid = true;emailPhoneSearchSivObj.empId='';\n emailPhoneSearchSivObj.wfnIdValid = true;emailPhoneSearchSivObj.wfnId='';\n emailPhoneSearchSivObj.dobValid = true;emailPhoneSearchSivObj.month='';emailPhoneSearchSivObj.day='';\n }\n //picking one identity option to load on first view\n if(emailPhoneSearchSivObj.availableSivOptions.siv_ssn4 !== undefined)\n emailPhoneSearchSivObj.initialSivData = constants.SSN4;\n else if(emailPhoneSearchSivObj.availableSivOptions.siv_dateofbirth !== undefined) \n emailPhoneSearchSivObj.initialSivData = constants.DOB;\n else if(emailPhoneSearchSivObj.availableSivOptions.siv_empid !== undefined)\n emailPhoneSearchSivObj.initialSivData = constants.EMPID;\n else if(emailPhoneSearchSivObj.availableSivOptions.siv_wfnid !== undefined)\n emailPhoneSearchSivObj.initialSivData = constants.WFNID; \n\n let gaCategory = \"WEB_CODELESS_EMAIL_PHONE_SIV\";\n let pagePath = '/ssr/flowType/findme/emailphone/siv';\n let pageView = pagePath + \"/web\";\n findMeObj.verifyflow = false;\n findMeObj.multiOrg = false;\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_CODELESS_EMAIL_PHONE_SIV\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROWSER_CODELESS_EMAIL_PHONE_SIV\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n\n // progress bar start\n findMeObj.progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Identification, getState);\n // progress bar end\n\n return setFindMeFieldSuccess({\n findMeObj,emailPhoneSearchSivObj,gaCategory,isMobile,isMobileBrowser,viewId\n });\n // new page calls end\n }\n if (code == constants.SUCCESS) {\n if (response.viewId == constants.findMeViewId) {\n // let sendRedirect = false;\n if(response.registrationLessFlowEnabled !== undefined && response.registrationLessFlowEnabled) {\n \n if(response.fedOnlyEnabled !== undefined && response.fedOnlyEnabled) {\n\n findMeObj.page = constants.REGISTRATIONLESS_FED_PAGE;\n } else {\n findMeObj.page = constants.REGISTRATIONLESS_DUAL_PAGE;\n } \n findMeObj.emailSearchFed = true; \n //sivoptions add\n } else { \n //sendRedirect = true;\n ReactGA.sendevent(getState.findMe.gaCategory, 'VERIFY_USER', 'OTP_PAGE');\n findMeObj.page = constants.OTP_PAGE;\n \n PendoUtil.pendoIdentify(response.orgCd,response.clientName,getState.registration.transactionId)\n PendoUtil.pendoVisitorIdUpdate(response.associateId)\n \n }\n let gaCategory = \"WEB_REG_CODELESS_OTP\";\n let pagePath = '/ssr/flowType/findme/otp';\n let pageView = pagePath + \"/web\"; \n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REG_CODELESS_OTP\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROWSER_REG_CODELESS_OTP\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView);\n\n findMeObj.prcValid = true;\n findMeObj.selectedIdentityValue = response.maskedChannel;\n findMeObj.expiry = response.expiry;\n findMeObj.showOnScreen = response.showOnScreen;\n findMeObj.otpChannelId = response.contactId;\n findMeObj.accessCode = response.accessCode;\n findMeObj.firstName = response.firstName;\n findMeObj.clientName = response.clientName;\n findMeObj.verifyflow = false;\n findMeObj.multiOrg = false;\n \n // progress bar start\n findMeObj.progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Identification, getState);\n // progress bar end\n return setFindMeFieldSuccess({\n findMeObj, gaCategory, isMobileBrowser, isMobile, viewId: response.viewId\n });\n }\n else if (response.viewId == constants.findMeVerifyPrcViewId) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'VERIFY_USER', 'VERIFY_PRC');\n findMeObj.verifyflow = true;\n if (findMeObj.multiOrgs != null || findMeObj.multiOrgs != null) { findMeObj.multiOrg = true; }\n findMeObj.clientName = response.clientName;\n findMeObj.firstName = response.firstName;\n \n PendoUtil.pendoIdentify(response.orgCd,response.clientName,getState.registration.transactionId)\n PendoUtil.pendoVisitorIdUpdate(response.associateId);\n let sendRedirect = false;\n if(response.registrationLessFlowEnabled !== undefined && response.registrationLessFlowEnabled) {\n\n if(response.fedOnlyEnabled !== undefined && response.fedOnlyEnabled) {\n\n findMeObj.page = constants.REGISTRATIONLESS_FED_PAGE;\n } else {\n findMeObj.page = constants.REGISTRATIONLESS_DUAL_PAGE;\n } \n } else {\n sendRedirect = true;\n } \n let viewId = response.viewId;\n return setFindMeFieldSuccess({\n findMeObj, viewId, sendRedirect\n });\n }\n else {\n if (findMeObj.multiOrgs != null || findMeObj.multiOrgs != null) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'VERIFY_USER', 'MULTI_ORG');\n let viewId = response.viewId;\n let sendRedirect = false;\n if(response.registrationLessFlowEnabled !== undefined && response.registrationLessFlowEnabled) {\n\n if(response.fedOnlyEnabled !== undefined && response.fedOnlyEnabled) {\n\n findMeObj.page = constants.REGISTRATIONLESS_FED_PAGE;\n } else {\n findMeObj.page = constants.REGISTRATIONLESS_DUAL_PAGE;\n } \n } else {\n sendRedirect = true;\n }\n return setFindMeFieldSuccess({\n findMeObj, viewId, sendRedirect\n });\n }\n else {\n findMeObj.identityText = response.contactInfoUpFront;\n findMeObj.progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Identification, getState);\n ReactGA.sendevent(getState.findMe.gaCategory, 'VERIFY_USER', 'IDENTITY_PAGE');\n if(response.registrationLessFlowEnabled !== undefined && response.registrationLessFlowEnabled) {\n\n if(response.fedOnlyEnabled !== undefined && response.fedOnlyEnabled) {\n\n findMeObj.page = constants.REGISTRATIONLESS_FED_PAGE;\n } else {\n findMeObj.page = constants.REGISTRATIONLESS_DUAL_PAGE;\n } \n } else {\n findMeObj.page = constants.IDENTIFIED_PAGE;\n } \n findMeObj.clientName = response.clientName;\n findMeObj.firstName = response.firstName;\n \n PendoUtil.pendoIdentify(response.orgCd,response.clientName,getState.registration.transactionId)\n PendoUtil.pendoVisitorIdUpdate(response.associateId)\n \n let viewId = response.viewId;\n return setFindMeFieldSuccess({\n findMeObj, viewId\n });\n }\n\n }\n }\n else if (code == constants.FINDME_USER_NOT_FOUND && findMeObj.callVerifyUserFromSearch != undefined && findMeObj.callVerifyUserFromSearch === true) {\n findMeObj.errorPageInfo = '' + findMeObj.searchValue + ' ' + getState.intl.messages['findMe.notFoundInfo'];\n let errorPageInfo = findMeObj.errorPageInfo;\n findMeObj.page = constants.ERROR_OPTIONS_PAGE;\n let gaCategory = \"WEB_REG_CODELESS_ERROR_OPTIONS_NO_USER\";\n let pagePath = '/ssr/flowType/findme/errorpage/no_user_found';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REG_CODELESS_ERROR_OPTIONS_NO_USER\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROWSER_REG_CODELESS_ERROR_OPTIONS_NO_USER\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n ReactGA.sendevent(getState.findMe.gaCategory, 'VERIFY_USER', 'NOT_FOUND');\n return setFindMeFieldSuccess({\n findMeObj, errorPageInfo, gaCategory, isMobileBrowser, isMobile\n });\n }\n else if (code == constants.ALREADY_REGISTERED && findMeObj.callVerifyUserFromSearch != undefined && findMeObj.callVerifyUserFromSearch === true) {\n findMeObj.errorPageInfo = getState.intl.messages['findMe.alreadyRegistered'];\n let errorPageInfo = findMeObj.errorPageInfo;\n //findMeObj.page = constants.ERROR_OPTIONS_PAGE;\n if(response.registrationLessFlowEnabled !== undefined && response.registrationLessFlowEnabled) {\n findMeObj.page = constants.REGISTRATIONLESS_FED_PAGE;\n findMeObj.emailSearchFed = true; \n findMeObj.emailSearchAlreadyRegistered = true;\n } else {\n findMeObj.redirectToPiiPage = true;\n } \n let prevPage = constants.EMAILPHONESEARCH_PAGE;\n let gaCategory = \"WEB_REG_CODELESS_ERROR_OPTIONS_ALREADY_REGISTERED\";\n let pagePath = '/ssr/flowType/findme/errorpage/already_registered';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REG_CODELESS_ERROR_OPTIONS_ALREADY_REGISTERED\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROWSER_REG_CODELESS_ERROR_OPTIONS_ALREADY_REGISTERED\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n ReactGA.sendevent(getState.findMe.gaCategory, 'VERIFY_USER', 'ALREADY_REGISTERED');\n return setFindMeFieldSuccess({\n findMeObj, errorPageInfo, gaCategory, isMobileBrowser, isMobile, prevPage,\n code: constants.ALREADY_REGISTERED,\n });\n }\n else if (code == constants.ALREADY_REGISTERED) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'VERIFY_USER', 'FAILED');\n if(response.registrationLessFlowEnabled !== undefined && response.registrationLessFlowEnabled) {\n findMeObj.page = constants.REGISTRATIONLESS_FED_PAGE;\n findMeObj.piiAlreadyRegistered = true;\n return setFindMeFieldSuccess({\n findMeObj\n });\n } else {\n showModalMessage = response.message;\n showModalWarn = true;\n showModalTitle = response.title;\n findMeObj.alreadyRegistered = true;\n } \n return cancelAndRedirectSuccess ({\n findMeObj \n })\n /* return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, findMeObj\n }); */\n }\n else if (response.message != null && response.title != null) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'VERIFY_USER', 'FAILED');\n showModalMessage = response.message;\n showModalWarn = true;\n showModalTitle = response.title;\n return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, findMeObj\n });\n }\n else if (response.message != null) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'VERIFY_USER', 'ERROR');\n findMeObj.showAlertMessage = response.message;\n showModalWarn = false;\n findMeObj.showAlert = true;\n return setFindMeFieldSuccess({\n showModalWarn, findMeObj\n });\n }\n else {\n ReactGA.sendevent(getState.findMe.gaCategory, 'VERIFY_USER', 'FAILED');\n showModalMessage = getState.intl.messages['Err_SystemErrorinRequest'];\n showModalWarn = true;\n showModalTitle = getState.intl.messages['Txt_VGeneralErrorWindowTitle'];\n return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, findMeObj\n });\n }\n return setFindMeFieldSuccess({\n findMeObj\n });\n}\n\n/*****************************************Otp page******************************************************/\n\nconst submitAccessCode = (getState) => {\n let inputPRC = getState.findMe.findMeObj.otpValue;\n if (getState.findMe.isFormValid != undefined && getState.findMe.isFormValid == false)\n return of();\n return setSubmitAccessCodeApi(inputPRC, getState)\n .pipe(map(response => handleResponseAccessCode(response.response, getState))\n , catchError(err => [setFindMeFieldFail(getErrorMessage(err))]));\n}\n\nconst setSubmitAccessCodeApi = (payload, getState) => ajax({\n url: constants.verifyOTPEndPoint,\n method: 'POST',\n responseType: 'json',\n body: payload,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\nconst handleResponseAccessCode = (response, getState) => {\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n findMeObj.verifyUserCall = false;\n let showModalWarn = false;\n let showModalTitle = null;\n let showModalMessage = null;\n let code = response.code || \"500\";\n\n if (code == constants.SUCCESS) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'OTP_PAGE', 'SUCCESS');\n return setFindMeFieldSuccess({\n viewId: response.viewId,\n sendRedirect: true\n });\n\n }\n else if (response.code == constants.TYPE_ERROR_INVALID || response.code == constants.TYPE_ERROR_EXPIRED) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'OTP_PAGE', 'ERROR');\n findMeObj.showAlertMessage = response.message;\n showModalWarn = false;\n findMeObj.showAlert = true;\n return setFindMeFieldSuccess({\n showModalWarn, findMeObj\n });\n }\n else if (response.message != null && response.title != null) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'OTP_PAGE', 'FAILED');\n showModalMessage = response.message;\n showModalWarn = true;\n showModalTitle = response.title;\n return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, findMeObj\n });\n }\n else if (response.message != null) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'OTP_PAGE', 'ERROR');\n findMeObj.showAlertMessage = response.message;\n showModalWarn = false;\n findMeObj.showAlert = true;\n return setFindMeFieldSuccess({\n showModalWarn, findMeObj\n });\n }\n else {\n ReactGA.sendevent(getState.findMe.gaCategory, 'OTP_PAGE', 'FAILED');\n showModalMessage = getState.intl.messages['Err_SystemErrorinRequest'];\n showModalWarn = true;\n showModalTitle = getState.intl.messages['Txt_VGeneralErrorWindowTitle'];\n return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, findMeObj\n });\n }\n return setFindMeFieldSuccess({\n findMeObj\n });\n}\n\n/***************************************Resend otp **************************************** */\nconst resendOTP = (reqObj, getState) =>\n resendOTPApi(reqObj, getState)\n .pipe(map(response => handleResendOTP(response.response, getState)),\n catchError(err => [setFindMeFieldFail(getErrorMessage(err))]));\n\nconst resendOTPApi = (payload, getState) => ajax({\n url: constants.generateOTPEndPoint,\n method: 'POST',\n responseType: 'json',\n body: payload,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\nconst handleResendOTP = (response, getState) => {\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n let showModalWarn = false;\n let showModalTitle = null;\n let showModalMessage = null;\n findMeObj.verifyUserCall = false;\n let code = response.code || \"500\";\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n\n if (code == constants.SUCCESS) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'RESEND_PAGE', 'SUCCESS');\n let gaCategory = \"WEB_REG_CODELESS_RESEND_OTP\";\n let pagePath = '/ssr/flowType/findme/resend-otp';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REG_CODELESS_RESEND_OTP\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROWSER_REG_CODELESS_RESEND_OTP\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n\n findMeObj.disableResend = true;\n findMeObj.selectedIdentityValue = response.maskedChannel;\n findMeObj.expiry = response.expiry;\n findMeObj.showOnScreen = response.showOnScreen;\n findMeObj.accessCode = response.accessCode;\n return setFindMeFieldSuccess({\n findMeObj, gaCategory, isMobileBrowser, isMobile\n });\n }\n\n else if (response.message != null && response.title != null) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'RESEND_PAGE', 'FAILED');\n showModalMessage = response.message;\n showModalWarn = true;\n showModalTitle = response.title;\n return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, findMeObj\n });\n }\n else if (response.message != null) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'RESEND_PAGE', 'ERROR');\n findMeObj.showAlertMessage = response.message;\n showModalWarn = false;\n findMeObj.showAlert = true;\n return setFindMeFieldSuccess({\n showModalWarn, findMeObj\n });\n }\n else {\n ReactGA.sendevent(getState.findMe.gaCategory, 'RESEND_PAGE', 'FAILED');\n showModalMessage = getState.intl.messages['Err_SystemErrorinRequest'];\n showModalWarn = true;\n showModalTitle = getState.intl.messages['Txt_VGeneralErrorWindowTitle'];\n return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, findMeObj\n });\n }\n return setFindMeFieldSuccess({\n findMeObj\n });\n}\n\n/********************************Multi orgs- org selected api****************************************************** */\n\nconst orgSelected = (payload, getState) => {\n var selectedOrgIndex = getState.findMe.findMeObj.multiOrgIndex[payload];\n var selectedOrg = getState.findMe.findMeObj.multiOrgs[payload]\n return orgSelectedApi(selectedOrgIndex, getState)\n .pipe(map(response => orgSelectedHandler(response.response,selectedOrg , getState)),\n catchError(err => [setFindMeFieldFail(getErrorMessage(err))]));\n}\n\n\nconst orgSelectedApi = (payload, getState) => ajax({\n url: constants.submitMultiOrgOptionApiEndPoint,\n method: 'POST',\n responseType: 'json',\n body: payload,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\nconst orgSelectedHandler = (response,selectedOrg, getState) => {\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n let showModalWarn = false;\n let showModalTitle = null;\n let showModalMessage = null;\n let code = response.code || \"500\";\n if (code == constants.SUCCESS) {\n PendoUtil.pendoIdentify(response.orgCd,selectedOrg,getState.registration.transactionId)\n PendoUtil.pendoVisitorIdUpdate(response.associateId)\n ReactGA.sendevent(getState.findMe.gaCategory, 'ORG_PAGE', 'SUCCESS');\n findMeObj.verifyUserCall = true;\n }\n else if (response.message != null && response.title != null) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'ORG_PAGE', 'FAILED');\n showModalMessage = response.message;\n showModalWarn = true;\n showModalTitle = response.title;\n return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, findMeObj\n });\n }\n else {\n ReactGA.sendevent(getState.findMe.gaCategory, 'ORG_PAGE', 'FAILED');\n showModalMessage = getState.intl.messages['Err_SystemErrorinRequest'];\n showModalWarn = true;\n showModalTitle = getState.intl.messages['Txt_VGeneralErrorWindowTitle'];\n return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, findMeObj\n });\n }\n return setFindMeFieldSuccess({\n findMeObj\n });\n}\n\n/**************************update all the field values******************************************************** */\nconst updateFieldValue = (payload, getState) =>\n updateFieldValueHandler(payload, getState)\n .pipe(map(setFindMeFieldSuccess));\n\nconst updateFieldValueHandler = (payload, getState) => {\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n findMeObj.showAlert = false;\n if (payload.fieldName == \"otpValue\") {\n findMeObj.otpValue = payload.fieldValue;\n }\n else if (payload.fieldName == \"email\") {\n findMeObj.emailPhoneValid = payload.isValid;\n findMeObj.email = payload.fieldValue;\n findMeObj.searchType = payload.fieldName;\n findMeObj.searchValue = payload.fieldValue;\n }\n else if (payload.fieldName == \"phone\") {\n findMeObj.searchType = payload.fieldName;\n if (!isBlank(payload.fieldValue)) {\n findMeObj.phone = payload.fieldValue;\n findMeObj.emailPhoneValid = payload.isValid;\n findMeObj.isoCode = payload.isoCode;\n findMeObj.searchValue = payload.fieldValue;\n } else {\n findMeObj.phone = null;\n findMeObj.emailPhoneValid = false;\n findMeObj.isoCode = null;\n }\n }\n else if (payload.fieldName == \"radio\") {\n findMeObj.radio = payload.fieldValue;\n }\n else if (payload.fieldName == \"radio1\") {\n findMeObj.radio1 = payload.fieldValue;\n if (payload.fieldValue == \"empId\") {\n findMeObj.sivOptions[\"siv_ssn\"].idenDataValue = '';\n }\n if (payload.fieldValue == \"ssn\") {\n findMeObj.sivOptions[\"siv_empid\"].idenDataValue = '';\n }\n } else if (payload.fieldName == \"radio2\") {\n findMeObj.selectedCountry = payload.fieldValue;\n }\n else if (!payload.isDateField) {\n let sivOption = findMeObj.sivOptions[payload.fieldName];\n if (sivOption.regExp != null && !isBlank(sivOption.regExp)) {\n const regEx = new RegExp(sivOption.regExp);\n if (isBlank(payload.fieldValue) || regEx.test(payload.fieldValue)) {\n findMeObj.errorFields[payload.fieldName].validationError = false;\n } else {\n findMeObj.errorFields[payload.fieldName].validationError = true;\n }\n } else {\n findMeObj.errorFields[payload.fieldName].validationError = false;\n }\n findMeObj.sivOptions[payload.fieldName].idenDataValue = payload.fieldValue;\n }\n else {\n if (payload.fieldName == \"fullMonth\") {\n const inputMonthId = findMeObj.sivOptionsCalenderItems.fullMonthItems.indexOf(payload.fieldValue) + 1;\n \n if (inputMonthId == 1 || inputMonthId == 3 || inputMonthId == 5 || inputMonthId == 7 || inputMonthId == 8 || inputMonthId == 10 || inputMonthId == 12) {\n findMeObj.sivOptionsCalenderItems.fullDayItems = constants.monthWith31days;\n }\n if (inputMonthId == 4 || inputMonthId == 6 || inputMonthId == 9 || inputMonthId == 11) {\n findMeObj.sivOptionsCalenderItems.fullDayItems = constants.monthWith30days;\n }\n if (inputMonthId == 2) {\n findMeObj.sivOptionsCalenderItems.fullDayItems = constants.monthWith29days;\n }\n findMeObj[\"fullDay\"] = '';\n }\n findMeObj[payload.fieldName] = payload.fieldValue;\n }\n\n return of({\n findMeObj\n });\n}\n\n/**********************************Handlers***************************************** */\n\nconst goToMainPage = (getState) => goToMainPageHandler(getState)\n .pipe(map(setFindMeFieldSuccess));\n\nconst goToPiiInfoPage = (getState) => goToPiiInfoPageHandler(getState)\n .pipe(map(setFindMeFieldSuccess));\n\nconst goToEmailPhoneSearchPage = (getState) => goToEmailPhoneSearchPageHandler(getState)\n .pipe(map(setFindMeFieldSuccess));\n\nconst goToErrorOptionsPage = (getState) => goToErrorOptionsPageHandler(getState)\n .pipe(map(setFindMeFieldSuccess));\n\n\nconst goToMainPageHandler = (getState) => {\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n findMeObj.page = constants.LANDING_PAGE;\n findMeObj.showAlert = false;\n\n const isMobile = getState.registration.mobileFlow;\n var locale = getState.locale.locale;\n findMeObj.locale = WindowUtil.getLocaleValue(locale);\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = \"WEB_REGISTRATION_FIND_ME_LANDING\";\n let pagePath = '/ssr/flowType/findme/landing';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REGISTRATION_FIND_ME_LANDING\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROWSER_REGISTRATION_FIND_ME_LANDING\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n\n return of({\n findMeObj, gaCategory, isMobileBrowser, isMobile, code: ''\n });\n}\n\nconst goToPiiInfoPageHandler = (getState) => {\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n findMeObj.page = constants.PII_PAGE;\n findMeObj.showAlert = false;\n\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = \"WEB_REG_CODELESS_PII\";\n let pagePath = '/ssr/flowType/findme/pii';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REG_CODELESS_PII\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROWSER_REG_CODELESS_PII\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n\n return of({\n findMeObj, gaCategory, isMobileBrowser, isMobile, code: ''\n });\n}\n\nconst goToEmailPhoneSearchPageHandler = (getState) => {\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n let emailPhoneSearchSivObj = Object.assign({}, getState.findMe.emailPhoneSearchSivObj);\n emailPhoneSearchSivObj.singleSiv = false;\n findMeObj.page = constants.EMAILPHONESEARCH_PAGE;\n findMeObj.showAlert = false;\n\n // progress bar start\n findMeObj.progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Search, getState);\n // progress bar end\n findMeObj.radioOption = constants.EMAIL_PHONE_RADIO;\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = \"WEB_REGISTRATION_CODELESS_EMAIL_PHONE\";\n let pagePath = '/ssr/flowType/codeless/email_phone';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REGISTRATION_CODELESS_EMAIL_PHONE\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROWSER_REGISTRATION_CODELESS_EMAIL_PHONE\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView);\n\n findMeObj.contractorEnableFlag = false;\n if(getState.registration.contractorEnableFlag){\n findMeObj.contractorEnableFlag = true;\n }\n\n return of({\n findMeObj, gaCategory, isMobileBrowser, isMobile, code: '',emailPhoneSearchSivObj,errorInSIV:''\n });\n}\n\nconst goToErrorOptionsPageHandler = (getState) => {\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n findMeObj.page = constants.ERROR_OPTIONS_PAGE;\n findMeObj.showAlert = false;\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = \"WEB_REG_CODELESS_ERROR_OPTIONS_BACK\";\n let pagePath = '/ssr/flowType/findme/errorpage/back';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REG_CODELESS_ERROR_OPTIONS_BACK\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROWSER_REG_CODELESS_ERROR_OPTIONS_BACK\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView);\n findMeObj.contractorEnableFlag = false;\n if(getState.registration.contractorEnableFlag){\n findMeObj.contractorEnableFlag = true;\n }\n\n return of({\n findMeObj, gaCategory, isMobileBrowser, isMobile, code: ''\n });\n}\n\nconst redirectToIdentityPage = (payload,getState) => {\n let viewId = constants.findMeViewId;\n\n if(payload === constants.ORC_IDENTITY_PAGE) {\n viewId = constants.identifyYourselfViewId;\n }\n return redirectToRespectiveIdentityPage(viewId, getState).pipe(\n map(response => handleRedirectionResponse(getState, response)),\n catchError(err => [(getErrorMessage(err))])); \n}\n\nconst redirectToRespectiveIdentityPage = (viewId,getState) => of({\n viewId: viewId\n});\n\nconst handleRedirectionResponse = (getState,response) => {\n return redirectToIdentitySuccess({\n viewId : response.viewId\n });\n}\n\n/****************SIV options page ********************/\n\nconst setSivField = (payload, getState) =>\n validateAndSetSivField(payload, getState)\n .pipe(map(setSivFieldSuccessSent),\n catchError(err => [handleSetSivFieldFailResponse(payload, getState,getErrorMessage(err))]));\n \nconst validateAndSetSivField = (payload, getState) => {\n let emailPhoneSearchSivObj = Object.assign({}, getState.findMe.emailPhoneSearchSivObj);\n \n switch (payload.fieldKey) {\n case constants.SIV_EMPID: {\n const employeeIdRegEx = new RegExp(emailPhoneSearchSivObj.availableSivOptions.siv_empid.regExp);\n\n if (isBlank(payload.fieldValue) || employeeIdRegEx.test(payload.fieldValue)) {\n emailPhoneSearchSivObj.empId = payload.fieldValue;\n emailPhoneSearchSivObj.empIdValid = true;\n emailPhoneSearchSivObj.wfnId = '';\n emailPhoneSearchSivObj.ssn4 = '';\n emailPhoneSearchSivObj.month = '';\n emailPhoneSearchSivObj.day = '';\n return of({\n emailPhoneSearchSivObj\n });\n }\n return throwError(new Error(emailPhoneSearchSivObj.availableSivOptions.siv_empid.invalidMessage));\n }\n case constants.SIV_WFNID: {\n const wfnAssociateIdRegEx = new RegExp(emailPhoneSearchSivObj.availableSivOptions.siv_wfnid.regExp);\n\n if (isBlank(payload.fieldValue) || wfnAssociateIdRegEx.test(payload.fieldValue)) {\n emailPhoneSearchSivObj.wfnId = payload.fieldValue;\n emailPhoneSearchSivObj.wfnIdValid = true;\n emailPhoneSearchSivObj.empId = '';\n emailPhoneSearchSivObj.ssn4 = '';\n emailPhoneSearchSivObj.month = '';\n emailPhoneSearchSivObj.day = '';\n return of({\n emailPhoneSearchSivObj\n });\n }\n return throwError(new Error(emailPhoneSearchSivObj.availableSivOptions.siv_wfnid.invalidMessage));\n }\n case constants.SIV_SSN4: {\n const ssn4RegEx = new RegExp(emailPhoneSearchSivObj.availableSivOptions.siv_ssn4.regExp);\n\n if (isBlank(payload.fieldValue) || ssn4RegEx.test(payload.fieldValue)) {\n emailPhoneSearchSivObj.ssn4 = payload.fieldValue;\n emailPhoneSearchSivObj.ssn4Valid = true;\n emailPhoneSearchSivObj.empId = '';\n emailPhoneSearchSivObj.wfnId = '';\n emailPhoneSearchSivObj.month = '';\n emailPhoneSearchSivObj.day = '';\n return of({\n emailPhoneSearchSivObj\n });\n }\n return throwError(new Error(emailPhoneSearchSivObj.availableSivOptions.siv_ssn4.invalidMessage));\n }\n case constants.SIV_MONTH: {\n emailPhoneSearchSivObj.month = payload.fieldValue;\n emailPhoneSearchSivObj.day = '';\n emailPhoneSearchSivObj.empId = '';\n emailPhoneSearchSivObj.wfnId = '';\n emailPhoneSearchSivObj.ssn4 = '';\n return of({\n emailPhoneSearchSivObj\n });\n }\n case constants.SIV_DAY: {\n emailPhoneSearchSivObj.day = payload.fieldValue;\n emailPhoneSearchSivObj.empId = '';\n emailPhoneSearchSivObj.wfnId = '';\n emailPhoneSearchSivObj.ssn4 = '';\n return of({\n emailPhoneSearchSivObj\n });\n }\n }\n}; \n\nconst handleSetSivFieldFailResponse = (payload,getState, errorMessage) => {\n let emailPhoneSearchSivObj = Object.assign({}, getState.findMe.emailPhoneSearchSivObj);\n\n switch (payload.fieldKey) {\n case constants.SIV_EMPID:{\n emailPhoneSearchSivObj.empIdValid = false;\n emailPhoneSearchSivObj.empIdErrorMsg = errorMessage;\n emailPhoneSearchSivObj.empId = payload.fieldValue;\n return setSivFieldFailSent({\n emailPhoneSearchSivObj\n });\n }\n case constants.SIV_WFNID:{\n emailPhoneSearchSivObj.wfnIdValid = false;\n emailPhoneSearchSivObj.wfnIdErrorMsg = errorMessage;\n emailPhoneSearchSivObj.wfnId = payload.fieldValue;\n return setSivFieldFailSent({\n emailPhoneSearchSivObj\n });\n }\n case constants.SIV_SSN4:{\n emailPhoneSearchSivObj.ssn4Valid = false;\n emailPhoneSearchSivObj.ssn4ErrorMsg = errorMessage;\n emailPhoneSearchSivObj.ssn4 = payload.fieldValue;\n return setSivFieldFailSent({\n emailPhoneSearchSivObj\n });\n }\n \n default: {\n return setSivFieldFailSent({\n errorMessage,\n });\n }\n }\n};\n\n/***********************************Verify SIV data*********************************************** */\n\nconst verifySivData = (getState) =>\n verifySivOptions(getState)\n .pipe(map(response => handleVerifySivDataResponse(response.response, getState)),\n catchError(err => [setFindMeFieldFail(getErrorMessage(err))]));\n\nconst verifySivOptions = (getState) => {\n let emailPhoneSearchSivObj = Object.assign({}, getState.findMe.emailPhoneSearchSivObj);\n const sivOptions = emailPhoneSearchSivObj.sivOptions;\n var uiOptionsMap = {};\n var radioOptionValue = '';\n\n if (sivOptions.availableSivOptions.siv_empid && emailPhoneSearchSivObj.empId != '') {\n uiOptionsMap.siv_empid = emailPhoneSearchSivObj.empId;\n radioOptionValue = constants.SIV_EMPID;\n sivOptions.availableSivOptions.siv_empid.idenDataValue = emailPhoneSearchSivObj.empId;\n ReactGA.sendevent(getState.findMe.gaCategory, 'SUBMITTED', 'EMP_ID');\n }\n if (sivOptions.availableSivOptions.siv_wfnid && emailPhoneSearchSivObj.wfnId != '') {\n uiOptionsMap.siv_wfnid = emailPhoneSearchSivObj.wfnId;\n radioOptionValue = constants.SIV_WFNID;\n sivOptions.availableSivOptions.siv_wfnid.idenDataValue = emailPhoneSearchSivObj.wfnId;\n ReactGA.sendevent(getState.findMe.gaCategory, 'SUBMITTED', 'WFN_ID');\n }\n if (sivOptions.availableSivOptions.siv_ssn4 && emailPhoneSearchSivObj.ssn4 != '') {\n if (emailPhoneSearchSivObj.ssn4 != '' && emailPhoneSearchSivObj.ssn4 != undefined) {\n var encryptedSsn = Crypto.AES.encrypt(emailPhoneSearchSivObj.ssn4, registrationConstants.registrationEncryption);\n uiOptionsMap.siv_ssn4 = encryptedSsn + '';\n }\n radioOptionValue = constants.SIV_SSN4;\n sivOptions.availableSivOptions.siv_ssn4.idenDataValue = emailPhoneSearchSivObj.ssn4;\n ReactGA.sendevent(getState.findMe.gaCategory, 'SUBMITTED', 'SSN4');\n }\n var inputFullMonthId = sivOptions.sivOptionsCalenderItems.monthItems.indexOf(emailPhoneSearchSivObj.month) + 1;\n inputFullMonthId = ('0' + inputFullMonthId).slice(-2);\n var fulldob = '' + inputFullMonthId + emailPhoneSearchSivObj.day;\n\n if (sivOptions.availableSivOptions.siv_dateofbirth && emailPhoneSearchSivObj.day != '') {\n uiOptionsMap.siv_dateofbirth = fulldob;\n radioOptionValue = constants.SIV_DOB;\n sivOptions.availableSivOptions.siv_dateofbirth.idenDataValue = fulldob;\n ReactGA.sendevent(getState.findMe.gaCategory, 'SUBMITTED', 'DOB');\n }\n\n return ajax({\n url: constants.verifySivDataEndPoint,\n body: uiOptionsMap,\n method: 'POST',\n responseType: 'json',\n headers: {\n 'Content-Type': 'application/json',\n \"cache-control\": \"no-cache\",\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n });\n};\n \nconst handleVerifySivDataResponse = (response, getState) => {\n let emailPhoneSearchSivObj = Object.assign({}, getState.findMe.emailPhoneSearchSivObj);\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n\n if (response.viewId.indexOf(constants.ERROR) == -1 && response.code === constants.SUCCESS) {\n //when identity verification is success redirect to otp page \n ReactGA.sendevent(getState.findMe.gaCategory, 'VERIFY_EMAIL_PHONE_SIV', 'SUCCESS');\n findMeObj.page = constants.OTP_PAGE;\n findMeObj.selectedIdentityValue = response.maskedChannel;\n findMeObj.expiry = response.expiry;\n findMeObj.showOnScreen = response.showOnScreen;\n findMeObj.otpChannelId = response.contactId;\n return verifySivDataSuccessSent({\n findMeObj\n });\n }\n //when identity verification fails show either other siv options or redirect to login\n if (response.code != null) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'VERIFY_EMAIL_PHONE_SIV', response.code);\n if (response.code === constants.INVALID_SIVDATA) {\n emailPhoneSearchSivObj.ssn4 = '';\n emailPhoneSearchSivObj.ssn4Valid = true;\n emailPhoneSearchSivObj.empIdValid = true;\n emailPhoneSearchSivObj.wfnIdValid = true;\n emailPhoneSearchSivObj.ssn4ErrorMsg = '';\n emailPhoneSearchSivObj.empIdErrorMsg = '';\n emailPhoneSearchSivObj.wfnIdErrorMsg = '';\n \n //check the count of siv data so that we can load page accordingly\n let countofSiv = 0; \n if(emailPhoneSearchSivObj.availableSivOptions.siv_ssn4 !== undefined)\n countofSiv += 1;\n if(emailPhoneSearchSivObj.availableSivOptions.siv_dateofbirth !== undefined) \n countofSiv += 1;\n if(emailPhoneSearchSivObj.availableSivOptions.siv_empid !== undefined)\n countofSiv += 1;\n if(emailPhoneSearchSivObj.availableSivOptions.siv_wfnid !== undefined)\n countofSiv += 1;\n\n\tlet errorInSIV = getState.intl.messages['findMe.sivpage.notFoundInfo'];\n\n if(countofSiv > 1) {\n //make intial load to false to display radio options\n emailPhoneSearchSivObj.initialLoad = false;\n\n //clearing the values so as to not show values on next siv prompt\n emailPhoneSearchSivObj.month = '';\n emailPhoneSearchSivObj.day = '';\n emailPhoneSearchSivObj.empId = '';\n emailPhoneSearchSivObj.wfnId = '';\n\n } else {\n errorInSIV = getState.intl.messages['findMe.sivpage.single.notFoundInfo']; \n emailPhoneSearchSivObj.singleSiv = true;\n }\n\n return verifySivDataSuccessSent({\n errorInSIV,\n emailPhoneSearchSivObj\n });\n }\n if (response.code === constants.MAX_SECURITY_OPTION_ATTEMPTS_REACHED || (response.title !== undefined && response.message !== undefined)) {\n return verifySivDataSuccessSent({\n showModalWarn: true,\n showModalTitle: response.title,\n showModalMessage: response.message,\n ssn4: ''\n });\n }\n }\n \n ReactGA.sendevent(getState.findMe.gaCategory, 'EMAIL_PHONE_SIV_PAGE', 'FAILED');\n return verifySivDataSuccessSent({\n showModalMessage: getState.intl.messages['Err_SystemErrorinRequest'],\n showModalWarn: true, \n showModalTitle: getState.intl.messages['Txt_VGeneralErrorWindowTitle'], findMeObj,emailPhoneSearchSivObj\n });\n};\n/*******************Already registered user************************************** */\n\nconst sendOkForAlreadyRegisteredUser = (getState) => ajax({\n url: constants.redirectToForgotFlowEndPoint,\n method: 'GET',\n headers: {\n 'Content-Type': 'text/plain',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId,\n },\n responseType: 'text/plain'\n});\n\nconst handleAlreadyRegisteredResponse = (response) => {\n var wnd = window.open(\"about:blank\", \"_self\");\n wnd.document.write(response.response);\n wnd.document.close();\n}\nconst redirectToLoginPage = getState => {\n const isMobile = getState.registration.mobileFlow;\n const findMeObj = Object.assign({}, getState.findMe.findMeObj);\n const url = getState.registration.returnUrl;\n const organizationId = getState.registration.organizationId\n if (findMeObj.alreadyRegistered) {\n return sendOkForAlreadyRegisteredUser(getState).pipe(map(response => handleAlreadyRegisteredResponse(response)),\n catchError(err => [(getErrorMessage(err))]));\n } else if (isMobile) {\n closeMobileContainer(); //this is part of index.html\n return true;\n } else {\n return window.open(unescape(WindowUtil.validateRtnUrl(decodeURIComponent(url), organizationId)), '_self');\n }\n}\n/*********************************Update radio option value******************************************************* */\n\nconst updateRadioChangeInfo = (payload, getState) =>\n updateRadioChangeInfoHandler(payload, getState)\n .pipe(map(setFindMeFieldSuccess));\n\n const updateRadioChangeInfoHandler = (payload,getState) =>{\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n findMeObj.showAlert = false;\n findMeObj.showAlertMessage = '';\n findMeObj.contractorEnableFlag = false;\n if(getState.registration.contractorEnableFlag){\n findMeObj.contractorEnableFlag = true;\n }\n if (payload === constants.EMAIL_PHONE_RADIO) {\n findMeObj.page = constants.EMAILPHONESEARCH_PAGE;\n findMeObj.radioOption = constants.EMAIL_PHONE_RADIO;\n if(findMeObj.sivOptions !== undefined && findMeObj.sivOptions !== null) {\n findMeObj.sivOptions[\"siv_firstname\"].idenDataValue = '';\n findMeObj.sivOptions[\"siv_lastname\"].idenDataValue = '';\n findMeObj.sivOptions[\"siv_empid\"].idenDataValue = '';\n } \n let code = '';\n return of({\n findMeObj,code\n });\n } else {\n findMeObj.page = constants.PII_PAGE;\n findMeObj.radioOption = constants.PII_RADIO; \n return of({\n findMeObj\n });\n } \n }\n\n/***********************************Init load Contractor otions********************************************** */\n\nconst getContractorOptions = (getState) =>\n getContractorOptionsApi(getState)\n .pipe(map(response => handleContractorOptionsResponse(response.response, getState)),\n catchError(err => [setFindMeFieldFail(getErrorMessage(err))]));\n\nconst getContractorOptionsApi = (getState) => ajax({\n url: constants.contractorOptionsEndPoint,\n method: 'POST',\n responseType: 'json',\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\nconst handleContractorOptionsResponse = (response, getState) => {\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n findMeObj = {};\n findMeObj.isCodelessVariant = getState.registration.codelessVariantEnabled;\n findMeObj.progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Search, getState);\n findMeObj.showDiv = true;\n let showModalWarn = false;\n let showModalTitle = null;\n let showModalMessage = null;\n\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = null;\n\n let contractorSivObj = Object.assign({}, getState.findMe.contractorSivObj);\n contractorSivObj.showMultiOrgs = false;\n if (response.sivOptions !== null && response.sivOptions !== undefined) {\n contractorSivObj.sivOptions = response.sivOptions;\n contractorSivObj.sivOptionsCalenderItems = response.sivOptionsCalenderItems;\n findMeObj.page = constants.CONTRACTOR_PAGE;\n contractorSivObj.radioOption = constants.SSN;\n contractorSivObj.firstNameValid = true;\n contractorSivObj.lastNameValid = true;\n contractorSivObj.zipcodeValid = true;\n contractorSivObj.ssnValid = true;\n contractorSivObj.tinValid = true;\n contractorSivObj.companyNameValid = true;\n gaCategory = \"WEB_REG_CODELESS_CONTRACTOR\";\n let pagePath = '/ssr/flowType/findme/contractor';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REG_CODELESS_CONTRACTOR\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROWSER_REG_CODELESS_CONTRACTOR\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView); \n } else {\n showModalMessage = getState.intl.messages['Err_SystemErrorinRequest'];\n showModalWarn = true;\n showModalTitle = getState.intl.messages['Txt_VGeneralErrorWindowTitle'];\n return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, findMeObj\n });\n }\n return setFindMeFieldSuccess({\n findMeObj, contractorSivObj, gaCategory, isMobileBrowser, isMobile\n });\n}\n\n/****************SIV options page ********************/\n\nconst setContractorSivField = (payload, getState) =>\n validateAndSetContractorSivField(payload, getState)\n .pipe(map(setSivFieldSuccessSent),\n catchError(err => [handleSetContractorSivFail(payload, getState,getErrorMessage(err))]));\n \nconst validateAndSetContractorSivField = (payload, getState) => {\n let contractorSivObj = Object.assign({}, getState.findMe.contractorSivObj);\n \n switch (payload.fieldKey) {\n case constants.RADIO : {\n return of({\n contractorSivObj,\n radioValue : payload.fieldValue\n });\n }\n case contractorSivObj.sivOptions['siv_firstname'].idenDataId : {\n const firstNameRegex = new RegExp(contractorSivObj.sivOptions['siv_firstname'].regExp);\n\n if (isBlank(payload.fieldValue) || firstNameRegex.test(payload.fieldValue)) {\n contractorSivObj.firstName = payload.fieldValue;\n contractorSivObj.firstNameValid = true;\n return of({\n contractorSivObj\n });\n }\n return throwError(new Error(contractorSivObj.sivOptions['siv_firstname'].invalidMessage));\n }\n case contractorSivObj.sivOptions['siv_lastname'].idenDataId : {\n const lastNameRegex = new RegExp(contractorSivObj.sivOptions['siv_lastname'].regExp);\n\n if (isBlank(payload.fieldValue) || lastNameRegex.test(payload.fieldValue)) {\n contractorSivObj.lastName = payload.fieldValue;\n contractorSivObj.lastNameValid = true;\n return of({\n contractorSivObj\n });\n }\n return throwError(new Error(contractorSivObj.sivOptions['siv_lastname'].invalidMessage));\n }\n case contractorSivObj.sivOptions['siv_ssn'].idenDataId : {\n const ssnRegex = new RegExp(contractorSivObj.sivOptions['siv_ssn'].regExp);\n\n if (isBlank(payload.fieldValue) || ssnRegex.test(payload.fieldValue)) {\n var replacedSSN = payload.fieldValue.replace(/-/g, \"\");\n contractorSivObj.ssn = replacedSSN;\n contractorSivObj.ssnValid = true;\n contractorSivObj.tin = '';\n contractorSivObj.companyName = '';\n return of({\n contractorSivObj\n });\n }\n return throwError(new Error(contractorSivObj.sivOptions['siv_ssn'].invalidMessage));\n }\n case contractorSivObj.sivOptions['siv_tin'].idenDataId : {\n const tinRegex = new RegExp(contractorSivObj.sivOptions['siv_tin'].regExp);\n\n if (isBlank(payload.fieldValue) || tinRegex.test(payload.fieldValue)) {\n contractorSivObj.tin = payload.fieldValue;\n contractorSivObj.tinValid = true;\n contractorSivObj.ssn = ''\n return of({\n contractorSivObj\n });\n }\n return throwError(new Error(contractorSivObj.sivOptions['siv_tin'].invalidMessage));\n }\n case contractorSivObj.sivOptions['siv_zipcode'].idenDataId : {\n const zipcodeRegex = new RegExp(contractorSivObj.sivOptions['siv_zipcode'].regExp);\n\n if (isBlank(payload.fieldValue) || zipcodeRegex.test(payload.fieldValue)) {\n contractorSivObj.zipcode = payload.fieldValue;\n contractorSivObj.zipcodeValid = true;\n return of({\n contractorSivObj\n });\n }\n return throwError(new Error(contractorSivObj.sivOptions['siv_zipcode'].invalidMessage));\n }\n case contractorSivObj.sivOptions['siv_companyname'].idenDataId : {\n const companynameRegex = new RegExp(contractorSivObj.sivOptions['siv_companyname'].regExp);\n\n if (isBlank(payload.fieldValue) || companynameRegex.test(payload.fieldValue)) {\n contractorSivObj.companyName = payload.fieldValue;\n contractorSivObj.companyNameValid = true;\n contractorSivObj.ssn = '';\n return of({\n contractorSivObj\n });\n }\n return throwError(new Error(contractorSivObj.sivOptions['siv_companyname'].invalidMessage));\n }\n case constants.SIV_MONTH: {\n contractorSivObj.fullMonth = payload.fieldValue;\n contractorSivObj.fullDay = '';\n return of({\n contractorSivObj\n });\n }\n case constants.SIV_DAY: {\n contractorSivObj.fullDay = payload.fieldValue;\n return of({\n contractorSivObj\n });\n }\n case constants.SIV_YEAR: {\n contractorSivObj.fullYear = payload.fieldValue;\n return of({\n contractorSivObj\n });\n }\n }\n}; \n\nconst handleSetContractorSivFail = (payload,getState, errorMessage) => {\n let contractorSivObj = Object.assign({}, getState.findMe.contractorSivObj);\n\n switch (payload.fieldKey) {\n case contractorSivObj.sivOptions[\"siv_firstname\"].idenDataId:{\n contractorSivObj.firstNameValid = false;\n contractorSivObj.firstNameErrorMsg = errorMessage;\n contractorSivObj.firstName = payload.fieldValue;\n return setSivFieldFailSent({\n contractorSivObj\n });\n }\n case contractorSivObj.sivOptions[\"siv_lastname\"].idenDataId:{\n contractorSivObj.lastNameValid = false;\n contractorSivObj.lastNameErrorMsg = errorMessage;\n contractorSivObj.lastName = payload.fieldValue;\n return setSivFieldFailSent({\n contractorSivObj\n });\n }\n case contractorSivObj.sivOptions[\"siv_ssn\"].idenDataId:{\n contractorSivObj.ssnValid = false;\n contractorSivObj.ssnErrorMsg = errorMessage;\n contractorSivObj.ssn = payload.fieldValue;\n return setSivFieldFailSent({\n contractorSivObj\n });\n }\n case contractorSivObj.sivOptions[\"siv_tin\"].idenDataId:{\n contractorSivObj.tinValid = false;\n contractorSivObj.tinErrorMsg = errorMessage;\n contractorSivObj.tin = payload.fieldValue;\n return setSivFieldFailSent({\n contractorSivObj\n });\n }\n case contractorSivObj.sivOptions[\"siv_zipcode\"].idenDataId:{\n contractorSivObj.zipcodeValid = false;\n contractorSivObj.zipcodeErrorMsg = errorMessage;\n contractorSivObj.zipcode = payload.fieldValue;\n return setSivFieldFailSent({\n contractorSivObj\n });\n } \n case contractorSivObj.sivOptions[\"siv_companyname\"].idenDataId:{\n contractorSivObj.companyNameValid = false;\n contractorSivObj.companyNameErrorMsg = errorMessage;\n contractorSivObj.companyName = payload.fieldValue;\n return setSivFieldFailSent({\n contractorSivObj\n });\n }\n default: {\n return setSivFieldFailSent({\n errorMessage,\n });\n }\n }\n};\n\n/***********************************Verify Contractor SIV data*********************************************** */\n\nconst verifyContractorSivData = (getState) =>\n verifyContractorSivOptions(getState)\n .pipe(map(response => handleVerifyContractorSivResponse(response.response, getState)),\n catchError(err => [setFindMeFieldFail(getErrorMessage(err))]));\n\nconst verifyContractorSivOptions = (getState) => {\n let contractorSivObj = Object.assign({}, getState.findMe.contractorSivObj);\n const sivOptions = contractorSivObj.sivOptions;\n let firstName = '';\n if (sivOptions.siv_firstname && contractorSivObj.firstName != '') {\n firstName = contractorSivObj.firstName;\n ReactGA.sendevent(getState.findMe.gaCategory, 'SUBMITTED', 'FIRST_NAME');\n }\n let lastName = '';\n if (sivOptions.siv_lastname && contractorSivObj.lastName != '') {\n lastName = contractorSivObj.lastName;\n ReactGA.sendevent(getState.findMe.gaCategory, 'SUBMITTED', 'LAST_NAME');\n }\n let zipcode = '';\n if (sivOptions.siv_zipcode && contractorSivObj.zipcode != '') {\n zipcode = contractorSivObj.zipcode;\n ReactGA.sendevent(getState.findMe.gaCategory, 'SUBMITTED', 'ZIP_CODE');\n }\n let fulldob = '';\n if (sivOptions.siv_fullhiredate && contractorSivObj.fullDay != '') {\n ReactGA.sendevent(getState.findMe.gaCategory, 'SUBMITTED', 'HIRE_DATE');\n var inputmonthId = contractorSivObj.sivOptionsCalenderItems.fullMonthItems.indexOf(contractorSivObj.fullMonth) + 1;\n inputmonthId = ('0' + inputmonthId).slice(-2);\n fulldob = '' + contractorSivObj.fullYear + \"-\" + inputmonthId + \"-\" + contractorSivObj.fullDay;\n }\n let legalId = '';\n if (sivOptions.siv_ssn && contractorSivObj.ssn != '') {\n legalId = contractorSivObj.ssn;\n ReactGA.sendevent(getState.findMe.gaCategory, 'SUBMITTED', 'SSN');\n }\n if (sivOptions.siv_tin && contractorSivObj.tin != '') {\n legalId = contractorSivObj.tin;\n ReactGA.sendevent(getState.findMe.gaCategory, 'SUBMITTED', 'TIN');\n }\n let companyName = '';\n if (sivOptions.siv_companyname && contractorSivObj.companyName != '') {\n companyName = contractorSivObj.companyName;\n ReactGA.sendevent(getState.findMe.gaCategory, 'SUBMITTED', 'COMPANY_NAME');\n }\n var payload = {};\n if(sivOptions.siv_ssn && contractorSivObj.ssn != '') {\n payload= {\n 'firstName': firstName,\n 'lastName': lastName,\n 'hireDate': fulldob,\n 'legalIdentifier': legalId,\n 'zipCode': zipcode,\n 'radioOptionValue':constants.SSN\n }\n }\n if(sivOptions.siv_tin && contractorSivObj.tin != '') {\n payload= {\n 'firstName': firstName,\n 'lastName': lastName,\n 'hireDate': fulldob,\n 'legalIdentifier': legalId,\n 'zipCode': zipcode,\n 'companyName': companyName,\n 'radioOptionValue':constants.TIN\n }\n }\n\n return ajax({\n url: constants.verifyContractorSivEndPoint,\n body: payload,\n method: 'POST',\n responseType: 'json',\n headers: {\n 'Content-Type': 'application/json',\n \"cache-control\": \"no-cache\",\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n });\n};\n \nconst handleVerifyContractorSivResponse = (response, getState) => {\n let contractorSivObj = Object.assign({}, getState.findMe.contractorSivObj);\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = null;\n\n if (response.code === constants.SUCCESS) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'VERIFY_CONTRACTOR_SIV', 'SUCCESS');\n //when identity verification is success and multiorgs found\n if (response.clientNames != undefined && response.clientNames != null) {\n // progress bar start\n findMeObj.progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Identification, getState);\n // progress bar end\n ReactGA.sendevent(getState.findMe.gaCategory, 'VERIFY_CONTRACTOR_SIV_SUBMIT', 'MULTI_ORG');\n var multiOrgs = [];\n var multiOrgIndex = [];\n let k = 0;\n for (var key in response.clientNames) {\n multiOrgs[k] = response.clientNames[key];\n multiOrgIndex[k] = key;\n k++;\n }\n contractorSivObj.showAlert = false;\n contractorSivObj.showAlertMessage = '';\n contractorSivObj.multiOrgs = multiOrgs;\n contractorSivObj.multiOrgIndex = multiOrgIndex;\n contractorSivObj.showMultiOrgs = true;\n gaCategory = \"WEB_REG_CONTRACTOR_MULTIORG\";\n let pagePath = '/ssr/flowType/contractor/multiorg';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REG_CONTRACTOR_MULTIORG\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROWSER_REG_CONTRACTOR_MULTIORG\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView);\n\n return setFindMeFieldSuccess({\n findMeObj, contractorSivObj, gaCategory , isMobile , isMobileBrowser\n });\n }\n //when identity verification is success and single usercase-> call contractorverifyUser\n contractorSivObj.showMultiOrgs = false;\n contractorSivObj.verifyUserCall = true;\n return setFindMeFieldSuccess({\n contractorSivObj\n });\n }\n //when identity verification fails\n if (response.code != null) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'VERIFY_CONTRACTOR_SIV', response.code);\n if (response.code === constants.FINDME_USER_NOT_FOUND) {\n contractorSivObj.showAlert = true;\n contractorSivObj.showAlertMessage = response.message;\n return verifySivDataSuccessSent({\n contractorSivObj\n });\n }\n if (response.code === constants.ALREADY_REGISTERED) {\n findMeObj.alreadyRegistered = true;\n return cancelAndRedirectSuccess ({\n findMeObj \n })\n }\n }\n \n if (response.title !== undefined && response.message !== undefined) {\n contractorSivObj.ssn = '';\n return verifySivDataSuccessSent({\n showModalWarn: true,\n showModalTitle: response.title,\n showModalMessage: response.message,\n contractorSivObj\n });\n }\n\n ReactGA.sendevent(getState.findMe.gaCategory, 'VERIFY_CONTRACTOR_SIV_SUBMIT', 'FAILED');\n return verifySivDataSuccessSent({\n showModalMessage: getState.intl.messages['Err_SystemErrorinRequest'],\n showModalWarn: true, \n showModalTitle: getState.intl.messages['Txt_VGeneralErrorWindowTitle'], findMeObj,emailPhoneSearchSivObj\n });\n};\n\n/********************************Contractor Multi orgs- org selected api****************************************************** */\n\nconst contractorOrgSelected = (payload, getState) => {\n var selectedOrgIndex = getState.findMe.contractorSivObj.multiOrgIndex[payload];\n var selectedOrg = getState.findMe.contractorSivObj.multiOrgs[payload]\n return contractorOrgSelectedApi(selectedOrgIndex, getState)\n .pipe(map(response => contractorOrgSelectedHandler(response.response,selectedOrg , getState)),\n catchError(err => [setFindMeFieldFail(getErrorMessage(err))]));\n}\n\n\nconst contractorOrgSelectedApi = (payload, getState) => ajax({\n url: constants.contractorMultiOrgApiEndPoint,\n method: 'POST',\n responseType: 'json',\n body: payload,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\nconst contractorOrgSelectedHandler = (response,selectedOrg, getState) => {\n let contractorSivObj = Object.assign({}, getState.findMe.contractorSivObj);\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n let showModalWarn = false;\n let showModalTitle = null;\n let showModalMessage = null;\n let code = response.code || \"500\";\n if (code == constants.SUCCESS) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'ORG_PAGE', 'SUCCESS');\n contractorSivObj.verifyUserCall = true;\n }\n else if (code === constants.ALREADY_REGISTERED) {\n findMeObj.alreadyRegistered = true;\n return cancelAndRedirectSuccess ({\n findMeObj \n })\n }\n else if (response.message !== null && response.title !== null) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'ORG_PAGE', 'FAILED');\n showModalMessage = response.message;\n showModalWarn = true;\n showModalTitle = response.title;\n return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, contractorSivObj\n });\n }\n else {\n ReactGA.sendevent(getState.findMe.gaCategory, 'ORG_PAGE', 'FAILED');\n showModalMessage = getState.intl.messages['Err_SystemErrorinRequest'];\n showModalWarn = true;\n showModalTitle = getState.intl.messages['Txt_VGeneralErrorWindowTitle'];\n return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, contractorSivObj\n });\n }\n return setFindMeFieldSuccess({\n contractorSivObj\n });\n}\n/************************************contractor verifyUser call details********************************************* */\n\nconst contractorVerifyUserInfo = (getState) => contractorVerifyUserApi(getState).pipe(map(response => handleContractorVerifyUserResponse(response.response, getState)),\n catchError(err => [(getErrorMessage(err))]));\n\nconst contractorVerifyUserApi = (getState) => ajax({\n url: constants.contractorPodRedirectionEndPoint,\n method: 'POST',\n responseType: 'json',\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\nconst handleContractorVerifyUserResponse = (response, getState) => {\n let contractorSivObj = Object.assign({}, getState.findMe.contractorSivObj);\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n let showModalWarn = false;\n let showModalTitle = null;\n let showModalMessage = null;\n let code = response.code || \"500\";\n\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n contractorSivObj.verifyUserCall = false;\n //if code is success then redirect to verifyPRC page\n if(code === constants.SUCCESS && response.viewId.indexOf(constants.ERROR) == -1) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'CONTRACTOR_VERIFY_USER', 'SUCCESS');\n // progress bar start\n findMeObj.progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Identification, getState);\n // progress bar end\n findMeObj.clientName = response.clientName;\n findMeObj.firstName = response.firstName;\n contractorSivObj.showAlert = false;\n contractorSivObj.showAlertMessage = '';\n return setFindMeFieldSuccess({\n viewId: response.viewId,\n findMeObj,contractorSivObj,\n sendRedirect:true\n });\n }\n else if (code === constants.ALREADY_REGISTERED) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'CONTRACTOR_VERIFY_USER', 'FAILED');\n findMeObj.alreadyRegistered = true;\n return cancelAndRedirectSuccess ({\n findMeObj \n })\n }\n else if (response.message != null && response.title != null) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'CONTRACTOR_VERIFY_USER', 'FAILED');\n showModalMessage = response.message;\n showModalWarn = true;\n showModalTitle = response.title;\n return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, contractorSivObj\n });\n }\n else if (response.message != null) {\n ReactGA.sendevent(getState.findMe.gaCategory, 'CONTRACTOR_VERIFY_USER', 'ERROR');\n contractorSivObj.showAlertMessage = response.message;\n showModalWarn = false;\n contractorSivObj.showAlert = true;\n return setFindMeFieldSuccess({\n showModalWarn, contractorSivObj\n });\n }\n else {\n ReactGA.sendevent(getState.findMe.gaCategory, 'CONTRACTOR_VERIFY_USER', 'FAILED');\n showModalMessage = getState.intl.messages['Err_SystemErrorinRequest'];\n showModalWarn = true;\n showModalTitle = getState.intl.messages['Txt_VGeneralErrorWindowTitle'];\n return setFindMeFieldSuccess({\n showModalMessage, showModalWarn, showModalTitle, contractorSivObj\n });\n }\n \n}\n\nconst registrationLessFlow = (ajax, getState) => registrationLessFlowApi(ajax, getState).pipe(\n map(response => handleReglessRedirectResponse(response.response, getState)),\n catchError(err => [getFindMeFailureEpic(getErrorMessage(err))]),\n);\n\nconst registrationLessFlowApi = (ajax, getState) => ajax({\n url: constants.getRegistrationlessEndPoint,\n method: 'POST',\n responseType: 'json',\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId,\n },\n});\n\nconst handleReglessRedirectResponse = (response, getState) => {\n const findMeObj = Object.assign({}, getState.findMe.findMeObj);\n const url = response.targetUrl;\n const showAlert = false;\n let showModalTitle = null;\n let showModalMessage = null;\n let errorCode = null;\n if (response.code == constants.SUCCESS && url !== undefined) {\n // ReactGA.sendevent(getState.findMe.gaCategory, 'REGISTRATION_LESS', 'SUCCESS');\n \n Cookies.set(constants.FIRSTNAME_COOKIE, findMeObj.firstName, {\n expires: constants.cookieExpiry,\n domain: constants.cookieDomain,\n path: constants.cookiePath,\n });\n let spInfoData = findMeObj.clientName + '~' + response.mobifedUrl;\n Cookies.set(constants.SPINFO_COOKIE, spInfoData, {\n expires: constants.cookieExpiry,\n domain: constants.cookieDomain,\n path: constants.cookiePath,\n });\n return window.open(url, '_self');\n } else if (response.code == constants.TYPE_UNAUTHORIZED && response.title != undefined && response.title != null) {\n showModalTitle = response.title;\n showModalMessage = response.message;\n errorCode = response.code;\n } else {\n showModalTitle = getState.intl.messages['registrationless.errorTitle'];\n showModalMessage = getState.intl.messages['registrationless.errorMessage'];\n errorCode = '';\n }\n\n findMeObj.showReglessModalWarn = true;\n findMeObj.errorCode = errorCode;\n\n ReactGA.sendevent(getState.findMe.gaCategory, 'REGISTRATION_LESS', 'FAILED');\n return setFindMeFieldSuccess({\n findMeObj,\n showModalMessage,\n showModalTitle,\n showAlert,\n errorCode\n });\n};\n \nconst continueRegistration = (getState) =>\n continueRegistrationFlowRes(getState)\n .pipe(map(response => continueRegistrationFlowHandler(response, getState)),\n catchError(err => [setFindMeFieldFail(getErrorMessage(err))]));\n\nconst continueRegistrationFlowRes = (getState) => {\n let findMeObj = Object.assign({}, getState.findMe.findMeObj);\n let viewId = getState.findMe.viewId;\n if(findMeObj.emailSearchFed === true) {\n viewId = constants.findMeViewId;\n if(getState.findMe.emailPhoneSearchSivObj !== undefined && getState.findMe.emailPhoneSearchSivObj.sivOptions !== undefined && getState.findMe.emailPhoneSearchSivObj.sivOptions !== null) {\n findMeObj.page = constants.EMAIL_PHONE_SIV_PAGE;\n } else {\n findMeObj.page = constants.OTP_PAGE;\n }\n }\n return of({\n findMeObj, viewId\n });\n}\nconst continueRegistrationFlowHandler = (response,getState) => {\n let findMeObj = response.findMeObj;\n let viewId = response.viewId;\n // let sendRedirect = true;\n return continueRegistrationSuccess({\n findMeObj, viewId\n });\n}\n/********************************** Epics declarations ******************************************** */\n\nexport const getFindMeInfoEpic = (action$, state) => action$.pipe(\n ofType(FIND_ME_INFO_OPTIONS),\n switchMap(action => sendingAsyncRequest(getFindMeInfo(state.value))));\n\nexport const updateFieldValueEpic = (action$, state) => action$.pipe(\n ofType(FIND_ME_UPDATE_FIELD_VALUE),\n switchMap(action => sendingAsyncRequest(updateFieldValue(action.payload, state.value))));\n\nexport const submitIdentityOptionsEpic = (action$, state) => action$.pipe(\n ofType(FIND_ME_SUBMIT_IDENTITY_OPTIONS),\n switchMap(action => sendingAsyncRequest(submitIdentityOptions(state.value))));\n\nexport const resendOTPEpic = (action$, state) => action$.pipe(\n ofType(FIND_ME_RESEND_OTP),\n switchMap(action => sendingAsyncRequest(resendOTP(action.payload, state.value))));\n\nexport const cancelAndCheckYourEntriesEpic = (action$, state) => action$.pipe(\n ofType(CANCEL_FINDME_AND_CHECK_YOUR_ENTRIES),\n switchMap(action => sendingAsyncRequest(redirectToLoginPage(state.value))));\n\nexport const hasRegCodeEpic = (action$, state) => action$.pipe(\n ofType(FIND_ME_HAS_REG_CODE_OPTION),\n switchMap(action => sendingAsyncRequest(hasRegCode(action.payload, state.value))));\n\nexport const orgSelectedEpic = (action$, state) => action$.pipe(\n ofType(FIND_ME_ORG_SELECTED),\n switchMap(action => sendingAsyncRequest(orgSelected(action.payload, state.value))));\n\nexport const setRedirectVerifyUserEpic = (action$, state) => action$.pipe(\n ofType(FIND_ME_VERIFY_USER),\n switchMap(action => sendingAsyncRequest(verifyUserInfo(state.value))));\n\nexport const goToMainPageEpic = (action$, state) => action$.pipe(\n ofType(FIND_ME_GO_TO_MAIN_PAGE),\n switchMap(action => sendingAsyncRequest(goToMainPage(state.value))));\n\nexport const goToPiiPageEpic = (action$, state) => action$.pipe(\n ofType(FIND_ME_GO_TO_PII_PAGE),\n switchMap(action => sendingAsyncRequest(goToPiiInfoPage(state.value))));\n\nexport const goToSearchPageEpic = (action$, state) => action$.pipe(\n ofType(FIND_ME_GO_TO_SEARCH_PAGE),\n switchMap(action => sendingAsyncRequest(goToEmailPhoneSearchPage(state.value))));\n\nexport const goToErrorOptionsPageEpic = (action$, state) => action$.pipe(\n ofType(FIND_ME_GO_TO_ERROR_OPTIONS_PAGE),\n switchMap(action => sendingAsyncRequest(goToErrorOptionsPage(state.value))));\n\nexport const getContractorOptionsEpic = (action$, state) => action$.pipe(\n ofType(FIND_ME_CONTRACTOR_OPTIONS),\n switchMap(action => sendingAsyncRequest(getContractorOptions(state.value))));\n\nexport const channelSelectEpic = (action$, state) => action$.pipe(\n ofType(FIND_ME_CHANNEL_SELECT),\n switchMap(action => sendingAsyncRequest(channelSelect(action.payload, state.value))));\n\nexport const submitAccessCodeEpic = (action$, state) => action$.pipe(\n ofType(FIND_ME_VERIFY_OTP),\n switchMap(action => sendingAsyncRequest(submitAccessCode(state.value))));\n\nexport const onSetFinalSubmitEpic = (action$, state) => action$.pipe(\n ofType(ON_FINAL_FIND_ME_SUCCESS),\n switchMap(action$ => of(push(state.value.findMe.viewId))));\n\nexport const getFindMeFailureEpic = action$ => action$.pipe(\n ofType(FIND_ME_FAIL),\n switchMap(action$ => of(push('/error'))));\n\nexport const getPiiInfoEpic = (action$, state) => action$.pipe(\n ofType(FIND_ME_PII_INFO_OPTIONS),\n switchMap(action => sendingAsyncRequest(getPiiOptions(state.value))));\n\nexport const setLocaleEpic = (action$, state) => action$.pipe(\n ofType(FIND_ME_SET_LOCALE),\n switchMap(action => sendingAsyncRequest(setLocale(action.payload, state.value))));\n\nexport const onRedirectToIdentityEpic = (action$, state) => action$.pipe(\n ofType(REDIRECT_TO_IDENTITY_PAGE),\n switchMap(action => sendingAsyncRequest(redirectToIdentityPage(action.payload,state.value))));\n\nexport const onSetFinalRedirectionEpic = (action$, state) => action$.pipe(\n ofType(REDIRECT_TO_IDENTITY_PAGE_SUCCESS),\n switchMap(action$ => of(push(state.value.findMe.viewId))));\n\nexport const updateRadioEpic = (action$, state) => action$.pipe(\n ofType(UPDATE_PAGE_DETAILS),\n switchMap(action => sendingAsyncRequest(updateRadioChangeInfo(action.payload,state.value))));\n\nexport const setSivFieldEpic = (action$, state) => action$.pipe(\n ofType(SET_FINDME_SIV_FIELD),\n switchMap(action => sendingAsyncRequest(setSivField(action.payload, state.value)))); \n\nexport const verifySivDataEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_SIV_DATA),\n switchMap(action => sendingAsyncRequest(verifySivData(state.value))));\n\nexport const setContractorSivFieldEpic = (action$, state) => action$.pipe(\n ofType(SET_CONTRACTOR_SIV_FIELD),\n switchMap(action => sendingAsyncRequest(setContractorSivField(action.payload, state.value)))); \n\nexport const verifyContractorSivDataEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_CONTRACTOR_SIV_DATA),\n switchMap(action => sendingAsyncRequest(verifyContractorSivData(state.value))));\n\nexport const contractorOrgSelectedEpic = (action$, state) => action$.pipe(\n ofType(CONTRACTOR_ORG_SELECTED),\n switchMap(action => sendingAsyncRequest(contractorOrgSelected(action.payload, state.value))));\n\nexport const setRedirectContractorVerifyUserEpic = (action$, state) => action$.pipe(\n ofType(CONTRACTOR_VERIFY_USER),\n switchMap(action => sendingAsyncRequest(contractorVerifyUserInfo(state.value))));\n\nexport const setReglessRedirectEpic = (action$, state, {ajax}) => action$.pipe(\n ofType(REGISTRATION_LESS_FLOW),\n switchMap(action => sendingAsyncRequest(registrationLessFlow(ajax, state.value))),\n );\n\nexport const continueRegRedirectEpic = (action$, state, {ajax}) => action$.pipe(\n ofType(CONTINUE_REGISTRATION_FLOW),\n switchMap(action => sendingAsyncRequest(continueRegistration(state.value))),\n );\n\nexport const onSetContinueRegEpic = (action$, state) => action$.pipe(\n ofType(CONTINUE_REGISTRATION_FLOW_SUCCESS),\n switchMap(action$ => of(push(state.value.findMe.viewId))));","import { createAction } from 'redux-actions';\nimport { push } from 'connected-react-router';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport {\n map, switchMap, catchError, concatMap,\n} from 'rxjs/operators';\nimport { ajax } from 'rxjs/ajax';\nimport { throwError, of } from 'rxjs';\nimport { ofType } from 'redux-observable';\nimport { getErrorMessage, sendingAsyncRequest } from '../../../helpers/epics';\nimport { types } from '../find-me-mobile-actions';\nimport { ReactGA, PendoUtil } from '../../../../util';\n\nconst {\n FIND_ME_MOBILE_INFO_OPTIONS,\n FIND_ME_MOBILE_INFO_OPTIONS_SUCCESS,\n FIND_ME_MOBILE_INFO_OPTIONS_FAIL\n} = types;\n\n\nconst getFindMeMobileInfoOptionsSuccess = createAction(FIND_ME_MOBILE_INFO_OPTIONS_SUCCESS);\nconst getFindMeMobileInfoOptionsFail = createAction(FIND_ME_MOBILE_INFO_OPTIONS_FAIL);\n\n\nconst isBlank = str => (str || '').trim().length === 0;\n\n\nconst getFindMeMobileData = (getState) => {\n const isMobile = getState.registration.mobileFlow;\n let findMeMobileObj = Object.assign({}, getState.findMeMobile.findMeMobileObj);\n const contactInfoObj = Object.assign({}, getState.contactInfo.contactInfoObj);\n const findMeObj = Object.assign({}, getState.findMe.findMeObj);\n let adminMsg = getState.intl.messages['findMeMobile.contactAdmin'];\n if (contactInfoObj.contactAdminMsg != undefined && contactInfoObj.contactAdminMsg != null) {\n adminMsg = contactInfoObj.contactAdminMsg;\n }\n if (findMeObj.contactAdminMsg != undefined && findMeObj.contactAdminMsg != null) {\n adminMsg = findMeObj.contactAdminMsg;\n }\n\n\n let gaCategory = \"WEB_REGISTRATION_FIND_ME_MOBILE\";\n let pagePath = '/ssr/findMe/findMeMobile';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REGISTRATION_FIND_ME_MOBILE\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROSWER_REGISTRATION_FIND_ME_MOBILE\"; }\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n let selectedLocale = getState.intl.locale;\n if (selectedLocale != undefined) {\n findMeMobileObj.srcApple = \"images/Badges/apple_\" + selectedLocale + \".png\";\n findMeMobileObj.srcAndriod = \"images/Badges/andriod_\" + selectedLocale + \".png\";\n }\n else {\n findMeMobileObj.srcApple = \"images/Badges/apple_en.png\";\n findMeMobileObj.srcAndriod = \"images/Badges/andriod_en.png\";\n\n }\n findMeMobileObj.showDiv = true;\n findMeMobileObj.transId = getState.intl.messages['Txt_Transaction_ID'] + \": \" + getState.registration.transactionId;\n findMeMobileObj.contactAdmin = adminMsg;\n return of({\n gaCategory,\n isMobile,\n findMeMobileObj\n });\n\n}\n\n\n\n\nconst getFindMeMobileInfo = (getState) =>\n getFindMeMobileData(getState)\n .pipe(map(getFindMeMobileInfoOptionsSuccess),\n catchError(err => [getFindMeMobileInfoOptionsFail(getErrorMessage(err))]));\n\nexport const getFindMeMobileInfoEpic = (action$, state) => action$.pipe(\n ofType(FIND_ME_MOBILE_INFO_OPTIONS),\n switchMap(action => sendingAsyncRequest(getFindMeMobileInfo(state.value))),\n);\n\nexport const getFindMeMobileInfoFailureEpic = action$ => action$.pipe(\n ofType(FIND_ME_MOBILE_INFO_OPTIONS_FAIL),\n switchMap(action$ => of(push('/error'))),\n);","import { createAction } from 'redux-actions';\nimport { push } from 'connected-react-router';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport {\n map, switchMap, catchError, concatMap,\n} from 'rxjs/operators';\nimport { ajax } from 'rxjs/ajax';\nimport { throwError, of } from 'rxjs';\nimport { ofType } from 'redux-observable';\nimport { getErrorMessage, sendingAsyncRequest } from '../../../helpers/epics';\nimport { types } from '../verify-admin-actions';\nimport { constants } from '../verify-admin-constants';\nimport { ReactGA, WindowUtil, PendoUtil } from '../../../../util';\nimport Crypto from 'crypto-js';\nimport { constants as registrationConstants } from '../../registration/registration-constants';\nimport { constants as progressBarConstants } from '../../../../util/window/progress-bar-constants';\nimport { getLocaleInitialState } from '../../../../util/locale';\n\nconst {\n VERIFY_IDENTITY_OPTIONS,\n VERIFY_IDENTITY_OPTIONS_SUCCESS,\n VERIFY_IDENTITY_OPTIONS_FAIL,\n ENABLE_ADMIN_FLOW_SUBMIT_BUTTON,\n CANCEL_ADMIN_FLOW_AND_CHECK_YOUR_ENTRIES,\n FETCH_DETAILS,\n SET_IDENTITY_FIELD,\n SET_IDENTITY_FIELD_SUCCESS,\n SET_IDENTITY_FIELD_FAIL,\n VERIFICATION_CODE_SENT,\n VERIFICATION_CODE_SENT_SUCCESS,\n VERIFY_ADMIN_OPTIONS_SUCCESS,\n VERIFY_ADMIN_RESEND_OTP\n} = types;\n\nconst verifyIdentitySuccessSent = createAction(VERIFY_IDENTITY_OPTIONS_SUCCESS);\nconst verifyIdentityFailSent = createAction(VERIFY_IDENTITY_OPTIONS_FAIL);\nconst isBlank = str => (str || '').trim().length === 0;\nconst cancelAndCheckYourEntriesSent = createAction(CANCEL_ADMIN_FLOW_AND_CHECK_YOUR_ENTRIES);\nconst fetchDetailsSent = createAction(FETCH_DETAILS);\nconst setIdentityFieldSuccessSent = createAction(SET_IDENTITY_FIELD_SUCCESS);\nconst setIdentityFieldFailSent = createAction(SET_IDENTITY_FIELD_FAIL);\nconst setAccessCodeSuccess = createAction(VERIFICATION_CODE_SENT_SUCCESS); \nconst verifyAdminOptionsSucess = createAction(VERIFY_ADMIN_OPTIONS_SUCCESS);\n\n/**********************Fetch firstname and lastname frm sivoptions**********************/\nconst fetchAdminDetails = (getState) =>\n fetchDetails(getState)\n .pipe(map(response => handleMessageResponse(response, getState)),\n catchError(err => [handleMessageResponse(getErrorMessage(err))]));\n\nconst fetchDetails = (getState) => {\n console.log('fetchDetails'+getState.verifyUser.runAdminV2Flow);\n if (getState.verifyUser.runAdminV2Flow != undefined && getState.verifyUser.runAdminV2Flow === true) { \n getState.verifyAdmin.firstName = getState.verifyUser.firstName;\n getState.verifyAdmin.lastName = getState.verifyUser.lastName;\n getState.verifyAdmin.sivOptions = getState.verifyUser.sivOptions;\n getState.verifyAdmin.viewId = getState.verifyUser.viewId;\n return of({\n firstName: getState.verifyAdmin.firstName,\n lastName: getState.verifyAdmin.lastName,\n sivOptions: getState.verifyAdmin.sivOptions,\n viewId : getState.verifyAdmin.viewId\n });\n }\n return of({\n firstName: '',\n lastName: ''\n });\n}\n\nconst handleMessageResponse = (response, getState) => {\n const isMobile = getState.registration.mobileFlow;\n let isMobileBrowser = true;\n if (window.innerWidth <= 479 && isMobile) isMobileBrowser = false;\n let gaCategory = \"WEB_REGISTRATION_VERIFY_ADMIN\";\n let pagePath = '/ssr/flowType/verifyAdminForm';\n let pageView = pagePath + \"/web\";\n if (isMobile) { pageView = pagePath + \"/mobile\"; gaCategory = \"MOBILE_REGISTRATION_VERIFY_ADMIN\"; }\n if (window.innerWidth <= 479 && isMobile == false) { pageView = pagePath + \"/mobilebrowser\"; gaCategory = \"MOBILEBROSWER_REGISTRATION_VERIFY_ADMIN\"; }\n\n ReactGA.pageview(pageView);\n PendoUtil.pendoUpdate(pageView)\n \n getState.registration.currentStage = WindowUtil.getProgressBarViewId(response.viewId);\n // progress bar start\n let progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Identification, getState);\n // progress bar end\n \n return verifyIdentityFailSent({\n isMobile,\n isMobileBrowser,\n gaCategory,\n progressBarData,\n firstName : getState.verifyAdmin.firstName,\n lastName : getState.verifyAdmin.lastName,\n sivOptions : getState.verifyAdmin.sivOptions\n });\n}\n\n\n/**********************Set the values to the fields**********************/\n\nconst setIdentityField = (payload, getState) =>\n validateAndSetIdentityField(payload, getState)\n .pipe(map(setIdentityFieldSuccessSent),\n catchError(err => [handleSetIdentityFieldFailResponse(payload, getErrorMessage(err))]));\n\nconst validateAndSetIdentityField = (payload, getState) => {\n \n const verifyAdmin = getState.verifyAdmin;\n\n switch (payload.fieldkey) {\n \n case constants.SIV_SSN4: {\n const ssn4RegEx = new RegExp(\"^[0-9]{4}$\");\n\n if (isBlank(payload.fieldValue) || ssn4RegEx.test(payload.fieldValue)) {\n return of({\n ssn4: payload.fieldValue,\n ssn4Valid: true,\n errorTitle:''\n });\n }\n return throwError(new Error(verifyAdmin.sivOptions.availableSivOptions.siv_ssn4.invalidMessage));\n }\n case constants.MOBILE: {\n const dialCode = payload.fieldValue.selectedCountry.dialCode;\n const pos = dialCode.length;\n const number = payload.fieldValue.formattedNumber.replace(/\\D/g, '').slice(pos);\n const iso2Code = payload.fieldValue.selectedCountry.iso2;\n\n return of({\n mobilePhone: number,\n mobilePhoneValid: payload.fieldValue.isValid,\n countryCode: iso2Code,\n errorTitle:''\n });\n }\n case constants.OTP_CODE: {\n return of({\n verificationCode: payload.fieldValue,\n codeValid: true,\n errorTitle:'',\n showAlertMessage:''\n });\n }\n default: {\n return throwError(new Error(constants.TROUBLE_SHOOT_MSG));\n }\n }\n};\n\nconst handleSetIdentityFieldFailResponse = (payload, errorMessage) => {\n switch (payload.fieldkey) {\n \n case constants.SIV_SSN4:\n return setIdentityFieldFailSent({\n errorMessageSsn4: errorMessage,\n ssn4: payload.fieldValue,\n ssn4Valid: false,\n });\n \n default: {\n return setIdentityFieldFailSent({\n errorMessage,\n });\n }\n }\n};\n\n/**********************Validate mobile and ssn options**********************/\n\nconst submitIdentityOptions = (getState) =>\n verifyIdentityOptions(getState)\n .pipe(map(response => handleSubmitIdentityResponse(response.response, getState)),\n catchError(err => [handleSubmitFailIdentityResponse(getErrorMessage(err))]));\n\nconst verifyIdentityOptions = (getState) => {\n const verifyAdmin = getState.verifyAdmin;\n const sivOptions = verifyAdmin.sivOptions;\n const gaCategory = verifyAdmin.gaCategory; \n \n ReactGA.sendevent(gaCategory, 'SUBMITTED', 'SSN4'); \n var encryptedSsn4 = Crypto.AES.encrypt(verifyAdmin.ssn4, registrationConstants.registrationEncryption); \n\n if(getState.verifyAdmin.prevNumber === getState.verifyAdmin.mobilePhone && \n getState.verifyAdmin.prevCountryCd === getState.verifyAdmin.countryCode && \n getState.verifyAdmin.prevSsn4 === getState.verifyAdmin.ssn4) {\n let message = getState.verifyAdmin.prevErrorMsg;\n if(message !== undefined && message === '') {\n message = getState.intl.messages['findMe.sivpage.single.notFoundInfo'];\n }\n return throwError(new Error(message));\n }\n return ajax({\n url: constants.validateMobileAndSSN,\n body: {\n 'ssn4': encryptedSsn4+'',\n 'mobile': verifyAdmin.mobilePhone,\n 'countryCd': verifyAdmin.countryCode\n },\n method: 'POST',\n responseType: 'json',\n headers: {\n 'Content-Type': 'application/json',\n \"cache-control\": \"no-cache\",\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n });\n};\n\nconst handleSubmitFailIdentityResponse = (errorMessage) => { \n return verifyIdentityFailSent({\n errorTitle: errorMessage,\n ssn4: ''\n });\n}\n\nconst handleSubmitIdentityResponse = (response, getState) => {\n const verifyAdmin = getState.verifyAdmin;\n const gaCategory = verifyAdmin.gaCategory; \n let showVerifyCode = false;\n let prevNumber = getState.verifyAdmin.mobilePhone;\n let prevCountryCd = getState.verifyAdmin.countryCode;\n let prevSsn4 = getState.verifyAdmin.ssn4;\n let prevErrorMsg = '';\n\n if (response.code != null && response.code == constants.ALREADY_REGISTERED) {\n ReactGA.sendevent(gaCategory, 'VERIFY_ADMIN', response.code); \n return cancelAndCheckYourEntriesSent({\n errorCode : response.code\n })\n }\n\n if (response.viewId.indexOf(constants.ERROR) == -1 && response.viewId === '/generateOtp') { \n ReactGA.sendevent(gaCategory, 'VERIFY_ADMIN', 'SUCCESS'); \n return verifyIdentitySuccessSent({\n showVerifyCode: false\n });\n }\n\n if (response.title != null && response.message != null) {\n console.log('response.message=' + response.message);\n return verifyIdentityFailSent({\n showErrorModal: true,\n showModalMessage: response.message,\n showModalTitle: response.title,\n ssn4: '',\n errorCode: response.code\n });\n }\n\n if (response.code != null) {\n console.log('response.message=' + response.message);\n let message = response.message;\n if(response.code === constants.Err_VerifyIntegrationFailed) {\n message = getState.intl.messages['findMe.sivpage.single.notFoundInfo'];\n }\n return verifyIdentityFailSent({\n showErrorModal: false,\n errorTitle: message,\n ssn4: '',\n prevNumber,\n prevCountryCd,\n prevSsn4,\n prevErrorMsg : message\n });\n }\n};\n\n/**********************Generate code block**********************/\n\nconst generateCode = (ajax, getState) =>\n generateCodeApi(ajax, getState)\n .pipe(map(response => handleResponseIdentitySelected(response.response,getState)),\n catchError(err => [setIdentityFieldFailSent(getState, getErrorMessage(err))]));\n\nconst generateCodeApi = (ajax, getState) => {\n let contactId= 'RUN_PAYROLL_ADMIN_V2_PHONE';\n return ajax({\n url: constants.getGenerateCodeAPI,\n method: 'POST',\n responseType: 'json',\n body: contactId,\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n });\n}\nconst handleResponseIdentitySelected = (response, getState) => {\n\n let showAlert = false;\n let otpValid = true;\n let verificationCode = \"\";\n let showVerifyCode = false;\n\n if (response.code == constants.TYPE_SUCCESS) {\n let progressBarData = WindowUtil.getProgressBarData(progressBarConstants.Verify, getState);\n let showOnScreen = response.showOnScreen || false;\n /* if(showOnScreen === true) {\n verificationCode = response.accessCode;\n }*/\n let expiry = response.expiry;\n let maskedNumber = response.maskedValue;\n let accessCode = response.accessCode;\n return verifyAdminOptionsSucess({\n otpValid,verificationCode, showOnScreen, accessCode, expiry, showVerifyCode:true,viewId:'/runAdminV2',maskedNumber,progressBarData\n });\n\n }\n else {\n let showErrorModal = true;\n let showModalTitle = response.title;\n let showModalMessage = response.message;\n return setIdentitySelectedSuccess({\n showErrorModal, otcCode, showModalTitle, showModalMessage\n });\n }\n}\n\n/**********************submit otp code block**********************/\n\nconst submitAccessCode = (ajax, payload, getState) => {\n let inputPRC = getState.verifyAdmin.verificationCode;\n let consent = getState.verifyAdmin.agreeTnC;\n if (getState.verifyAdmin.isFormValid != undefined && getState.verifyAdmin.isFormValid == false)\n return of();\n return setSubmitAccessCodeApi(ajax, inputPRC,consent, getState)\n .pipe(map(response => handleResponseAccessCode(response.response, payload, getState)),\n catchError(err => [setIdentityFieldFailSent(getErrorMessage(err))]));\n}\n\nconst setSubmitAccessCodeApi = (ajax, code,consent, getState) => ajax({\n url: constants.getVerifyCodeAPI,\n method: 'POST',\n responseType: 'json',\n body: {\n 'inputPRCCode': code,\n 'tandc': consent\n },\n headers: {\n 'Content-Type': 'application/json',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId\n }\n});\n\nconst handleResponseAccessCode = (response, payload, getState) => {\n let showAlert = false;\n let codeValid = false;\n let showAlertMessage = false;\n if (response.code == constants.TYPE_SUCCESS) {\n return setAccessCodeSuccess({\n viewId: response.viewId,\n sendRedirect: true\n });\n\n }\n else {\n if (response.code == constants.TYPE_ERROR_INVALID || response.code == constants.TYPE_ERROR_EXPIRED) {\n showAlert = true;\n codeValid = false;\n showAlertMessage = response.message;\n\n return setAccessCodeSuccess({\n showAlert,\n codeValid,\n showAlertMessage\n });\n }\n else {\n let showErrorModal = true;\n let showModalTitle = response.title;\n let showModalMessage = response.message;\n return setAccessCodeSuccess({\n showErrorModal : true,\n showModalTitle,\n showModalMessage,\n errorCode : response.code\n });\n }\n }\n}\n\n/**********************Resend otp block**********************/\n\n/*const resendOTP = (ajax, getState) => {\n return generateCodeApi(ajax, getState)\n .pipe(map(response => handleResponseIdentitySelected(response.response,getState)),\n catchError(err => [setIdentityFieldFailSent(getState, getErrorMessage(err))]));\n}*/\n\n/**********************Cancel options**********************/\n\nconst redirectToLoginPage = getState => {\n const isMobile = getState.registration.mobileFlow;\n const url = getState.registration.returnUrl;\n const code = getState.verifyPic.errorCode;\n const organizationId = getState.registration.organizationId;\n if (code != null && code === constants.ALREADY_REGISTERED) {\n return sendOkForAlreadyRegisteredUser(getState).pipe(map(response => handleAlreadyRegisteredResponse(response)),\n catchError(err => [(getErrorMessage(err))]));\n }\n if (isMobile && code != constants.ALREADY_REGISTERED) {\n console.log('Entered Mobile flow');\n closeMobileContainer(); //this is part of index.html\n return true;\n } else {\n return window.open(unescape(WindowUtil.validateRtnUrl(decodeURIComponent(url), organizationId)), '_self');\n }\n}\n\nconst handleAlreadyRegisteredResponse = (response) => {\n var wnd = window.open(\"about:blank\", \"_self\");\n wnd.document.write(response.response);\n wnd.document.close();\n}\n\nconst sendOkForAlreadyRegisteredUser = (getState) => ajax({\n url: constants.redirectToForgotFlowEndPoint,\n method: 'GET',\n headers: {\n 'Content-Type': 'text/plain',\n 'cache-control': 'no-cache',\n 'X-TRANSACTIONID': getState.registration.transactionId,\n },\n responseType: 'text/plain'\n});\n\n\n\n/**********************Epic options**********************/\n\n\nexport const verifyIdentityOptionsEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_IDENTITY_OPTIONS),\n switchMap(action => sendingAsyncRequest(submitIdentityOptions(state.value))));\n\nexport const generateCodeEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(VERIFY_IDENTITY_OPTIONS_SUCCESS),\n switchMap(action => sendingAsyncRequest(generateCode(ajax, state.value))));\n\nexport const getIdentitySuccessEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_ADMIN_OPTIONS_SUCCESS),\n switchMap(action$ => of(push(state.value.verifyAdmin.viewId))));\n\nexport const verificationCodeSuccessEpic = (action$, state) => action$.pipe(\n ofType(VERIFICATION_CODE_SENT_SUCCESS),\n switchMap(action$ => of(push(state.value.verifyAdmin.viewId))));\n\nexport const verifyIdentityOptionsFailEpic = (action$, state) => action$.pipe(\n ofType(VERIFY_IDENTITY_OPTIONS_FAIL),\n switchMap(action => of()));\n\nexport const cancelAndCheckYourEntriesEpic = (action$, state) => action$.pipe(\n ofType(CANCEL_ADMIN_FLOW_AND_CHECK_YOUR_ENTRIES),\n switchMap(action => sendingAsyncRequest(redirectToLoginPage(state.value))),\n);\n\nexport const fetchAdminDetailsEpic = (action$, state) => action$.pipe(\n ofType(FETCH_DETAILS),\n switchMap(action => sendingAsyncRequest(fetchAdminDetails(state.value))));\n\nexport const setIdentityFieldEpic = (action$, state) => action$.pipe(\n ofType(SET_IDENTITY_FIELD),\n switchMap(action => sendingAsyncRequest(setIdentityField(action.payload, state.value))));\n\nexport const submitAccessCodeEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(VERIFICATION_CODE_SENT),\n switchMap(action => sendingAsyncRequest(submitAccessCode(ajax, action.payload, state.value))));\n\nexport const resendOTPEpic = (action$, state, { ajax }) => action$.pipe(\n ofType(VERIFY_ADMIN_RESEND_OTP),\n switchMap(action => sendingAsyncRequest(generateCode(ajax, state.value))),\n);\n","import { combineEpics } from 'redux-observable';\nimport { ajax } from 'rxjs/ajax';\nimport * as initialLoad from './initial-load/epics';\nimport * as registration from './registration/epics';\nimport * as identifyYourself from './identify-yourself/epics';\nimport * as verifyUser from './verify-user/epics';\nimport * as verifyUserId from './verify-user-id/epics';\nimport * as verifyUserPin from './verify-user-pin/epics';\nimport * as timeout from './timeout/epics';\nimport * as verifyPic from './verify-pic/epics';\nimport * as contactInfo from './contact-info/epics';\nimport * as registerUser from './register-user/epics';\nimport * as confirmation from './confirmation/epics';\nimport * as verifyPrc from './verify-prc/epics';\nimport * as ExternalVendor from './external-vendor/epics';\nimport * as verifyKba from './verify-kba/epics';\nimport * as verify401k from './verify-401k/epics';\nimport * as verifyBev from './verify-bev/epics';\nimport * as findMe from './find-me/epics';\nimport * as findMeMobile from './find-me-mobile/epics';\nimport * as verifyAdmin from './verify-admin/epics';\n\nconst epics = [\n ...Object.values(initialLoad),\n ...Object.values(registration),\n ...Object.values(identifyYourself),\n ...Object.values(verifyUser),\n ...Object.values(verifyUserId),\n ...Object.values(verifyUserPin),\n ...Object.values(verifyPic),\n ...Object.values(timeout),\n ...Object.values(contactInfo),\n ...Object.values(registerUser),\n ...Object.values(confirmation),\n ...Object.values(verifyPrc),\n ...Object.values(ExternalVendor),\n ...Object.values(verifyKba),\n ...Object.values(verify401k),\n ...Object.values(verifyBev),\n ...Object.values(findMe),\n ...Object.values(findMeMobile),\n ...Object.values(verifyAdmin)\n];\n\nexport const rootEpics = (...args) => combineEpics(...epics)(...args, { ajax });\n","import locale from './locale';\nimport registration from './registration';\nimport identifyYourself from './identify-yourself';\nimport verifyUser from './verify-user';\nimport verifyUserId from './verify-user-id';\nimport verifyUserPin from './verify-user-pin';\nimport sendingRequest from './sending-request';\nimport contactInfo from './contact-info';\nimport timeout from './timeout';\nimport verifyPic from './verify-pic';\nimport registerUser from './register-user';\nimport confirmation from './confirmation';\nimport verifyPrc from './verify-prc';\nimport externalVendor from './external-vendor';\nimport verifyKba from './verify-kba';\nimport verify401k from './verify-401k';\nimport verifyBev from './verify-bev';\nimport findMe from './find-me';\nimport findMeMobile from './find-me-mobile';\nimport verifyAdmin from './verify-admin';\n\nexport const reducers = {\n locale,\n registration,\n identifyYourself,\n verifyUser,\n verifyUserId,\n verifyUserPin,\n sendingRequest,\n contactInfo,\n timeout,\n verifyPic,\n registerUser,\n confirmation,\n verifyPrc,\n externalVendor,\n verifyKba,\n verify401k,\n verifyBev,\n findMe,\n findMeMobile,\n verifyAdmin\n};\n","import { applyMiddleware, createStore, combineReducers } from 'redux';\nimport { createEpicMiddleware } from 'redux-observable';\nimport { composeWithDevTools } from 'redux-devtools-extension';\nimport { createBrowserHistory } from 'history';\nimport { createMemoryHistory } from 'history';\nimport { connectRouter, routerMiddleware } from 'connected-react-router';\nimport { addLocaleData } from 'react-intl';\nimport { intlReducer } from 'react-intl-redux';\nimport thunk from 'redux-thunk';\nimport { createLogger } from 'redux-logger';\nimport { createActionCallbackOnceMiddleware } from './middlewares';\nimport { reducers, rootEpics } from './ducks';\nimport { localeData, getLocaleInitialState } from '../util/locale';\nimport { constants as initialLoadConstants } from './ducks/initial-load';\n\nconst addAppLocaleData = () => addLocaleData(localeData);\n\naddAppLocaleData();\n\nconst history = createMemoryHistory({\n\n initialEntries: [ '/loader', '/verifyUser', '/identifyYourself', '/verifyPic', '/contactInfo', '/registration', '/confirmation', '/verifyUserId', '/verifyUserPin', '/verify401k','/error',\n '/verifyAdmin' ], \n\n initialIndex: 0,\n getUserConfirmation: null\n}); \nconst initialState = {\n ...getLocaleInitialState(),\n};\n\nconst epicMiddleware = createEpicMiddleware();\nconst middlewares = [routerMiddleware(history), thunk, epicMiddleware];\n\nif (process.env.NODE_ENV === 'development') {\n middlewares.push(createLogger());\n}\n\nconst { INITIAL_LOAD_SUCCESS_ACTION_TYPES } = initialLoadConstants;\nconst store = (render) => {\n const reduxStore = createStore(\n combineReducers({ ...reducers, router: connectRouter(history), intl: intlReducer }),\n initialState,\n composeWithDevTools(\n applyMiddleware(\n ...middlewares,\n createActionCallbackOnceMiddleware(INITIAL_LOAD_SUCCESS_ACTION_TYPES, render),\n ),\n ),\n );\n\n epicMiddleware.run(rootEpics);\n\n return reduxStore;\n};\n\nexport { history, store };\n","// needed for IE\nimport '@babel/polyfill';\nimport 'custom-event-polyfill';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-intl-redux';\nimport './scss/smsess-react-ui.scss';\nimport App from './js/App';\nimport { history, store as createStore } from './js/redux/store';\nimport { actions as initialLoadActions } from './js/redux/ducks/initial-load';\n\nconst render = () => {\n ReactDOM.render(\n \n \n ,\n document.getElementById('app'),\n );};\nconst store = createStore(render);\n\nconst { initialLoad } = initialLoadActions;\n\nstore.dispatch(initialLoad());\n\n","import { without } from 'ramda';\n\nexport default (actionTypes, callback) => store => (next) => {\n let called = false;\n let pendingActionTypes = actionTypes || [];\n\n return (action) => {\n // eslint-disable-next-line callback-return\n const callbackReturn = next(action);\n\n if (!called) {\n pendingActionTypes = without(action.type, pendingActionTypes);\n if (pendingActionTypes.length === 0) {\n called = true;\n // eslint-disable-next-line callback-return\n callback();\n }\n }\n\n return callbackReturn;\n };\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Stepper = require('./Stepper');\n\nvar _Stepper2 = _interopRequireDefault(_Stepper);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Stepper2.default;","// So each country array has the following information:\n// [\n//\t\t Country name,\n//\t\t iso2 code,\n//\t\t International dial code,\n//\t\t Format (if available),\n//\t\t Order (if >1 country with same dial code),\n//\t\t Area codes (if >1 country with same dial code)\n// ]\n// var _ = require('lodash');\n\nvar rawAllCountries = [\n [\n \"Afghanistan\",\n \"af\",\n \"93\"\n ],\n [\n \"Albania\",\n \"al\",\n \"355\"\n ],\n [\n \"Algeria \",\n \"dz\",\n \"213\"\n ],\n [\n \"American Samoa\",\n \"as\",\n \"1\"\n ],\n [\n \"Andorra\",\n \"ad\",\n \"376\"\n ],\n [\n \"Angola\",\n \"ao\",\n \"244\"\n ],\n [\n \"Anguilla\",\n \"ai\",\n \"1\"\n ],\n [\n \"Antigua and Barbuda\",\n \"ag\",\n \"1\"\n ],\n [\n \"Argentina\",\n \"ar\",\n \"54\"\n ],\n [\n \"Armenia\",\n \"am\",\n \"374\"\n ],\n [\n \"Aruba\",\n \"aw\",\n \"297\"\n ],\n [\n \"Ascension Island\",\n \"ac\",\n \"247\"\n ],\n [\n \"Australia\",\n \"au\",\n \"61\",\n \"+.. ... ... ...\"\n ],\n [\n \"Austria\",\n \"at\",\n \"43\"\n ],\n [\n \"Azerbaijan\",\n \"az\",\n \"994\"\n ],\n [\n \"Bahamas\",\n \"bs\",\n \"1\"\n ],\n [\n \"Bahrain\",\n \"bh\",\n \"973\"\n ],\n [\n \"Bangladesh\",\n \"bd\",\n \"880\"\n ],\n [\n \"Barbados\",\n \"bb\",\n \"1\"\n ],\n [\n \"Belarus\",\n \"by\",\n \"375\"\n ],\n [\n \"Belgium\",\n \"be\",\n \"32\",\n \"+.. ... .. .. ..\"\n ],\n [\n \"Belize\",\n \"bz\",\n \"501\"\n ],\n [\n \"Benin\",\n \"bj\",\n \"229\"\n ],\n [\n \"Bermuda\",\n \"bm\",\n \"1\"\n ],\n [\n \"Bhutan\",\n \"bt\",\n \"975\"\n ],\n [\n \"Bolivia, Plurinational State of\",\n \"bo\",\n \"591\"\n ],\n [\n \"Bosnia and Herzegovina\",\n \"ba\",\n \"387\"\n ],\n [\n \"Botswana\",\n \"bw\",\n \"267\"\n ],\n [\n \"Brazil\",\n \"br\",\n \"55\"\n ],\n [\n \"British Indian Ocean Territory\",\n \"io\",\n \"246\"\n ],\n [\n \"Virgin Islands, British\",\n \"vg\",\n \"1\"\n ],\n [\n \"Brunei Darussalam\",\n \"bn\",\n \"673\"\n ],\n [\n \"Bulgaria\",\n \"bg\",\n \"359\"\n ],\n [\n \"Burkina Faso\",\n \"bf\",\n \"226\"\n ],\n [\n \"Burundi\",\n \"bi\",\n \"257\"\n ],\n [\n \"Cambodia\",\n \"kh\",\n \"855\"\n ],\n [\n \"Cameroon\",\n \"cm\",\n \"237\"\n ],\n [\n \"Canada\",\n \"ca\",\n \"1\",\n \"+. (...) ...-....\",\n 1\n ],\n [\n \"Cape Verde\",\n \"cv\",\n \"238\"\n ],\n [\n \"Bonaire, Sint Eustatius and Saba\",\n \"bq\",\n \"599\",\n \"\",\n 1\n ],\n [\n \"Cayman Islands\",\n \"ky\",\n \"1\"\n ],\n [\n \"Central African Republic\",\n \"cf\",\n \"236\"\n ],\n [\n \"Chad\",\n \"td\",\n \"235\"\n ],\n [\n \"Chile\",\n \"cl\",\n \"56\"\n ],\n [\n \"China\",\n \"cn\",\n \"86\",\n \"+.. ..-........\"\n ],\n [\n \"Christmas Island\",\n \"cx\",\n \"61\"\n ],\n [\n \"Cocos (Keeling) Islands\",\n \"cc\",\n \"61\"\n ],\n [\n \"Colombia\",\n \"co\",\n \"57\"\n ],\n [\n \"Comoros\",\n \"km\",\n \"269\"\n ],\n [\n \"Congo, the Democratic Republic of the\",\n \"cd\",\n \"243\"\n ],\n [\n \"Congo\",\n \"cg\",\n \"242\"\n ],\n [\n \"Cook Islands\",\n \"ck\",\n \"682\"\n ],\n [\n \"Costa Rica\",\n \"cr\",\n \"506\",\n \"+... ....-....\"\n ],\n [\n \"Côte d’Ivoire\",\n \"ci\",\n \"225\"\n ],\n [\n \"Croatia\",\n \"hr\",\n \"385\"\n ],\n [\n \"Cuba\",\n \"cu\",\n \"53\"\n ],\n [\n \"Curaçao\",\n \"cw\",\n \"599\",\n \"\",\n 0\n ],\n [\n \"Cyprus\",\n \"cy\",\n \"357\"\n ],\n [\n \"Czech Republic\",\n \"cz\",\n \"420\"\n ],\n [\n \"Denmark\",\n \"dk\",\n \"45\",\n \"+.. .. .. .. ..\"\n ],\n [\n \"Djibouti\",\n \"dj\",\n \"253\"\n ],\n [\n \"Dominica\",\n \"dm\",\n \"1\"\n ],\n [\n \"Dominican Republic\",\n \"do\",\n \"1\"\n ],\n [\n \"Ecuador\",\n \"ec\",\n \"593\"\n ],\n [\n \"Egypt\",\n \"eg\",\n \"20\"\n ],\n [\n \"El Salvador\",\n \"sv\",\n \"503\",\n \"+... ....-....\"\n ],\n [\n \"Equatorial Guinea\",\n \"gq\",\n \"240\"\n ],\n [\n \"Eritrea\",\n \"er\",\n \"291\"\n ],\n [\n \"Estonia\",\n \"ee\",\n \"372\"\n ],\n [\n \"Ethiopia\",\n \"et\",\n \"251\"\n ],\n [\n \"Falkland Islands (Malvinas)\",\n \"fk\",\n \"500\"\n ],\n [\n \"Faroe Islands\",\n \"fo\",\n \"298\"\n ],\n [\n \"Fiji\",\n \"fj\",\n \"679\"\n ],\n [\n \"Finland\",\n \"fi\",\n \"358\",\n \"+... .. ... .. ..\"\n ],\n [\n \"France\",\n \"fr\",\n \"33\",\n \"+.. . .. .. .. ..\"\n ],\n [\n \"French Guiana\",\n \"gf\",\n \"594\"\n ],\n [\n \"French Polynesia\",\n \"pf\",\n \"689\"\n ],\n [\n \"Gabon\",\n \"ga\",\n \"241\"\n ],\n [\n \"Gambia\",\n \"gm\",\n \"220\"\n ],\n [\n \"Georgia\",\n \"ge\",\n \"995\"\n ],\n [\n \"Germany\",\n \"de\",\n \"49\",\n \"+.. ... .......\"\n ],\n [\n \"Ghana\",\n \"gh\",\n \"233\"\n ],\n [\n \"Gibraltar\",\n \"gi\",\n \"350\"\n ],\n [\n \"Greece\",\n \"gr\",\n \"30\"\n ],\n [\n \"Greenland\",\n \"gl\",\n \"299\"\n ],\n [\n \"Grenada\",\n \"gd\",\n \"1\"\n ],\n [\n \"Guadeloupe\",\n \"gp\",\n \"590\",\n \"\",\n 0\n ],\n [\n \"Guam\",\n \"gu\",\n \"1\"\n ],\n [\n \"Guatemala\",\n \"gt\",\n \"502\",\n \"+... ....-....\"\n ],\n [\n \"Guernsey\",\n \"gg\",\n \"44\"\n ],\n [\n \"Guinea\",\n \"gn\",\n \"224\"\n ],\n [\n \"Guinea-Bissau\",\n \"gw\",\n \"245\"\n ],\n [\n \"Guyana\",\n \"gy\",\n \"592\"\n ],\n [\n \"Haiti\",\n \"ht\",\n \"509\",\n \"+... ....-....\"\n ],\n [\n \"Honduras\",\n \"hn\",\n \"504\"\n ],\n [\n \"Hong Kong\",\n \"hk\",\n \"852\",\n \"+... .... ....\"\n ],\n [\n \"Hungary\",\n \"hu\",\n \"36\"\n ],\n [\n \"Iceland\",\n \"is\",\n \"354\",\n \"+... ... ....\"\n ],\n [\n \"India\",\n \"in\",\n \"91\",\n \"+.. .....-.....\"\n ],\n [\n \"Indonesia\",\n \"id\",\n \"62\"\n ],\n [\n \"Iran, Islamic Republic of\",\n \"ir\",\n \"98\"\n ],\n [\n \"Iraq\",\n \"iq\",\n \"964\"\n ],\n [\n \"Ireland\",\n \"ie\",\n \"353\",\n \"+... .. .......\"\n ],\n [\n \"Isle of Man\",\n \"im\",\n \"44\"\n ],\n [\n \"Israel\",\n \"il\",\n \"972\"\n ],\n [\n \"Italy\",\n \"it\",\n \"39\",\n \"+.. ... ......\",\n 0\n ],\n [\n \"Jamaica\",\n \"jm\",\n \"1\"\n ],\n [\n \"Japan\",\n \"jp\",\n \"81\",\n \"+.. ... .. ....\"\n ],\n [\n \"Jersey\",\n \"je\",\n \"44\"\n ],\n [\n \"Jordan\",\n \"jo\",\n \"962\"\n ],\n [\n \"Kazakhstan\",\n \"kz\",\n \"7\",\n \"+. ... ...-..-..\",\n 1\n ],\n [\n \"Kenya\",\n \"ke\",\n \"254\"\n ],\n [\n \"Kiribati\",\n \"ki\",\n \"686\"\n ],\n [\n \"Kuwait\",\n \"kw\",\n \"965\"\n ],\n [\n \"Kyrgyzstan\",\n \"kg\",\n \"996\"\n ],\n [\n \"Lao People's Democratic Republic\",\n \"la\",\n \"856\"\n ],\n [\n \"Latvia\",\n \"lv\",\n \"371\"\n ],\n [\n \"Lebanon\",\n \"lb\",\n \"961\"\n ],\n [\n \"Lesotho\",\n \"ls\",\n \"266\"\n ],\n [\n \"Liberia\",\n \"lr\",\n \"231\"\n ],\n [\n \"Libya\",\n \"ly\",\n \"218\"\n ],\n [\n \"Liechtenstein\",\n \"li\",\n \"423\"\n ],\n [\n \"Lithuania\",\n \"lt\",\n \"370\"\n ],\n [\n \"Luxembourg\",\n \"lu\",\n \"352\"\n ],\n [\n \"Macao\",\n \"mo\",\n \"853\"\n ],\n [\n \"Macedonia, the former Yugoslav Republic of\",\n \"mk\",\n \"389\"\n ],\n [\n \"Madagascar\",\n \"mg\",\n \"261\"\n ],\n [\n \"Malawi\",\n \"mw\",\n \"265\"\n ],\n [\n \"Malaysia\",\n \"my\",\n \"60\",\n \"+.. ..-....-....\"\n ],\n [\n \"Maldives\",\n \"mv\",\n \"960\"\n ],\n [\n \"Mali\",\n \"ml\",\n \"223\"\n ],\n [\n \"Malta\",\n \"mt\",\n \"356\"\n ],\n [\n \"Marshall Islands\",\n \"mh\",\n \"692\"\n ],\n [\n \"Martinique\",\n \"mq\",\n \"596\"\n ],\n [\n \"Mauritania\",\n \"mr\",\n \"222\"\n ],\n [\n \"Mauritius\",\n \"mu\",\n \"230\"\n ],\n [\n \"Mayotte\",\n \"yt\",\n \"262\"\n ],\n [\n \"Mexico\",\n \"mx\",\n \"52\"\n ],\n [\n \"Micronesia, Federated States of\",\n \"fm\",\n \"691\"\n ],\n [\n \"Moldova, Republic of\",\n \"md\",\n \"373\"\n ],\n [\n \"Monaco\",\n \"mc\",\n \"377\"\n ],\n [\n \"Mongolia\",\n \"mn\",\n \"976\"\n ],\n [\n \"Montenegro\",\n \"me\",\n \"382\"\n ],\n [\n \"Montserrat\",\n \"ms\",\n \"1\"\n ],\n [\n \"Morocco\",\n \"ma\",\n \"212\"\n ],\n [\n \"Mozambique\",\n \"mz\",\n \"258\"\n ],\n [\n \"Myanmar\",\n \"mm\",\n \"95\"\n ],\n [\n \"Namibia\",\n \"na\",\n \"264\"\n ],\n [\n \"Nauru\",\n \"nr\",\n \"674\"\n ],\n [\n \"Nepal\",\n \"np\",\n \"977\"\n ],\n [\n \"Netherlands\",\n \"nl\",\n \"31\",\n \"+.. .. ........\"\n ],\n [\n \"Netherlands Antilles\",\n \"an\",\n \"599\"\n ],\n [\n \"New Caledonia\",\n \"nc\",\n \"687\"\n ],\n [\n \"New Zealand\",\n \"nz\",\n \"64\",\n \"+.. ...-...-....\"\n ],\n [\n \"Nicaragua\",\n \"ni\",\n \"505\"\n ],\n [\n \"Niger\",\n \"ne\",\n \"227\"\n ],\n [\n \"Nigeria\",\n \"ng\",\n \"234\"\n ],\n [\n \"Niue\",\n \"nu\",\n \"683\"\n ],\n [\n \"Norfolk Island\",\n \"nf\",\n \"672\"\n ],\n [\n \"Korea, Democratic People's Republic of\",\n \"kp\",\n \"850\"\n ],\n [\n \"Northern Mariana Islands\",\n \"mp\",\n \"1\"\n ],\n [\n \"Norway\",\n \"no\",\n \"47\",\n \"+.. ... .. ...\"\n ],\n [\n \"Oman\",\n \"om\",\n \"968\"\n ],\n [\n \"Pakistan\",\n \"pk\",\n \"92\",\n \"+.. ...-.......\"\n ],\n [\n \"Palau\",\n \"pw\",\n \"680\"\n ],\n [\n \"Palestine, State of\",\n \"ps\",\n \"970\"\n ],\n [\n \"Panama\",\n \"pa\",\n \"507\"\n ],\n [\n \"Papua New Guinea\",\n \"pg\",\n \"675\"\n ],\n [\n \"Paraguay\",\n \"py\",\n \"595\"\n ],\n [\n \"Peru\",\n \"pe\",\n \"51\"\n ],\n [\n \"Philippines\",\n \"ph\",\n \"63\",\n \"+.. ... ....\"\n ],\n [\n \"Poland\",\n \"pl\",\n \"48\",\n \"+.. ...-...-...\"\n ],\n [\n \"Portugal\",\n \"pt\",\n \"351\"\n ],\n [\n \"Puerto Rico\",\n \"pr\",\n \"1\"\n ],\n [\n \"Qatar\",\n \"qa\",\n \"974\"\n ],\n [\n \"Réunion\",\n \"re\",\n \"262\"\n ],\n [\n \"Romania\",\n \"ro\",\n \"40\"\n ],\n [\n \"Russian Federation\",\n \"ru\",\n \"7\",\n \"+. ... ...-..-..\",\n 0\n ],\n [\n \"Rwanda\",\n \"rw\",\n \"250\"\n ],\n [\n \"Saint Barthélemy\",\n \"bl\",\n \"590\",\n \"\",\n 1\n ],\n [\n \"Saint Helena, Ascension and Tristan da Cunha\",\n \"sh\",\n \"290\"\n ],\n [\n \"Saint Kitts and Nevis\",\n \"kn\",\n \"1\"\n ],\n [\n \"Saint Lucia\",\n \"lc\",\n \"1\"\n ],\n [\n \"Saint Martin (French part)\",\n \"mf\",\n \"590\",\n \"\",\n 2\n ],\n [\n \"Saint Pierre and Miquelon\",\n \"pm\",\n \"508\"\n ],\n [\n \"Saint Vincent and the Grenadines\",\n \"vc\",\n \"1\"\n ],\n [\n \"Samoa\",\n \"ws\",\n \"685\"\n ],\n [\n \"San Marino\",\n \"sm\",\n \"378\"\n ],\n [\n \"São Tomé and Príncipe\",\n \"st\",\n \"239\"\n ],\n [\n \"Saudi Arabia\",\n \"sa\",\n \"966\"\n ],\n [\n \"Senegal\",\n \"sn\",\n \"221\"\n ],\n [\n \"Serbia\",\n \"rs\",\n \"381\"\n ],\n [\n \"Seychelles\",\n \"sc\",\n \"248\"\n ],\n [\n \"Sierra Leone\",\n \"sl\",\n \"232\"\n ],\n [\n \"Singapore\",\n \"sg\",\n \"65\",\n \"+.. ....-....\"\n ],\n [\n \"Sint Maarten (Dutch part)\",\n \"sx\",\n \"1\"\n ],\n [\n \"Slovakia\",\n \"sk\",\n \"421\"\n ],\n [\n \"Slovenia\",\n \"si\",\n \"386\"\n ],\n [\n \"Solomon Islands\",\n \"sb\",\n \"677\"\n ],\n [\n \"Somalia\",\n \"so\",\n \"252\"\n ],\n [\n \"South Africa\",\n \"za\",\n \"27\"\n ],\n [\n \"Korea, Republic of\",\n \"kr\",\n \"82\"\n ],\n [\n \"South Sudan\",\n \"ss\",\n \"211\"\n ],\n [\n \"Spain\",\n \"es\",\n \"34\",\n \"+.. ... ... ...\"\n ],\n [\n \"Sri Lanka\",\n \"lk\",\n \"94\"\n ],\n [\n \"Sudan\",\n \"sd\",\n \"249\"\n ],\n [\n \"Suriname\",\n \"sr\",\n \"597\"\n ],\n [\n \"Svalbard and Jan Mayen\",\n \"sj\",\n \"47\"\n ],\n [\n \"Swaziland\",\n \"sz\",\n \"268\"\n ],\n [\n \"Sweden\",\n \"se\",\n \"46\",\n \"+.. .. ... .. ..\"\n ],\n [\n \"Switzerland\",\n \"ch\",\n \"41\",\n \"+.. .. ... .. ..\"\n ],\n [\n \"Syrian Arab Republic\",\n \"sy\",\n \"963\"\n ],\n [\n \"Taiwan\",\n \"tw\",\n \"886\"\n ],\n [\n \"Tajikistan\",\n \"tj\",\n \"992\"\n ],\n [\n \"Tanzania, United Republic of\",\n \"tz\",\n \"255\"\n ],\n [\n \"Thailand\",\n \"th\",\n \"66\"\n ],\n [\n \"Timor-Leste\",\n \"tl\",\n \"670\"\n ],\n [\n \"Togo\",\n \"tg\",\n \"228\"\n ],\n [\n \"Tokelau\",\n \"tk\",\n \"690\"\n ],\n [\n \"Tonga\",\n \"to\",\n \"676\"\n ],\n [\n \"Trinidad and Tobago\",\n \"tt\",\n \"1\"\n ],\n [\n \"Tunisia\",\n \"tn\",\n \"216\"\n ],\n [\n \"Turkey\",\n \"tr\",\n \"90\",\n \"+.. ... ... .. ..\"\n ],\n [\n \"Turkmenistan\",\n \"tm\",\n \"993\"\n ],\n [\n \"Turks and Caicos Islands\",\n \"tc\",\n \"1\"\n ],\n [\n \"Tuvalu\",\n \"tv\",\n \"688\"\n ],\n [\n \"Virgin Islands, U.S.\",\n \"vi\",\n \"1\"\n ],\n [\n \"Uganda\",\n \"ug\",\n \"256\"\n ],\n [\n \"Ukraine\",\n \"ua\",\n \"380\"\n ],\n [\n \"United Arab Emirates\",\n \"ae\",\n \"971\"\n ],\n [\n \"United Kingdom\",\n \"gb\",\n \"44\",\n \"+.. .... ......\"\n ],\n [\n \"United States\",\n \"us\",\n \"1\",\n \"+. (...) ...-....\",\n 0\n ],\n [\n \"Uruguay\",\n \"uy\",\n \"598\"\n ],\n [\n \"Uzbekistan\",\n \"uz\",\n \"998\"\n ],\n [\n \"Vanuatu\",\n \"vu\",\n \"678\"\n ],\n [\n \"Holy See (Vatican City State)\",\n \"va\",\n \"379\",\n \"+.. .. .... ....\",\n 1\n ],\n [\n \"Venezuela, Bolivarian Republic of\",\n \"ve\",\n \"58\"\n ],\n [\n \"Vietnam\",\n \"vn\",\n \"84\"\n ],\n [\n \"Wallis and Futuna\",\n \"wf\",\n \"681\"\n ],\n [\n \"Yemen\",\n \"ye\",\n \"967\"\n ],\n [\n \"Zambia\",\n \"zm\",\n \"260\"\n ],\n [\n \"Zimbabwe\",\n \"zw\",\n \"263\"\n ],\n [\n \"Åland Islands\",\n \"ax\",\n \"358\"\n ]\n];\n\n// we will build this in the loop below\nvar allCountries = [];\nvar allCountryCodes = {};\nfunction addCountryCode(iso2, dialCode, priority) {\n if (!(dialCode in allCountryCodes)) {\n allCountryCodes[dialCode] = [];\n }\n var index = priority || 0;\n allCountryCodes[dialCode][index] = iso2;\n};\n\n// loop over all of the countries above\n// allCountries2 = _.map(allCountries, function(country) {\n// return {\n// name: country[0],\n// iso2: country[1],\n// dialCode: country[2],\n// format: country[3],\n// hasAreaCodes: country.length > 4\n// }\n// });\n\nfor (let i = 0; i < rawAllCountries.length; i++) {\n // countries\n\n let c = rawAllCountries[i];\n allCountries.push({\n name: c[0],\n iso2: c[1],\n dialCode: c[2],\n priority: c[4] || 0\n });\n let countryIdx = allCountries.length - 1;\n\n // format\n if (c[3]) {\n allCountries[countryIdx].format = c[3];\n }\n\n // area codes\n if (c[5]) {\n allCountries[countryIdx].hasAreaCodes = true;\n for (var j = 0; j < c[5].length; j++) {\n // full dial code is country code + dial code\n var dialCode = c[2] + c[5][j];\n addCountryCode(c[1], dialCode);\n\n let virtualCountry = Object.assign({}, allCountries[countryIdx]);\n virtualCountry.dialCode = dialCode;\n allCountries.push(virtualCountry);\n }\n }\n\n // dial codes\n addCountryCode(\n allCountries[countryIdx].iso2,\n allCountries[countryIdx].dialCode,\n allCountries[countryIdx].hasAreaCodes\n );\n\n}\n\nmodule.exports = {\n allCountries: allCountries,\n allCountryCodes: allCountryCodes\n};\n","// So each country array has the following information:\n// [\n//\t\t Country name,\n//\t\t iso2 code,\n//\t\t International dial code,\n//\t\t Format (if available),\n//\t\t Order (if >1 country with same dial code),\n//\t\t Area codes (if >1 country with same dial code)\n// ]\n// var _ = require('lodash');\n\nvar rawAllCountries = [\n [\n \"Afghanistan\",\n \"af\",\n \"93\"\n ],\n [\n \"Albania\",\n \"al\",\n \"355\"\n ],\n [\n \"Algeria \",\n \"dz\",\n \"213\"\n ],\n [\n \"American Samoa\",\n \"as\",\n \"1\"\n ],\n [\n \"Andorra\",\n \"ad\",\n \"376\"\n ],\n [\n \"Angola\",\n \"ao\",\n \"244\"\n ],\n [\n \"Anguilla\",\n \"ai\",\n \"1\"\n ],\n [\n \"Antigua and Barbuda\",\n \"ag\",\n \"1\"\n ],\n [\n \"Argentina\",\n \"ar\",\n \"54\"\n ],\n [\n \"Armenia\",\n \"am\",\n \"374\"\n ],\n [\n \"Aruba\",\n \"aw\",\n \"297\"\n ],\n [\n \"Ascension Island\",\n \"ac\",\n \"247\"\n ],\n [\n \"Australia\",\n \"au\",\n \"61\",\n \"+.. ... ... ...\"\n ],\n [\n \"Austria\",\n \"at\",\n \"43\"\n ],\n [\n \"Azerbaijan\",\n \"az\",\n \"994\"\n ],\n [\n \"Bahamas\",\n \"bs\",\n \"1\"\n ],\n [\n \"Bahrain\",\n \"bh\",\n \"973\"\n ],\n [\n \"Bangladesh\",\n \"bd\",\n \"880\"\n ],\n [\n \"Barbados\",\n \"bb\",\n \"1\"\n ],\n [\n \"Belarus\",\n \"by\",\n \"375\"\n ],\n [\n \"Belgium\",\n \"be\",\n \"32\",\n \"+.. ... .. .. ..\"\n ],\n [\n \"Belize\",\n \"bz\",\n \"501\"\n ],\n [\n \"Benin\",\n \"bj\",\n \"229\"\n ],\n [\n \"Bermuda\",\n \"bm\",\n \"1\"\n ],\n [\n \"Bhutan\",\n \"bt\",\n \"975\"\n ],\n [\n \"Bolivia, Plurinational State of\",\n \"bo\",\n \"591\"\n ],\n [\n \"Bosnia and Herzegovina\",\n \"ba\",\n \"387\"\n ],\n [\n \"Botswana\",\n \"bw\",\n \"267\"\n ],\n [\n \"Brazil\",\n \"br\",\n \"55\"\n ],\n [\n \"British Indian Ocean Territory\",\n \"io\",\n \"246\"\n ],\n [\n \"Virgin Islands, British\",\n \"vg\",\n \"1\"\n ],\n [\n \"Brunei Darussalam\",\n \"bn\",\n \"673\"\n ],\n [\n \"Bulgaria\",\n \"bg\",\n \"359\"\n ],\n [\n \"Burkina Faso\",\n \"bf\",\n \"226\"\n ],\n [\n \"Burundi\",\n \"bi\",\n \"257\"\n ],\n [\n \"Cambodia\",\n \"kh\",\n \"855\"\n ],\n [\n \"Cameroon\",\n \"cm\",\n \"237\"\n ],\n [\n \"Canada\",\n \"ca\",\n \"1\",\n \"+. (...) ...-....\",\n 1\n ],\n [\n \"Cape Verde\",\n \"cv\",\n \"238\"\n ],\n [\n \"Bonaire, Sint Eustatius and Saba\",\n \"bq\",\n \"599\",\n \"\",\n 1\n ],\n [\n \"Cayman Islands\",\n \"ky\",\n \"1\"\n ],\n [\n \"Central African Republic\",\n \"cf\",\n \"236\"\n ],\n [\n \"Chad\",\n \"td\",\n \"235\"\n ],\n [\n \"Chile\",\n \"cl\",\n \"56\"\n ],\n [\n \"China\",\n \"cn\",\n \"86\",\n \"+.. ..-........\"\n ],\n [\n \"Christmas Island\",\n \"cx\",\n \"61\"\n ],\n [\n \"Cocos (Keeling) Islands\",\n \"cc\",\n \"61\"\n ],\n [\n \"Colombia\",\n \"co\",\n \"57\"\n ],\n [\n \"Comoros\",\n \"km\",\n \"269\"\n ],\n [\n \"Congo, the Democratic Republic of the\",\n \"cd\",\n \"243\"\n ],\n [\n \"Congo\",\n \"cg\",\n \"242\"\n ],\n [\n \"Cook Islands\",\n \"ck\",\n \"682\"\n ],\n [\n \"Costa Rica\",\n \"cr\",\n \"506\",\n \"+... ....-....\"\n ],\n [\n \"Côte d’Ivoire\",\n \"ci\",\n \"225\"\n ],\n [\n \"Croatia\",\n \"hr\",\n \"385\"\n ],\n [\n \"Cuba\",\n \"cu\",\n \"53\"\n ],\n [\n \"Curaçao\",\n \"cw\",\n \"599\",\n \"\",\n 0\n ],\n [\n \"Cyprus\",\n \"cy\",\n \"357\"\n ],\n [\n \"Czech Republic\",\n \"cz\",\n \"420\"\n ],\n [\n \"Denmark\",\n \"dk\",\n \"45\",\n \"+.. .. .. .. ..\"\n ],\n [\n \"Djibouti\",\n \"dj\",\n \"253\"\n ],\n [\n \"Dominica\",\n \"dm\",\n \"1\"\n ],\n [\n \"Dominican Republic\",\n \"do\",\n \"1\"\n ],\n [\n \"Ecuador\",\n \"ec\",\n \"593\"\n ],\n [\n \"Egypt\",\n \"eg\",\n \"20\"\n ],\n [\n \"El Salvador\",\n \"sv\",\n \"503\",\n \"+... ....-....\"\n ],\n [\n \"Equatorial Guinea\",\n \"gq\",\n \"240\"\n ],\n [\n \"Eritrea\",\n \"er\",\n \"291\"\n ],\n [\n \"Estonia\",\n \"ee\",\n \"372\"\n ],\n [\n \"Ethiopia\",\n \"et\",\n \"251\"\n ],\n [\n \"Falkland Islands (Malvinas)\",\n \"fk\",\n \"500\"\n ],\n [\n \"Faroe Islands\",\n \"fo\",\n \"298\"\n ],\n [\n \"Fiji\",\n \"fj\",\n \"679\"\n ],\n [\n \"Finland\",\n \"fi\",\n \"358\",\n \"+... .. ... .. ..\"\n ],\n [\n \"France\",\n \"fr\",\n \"33\",\n \"+.. . .. .. .. ..\"\n ],\n [\n \"French Guiana\",\n \"gf\",\n \"594\"\n ],\n [\n \"French Polynesia\",\n \"pf\",\n \"689\"\n ],\n [\n \"Gabon\",\n \"ga\",\n \"241\"\n ],\n [\n \"Gambia\",\n \"gm\",\n \"220\"\n ],\n [\n \"Georgia\",\n \"ge\",\n \"995\"\n ],\n [\n \"Germany\",\n \"de\",\n \"49\",\n \"+.. ... .......\"\n ],\n [\n \"Ghana\",\n \"gh\",\n \"233\"\n ],\n [\n \"Gibraltar\",\n \"gi\",\n \"350\"\n ],\n [\n \"Greece\",\n \"gr\",\n \"30\"\n ],\n [\n \"Greenland\",\n \"gl\",\n \"299\"\n ],\n [\n \"Grenada\",\n \"gd\",\n \"1\"\n ],\n [\n \"Guadeloupe\",\n \"gp\",\n \"590\",\n \"\",\n 0\n ],\n [\n \"Guam\",\n \"gu\",\n \"1\"\n ],\n [\n \"Guatemala\",\n \"gt\",\n \"502\",\n \"+... ....-....\"\n ],\n [\n \"Guernsey\",\n \"gg\",\n \"44\"\n ],\n [\n \"Guinea\",\n \"gn\",\n \"224\"\n ],\n [\n \"Guinea-Bissau\",\n \"gw\",\n \"245\"\n ],\n [\n \"Guyana\",\n \"gy\",\n \"592\"\n ],\n [\n \"Haiti\",\n \"ht\",\n \"509\",\n \"+... ....-....\"\n ],\n [\n \"Honduras\",\n \"hn\",\n \"504\"\n ],\n [\n \"Hong Kong\",\n \"hk\",\n \"852\",\n \"+... .... ....\"\n ],\n [\n \"Hungary\",\n \"hu\",\n \"36\"\n ],\n [\n \"Iceland\",\n \"is\",\n \"354\",\n \"+... ... ....\"\n ],\n [\n \"India\",\n \"in\",\n \"91\",\n \"+.. .....-.....\"\n ],\n [\n \"Indonesia\",\n \"id\",\n \"62\"\n ],\n [\n \"Iran, Islamic Republic of\",\n \"ir\",\n \"98\"\n ],\n [\n \"Iraq\",\n \"iq\",\n \"964\"\n ],\n [\n \"Ireland\",\n \"ie\",\n \"353\",\n \"+... .. .......\"\n ],\n [\n \"Isle of Man\",\n \"im\",\n \"44\"\n ],\n [\n \"Israel\",\n \"il\",\n \"972\"\n ],\n [\n \"Italy\",\n \"it\",\n \"39\",\n \"+.. ... ......\",\n 0\n ],\n [\n \"Jamaica\",\n \"jm\",\n \"1\"\n ],\n [\n \"Japan\",\n \"jp\",\n \"81\",\n \"+.. ... .. ....\"\n ],\n [\n \"Jersey\",\n \"je\",\n \"44\"\n ],\n [\n \"Jordan\",\n \"jo\",\n \"962\"\n ],\n [\n \"Kazakhstan\",\n \"kz\",\n \"7\",\n \"+. ... ...-..-..\",\n 1\n ],\n [\n \"Kenya\",\n \"ke\",\n \"254\"\n ],\n [\n \"Kiribati\",\n \"ki\",\n \"686\"\n ],\n [\n \"Kuwait\",\n \"kw\",\n \"965\"\n ],\n [\n \"Kyrgyzstan\",\n \"kg\",\n \"996\"\n ],\n [\n \"Lao People's Democratic Republic\",\n \"la\",\n \"856\"\n ],\n [\n \"Latvia\",\n \"lv\",\n \"371\"\n ],\n [\n \"Lebanon\",\n \"lb\",\n \"961\"\n ],\n [\n \"Lesotho\",\n \"ls\",\n \"266\"\n ],\n [\n \"Liberia\",\n \"lr\",\n \"231\"\n ],\n [\n \"Libya\",\n \"ly\",\n \"218\"\n ],\n [\n \"Liechtenstein\",\n \"li\",\n \"423\"\n ],\n [\n \"Lithuania\",\n \"lt\",\n \"370\"\n ],\n [\n \"Luxembourg\",\n \"lu\",\n \"352\"\n ],\n [\n \"Macao\",\n \"mo\",\n \"853\"\n ],\n [\n \"Macedonia, the former Yugoslav Republic of\",\n \"mk\",\n \"389\"\n ],\n [\n \"Madagascar\",\n \"mg\",\n \"261\"\n ],\n [\n \"Malawi\",\n \"mw\",\n \"265\"\n ],\n [\n \"Malaysia\",\n \"my\",\n \"60\",\n \"+.. ..-....-....\"\n ],\n [\n \"Maldives\",\n \"mv\",\n \"960\"\n ],\n [\n \"Mali\",\n \"ml\",\n \"223\"\n ],\n [\n \"Malta\",\n \"mt\",\n \"356\"\n ],\n [\n \"Marshall Islands\",\n \"mh\",\n \"692\"\n ],\n [\n \"Martinique\",\n \"mq\",\n \"596\"\n ],\n [\n \"Mauritania\",\n \"mr\",\n \"222\"\n ],\n [\n \"Mauritius\",\n \"mu\",\n \"230\"\n ],\n [\n \"Mayotte\",\n \"yt\",\n \"262\"\n ],\n [\n \"Mexico\",\n \"mx\",\n \"52\"\n ],\n [\n \"Micronesia, Federated States of\",\n \"fm\",\n \"691\"\n ],\n [\n \"Moldova, Republic of\",\n \"md\",\n \"373\"\n ],\n [\n \"Monaco\",\n \"mc\",\n \"377\"\n ],\n [\n \"Mongolia\",\n \"mn\",\n \"976\"\n ],\n [\n \"Montenegro\",\n \"me\",\n \"382\"\n ],\n [\n \"Montserrat\",\n \"ms\",\n \"1\"\n ],\n [\n \"Morocco\",\n \"ma\",\n \"212\"\n ],\n [\n \"Mozambique\",\n \"mz\",\n \"258\"\n ],\n [\n \"Myanmar\",\n \"mm\",\n \"95\"\n ],\n [\n \"Namibia\",\n \"na\",\n \"264\"\n ],\n [\n \"Nauru\",\n \"nr\",\n \"674\"\n ],\n [\n \"Nepal\",\n \"np\",\n \"977\"\n ],\n [\n \"Netherlands\",\n \"nl\",\n \"31\",\n \"+.. .. ........\"\n ],\n [\n \"Netherlands Antilles\",\n \"an\",\n \"599\"\n ],\n [\n \"New Caledonia\",\n \"nc\",\n \"687\"\n ],\n [\n \"New Zealand\",\n \"nz\",\n \"64\",\n \"+.. ...-...-....\"\n ],\n [\n \"Nicaragua\",\n \"ni\",\n \"505\"\n ],\n [\n \"Niger\",\n \"ne\",\n \"227\"\n ],\n [\n \"Nigeria\",\n \"ng\",\n \"234\"\n ],\n [\n \"Niue\",\n \"nu\",\n \"683\"\n ],\n [\n \"Norfolk Island\",\n \"nf\",\n \"672\"\n ],\n [\n \"Korea, Democratic People's Republic of\",\n \"kp\",\n \"850\"\n ],\n [\n \"Northern Mariana Islands\",\n \"mp\",\n \"1\"\n ],\n [\n \"Norway\",\n \"no\",\n \"47\",\n \"+.. ... .. ...\"\n ],\n [\n \"Oman\",\n \"om\",\n \"968\"\n ],\n [\n \"Pakistan\",\n \"pk\",\n \"92\",\n \"+.. ...-.......\"\n ],\n [\n \"Palau\",\n \"pw\",\n \"680\"\n ],\n [\n \"Palestine, State of\",\n \"ps\",\n \"970\"\n ],\n [\n \"Panama\",\n \"pa\",\n \"507\"\n ],\n [\n \"Papua New Guinea\",\n \"pg\",\n \"675\"\n ],\n [\n \"Paraguay\",\n \"py\",\n \"595\"\n ],\n [\n \"Peru\",\n \"pe\",\n \"51\"\n ],\n [\n \"Philippines\",\n \"ph\",\n \"63\",\n \"+.. ... ....\"\n ],\n [\n \"Poland\",\n \"pl\",\n \"48\",\n \"+.. ...-...-...\"\n ],\n [\n \"Portugal\",\n \"pt\",\n \"351\"\n ],\n [\n \"Puerto Rico\",\n \"pr\",\n \"1\"\n ],\n [\n \"Qatar\",\n \"qa\",\n \"974\"\n ],\n [\n \"Réunion\",\n \"re\",\n \"262\"\n ],\n [\n \"Romania\",\n \"ro\",\n \"40\"\n ],\n [\n \"Russian Federation\",\n \"ru\",\n \"7\",\n \"+. ... ...-..-..\",\n 0\n ],\n [\n \"Rwanda\",\n \"rw\",\n \"250\"\n ],\n [\n \"Saint Barthélemy\",\n \"bl\",\n \"590\",\n \"\",\n 1\n ],\n [\n \"Saint Helena, Ascension and Tristan da Cunha\",\n \"sh\",\n \"290\"\n ],\n [\n \"Saint Kitts and Nevis\",\n \"kn\",\n \"1\"\n ],\n [\n \"Saint Lucia\",\n \"lc\",\n \"1\"\n ],\n [\n \"Saint Martin (French part)\",\n \"mf\",\n \"590\",\n \"\",\n 2\n ],\n [\n \"Saint Pierre and Miquelon\",\n \"pm\",\n \"508\"\n ],\n [\n \"Saint Vincent and the Grenadines\",\n \"vc\",\n \"1\"\n ],\n [\n \"Samoa\",\n \"ws\",\n \"685\"\n ],\n [\n \"San Marino\",\n \"sm\",\n \"378\"\n ],\n [\n \"São Tomé and Príncipe\",\n \"st\",\n \"239\"\n ],\n [\n \"Saudi Arabia\",\n \"sa\",\n \"966\"\n ],\n [\n \"Senegal\",\n \"sn\",\n \"221\"\n ],\n [\n \"Serbia\",\n \"rs\",\n \"381\"\n ],\n [\n \"Seychelles\",\n \"sc\",\n \"248\"\n ],\n [\n \"Sierra Leone\",\n \"sl\",\n \"232\"\n ],\n [\n \"Singapore\",\n \"sg\",\n \"65\",\n \"+.. ....-....\"\n ],\n [\n \"Sint Maarten (Dutch part)\",\n \"sx\",\n \"1\"\n ],\n [\n \"Slovakia\",\n \"sk\",\n \"421\"\n ],\n [\n \"Slovenia\",\n \"si\",\n \"386\"\n ],\n [\n \"Solomon Islands\",\n \"sb\",\n \"677\"\n ],\n [\n \"Somalia\",\n \"so\",\n \"252\"\n ],\n [\n \"South Africa\",\n \"za\",\n \"27\"\n ],\n [\n \"Korea, Republic of\",\n \"kr\",\n \"82\"\n ],\n [\n \"South Sudan\",\n \"ss\",\n \"211\"\n ],\n [\n \"Spain\",\n \"es\",\n \"34\",\n \"+.. ... ... ...\"\n ],\n [\n \"Sri Lanka\",\n \"lk\",\n \"94\"\n ],\n [\n \"Sudan\",\n \"sd\",\n \"249\"\n ],\n [\n \"Suriname\",\n \"sr\",\n \"597\"\n ],\n [\n \"Svalbard and Jan Mayen\",\n \"sj\",\n \"47\"\n ],\n [\n \"Swaziland\",\n \"sz\",\n \"268\"\n ],\n [\n \"Sweden\",\n \"se\",\n \"46\",\n \"+.. .. ... .. ..\"\n ],\n [\n \"Switzerland\",\n \"ch\",\n \"41\",\n \"+.. .. ... .. ..\"\n ],\n [\n \"Syrian Arab Republic\",\n \"sy\",\n \"963\"\n ],\n [\n \"Taiwan\",\n \"tw\",\n \"886\"\n ],\n [\n \"Tajikistan\",\n \"tj\",\n \"992\"\n ],\n [\n \"Tanzania, United Republic of\",\n \"tz\",\n \"255\"\n ],\n [\n \"Thailand\",\n \"th\",\n \"66\"\n ],\n [\n \"Timor-Leste\",\n \"tl\",\n \"670\"\n ],\n [\n \"Togo\",\n \"tg\",\n \"228\"\n ],\n [\n \"Tokelau\",\n \"tk\",\n \"690\"\n ],\n [\n \"Tonga\",\n \"to\",\n \"676\"\n ],\n [\n \"Trinidad and Tobago\",\n \"tt\",\n \"1\"\n ],\n [\n \"Tunisia\",\n \"tn\",\n \"216\"\n ],\n [\n \"Turkey\",\n \"tr\",\n \"90\",\n \"+.. ... ... .. ..\"\n ],\n [\n \"Turkmenistan\",\n \"tm\",\n \"993\"\n ],\n [\n \"Turks and Caicos Islands\",\n \"tc\",\n \"1\"\n ],\n [\n \"Tuvalu\",\n \"tv\",\n \"688\"\n ],\n [\n \"Virgin Islands, U.S.\",\n \"vi\",\n \"1\"\n ],\n [\n \"Uganda\",\n \"ug\",\n \"256\"\n ],\n [\n \"Ukraine\",\n \"ua\",\n \"380\"\n ],\n [\n \"United Arab Emirates\",\n \"ae\",\n \"971\"\n ],\n [\n \"United Kingdom\",\n \"gb\",\n \"44\",\n \"+.. .... ......\"\n ],\n [\n \"United States\",\n \"us\",\n \"1\",\n \"+. (...) ...-....\",\n 0\n ],\n [\n \"Uruguay\",\n \"uy\",\n \"598\"\n ],\n [\n \"Uzbekistan\",\n \"uz\",\n \"998\"\n ],\n [\n \"Vanuatu\",\n \"vu\",\n \"678\"\n ],\n [\n \"Holy See (Vatican City State)\",\n \"va\",\n \"379\",\n \"+.. .. .... ....\",\n 1\n ],\n [\n \"Venezuela, Bolivarian Republic of\",\n \"ve\",\n \"58\"\n ],\n [\n \"Vietnam\",\n \"vn\",\n \"84\"\n ],\n [\n \"Wallis and Futuna\",\n \"wf\",\n \"681\"\n ],\n [\n \"Yemen\",\n \"ye\",\n \"967\"\n ],\n [\n \"Zambia\",\n \"zm\",\n \"260\"\n ],\n [\n \"Zimbabwe\",\n \"zw\",\n \"263\"\n ],\n [\n \"Åland Islands\",\n \"ax\",\n \"358\"\n ]\n];\n\n// we will build this in the loop below\nvar allCountries = [];\nvar allCountryCodes = {};\nfunction addCountryCode(iso2, dialCode, priority) {\n if (!(dialCode in allCountryCodes)) {\n allCountryCodes[dialCode] = [];\n }\n var index = priority || 0;\n allCountryCodes[dialCode][index] = iso2;\n};\n\n// loop over all of the countries above\n// allCountries2 = _.map(allCountries, function(country) {\n// return {\n// name: country[0],\n// iso2: country[1],\n// dialCode: country[2],\n// format: country[3],\n// hasAreaCodes: country.length > 4\n// }\n// });\n\nfor (let i = 0; i < rawAllCountries.length; i++) {\n // countries\n\n let c = rawAllCountries[i];\n allCountries.push({\n name: c[0],\n iso2: c[1],\n dialCode: c[2],\n priority: c[4] || 0\n });\n let countryIdx = allCountries.length - 1;\n\n // format\n if (c[3]) {\n allCountries[countryIdx].format = c[3];\n }\n\n // area codes\n if (c[5]) {\n allCountries[countryIdx].hasAreaCodes = true;\n for (var j = 0; j < c[5].length; j++) {\n // full dial code is country code + dial code\n var dialCode = c[2] + c[5][j];\n addCountryCode(c[1], dialCode);\n\n let virtualCountry = Object.assign({}, allCountries[countryIdx]);\n virtualCountry.dialCode = dialCode;\n allCountries.push(virtualCountry);\n }\n }\n\n // dial codes\n addCountryCode(\n allCountries[countryIdx].iso2,\n allCountries[countryIdx].dialCode,\n allCountries[countryIdx].hasAreaCodes\n );\n\n}\n\nmodule.exports = {\n allCountries: allCountries,\n allCountryCodes: allCountryCodes\n};\n","var map = {\n\t\"./au.svg\": 874,\n\t\"./br.svg\": 875,\n\t\"./ca.svg\": 876,\n\t\"./cn.svg\": 877,\n\t\"./cz.svg\": 878,\n\t\"./de.svg\": 879,\n\t\"./dk.svg\": 880,\n\t\"./es.svg\": 881,\n\t\"./fi.svg\": 882,\n\t\"./fr.svg\": 883,\n\t\"./gb.svg\": 884,\n\t\"./hk.svg\": 885,\n\t\"./hu.svg\": 886,\n\t\"./id.svg\": 887,\n\t\"./it.svg\": 888,\n\t\"./jp.svg\": 889,\n\t\"./kr.svg\": 890,\n\t\"./mo.svg\": 891,\n\t\"./my.svg\": 892,\n\t\"./nl.svg\": 893,\n\t\"./no.svg\": 894,\n\t\"./pl.svg\": 895,\n\t\"./pt.svg\": 896,\n\t\"./ro.svg\": 897,\n\t\"./ru.svg\": 898,\n\t\"./sa.svg\": 899,\n\t\"./se.svg\": 900,\n\t\"./sk.svg\": 901,\n\t\"./th.svg\": 902,\n\t\"./tr.svg\": 903,\n\t\"./tw.svg\": 904,\n\t\"./us.svg\": 905,\n\t\"./vn.svg\": 906\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 873;","module.exports = __webpack_public_path__ + \"static/media/au.503a3a98.svg\";","module.exports = __webpack_public_path__ + \"static/media/br.87032851.svg\";","module.exports = __webpack_public_path__ + \"static/media/ca.c976442e.svg\";","module.exports = __webpack_public_path__ + \"static/media/cn.02c229de.svg\";","module.exports = __webpack_public_path__ + \"static/media/cz.2339f3df.svg\";","module.exports = __webpack_public_path__ + \"static/media/de.3e726c2b.svg\";","module.exports = __webpack_public_path__ + \"static/media/dk.eb1416e0.svg\";","module.exports = __webpack_public_path__ + \"static/media/es.50623e6a.svg\";","module.exports = __webpack_public_path__ + \"static/media/fi.2649533e.svg\";","module.exports = __webpack_public_path__ + \"static/media/fr.b1156355.svg\";","module.exports = __webpack_public_path__ + \"static/media/gb.d3ddd602.svg\";","module.exports = __webpack_public_path__ + \"static/media/hk.7428ec1c.svg\";","module.exports = __webpack_public_path__ + \"static/media/hu.0d7409f8.svg\";","module.exports = __webpack_public_path__ + \"static/media/id.17b99676.svg\";","module.exports = __webpack_public_path__ + \"static/media/it.8d15de04.svg\";","module.exports = __webpack_public_path__ + \"static/media/jp.3e72015c.svg\";","module.exports = __webpack_public_path__ + \"static/media/kr.60fde7fc.svg\";","module.exports = __webpack_public_path__ + \"static/media/mo.b6d4d1f6.svg\";","module.exports = __webpack_public_path__ + \"static/media/my.e6739f40.svg\";","module.exports = __webpack_public_path__ + \"static/media/nl.d4811c27.svg\";","module.exports = __webpack_public_path__ + \"static/media/no.0b41df77.svg\";","module.exports = __webpack_public_path__ + \"static/media/pl.562edca5.svg\";","module.exports = __webpack_public_path__ + \"static/media/pt.b908edae.svg\";","module.exports = __webpack_public_path__ + \"static/media/ro.625aca9e.svg\";","module.exports = __webpack_public_path__ + \"static/media/ru.0cacf46e.svg\";","module.exports = __webpack_public_path__ + \"static/media/sa.c36d1991.svg\";","module.exports = __webpack_public_path__ + \"static/media/se.fd663a70.svg\";","module.exports = __webpack_public_path__ + \"static/media/sk.b84444bf.svg\";","module.exports = __webpack_public_path__ + \"static/media/th.76fca72f.svg\";","module.exports = __webpack_public_path__ + \"static/media/tr.ed6d5f37.svg\";","module.exports = __webpack_public_path__ + \"static/media/tw.50eeda23.svg\";","module.exports = __webpack_public_path__ + \"static/media/us.ae656592.svg\";","module.exports = __webpack_public_path__ + \"static/media/vn.6b3aef51.svg\";"],"sourceRoot":""}