{"version":3,"sources":["utils/ContentHelpers.tsx","components/Headers/TopHeader.tsx","components/Headers/MainHeader.tsx","workflows/AuthPage/components/InputInstructions.tsx","components/HelpIcon.tsx","components/HelpModalWrapper.tsx","workflows/AuthPage/components/HelpModalBody.tsx","components/LogoutBtn.tsx","components/ErrorAlert.tsx","requestActions/baseActions.ts","requestActions/contentActions.ts","views/AuthenticatePage.tsx","components/LoadingIcon.tsx","utils/UtilityFunctions.ts","requestActions/transactionActions.ts","views/Confirmation.tsx","workflows/CredentialSelection/NoCredentials.tsx","workflows/CredentialSelection/components/SelectableTr.tsx","workflows/CredentialSelection/components/SelectionTable.tsx","workflows/CredentialSelection/components/SelectedRecord.tsx","workflows/CredentialSelection/components/SelectCredHelpModalbody.tsx","workflows/CredentialSelection/HasCredentials.tsx","requestActions/credentialSelectionActions.ts","views/CredentialSelection.tsx","components/ReAuthenticationModal.tsx","workflows/EditInformation/AddressManagement.tsx","requestActions/configActions.ts","views/EditInformation.tsx","views/NotFound404.tsx","utils/ReceiptGenerator.ts","views/PrintReceipt.tsx","components/RePrintReceiptButton.tsx","workflows/TransactionHistory/TransactionHistory.tsx","AuthenticatedApp.tsx","requestActions/authenticaitonActions.ts","App.tsx","serviceWorker.ts","components/ErrorBoundary.tsx","index.tsx"],"names":["getText","content","propName","Text","getLinkObj","TopHeader","Row","className","Col","sm","href","Header","onSelectChange","event","sessionStorage","setItem","currentTarget","value","props","onChangeLanguage","this","Label","for","Input","type","name","onChange","language","React","Component","InputInstructions","ssn","ddn","pin","filter","el","length","HelpIcon","onClick","HelpModalWrapper","useState","modal","setModal","toggle","contentError","headerTitle","Fragment","Modal","isOpen","ModalHeader","ModalBody","children","HelpModalBody","Image1","Paths","src","title","alt","Image2","LogoutBtn","clear","window","location","Button","text","ErrorAlert","errors","displayErrors","displayLogoutBtn","toggleErrorDisplay","Alert","color","errorList","map","errorString","index","buildErrorList","renderLogoutBtn","buildRequestConfig","headers","getItem","getItemAction","reqObj","resFilter","url","requestConfigs","customRequestConfig","axios","get","then","res","data","catch","err","postItemAction","bodyObj","undefined","post","Error","addLangaugeToRoute","route","getSharedContent","getAuthContent","getAuthHelpContent","getCredSelectionContent","getCredSelectionHelpContent","getPaymentConfirmationContent","getCredEditContent","AuthenticatePage","state","lastName","dob","idNum","ssnError","lastNameError","dobError","idNumError","loading","lastNameInvalid","dobInvalid","idNumInvalid","ssnIsInvalid","requireOne","requireOneError","displayPIDHelp","displayPINHelp","displayDDNHelp","PIDHelpContent","PINHelpContent","DDNHelpContent","getHelpModalContent","BagPart","ContentItems","parseAuthHelpContent","error","console","contentArray","helpAliasToStateMap","helpContent","forEach","contentItem","contentItemAlias","AliasPart","Alias","HelpPopupModal","setState","onInputChange","prevState","verifySSN","authText","RegExp","test","verifyLastName","verifyDOB","dobIsInPast","verifyIdNum","dobTest","Date","now","getTime","onSSNChange","replace","onDOBChange","date","onClickCancel","cancelBtnURL","Url","ssnPinOrDDNHasValue","onClickConfirm","preventDefault","lastNameIsValid","dobIsValid","idNumIsValid","ssnIsValid","setLoadingState","googleReCaptchaProps","executeRecaptcha","token","onConfirm","displayFeedback","invalid","authErrors","displayAuthErrors","toggleAuthErrorDisplay","ssnInvalidClass","dobInvalidClass","cancelBtnText","Form","onSubmit","FormGroup","id","required","onBlur","FormFeedback","selected","showYearDropdown","showMonthDropdown","dropdownMode","placeholderText","maxDate","timeFormat","style","display","margin","inputMode","autoComplete","maxLength","placeholder","SLIDE_LEFT","withGoogleReCaptcha","LoadingIcon","Spinner","width","height","parseJWT","jwt","b64","split","jsonPayload","decodeURIComponent","atob","c","charCodeAt","toString","slice","join","JSON","parse","isEnhancedLogin","parsedJWT","enhancedLogin","parseCurrency","currency","noValReturn","price","toFixed","formatHeightFeet","Number","formatHeightInches","formatWeight","weight","getCleanAddress","address","cleanAddress","country","lineTwo","lineThree","createPaymentTransaction","transactionModel","Confirmation","reviewEditsContent","submitting","displayAuthError","errorMessage","displayLogoutButton","displayMedicalAnswer","medicalDisclosure","ReviewConfirmationPage","displayVoterAnswer","declineVoter","citizen","resident","displayOrganDonorAnswer","organDonor","displayEyeColor","displayColor","Object","keys","eyeColorList","eyeColor","displayGender","genderList","gender","displayAddresses","addressDisplayNameMap","addressContent","newAddresses","addressType","city","apocity","apostate","zip","Card","lineOne","filterAddresses","addressChanged","x","buildTransactionModel","selectedCredentialId","selectedPriceObj","newServiceType","heightFeet","heightInches","email","phone","cdlSelfCertificationType","legalPresence","receiveEmail","replacementReason","receiveSMS","keepSchoolBusEndorsement","takenSchoolBusClinic","keepHazardousMaterialsEndorsement","submittedFingerprints","isVoter","model","identityId","IdentityId","credentialId","pricingName","serviceType","addressChanges","dataChanges","heightfeet","heightinches","eyecolor","organdonor","cdlselfcertificationtype","uscitizen","legalproof","motorvoter","telephone","fields","lang","replacementreason","displayReplacementReason","replacementReasonList","reason","displayDurationOrReason","md","onConfirmClick","transactionResponse","redirectUri","response","status","getReviewEditsContent","selectedCredential","contextData","licensetype","returnToEdit","NoCredentials","redirectUrl","link","to","SelectableTr","onSingleClick","selectRow","backgroundColor","SelectTable","selectTableHOC","ReactTable","SelectionTable","selectedRowId","onSelect","formatDateCells","row","muted","original","renewal4YearPrice","renewal2YearPrice","replacementPrice","restrictedPrice","dateArray","formattedDate","formatPriceCells","columns","accessor","Cell","rowInfo","toggleSelection","key","shift","isSelected","showPagination","sortable","pageSize","manual","keyField","selectType","selectAll","TrComponent","SelectInputComponent","DataGridProps","checked","getTrProps","rowData","SelectedRecord","credential","displayField","property","notFoundReturn","displayContextField","parseDateField","dt","xs","lg","xl","SelectCredHelpModalBody","HasCredentials","selectedRecordId","componentToRender","editCredentialText","enhanced","failedPayment","setEnhancedState","handleOnSelect","recordId","credentials","find","cred","onClickRenew","onClickReplace","editInformation","pathname","credentialSelection","getEligibleCredentialsAction","filteredCredential","filteredAddresses","addresses","CredentialSelection","credentialText","displayPaymentFailure","queryParams","has","performAPICalls","promiseArray","Promise","all","contentResp","credentialResp","parseCredentialData","helpResp","RenewOrReplaceHelp","record","rebuiltRecord","prices","renderHasCredential","prevProps","authConfirm","toggleModal","isForAddressChange","authLoading","useCallback","useEffect","verifyAddressChange","count","doesHaveTwo","saveAuthResults","authSuccessful","changeAddressInvalidClass","disabledClass","size","ModalFooter","AddressManagement","legalAddressInvalid","legalAddressError","otherAddressInvalid","otherAddressError","specialMailingAddressInvalid","specialMailingAddressError","specialMailingCityInvalid","specialMailingCityError","specialMailingZipInvalid","specialMailingZipError","specialMailingStateInvalid","specialMailingStateError","specialMailingCountryInvalid","specialMailingCountryError","cityInvalid","cityError","zipInvalid","zipError","stateInvalid","stateError","reAuthenticationModalOpen","legalStateList","createSpecialMailing","push","addressClass","latestAddress","setNewAddressState","removeSpecialMailing","addressArray","addr","checkForSpecialMailing","verifyLegalAddressEvent","verifyLegalAddress","verifyOtherAddressEvent","verifyOtherAddresses","verifyCityEvent","verifyCity","verifyZipEvent","verifyZip","verifyStateEvent","verifyState","verifySpecialMailingAddressEvent","verifySpecialMailingAddress","verifySpecialMailingCountryEvent","verifySpecialMailingCountry","verifySpecialMailingCityEvent","verifySpecialMailingCity","verifySpecialMailingZipEvent","verifySpecialMailingZip","verifySpecialMailingStateEvent","verifySpecialMailingState","isForeignAddress","toggleForeignAddress","isForeignAddressState","isAPOAddressState","handleChange","toggleAPOAddress","isAPOAddress","apocityOptions","fieldOptions","code","apostateOptions","stateOptions","addrstate","legalStateOptions","constructor","Array","legalState","includes","toggleReAuthenticationModal","handleCurrentPhysicalAddressChange","isCurrent","target","setIsCurrentPhysicalAddress","handleCurrentMailingAddressChange","setIsCurrentMailingAddress","buildCurrentAddress","handleCurrentAddressChange","isCurrentPhysicalAddress","isCurrentMailingAddress","notIsCurrent","idYes","idNo","htmlFor","addressCards","reauthorized","e","spMailingHelpModalContent","dataType","newState","item","i","StreetSuffix","rel","getFieldOptionsAction","fieldName","EditInformation","AddressCompRef","heightFeetInvalid","heightFeetError","heightInchesInvalid","heightInchesError","weightInvalid","weightError","currentEmail","emailInvalid","emailError","emailConfirmation","emailConfirmationInvalid","emailConfirmationError","currentPhone","phoneInvalid","phoneError","phoneConfirmation","phoneConfirmationInvalid","phoneConfirmationError","renderConfirm","validationErrorsObj","spMailingHelp","displayErrorAlert","alertErrors","modifyAddressClass","a","current","renewalIsRestricted","setRecordData","getContent","EditsAndChanges","EyeColorList","ReplacementReason","Address","EditAndChangesValidationErrors","GenderList","apoCity","apoState","addrState","onClickSubmit","onSubmitErrors","compareEmail","verifyEmail","comparePhone","phoneFormat","requireDuration","requireReason","heightInchesFormat","heightFeetFormat","weightFormat","displaymedicalquestion","medicalRequired","organDonorRequired","cdlSelfCertificationRequired","requireLegalPresence","requireVoterAnswers","requireSchoolBusQuestion","requireHazardousMaterialsQuestion","requireSchoolBusTestYesIfApplicable","requireFingerprintsYesIfApplicable","verifyAddresses","testFunc","errorText","passedValidation","shouldShowCDLSelfCert","displayCitizenQuestion","displaycitizenquestion","qualifiesForLegalPresence","mapEyeColor","values","mapGender","mapReplacementReasonList","setOrganDonorYes","setOrganDonorNo","setMedicalDisclosureYes","setMedicalDisclosureNo","setCitizenYes","setCitizenNo","setKeepSchoolBusEndorsement","setTakenSchoolBusClinic","setKeepHazardousMaterialsEndorsement","setSubmittedFingerprints","shouldShowLegalPresence","setSelfCertificationNI","setSelfCertForType","setSelfCertificationNA","setSelfCertificationEI","setSelfCertificationEA","setSelfCertificationType","isSelfCertificationCbChecked","setLegalPresenceYes","setLegalPresenceNo","setResidentYes","setResidentNo","previousState","onHeightFeetChange","onHeightInchesChange","heightIn","declineVoterRegistration","receiveEmails","receiveSMSs","phoneInput","emailIsValid","phoneConfirmationInput","phoneConfirmationFormat","allowConfirmation","hasPhysicalAddress","hasMailingAddress","physicalAddressIsOk","isPhysicalAddressOk","mailingAddressIsOk","isMailingAddressOk","buttons","disabled","selectDurationRenew","selectedOptions","priceObj","innerText","checkForRenew","duration","isRestricted","toggleErrorAlert","phoneRequired","emailRequired","getVoterRegistrationHeader","header","getVoterConfidentialityStatement","statement","showSchoolBusQuestion","endorsements","some","showHazardousMaterialsQuestion","SchoolBusEndorsementQuestion","HazardousMaterialsEndorsementQuestion","min","max","ref","NotFound404","useLocation","openPrintReceiptWindow","printReceiptWindow","open","Handlebars","compile","template","document","write","PrintReceipt","paymentConfirmationContent","sharedContent","receiptModel","transactionParameters","confId","result","getTransactionParameters","params","URLSearchParams","search","openPrintReceiptTab","printReceiptModel","firstName","firstname","lastname","middleInitial","middleinitial","suffix","credentialType","credentialtype","restrictions","class","veteran","paymentType","paymenttype","lastFourCreditCard","lastforcreditcard","cardholderName","cardholdername","confirmationNumber","confirmationnumber","orderTotal","ordertotal","dateOfTransaction","dateoftransaction","toLocaleString","servicetype","transactionId","transactionConfirmationNumber","contentRequests","paymentConfirmationContentResponse","sharedContentResponse","pricingname","faqLink","SharedContentItems","ConfirmationPage","RePrintReceiptButton","transaction","dateBecameNotInflight","receivedPaymentTransaction","useMemo","isInReprintWindow","inFlightEnd","boolToYesOrNo","bool","transactionToReceiptModel","TransactionHistory","setLoading","transactionHistory","setTransactionHistory","setRedirectUrl","isTransactionHistoryItemValid","historyItem","history","finally","AuthenticatedApp","redirectPath","redirect","redirectToPage","path","renderEditInfo","render","component","getReCaptchaSiteKey","authenticateAction","App","authPageText","AuthPage","sharedContentText","siteKey","loadingContent","getSessionLanguage","getAuthPageContent","localization","authContent","isAuthenticated","checkAuthenticationResponse","authResponse","success","reAuth","authFormValues","reCaptchaToken","dobString","getFullYear","getMonth","getDate","LastName","DateOfBirth","PID","SSN","PIN","DocDiscriminator","Captcha","unknownError","prototype","call","flatten","obj","prop","message","onChangeLanuguage","determineLangauge","sessionLanguage","browserLangage","navigator","reCaptchaKey","Container","fluid","exact","bind","Boolean","hostname","match","ErrorBoundry","hasError","info","ReactDOM","getElementById","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.cd5073ad.chunk.js","sourcesContent":["import { CMSLink } from '../types';\n\nexport const getText = (content: any, propName: string): string => {\n return content\n && content[propName]\n && content[propName].Text;\n};\n\nexport const getLinkObj = (content: any, propName: string): CMSLink => {\n return content\n && content[propName];\n};\n","import React from 'react';\nimport {Row, Col} from 'reactstrap';\n\nconst TopHeader = () => {\n return (\n \n \n \n \n \n Vermont Official State Website\n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default TopHeader;\n","import React from 'react';\nimport {Row, Col,/* , Input, Label */\nLabel,\nInput} from 'reactstrap';\nimport { getText } from '../../utils/ContentHelpers';\nimport TopHeader from './TopHeader';\n\ninterface Props {\n language: string\n content: any\n onChangeLanguage: (language: string) => void\n}\n\nclass Header extends React.Component {\n\n onSelectChange = (event: any) => {\n sessionStorage.setItem('vor-localization', event.currentTarget.value);\n this.props.onChangeLanguage(event.currentTarget.value);\n }\n\n render() {\n const { content } = this.props;\n return (\n
\n \n \n \n \n \n \n AGENCY OF TRANSPORTATION\n \n \n \n \n \n Department of Motor Vehicles\n \n \n \n \n \n
\n

\n {getText(content, 'CustomHeaderMessage')}\n

\n
\n \n
\n \n \n
\n \n
\n \n \n \n \n
\n \n \n
\n
\n );\n }\n}\n\nexport default Header;\n","import React from 'react';\nimport { getText } from '../../../utils/ContentHelpers';\n\ninterface Props {\n content: any\n ssn: string\n ddn: string\n pin: string\n}\n\nconst InputInstructions = ({\n content,\n ssn,\n ddn,\n pin\n}: Props) => {\n const displayInstructionSet1 = () => {\n if (!ssn && !pin && !ddn) {\n return (\n

\n {getText(content, 'InstructionText1')}\n

\n );\n }\n return null;\n };\n\n const displayInstructionSet2 = () => {\n if ([ssn, pin, ddn].filter(el => !!el).length === 1) {\n return (\n

\n {getText(content, 'InstructionText2')}\n

\n );\n }\n return null;\n }\n\n const displayInstructionSet3 = () => {\n if (\n [ssn, pin, ddn].filter(el => !!el).length === 2\n || (ssn && pin && ddn)\n ) {\n return (\n

\n {getText(content, 'InstructionText3')}\n

\n );\n }\n return null;\n }\n return (\n
\n {displayInstructionSet1()}\n {displayInstructionSet2()}\n {displayInstructionSet3()}\n
\n );\n};\n\nexport default InputInstructions;\n","import React from 'react';\n\ninterface Props {\n onClick: () => void\n}\n\nconst HelpIcon = ({onClick}: Props) => {\n return (\n
\n ?\n
\n )\n}\n\nexport default HelpIcon;\n","import React, {useState} from 'react';\nimport HelpIcon from './HelpIcon';\nimport {Modal, ModalBody, ModalHeader} from 'reactstrap';\nimport {getText} from '../utils/ContentHelpers'\n\ninterface Props {\n headerTitle: any\n}\n\nconst HelpModalWrapper: React.FC = (props) => {\n\n const [modal, setModal] = useState(false);\n\n const toggle = () => setModal(!modal);\n\n const contentError = () => {\n if (!props.headerTitle) {\n return true;\n }\n return false;\n }\n\n const renderHeader = () => {\n if (contentError()) {\n return 'Error:'\n } else {\n return getText(props.headerTitle, 'HeaderTitle');\n }\n }\n\n const renderBody = () => {\n if (contentError()) {\n return (

Error retrieving content. Please refresh and try again.

);\n } else {\n return props.children;\n }\n }\n\n return (\n \n \n \n \n { renderHeader() }\n \n \n { renderBody() }\n \n \n \n );\n};\n\nexport default HelpModalWrapper;\n","import React from 'react';\nimport { getText } from '../../../utils/ContentHelpers'\nimport { HelpPopUpModal } from '../../../types';\n\ninterface Props {\n content: HelpPopUpModal | null\n}\n\nconst HelpModalBody = ({content}: Props) => {\n const displayImg1 = () => {\n if (\n content\n && content.Image1\n && content.Image1.Paths\n && content.Image1.Paths[0]\n ) {\n return (\n
\n \"help\n
\n );\n }\n return null;\n };\n const displayImg2 = () => {\n if (\n content\n && content.Image2\n && content.Image2.Paths\n && content.Image2.Paths[0]\n ) {\n return (\n
\n \"help\n
\n );\n }\n return null;\n };\n return (\n \n

{getText(content, 'Instructions1')}

\n

{getText(content, 'Instructions2')}

\n {displayImg1()}\n {displayImg2()}\n

{getText(content, 'Instructions3')}

\n
\n );\n};\n\nexport default HelpModalBody;\n","import React from 'react';\nimport { Button } from 'reactstrap'\n\ninterface Props {\n text?: string\n className?: string\n}\n\nclass LogoutBtn extends React.Component {\n\n onClick = () => {\n sessionStorage.clear();\n window.location.href = \"/\";\n }\n\n render() {\n const { className } = this.props;\n return (\n \n {this.props.text || 'Done'}\n \n );\n }\n}\n\nexport default LogoutBtn\n","import React from 'react';\nimport { Alert, Row, Col } from 'reactstrap';\nimport LogoutBtn from './LogoutBtn';\n\ninterface Props {\n errors: Array\n displayErrors: boolean\n displayLogoutBtn?: boolean\n toggleErrorDisplay: () => void\n}\n\nconst ErrorAlert = ({\n errors,\n displayErrors,\n displayLogoutBtn,\n toggleErrorDisplay\n}: Props) => {\n\n const buildErrorList = () => {\n if (displayErrors) {\n if (errors.length === 1) {\n return (\n

\n Error: {errors[0]}\n

\n );\n } else if (errors.length > 1) {\n const errorList = errors.map((errorString, index) => {\n return (\n
  • {errorString}
  • \n );\n });\n return (\n \n
    Errors:
    \n
      {errorList}
    \n
    \n );\n }\n }\n return null;\n }\n const renderLogoutBtn = () => {\n if (displayLogoutBtn) {\n return (\n \n \n \n )\n }\n }\n\n return (\n \n \n \n \n {buildErrorList()}\n \n\n {renderLogoutBtn()}\n\n \n \n \n );\n};\n\nexport default ErrorAlert;\n","import {\n BaseItemActionObj,\n BaseGETListObj,\n BaseItemPOSTPUTActionObj\n} from './types/actionTypes';\nimport axios, { AxiosResponse, AxiosError } from 'axios';\n\nconst buildSortString = (sortString?: string, pluralized: boolean = true): string => {\n if (sortString) {\n if (pluralized) {\n return `&sorts=${sortString}`;\n }\n return `&sort=${sortString}`;\n }\n return '';\n};\n\nconst buildFilterString = (filterString?: string, pluralized: boolean = true): string => {\n if (filterString) {\n if (pluralized) {\n return `&filters=${filterString}`;\n }\n return `&filter=${filterString}`;\n }\n return '';\n};\n\nconst buildRequestConfig = (): object => {\n const jwt = sessionStorage.getItem('vor-jwt');\n return {\n headers: {\n 'authorization': 'Bearer ' + jwt,\n 'Content-Type': 'application/json'\n }\n };\n};\n\nexport const getListAction = (listReqObj: BaseGETListObj) => {\n const {\n count,\n offset,\n sortString,\n filterString,\n pluralizedFilter,\n pluralizedSort,\n customRequestConfig\n } = listReqObj;\n let { url } = listReqObj;\n\n url += `?offset=${offset}&count=${count}`;\n\n url += buildSortString(sortString, pluralizedSort);\n\n url += buildFilterString(filterString, pluralizedFilter);\n\n let requestConfigs = customRequestConfig;\n if (!requestConfigs) {\n requestConfigs = buildRequestConfig();\n }\n\n return axios.get(url, requestConfigs)\n .then((res: AxiosResponse) => {\n return {\n data: res.data\n };\n })\n .catch((err: AxiosError) => {\n throw err;\n });\n};\n\nexport const getItemAction = (reqObj: BaseItemActionObj, resFilter?: (res: any) => any) => {\n const {\n url,\n customRequestConfig\n } = reqObj;\n\n let requestConfigs = customRequestConfig;\n if (!requestConfigs) {\n requestConfigs = buildRequestConfig();\n }\n return axios.get(url, requestConfigs)\n .then((res: AxiosResponse) => {\n const filteredData = resFilter ? resFilter(res) : res.data;\n\n return {\n data: filteredData\n };\n })\n .catch((err: AxiosError) => {\n throw err;\n });\n};\n\nexport const postItemAction = (reqObj: BaseItemPOSTPUTActionObj) => {\n const {\n url,\n customRequestConfig,\n bodyObj\n } = reqObj;\n\n if (bodyObj !== undefined) {\n\n let requestConfigs = customRequestConfig;\n if (!requestConfigs) {\n requestConfigs = buildRequestConfig();\n }\n\n return axios.post(url, bodyObj, requestConfigs)\n .then((res: AxiosResponse) => {\n return {\n data: res.data\n };\n })\n .catch((err: AxiosError) => {\n throw err;\n });\n } else {\n throw new Error(`Missing bodyObj to preform POST to url: ${bodyObj}`);\n }\n};\n\nexport const putItemAction = (reqObj: BaseItemPOSTPUTActionObj) => {\n const {\n url,\n customRequestConfig,\n bodyObj\n } = reqObj;\n\n let requestConfigs = customRequestConfig;\n if (!requestConfigs) {\n requestConfigs = buildRequestConfig();\n }\n\n if (bodyObj !== undefined) {\n return axios.put(url, bodyObj, requestConfigs)\n .then((res: any) => {\n return {\n data: res.data\n };\n })\n .catch((err: any) => {\n throw err;\n });\n } else {\n throw new Error(`Missing bodyObj to preform PUT to url: ${bodyObj}`);\n }\n};\n\nexport const deleteItemAction = (reqObj: BaseItemActionObj) => {\n const {\n url,\n customRequestConfig,\n id\n } = reqObj;\n\n let requestConfigs = customRequestConfig;\n if (!requestConfigs) {\n requestConfigs = buildRequestConfig();\n }\n\n return axios.delete(url, requestConfigs)\n .then((res: any) => {\n return {\n data: res.data || id\n };\n })\n .catch((err: any) => {\n throw err;\n });\n};\n","import { getItemAction } from './baseActions';\n\nconst addLangaugeToRoute = (route: string, language: string = \"\") => {\n if (language && language !== 'en-US') {\n route += `-${language}`;\n }\n return route;\n}\n\nexport const getSharedContent = (language: string = \"\") => {\n return getItemAction({\n url: addLangaugeToRoute('/cms/api/content-items/shared-content', language),\n customRequestConfig:{\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n });\n};\n\nexport const getAuthContent = (language: string = \"\") => {\n return getItemAction({\n url: addLangaugeToRoute('/cms/api/content-items/auth-content', language),\n customRequestConfig:{\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n });\n};\nexport const getAuthHelpContent = (language: string = \"\") => {\n return getItemAction({\n url: addLangaugeToRoute('/cms/api/content-items/auth-content-help', language),\n customRequestConfig:{\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n });\n};\n\nexport const getCredSelectionContent = (language: string = \"\") => {\n return getItemAction({\n url: addLangaugeToRoute('/cms/api/content-items/credential-selection-content', language),\n customRequestConfig:{\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n });\n};\n\nexport const getCredSelectionHelpContent = (language: string = \"\") => {\n return getItemAction({\n url: addLangaugeToRoute('/cms/api/content-items/credential-selection-help-content', language),\n customRequestConfig:{\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n });\n}\n;\nexport const getPaymentConfirmationContent = (language: string = \"\") => {\n return getItemAction({\n url: addLangaugeToRoute('/cms/api/content-items/payment-confirmation-content', language),\n customRequestConfig:{\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n });\n};\n\nexport const getCredEditContent = (language: string = \"\") => {\n return getItemAction({\n url: addLangaugeToRoute('/cms/api/content-items/credentials-edits-content', language),\n customRequestConfig:{\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n });\n};\n\nexport const getReviewEditsContent = (language: string = \"\") => {\n return getItemAction({\n url: addLangaugeToRoute('/cms/api/content-items/review-edits-content', language),\n customRequestConfig:{\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n });\n};\n","import React from 'react';\nimport {\n Row,\n Col,\n Button,\n Input,\n Label,\n Form,\n FormFeedback,\n FormGroup\n} from 'reactstrap';\nimport ReactLadda, {SLIDE_LEFT} from 'react-ladda';\nimport { AuthFromValues, AuthHelpBagContentItem } from '../types';\nimport { getText, getLinkObj } from '../utils/ContentHelpers';\nimport InputInstructions from '../workflows/AuthPage/components/InputInstructions';\nimport HelpModalWrapper from '../components/HelpModalWrapper';\nimport HelpModalBody from '../workflows/AuthPage/components/HelpModalBody';\n// import HelpModal from '../workflows/AuthPage/components/HelpModal';\nimport ErrorAlert from '../components/ErrorAlert';\nimport {\n withGoogleReCaptcha\n} from 'react-google-recaptcha-v3';\nimport DatePicker from 'react-datepicker';\nimport { getAuthHelpContent } from '../requestActions/contentActions';\nimport { AuthHelpResponse } from '../types';\n\ninterface Props {\n authText?: any\n onConfirm: (formValues: AuthFromValues, reCaptchaToken: string) => void\n loading: boolean\n authErrors: Array\n displayAuthErrors: boolean\n toggleAuthErrorDisplay: () => void\n googleReCaptchaProps?: any\n setLoadingState: (loading: boolean) => void\n language: string\n}\n\ninterface State extends AuthFromValues {\n loading: boolean\n dob: Date | null\n ssnError: string\n lastNameError: string\n dobError: string\n idNumError: string\n ssnIsInvalid?: boolean\n lastNameInvalid?: boolean\n dobInvalid?: boolean\n idNumInvalid?: boolean\n requireOne?: boolean\n requireOneError: string\n PIDHelpContent: any\n PINHelpContent: any\n DDNHelpContent: any\n}\n\nclass AuthenticatePage extends React.Component < Props, State > {\n state = {\n lastName: '',\n dob: null,\n idNum: '',\n ssn: '',\n pin: '',\n ddn: '',\n ssnError: '',\n lastNameError: '',\n dobError: '',\n idNumError: '',\n loading: false,\n lastNameInvalid: undefined,\n dobInvalid: undefined,\n idNumInvalid: undefined,\n ssnIsInvalid: undefined,\n requireOne: undefined,\n requireOneError: '',\n displayPIDHelp: false,\n displayPINHelp: false,\n displayDDNHelp: false,\n PIDHelpContent: null,\n PINHelpContent: null,\n DDNHelpContent: null\n };\n\n componentDidMount() {\n this.getHelpModalContent();\n }\n\n getHelpModalContent = () => {\n getAuthHelpContent(this.props.language)\n .then((res: AuthHelpResponse) => {\n if (res?.data?.BagPart?.ContentItems?.length) {\n this.parseAuthHelpContent(res.data.BagPart.ContentItems);\n }\n })\n .catch((error: any) => {\n console.error(error);\n });\n }\n\n parseAuthHelpContent = (contentArray: Array) => {\n type helpAliases = 'auth-content-help-pid'|'auth-content-help-pin'|'auth-content-help-ddn';\n type helpStateNames = 'PIDHelpContent'|'PINHelpContent'|'DDNHelpContent';\n\n const helpAliasToStateMap: Record = {\n 'auth-content-help-pid': 'PIDHelpContent',\n 'auth-content-help-pin': 'PINHelpContent',\n 'auth-content-help-ddn': 'DDNHelpContent'\n } as const;\n const helpContent: Record = {\n PIDHelpContent: null,\n PINHelpContent: null,\n DDNHelpContent: null\n }\n contentArray.forEach((contentItem) => {\n const contentItemAlias = contentItem?.AliasPart?.Alias as helpAliases;\n if (helpAliasToStateMap[contentItemAlias] && contentItem.HelpPopupModal) {\n helpContent[helpAliasToStateMap[contentItemAlias]] = contentItem.HelpPopupModal;\n }\n });\n this.setState(helpContent);\n }\n\n onInputChange = (event: React.SyntheticEvent) => {\n const { name, value } = event.currentTarget;\n this.setState(prevState => ({ ...prevState, [name]: value }));\n }\n\n verifySSN = (ssn?: string) => {\n // user hasn't entered SSN\n if (!ssn?.length) {\n this.setState(prevState => ({\n ...prevState,\n ssnError: '',\n ssnIsInvalid: false\n }));\n return true;\n }\n\n if (ssn.length < 9 || ssn.length > 9) {\n this.setState(prevState => ({\n ...prevState,\n ssnError: getText(this.props.authText, 'InvalidSSNLength'),\n ssnIsInvalid: true\n }));\n return false;\n }\n\n const ssnTest = RegExp(/^(\\d{9})$/, 'g');\n if (!ssnTest.test(ssn)) {\n this.setState(prevState => ({\n ...prevState,\n ssnError: getText(this.props.authText, 'InvalidSSNFormat'),\n ssnIsInvalid: true\n }));\n return false;\n }\n\n // No errors found\n this.setState(prevState => ({\n ...prevState,\n ssnError: '',\n ssnIsInvalid: false\n }));\n return true;\n }\n\n verifyLastName = () => {\n const {lastName} = this.state;\n\n if (!lastName) {\n this.setState({\n lastNameError: getText(this.props.authText, 'LastNameRequired'),\n lastNameInvalid: true\n });\n return false;\n } else {\n this.setState({\n lastNameError: '',\n lastNameInvalid: undefined\n });\n return true;\n }\n }\n\n verifyDOB = () => {\n const {dob} = this.state;\n if (!dob) {\n this.setState({\n dobError: getText(this.props.authText, 'DOBRequired'),\n dobInvalid: true\n });\n return false;\n } else {\n if (!this.dobIsInPast(dob)) {\n this.setState({\n dobError: getText(this.props.authText, 'DOBNotInFuture'),\n dobInvalid: true\n });\n return false;\n } else {\n this.setState({\n dobError: '',\n dobInvalid: undefined\n });\n return true;\n }\n }\n }\n\n verifyIdNum = () => {\n const {idNum} = this.state;\n if (!idNum) {\n this.setState({\n idNumError: getText(this.props.authText, 'IDNumberRequired'),\n idNumInvalid: true\n });\n return false;\n } else {\n this.setState({\n idNumError: '',\n idNumInvalid: undefined\n });\n return true;\n }\n }\n\n dobIsInPast = (dob: Date | null) => {\n const dobTest = dob || new Date();\n const now = new Date();\n return dobTest.getTime() < now.getTime();\n }\n\n onSSNChange = (event: React.SyntheticEvent) => {\n const { value } = event.currentTarget;\n const ssn = value.replace(/[^\\d]/g, '');\n this.verifySSN(ssn);\n this.setState({ssn: ssn});\n }\n\n onDOBChange = (date: Date) => {\n this.setState({dob: date});\n }\n\n onClickCancel = () => {\n this.setState({\n lastName: '',\n dob: null,\n idNum: '',\n ssn: '',\n pin: '',\n ddn: ''\n });\n const cancelBtnURL = getLinkObj(this.props.authText, 'CancelBtn').Url || '';\n if (cancelBtnURL) {\n sessionStorage.clear();\n window.location.href = cancelBtnURL;\n }\n }\n\n ssnPinOrDDNHasValue = () => {\n const {\n ssn,\n pin,\n ddn\n } = this.state;\n if (ssn || pin || ddn) {\n this.setState({\n requireOne: undefined,\n requireOneError: ''\n });\n return true;\n } else {\n this.setState({\n requireOne: true,\n requireOneError: getText(this.props.authText, 'OneIsRequired')\n });\n return false;\n }\n }\n\n onClickConfirm = (event: any) => {\n event.preventDefault();\n const lastNameIsValid = this.verifyLastName();\n const dobIsValid = this.verifyDOB();\n const idNumIsValid = this.verifyIdNum();\n const ssnPinOrDDNHasValue = this.ssnPinOrDDNHasValue();\n const ssnIsValid = this.verifySSN(this.state.ssn);\n if (\n lastNameIsValid\n && dobIsValid\n && idNumIsValid\n && ssnPinOrDDNHasValue\n && ssnIsValid\n ) {\n this.props.setLoadingState(true);\n this.props.googleReCaptchaProps.executeRecaptcha('authenticateUser')\n .then((token: string) => {\n this.props.onConfirm(this.state, token);\n })\n .catch((error: any) => {\n console.error(error);\n this.props.setLoadingState(false);\n });\n }\n }\n\n displayFeedback = (invalid?: boolean) => {\n if (invalid) {\n return \"true\";\n }\n return undefined;\n }\n\n render() {\n const {\n lastName,\n dob,\n idNum,\n ssn,\n ssnIsInvalid,\n lastNameInvalid,\n dobInvalid,\n idNumInvalid,\n requireOne,\n requireOneError,\n ssnError,\n lastNameError,\n dobError,\n idNumError,\n pin,\n ddn,\n PIDHelpContent,\n PINHelpContent,\n DDNHelpContent\n } = this.state;\n const {\n authText,\n loading,\n authErrors,\n displayAuthErrors,\n toggleAuthErrorDisplay\n } = this.props;\n const ssnInvalidClass = ssnIsInvalid || requireOne ? 'is-invalid' : '';\n const dobInvalidClass = dobInvalid ? 'is-invalid' : '';\n const cancelBtnText = getLinkObj(authText, 'CancelBtn').Text || '';\n return (\n
    \n \n \n

    \n {getText(authText, 'AuthTitle')}\n

    \n \n
    \n \n \n \n \n
    \n {getText(authText, 'LeftColHeading')}\n
    \n \n
    \n \n \n
    \n {getText(authText, 'LeftColSubHeading')}\n
    \n \n
    \n \n \n {/* Trying to prevent the column from getting to small */}\n
    \n \n \n \n \n \n \n {lastNameError}\n \n \n \n \n \n \n \n \n
    \n \n \n {dobError}\n \n
    \n \n
    \n \n \n \n \n \n \n {idNumError}\n \n \n \n \n \n
    \n \n \n \n \n
    \n {getText(authText, 'RightColHeading')}\n
    \n \n
    \n \n \n
    \n {getText(authText, 'RightColSubHeading')}\n
    \n \n
    \n \n \n
    \n \n \n \n \n \n \n {ssnError || requireOneError}\n \n \n \n \n \n \n \n \n \n \n {requireOneError}\n \n \n \n \n \n \n \n \n \n \n {requireOneError}\n \n \n \n \n \n
    \n \n
    \n \n \n \n \n \n \n \n
    \n \n \n
    \n {getText(authText, 'CancelLabel')}\n
    \n \n\n
    \n \n \n \n {cancelBtnText}\n \n \n \n \n \n
    \n \n \n
    \n {getText(authText, 'ConfirmLabel')}\n
    \n \n
    \n \n \n \n {getText(authText, 'ConfirmButtonText')}\n \n \n \n \n
    \n \n \n );\n }\n}\n\nexport default withGoogleReCaptcha(AuthenticatePage);\n","import React from 'react';\nimport { Spinner } from 'reactstrap';\n\nconst LoadingIcon = () => {\n return (\n

    \n Loading... \n

    \n );\n}\n\nexport default LoadingIcon;\n","import { Address } from \"../types\";\n\nexport const parseJWT = (jwt: string | null) => {\n if (jwt) {\n const b64URL = jwt.split('.')[1];\n const b64 = b64URL.replace(/-/g, '+').replace(/_/g, '/');\n const jsonPayload = decodeURIComponent(atob(b64).split('').map((c) => {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n return JSON.parse(jsonPayload);\n }\n};\n\nexport const isEnhancedLogin = ():boolean => {\n const parsedJWT = parseJWT(sessionStorage.getItem('vor-jwt'));\n\n return parsedJWT && parsedJWT.enhancedLogin === 'true' ? true : false;\n}\n\nexport const parseCurrency = (currency?: number, noValReturn: string = ''): string => {\n if (currency) {\n const price = currency.toFixed(2);\n return `$${price}`;\n }\n return noValReturn;\n}\nexport const validateLegalAddressForm = (values: any) => {\n const errors: any = {};\n // tslint:disable-next-line\n const POBoxRegex = /^ *((#\\d+)|((box|bin)[-. /\\\\]?\\d+)|(.*p[ .]? ?(o|0)[-. /\\\\]? *-?((box|bin)|b|(#|num)?\\d+))|(p(ost)? *(o(ff(ice)?)?)? *((box|bin)|b)? *\\d+)|(p *-?\\/?(o)? *-?box)|post office box|((box|bin)|b) *(number|num|#)? *\\d+|(num|number|#) *\\d+) /i;\n\n if (POBoxRegex.test(values.lineOne)) {\n errors.address = 'A PO Box cannot be used as a legal address.';\n }\n\n if (!values.lineOne || values.lineOne === '') {\n errors.address = 'Address Required.';\n }\n\n if (!values.city || values.city === '') {\n errors.city = 'City Required.';\n }\n\n if (!values.state || values.state === '') {\n errors.state = 'State Required.';\n }\n\n if (!values.zip || values.zip === '') {\n errors.zip = 'Zip Required.';\n }\n\n if (values.lineOne && values.lineOne.length > 20) {\n errors.address = 'Address length cannot exceed 20 characters.';\n }\n\n if (values.city && values.city.length > 16) {\n errors.city = 'City length cannot exceed 16 characters.';\n }\n\n if (values.zip && values.zip.length > 11) {\n errors.zip = 'Zip length cannot exceed 11 characters.';\n }\n return errors;\n};\n\nexport const formatHeightFeet = (value: string): string => {\n if (value) {\n if (!/^\\d+$/.test(value)) {\n return '';\n } else if (Number(value) > 9) {\n return '9';\n } else if (Number(value) < 1) {\n return '1';\n }\n }\n return value;\n}\n\nexport const formatHeightInches = (value: string): string => {\n if (value) {\n if (!/^\\d+$/.test(value)) {\n return '';\n } else if (Number(value) > 11) {\n return '11';\n } else if (Number(value) < 0) {\n return '0';\n }\n }\n return value;\n}\n\nexport const formatWeight = (weight: any) => {\n if (!weight) {\n return weight;\n }\n if (weight) {\n if (!/^\\d+$/.test(weight)) {\n return '';\n } else if (Number(weight) > 999) {\n return '999';\n } else if (Number(weight) < 1) {\n return '1';\n } else {\n return weight;\n }\n }\n};\n\nexport const getCleanAddress = (address: Address): Address => {\n const cleanAddress = address;\n cleanAddress.country = cleanAddress.country === null ? \"\" : cleanAddress.country;\n cleanAddress.lineTwo = cleanAddress.lineTwo === null ? \"\" : cleanAddress.lineTwo;\n cleanAddress.lineThree = cleanAddress.lineThree === null ? \"\" : cleanAddress.lineThree;\n return cleanAddress\n}\n","import {getItemAction, postItemAction} from './baseActions';\nimport { TransactionModel } from '../types';\n\nexport const createPaymentTransaction = (transactionModel: TransactionModel) => {\n\n return postItemAction({\n url: '/cms/api/online-renewal/transactions',\n bodyObj: transactionModel\n });\n}\n\nexport interface Transaction {\n \"firstname\": string\n \"lastname\": string\n \"middleinitial\": string\n \"suffix\": string\n \"credentialtype\": string\n \"restrictions\": string\n \"endorsements\": string\n \"class\": string\n \"organdonor\": boolean\n \"veteran\": boolean\n \"paymenttype\": string\n \"lastforcreditcard\": string\n \"cardholdername\": string\n \"confirmationnumber\": string\n \"dateoftransaction\": string\n \"servicetype\": string\n \"pricingname\": string\n \"ordertotal\": number\n}\nexport const getTransactionDetails = (transactionId: string) => {\n return getItemAction({\n url: `/cms/api/online-renewal/transactions/${transactionId}`\n }) as Promise<{ data: Transaction }>;\n}\n\nexport const completePaymentTransaction = (transactionId: string, confId: string) => {\n return postItemAction({\n url: `/cms/api/online-renewal/transactions/${transactionId}/complete`,\n bodyObj: {\n transactionConfirmationNumber: confId\n }\n });\n}\n\nexport type TransactionHistoryItem = {\n transactionId: string | null\n identityId: string | null\n credentialId: string | null\n credentialRequestId: string | null\n dateBecameNotInflight: string | null\n fields: Transaction\n}\nexport const getPaymentTransactionHistory = () => {\n return getItemAction({\n url: `cms/api/online-renewal/transaction-history`\n }) as Promise<{ data: TransactionHistoryItem[] }>;\n};\n\n","import React from 'react';\nimport { Row, Col, Button, Card } from 'reactstrap';\nimport { getReviewEditsContent } from '../requestActions/contentActions';\nimport LoadingIcon from '../components/LoadingIcon';\nimport { getText } from '../utils/ContentHelpers';\nimport { parseCurrency, parseJWT, getCleanAddress } from '../utils/UtilityFunctions';\nimport { Addresses, TransactionModel, TransactionCreationResponse, Address } from '../types';\nimport { createPaymentTransaction } from '../requestActions/transactionActions';\nimport LaddaButton, {SLIDE_LEFT} from 'react-ladda';\nimport ErrorAlert from '../components/ErrorAlert';\n\ninterface Props {\n jwt: string\n selectedCredentialId: string\n language: string\n returnToEdit: () => void\n selectedCredential: any\n newServiceType?: string\n heightFeet?: string\n heightInches?: string\n weight?: string\n eyeColor?: string\n gender?: string\n organDonor?: boolean\n medicalDisclosure?: boolean\n declineVoter?: boolean\n cdlSelfCertificationType?: string\n citizen?: boolean\n legalPresence?: boolean\n resident?: boolean\n phone?: string\n email?: string\n receiveEmail?: boolean\n receiveSMS?: boolean\n newAddresses: Addresses\n price?: string,\n selectedPriceObj?: any\n eyeColorList: any\n genderList: any\n addressContent: any\n replacementReason?: string\n replacementReasonList: any\n keepSchoolBusEndorsement: any\n takenSchoolBusClinic: any\n keepHazardousMaterialsEndorsement: any\n submittedFingerprints: any\n}\n\nclass Confirmation extends React.Component {\n\n state = {\n reviewEditsContent: {} as any,\n loading: false,\n submitting: false,\n displayAuthError: false,\n errorMessage: '',\n displayLogoutButton: false\n }\n\n componentDidMount() {\n this.setState({loading: true});\n getReviewEditsContent(this.props.language)\n .then((response: any) => this.setState({loading: false, reviewEditsContent: response.data }))\n .catch((error: any) => {\n this.setState({loading: false});\n console.error(error);\n });\n }\n\n displayMedicalAnswer = () => {\n const { medicalDisclosure } = this.props;\n const { reviewEditsContent } = this.state;\n if (medicalDisclosure) {\n return getText(reviewEditsContent.ReviewConfirmationPage, \"YesAnswer\");\n }\n return getText(reviewEditsContent.ReviewConfirmationPage, \"NoAnswer\");\n }\n\n displayVoterAnswer = () => {\n const { declineVoter, citizen, resident } = this.props;\n const { reviewEditsContent } = this.state;\n if (declineVoter) {\n return getText(reviewEditsContent.ReviewConfirmationPage, \"DeclineAnswer\");\n } else if (citizen && resident) {\n return getText(reviewEditsContent.ReviewConfirmationPage, \"YesAnswer\");\n } else {\n return getText(reviewEditsContent.ReviewConfirmationPage, \"NoAnswer\");\n }\n }\n\n displayOrganDonorAnswer = () => {\n const { organDonor } = this.props;\n const { reviewEditsContent } = this.state;\n if (organDonor) {\n return getText(reviewEditsContent.ReviewConfirmationPage, \"YesAnswer\");\n }\n return getText(reviewEditsContent.ReviewConfirmationPage, \"NoAnswer\");\n }\n\n displayEyeColor = () => {\n let displayColor = '';\n Object.keys(this.props.eyeColorList).forEach((color: string) => {\n if (this.props.eyeColorList[color] && this.props.eyeColorList[color].Text === this.props.eyeColor) {\n displayColor = color + ' (' + this.props.eyeColor + ')';\n }\n });\n return displayColor;\n }\n\n displayGender = () => {\n let displayGender = '';\n Object.keys(this.props.genderList).forEach((gender: string) => {\n if (this.props.genderList[gender] && this.props.genderList[gender].Text === this.props.gender) {\n displayGender = gender + ' (' + this.props.gender + ')';\n }\n });\n return displayGender;\n }\n\n displayAddresses = () => {\n const addressDisplayNameMap: any = {\n 0: getText(this.props.addressContent, 'LegalDisplayName'),\n 1: getText(this.props.addressContent, 'CommercialDisplayName'),\n 2: getText(this.props.addressContent, 'MailingDisplayName'),\n 3: getText(this.props.addressContent, 'SpecialMailingDisplayName'),\n 4: getText(this.props.addressContent, 'POBoxDisplayName')\n };\n return this.props.newAddresses.map((address) => {\n if (address.addressType === 3) {\n const city = address.city ? `${address.city}, ` : '';\n const apocity = address.apocity ? `${address.apocity}, ` : '';\n const state = address.state ? `${address.state}` : '';\n const apostate = address.apostate ? `${address.apostate}` : '';\n const country = address.country ? `${address.country}` : '';\n const zip = address.zip ? `, ${address.zip}` : '';\n return (\n \n {addressDisplayNameMap[address.addressType]} \n {`${address.lineOne}, ` + city + apocity + state + apostate + country + zip}\n \n \n )\n }\n return (\n \n {addressDisplayNameMap[address.addressType]} \n {`${address.lineOne}, ${address.city}, ${address.state}, ${address.zip}`}\n \n \n );\n });\n }\n\n filterAddresses = () => {\n const addresses = this.props.newAddresses.filter((address: Address) => {\n return address.addressChanged\n }) || [];\n return addresses.map(x => getCleanAddress(x));\n }\n\n buildTransactionModel = (): TransactionModel => {\n const { jwt, selectedCredentialId, selectedPriceObj, newServiceType,\n heightFeet, heightInches, eyeColor, gender, weight, organDonor,\n email, phone, declineVoter, cdlSelfCertificationType, citizen,\n legalPresence, resident, medicalDisclosure, receiveEmail,\n replacementReason, receiveSMS, keepSchoolBusEndorsement, takenSchoolBusClinic,\n keepHazardousMaterialsEndorsement, submittedFingerprints} = this.props;\n\n var jwtPayload = parseJWT(jwt);\n\n var isVoter = !declineVoter && (citizen && resident);\n\n let model: TransactionModel = {\n identityId: jwtPayload.IdentityId,\n credentialId: selectedCredentialId,\n pricingName: selectedPriceObj.name || selectedPriceObj[0].name,\n serviceType: newServiceType as string,\n addressChanges: this.filterAddresses(),\n dataChanges: {\n heightfeet: heightFeet,\n heightinches: heightInches,\n eyecolor: eyeColor,\n gender: gender,\n weight: weight,\n organdonor: organDonor,\n cdlselfcertificationtype: cdlSelfCertificationType,\n uscitizen: citizen,\n legalproof: legalPresence,\n motorvoter: isVoter,\n medicalDisclosure: medicalDisclosure,\n email: email,\n telephone: phone,\n keepSchoolBusEndorsement: keepSchoolBusEndorsement,\n takenSchoolBusClinic: takenSchoolBusClinic,\n keepHazardousMaterialsEndorsement: keepHazardousMaterialsEndorsement,\n submittedFingerprints: submittedFingerprints\n },\n fields: {\n lang: this.props.language === 'es-MX' ? 'es' : '',\n email: email,\n telephone: phone,\n receiveEmail: receiveEmail,\n receiveSMS: receiveSMS\n }\n };\n\n if (newServiceType === \"replacement\") {\n model.dataChanges.replacementreason = replacementReason;\n }\n\n return model;\n }\n\n displayReplacementReason = () => {\n let display = '';\n Object.keys(this.props.replacementReasonList).forEach((reason: string) => {\n if (\n this.props.replacementReasonList[reason]\n && this.props.replacementReasonList[reason].Text === this.props.replacementReason\n ) {\n display = reason;\n }\n });\n return display;\n }\n\n displayDurationOrReason = () => {\n const { reviewEditsContent } = this.state;\n if (this.props.newServiceType === 'renew') {\n return (\n \n \n {getText(reviewEditsContent.ReviewConfirmationPage, \"DurationLabel\")}\n \n {this.props.selectedPriceObj.name}\n \n );\n } else {\n return (\n \n \n {getText(reviewEditsContent.ReviewConfirmationPage, \"ReplaceReasonLabel\")}\n \n {this.displayReplacementReason()}\n \n );\n }\n }\n\n onConfirmClick = () => {\n // Here we build the transaction model and send it up to the api, get the redirect uri from the response if it is good and send them to the payment processor.\n const transactionModel = this.buildTransactionModel();\n\n this.setState({ submitting: true });\n createPaymentTransaction(transactionModel)\n .then((res) => {\n const transactionResponse: TransactionCreationResponse = res.data;\n window.location.href = transactionResponse.redirectUri;\n this.setState({ submitting: false })\n })\n .catch((err: any) => {\n let errorMessage = '';\n let displayLogoutButton;\n\n if (err.response?.status === 401) {\n errorMessage = \"Your session has expired. Please click the Return to Login button.\";\n displayLogoutButton = true;\n }\n else {\n errorMessage = err.response?.data?.title;\n displayLogoutButton = false;\n }\n\n this.setState({\n submitting: false,\n displayAuthError: true,\n errorMessage: errorMessage,\n displayLogoutButton: displayLogoutButton\n })\n console.error(err);\n });\n }\n toggleAuthErrorDisplay = () => {\n this.setState({displayAuthError: !this.state.displayAuthError})\n }\n\n render() {\n const {\n selectedCredential,\n selectedPriceObj,\n heightFeet,\n heightInches,\n weight\n } = this.props;\n const { loading, reviewEditsContent, displayAuthError } = this.state;\n\n if (loading) {\n return ;\n }\n\n return (\n
    \n \n \n

    {getText(reviewEditsContent.ReviewConfirmationPage, \"Title\")}

    \n \n
    \n \n \n

    {getText(reviewEditsContent.ReviewConfirmationPage, \"Subtitle\")}

    \n \n
    \n \n \n \n \n {getText(reviewEditsContent.ReviewConfirmationPage, \"LicenseTypeLabel\")}\n \n {selectedCredential.contextData.licensetype}\n \n {this.displayDurationOrReason()}\n \n \n {getText(reviewEditsContent.ReviewConfirmationPage, \"HeightFeetLabel\")}\n \n {heightFeet}\n \n \n \n {getText(reviewEditsContent.ReviewConfirmationPage, \"HeightInchesLabel\")}\n \n {heightInches}\n \n \n \n {getText(reviewEditsContent.ReviewConfirmationPage, \"WeightLabel\")}\n \n {weight}\n \n \n \n {getText(reviewEditsContent.ReviewConfirmationPage, \"EyeLabel\")}\n \n {this.displayEyeColor()}\n \n \n \n {getText(reviewEditsContent.ReviewConfirmationPage, \"Gender\")}\n \n {this.displayGender()}\n \n \n \n {getText(reviewEditsContent.ReviewConfirmationPage, \"OrganDonorLabel\")}\n \n \n {this.displayOrganDonorAnswer()}\n \n \n \n \n {getText(reviewEditsContent.ReviewConfirmationPage, \"MedicalQuestionLabel\")}\n \n {this.displayMedicalAnswer()}\n \n \n \n {getText(reviewEditsContent.ReviewConfirmationPage, \"VoterRegLabel\")}\n \n {this.displayVoterAnswer()}\n \n \n \n \n \n {this.displayAddresses()}\n \n \n \n \n \n \n {getText(reviewEditsContent.ReviewConfirmationPage, \"PriceLabel\")}\n \n {parseCurrency(selectedPriceObj.currency)}\n \n \n \n \n \n \n \n \n \n \n {getText(reviewEditsContent.ReviewConfirmationPage, \"BottomText1\")}\n \n \n \n \n {getText(reviewEditsContent.ReviewConfirmationPage, \"BottomText2\")}\n \n \n \n \n \n \n \n \n {getText(reviewEditsContent.ReviewConfirmationPage, \"ConfirmButtonText\")}\n \n \n \n
    \n );\n }\n}\n\nexport default Confirmation;\n","import React from 'react';\nimport {Row, Col, Button} from 'reactstrap';\nimport { getText, getLinkObj } from '../../utils/ContentHelpers';\nimport LogoutBtn from '../../components/LogoutBtn';\nimport {Redirect} from \"react-router-dom\";\n\ninterface Props {\n content?: any\n}\n\nclass NoCredentials extends React.Component {\n state = {\n redirectUrl: \"\"\n };\n\n render() {\n const {\n content\n } = this.props;\n const link = getLinkObj(content, 'NoCredentialWebAddress');\n return (\n \n \n \n

    \n {getText(content, 'NoCredentialTitle')}\n

    \n \n
    \n \n \n

    \n {getText(content, 'NoCredentialSubtitle')}\n

    \n \n
    \n \n \n

    \n {getText(content, 'NoCredentialMessage')}\n

    \n \n
    \n \n \n
    \n {getText(content, 'NoCredentialContactMessage')}\n
    \n \n
    \n \n \n \n \n \n this.setState({ redirectUrl: '/transaction-history' })}\n >\n Transaction History\n \n \n \n \n \n
    \n {getText(content, 'NoCredentialWebsiteMessage')}\n {link.Text || link.Url}\n
    \n \n
    \n {this.state.redirectUrl ? : <>}\n
    \n );\n }\n}\n\nexport default NoCredentials;\n","import * as React from 'react';\n\nclass SelectableTr extends React.Component {\n\n onSingleClick = () => {\n if (this.props.selectRow) {\n this.props.selectRow(null, null, this.props);\n }\n }\n\n render() {\n const style = { backgroundColor: this.props.selected ? 'rgba(0, 187, 238, 0.25)' : undefined };\n return (\n \n {this.props.children}\n \n );\n }\n}\n\nexport default SelectableTr;\n","import React from 'react'\nimport { getText } from '../../../utils/ContentHelpers';\nimport ReactTable from 'react-table';\nimport selectTableHOC from 'react-table/lib/hoc/selectTable';\n\nimport SelectableTr from './SelectableTr';\nimport { parseCurrency } from '../../../utils/UtilityFunctions';\n\nconst SelectTable = selectTableHOC(ReactTable);\n\n\ninterface Props {\n data: any\n content: any,\n selectedRowId?: number | string\n onSelect: (rowId: number) => void\n}\n\nconst SelectionTable = ({\n data,\n content,\n selectedRowId,\n onSelect\n}: Props) => {\n\n const formatDateCells = (row: any) => {\n const muted = row && (\n row.original.renewal4YearPrice\n || row.original.renewal2YearPrice\n || row.original.replacementPrice\n || row.original.restrictedPrice\n ) ? '' : 'light-grey-text';\n\n if (row.value) {\n const dateString = row.value.split('T')[0];\n const dateArray = dateString.split(\"-\");\n const formattedDate = `${dateArray[1]}/${dateArray[2]}/${dateArray[0]}`;\n return (\n
    \n {formattedDate}\n
    \n );\n }\n return (\n
    \n {'N/A'}\n
    \n );\n };\n\n const formatPriceCells = (row: any) => {\n const muted = row && (\n row.original.renewal4YearPrice\n || row.original.renewal2YearPrice\n || row.original.replacementPrice\n || row.original.restrictedPrice\n ) ? '' : 'light-grey-text';\n\n if (row.value) {\n return (\n
    \n {parseCurrency(row.value, 'N/A')}\n
    \n );\n }\n return (\n
    \n {'N/A'}\n
    \n );\n };\n\n const columns = [\n {\n Header: getText(content, \"TableHeadingColType\"),\n accessor: \"contextData.licensetype\",\n Cell: (rowInfo: any) => {\n const muted = rowInfo && (\n rowInfo.original.renewal4YearPrice\n || rowInfo.original.renewal2YearPrice\n || rowInfo.original.replacementPrice\n || rowInfo.original.restrictedPrice\n ) ? '' : 'light-grey-text';\n return (\n
    \n {rowInfo.original.contextData.licensetype}\n
    \n );\n }\n },\n {\n Header: getText(content, \"TableHeadingColIssueDate\"),\n accessor: \"issueDate\",\n Cell: formatDateCells\n },\n {\n Header: getText(content, \"TableHeadingColExpDate\"),\n accessor: \"expirationDate\",\n Cell: formatDateCells\n },\n {\n Header: getText(content, \"TableHeadingColStatus\"),\n accessor: \"contextData.status\",\n Cell: (rowInfo: any) => {\n const muted = rowInfo && (\n rowInfo.original.renewal4YearPrice\n || rowInfo.original.renewal2YearPrice\n || rowInfo.original.replacementPrice\n || rowInfo.original.restrictedPrice\n ) ? '' : 'light-grey-text';\n return (\n
    \n {rowInfo.original.contextData.status}\n
    \n );\n }\n },\n {\n Header: getText(content, \"TableHeadingColRenewal4Year\"),\n accessor: \"renewal4YearPrice\",\n Cell: formatPriceCells\n },\n {\n Header: getText(content, \"TableHeadingColRenewal2Year\"),\n accessor: \"renewal2YearPrice\",\n Cell: formatPriceCells\n },\n {\n Header: getText(content, \"TableHeadingColReplace\"),\n accessor: \"replacementPrice\",\n Cell: formatPriceCells\n },\n {\n Header: getText(content, \"TableHeadingColRestricted\"),\n accessor: \"restrictedPrice\",\n Cell: formatPriceCells\n }\n ]\n\n const toggleSelection = (key: any, shift: any, row: any) => {\n if (isSelected(row.id)) {\n onSelect(0);\n } else {\n onSelect(row.id);\n }\n }\n\n const isSelected = (key: any) => {\n return selectedRowId === key;\n }\n\n const getSelectableTrProps = (DataGridProps: any, rowData: any) => {\n if (\n rowData\n && (\n rowData.original.renewal4YearPrice\n || rowData.original.renewal2YearPrice\n || rowData.original.replacementPrice\n || rowData.original.restrictedPrice\n )\n ) {\n return {\n id: rowData.original.id,\n selected: isSelected(rowData.original.id),\n selectRow: toggleSelection,\n rowData: rowData\n };\n }\n return {};\n };\n const getSelectableInput = (DataGridProps: any) => {\n if (\n DataGridProps.row\n && (\n DataGridProps.row.renewal4YearPrice\n || DataGridProps.row.renewal2YearPrice\n || DataGridProps.row.replacementPrice\n || DataGridProps.row.restrictedPrice\n )\n ) {\n return (\n
    \n \n
    \n );\n }\n return (\n \n \n );\n };\n\n return (\n \n );\n};\n\nexport default SelectionTable;\n","import React from 'react';\nimport { Row, Col } from 'reactstrap';\nimport { getText } from '../../../utils/ContentHelpers';\n\ninterface Props {\n content: any\n credential: any\n}\n\nconst SelectedRecord = ({content, credential}: Props) => {\n\n // This may change and could be reusable\n const displayField = (property: string, notFoundReturn?: any) => {\n if (credential[property]) {\n return credential[property];\n }\n return notFoundReturn;\n };\n\n const displayContextField = (property: string, notFoundReturn?: any) => {\n if (credential.contextData && credential.contextData[property]) {\n return credential.contextData[property];\n }\n return notFoundReturn;\n };\n\n const parseDateField = (dt: string) => {\n if (dt) {\n const dateString = dt.split('T')[0];\n const dateArray = dateString.split(\"-\");\n const formattedDate = `${dateArray[1]}/${dateArray[2]}/${dateArray[0]}`;\n return formattedDate;\n }\n return 'N/A';\n };\n\n return (\n \n \n \n

    \n {getText(content, 'SelectionHeading')}\n

    \n \n
    \n \n \n
    \n {getText(content, \"SelectedLabelLastName\")}\n
    \n
    \n {displayContextField('lastname', 'N/A')}\n
    \n \n \n
    \n {getText(content, \"SelectedLabelMiddleName\")}\n
    \n
    \n {displayContextField('middlename', 'N/A')}\n
    \n \n \n
    \n {getText(content, \"SelectedLabelFirstName\")}\n
    \n
    \n {displayContextField('firstname', 'N/A')}\n
    \n \n \n
    \n {getText(content, \"SelectedLabelDOB\")}\n
    \n
    \n {parseDateField(displayContextField('dateofbirth'))}\n
    \n \n \n
    \n {getText(content, \"SelectedLabelLicenseType\")}\n
    \n
    \n {displayContextField('licensetype', 'N/A')}\n
    \n \n \n
    \n {getText(content, \"SelectedLabelIssueDate\")}\n
    \n
    \n {parseDateField(displayField('issueDate'))}\n
    \n \n \n
    \n {getText(content, \"SelectedLabelExpDate\")}\n
    \n
    \n {parseDateField(displayField('expirationDate'))}\n
    \n \n
    \n
    \n );\n};\n\nexport default SelectedRecord;\n","import React from 'react';\nimport { getText, getLinkObj } from '../../../utils/ContentHelpers'\n// import { HelpPopUpModal } from '../../../types';\n\ninterface Props {\n content: any\n}\n\nconst SelectCredHelpModalBody = ({content}: Props) => {\n const link = getLinkObj(content, 'MoreHelpLink');\n return (\n \n

    {getText(content, 'HelpInstructions')}

    \n
    {getText(content, 'RenewalSectionHeader')}
    \n
    \n
    {getText(content, 'RenewalQuestion1')}
    \n
    {getText(content, 'RenewalAnswer1')}
    \n
    \n
    \n
    {getText(content, 'RenewalQuestion2')}
    \n
    {getText(content, 'RenewalAnswer2')}
    \n
    \n
    {getText(content, 'ReplaceSectionHeader')}
    \n
    \n
    {getText(content, 'ReplaceQuestion1')}
    \n
    {getText(content, 'ReplaceAnswer1')}
    \n
    \n
    \n
    {getText(content, 'ReplaceQuestion2')}
    \n
    {getText(content, 'ReplaceAnswer2')}
    \n
    \n
    {getText(content, 'MoreHelpText')}
    \n
    {getText(content, 'MoreHelpText2')}{link.Text || link.Url}{getText(content, 'MoreHelpText3')}
    \n
    \n );\n};\n\nexport default SelectCredHelpModalBody;\n","import React from 'react';\nimport LogoutBtn from '../../components/LogoutBtn';\nimport { Row, Col, Button } from 'reactstrap';\nimport { getText } from '../../utils/ContentHelpers';\nimport SelectionTable from './components/SelectionTable';\nimport SelectedRecord from './components/SelectedRecord';\nimport { Redirect } from 'react-router-dom';\nimport { isEnhancedLogin } from '../../utils/UtilityFunctions';\nimport HelpModalWrapper from '../../components/HelpModalWrapper';\nimport SelectCredHelpModalBody from './components/SelectCredHelpModalbody';\nimport ErrorAlert from '../../components/ErrorAlert';\n\ninterface Props {\n content?: any\n credentials?: any\n language: string\n helpContent: any\n failedPayment: boolean\n}\n\nclass HasCredentials extends React.Component {\n state = {\n redirectUrl: \"\",\n selectedCredential: {} as any,\n selectedRecordId: \"\",\n componentToRender: \"credentialSelection\",\n editCredentialText: {},\n replacementReasonList: {},\n eyeColorList: {},\n enhanced: false,\n addressContent: {},\n newServiceType: undefined,\n displayErrors: this.props.failedPayment || false\n };\n\n componentDidMount() {\n this.setEnhancedState();\n }\n setEnhancedState = () => {\n this.setState({enhanced: isEnhancedLogin()});\n }\n\n handleOnSelect = (recordId: any) => {\n const {credentials} = this.props;\n this.setState({\n selectedRecordId: recordId,\n selectedCredential: credentials.find((cred: any) => cred.id === recordId) || {}\n });\n }\n\n onClickRenew = () => {\n this.setState({\n componentToRender: 'editInformation',\n newServiceType: 'renew'\n });\n }\n\n onClickReplace = () => {\n this.setState({\n componentToRender: 'editInformation',\n newServiceType: 'replacement'\n });\n }\n\n editInformation = () => {\n return (\n \n );\n }\n\n toggleErrorDisplay = () => {\n this.setState({displayErrors: !this.state.displayErrors});\n }\n\n credentialSelection = () => {\n const {\n content,\n credentials,\n helpContent\n } = this.props;\n const {\n selectedRecordId,\n selectedCredential,\n enhanced,\n displayErrors\n } = this.state;\n return (\n \n \n \n

    \n {getText(content, 'MainTitle')}\n

    \n \n
    \n \n \n

    \n {getText(content, 'Subtitle')}\n

    \n \n
    \n \n \n

    \n {getText(content, 'AvailableCredHeading')}\n

    \n \n
    \n \n \n \n \n \n {enhanced &&\n \n \n

    \n {getText(content, 'EnhancedLogin')}\n

    \n \n
    \n }\n \n \n \n \n \n \n \n

    \n {getText(content, 'ActionsHeading')} \n \n \n \n

    \n \n
    \n \n \n {/* Did not put in the CMS on purpose. */}\n \n \n \n \n \n
    \n {getText(content, 'CancelButtonMessage')}\n
    \n \n \n \n
    View any previous transactions
    \n this.setState({ redirectUrl: '/transaction-history' })}\n >\n Transaction History\n \n \n {/* FIXME This will not be correct most likely */}\n {\n selectedCredential\n && (selectedCredential.renewal4YearPrice || selectedCredential.renewal2YearPrice || selectedCredential.restrictedPrice )\n && \n
    \n {getText(content, 'RenewButtonMessage')}\n
    \n \n {getText(content, 'RenewButtonText')}\n \n \n }\n {/* FIXME This will not be correct most likely */}\n {selectedCredential && selectedCredential.replacementPrice &&\n \n
    \n {getText(content, 'ReplaceButtonMessage')}\n
    \n \n {getText(content, 'ReplaceButtonText')}\n \n \n }\n
    \n {this.state.redirectUrl ? : <>}\n
    \n );\n }\n render() {\n return this.state.componentToRender === 'credentialSelection'\n ? this.credentialSelection()\n : this.editInformation();\n }\n}\n\nexport default HasCredentials;\n","import { getItemAction } from \"./baseActions\";\n\nexport const getEligibleCredentialsAction = () => {\n return getItemAction({\n url: '/cms/api/eligible-credentials',\n },\n (res: any) => {\n // removes the special mailing addresses from the credential\n // they are old and should not be carried forward\n const filteredData = res.data.map((credential: any) => {\n\n let filteredCredential = credential;\n const filteredAddresses = credential?.contextData?.addresses?.filter((address: any) => {\n return address?.addressType !== 3;\n });\n filteredCredential.contextData.addresses = filteredAddresses;\n\n return filteredCredential;\n });\n\n return filteredData;\n });\n}\n","import React from 'react';\nimport NoCredentials from '../workflows/CredentialSelection/NoCredentials';\nimport HasCredentials from '../workflows/CredentialSelection/HasCredentials';\nimport { getCredSelectionContent, getCredSelectionHelpContent } from '../requestActions/contentActions';\nimport { getEligibleCredentialsAction } from '../requestActions/credentialSelectionActions';\nimport LoadingIcon from '../components/LoadingIcon';\n\ninterface Props {\n language: string,\n queryParams: any\n}\n\nclass CredentialSelection extends React.Component {\n\n state = {\n loading: true,\n credentials: null as any,\n credentialText: {} as any,\n helpContent: null as any,\n failedPayment: false\n }\n\n componentDidMount() {\n this.displayPaymentFailure();\n this.performAPICalls();\n }\n\n componentDidUpdate(prevProps: Props) {\n if (prevProps.queryParams !== this.props.queryParams ) {\n this.displayPaymentFailure();\n }\n }\n\n displayPaymentFailure = () => {\n if (\n this.props.queryParams\n && this.props.queryParams.has('result')\n && this.props.queryParams.get('result') === 'failure'\n ) {\n this.setState({failedPayment: true});\n }\n }\n\n performAPICalls = () => {\n const promiseArray = [\n getCredSelectionContent(this.props.language),\n getEligibleCredentialsAction()\n ]\n Promise.all(promiseArray)\n .then(([contentResp, credentialResp]: any) => {\n this.setState({\n credentials: this.parseCredentialData(credentialResp.data),\n credentialText: contentResp.data,\n loading: false\n });\n\n return getCredSelectionHelpContent(this.props.language)\n })\n .then((helpResp) => {\n this.setState({helpContent: helpResp.data.RenewOrReplaceHelp});\n })\n .catch((error) => {\n console.error(error);\n if (error.response.status === 401) {\n sessionStorage.clear();\n window.location.href = \"/\";\n }\n });\n }\n\n parseCredentialData = (data: any) => {\n return data.map((record: any) => {\n const rebuiltRecord = record;\n if (record && record.prices && record.prices.length) {\n record.prices.forEach((price: any) => {\n if (price.name === 'Renewal - 4 year') {\n rebuiltRecord.renewal4YearPrice = price.currency;\n } else if (price.name === 'Renewal - 2 year') {\n rebuiltRecord.renewal2YearPrice = price.currency;\n } else if (price.name === 'Replacement') {\n rebuiltRecord.replacementPrice = price.currency;\n } else if (price.name === 'Restricted - 1 year') {\n rebuiltRecord.restrictedPrice = price.currency;\n }\n });\n }\n return rebuiltRecord;\n });\n }\n\n renderHasCredential = () => {\n const {\n credentials,\n credentialText,\n helpContent,\n failedPayment\n } = this.state;\n if (credentials.length) {\n return (\n \n );\n } else {\n return (\n \n );\n }\n }\n\n render() {\n if (this.state.loading) {\n return (\n \n );\n }\n return (\n \n {this.renderHasCredential()}\n \n );\n }\n}\n\nexport default CredentialSelection;\n","import React, {useCallback, useEffect, useState} from \"react\";\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n Form,\n Row,\n Col,\n FormGroup,\n Label,\n Input,\n FormFeedback\n} from 'reactstrap';\nimport ReactLadda from 'react-ladda';\nimport {\n withGoogleReCaptcha\n} from 'react-google-recaptcha-v3';\n\nimport {getLinkObj, getText} from \"../utils/ContentHelpers\";\nimport DatePicker from \"react-datepicker\";\nimport HelpModalWrapper from \"./HelpModalWrapper\";\nimport HelpModalBody from \"../workflows/AuthPage/components/HelpModalBody\";\nimport InputInstructions from \"../workflows/AuthPage/components/InputInstructions\";\nimport {getAuthHelpContent} from \"../requestActions/contentActions\";\nimport {AuthFromValues, AuthHelpBagContentItem, AuthHelpResponse} from \"../types\";\nimport ErrorAlert from \"./ErrorAlert\";\n\ninterface ReAuthenticationModalProps {\n authConfirm: (\n saveAuthResults: ({authLoading, authErrors, displayAuthErrors}: {authLoading: boolean, displayAuthErrors: boolean, authErrors: any[]}) => void,\n reAuth?: boolean\n ) => (authFormValues: AuthFromValues, reCaptchaToken: string) => Promise\n authText: any\n isOpen: boolean\n toggleModal: () => void\n googleReCaptchaProps?: any\n language: string,\n isForAddressChange?: boolean\n}\n\nconst ReAuthenticationModal: React.FC = ({\n authConfirm,\n authText,\n isOpen,\n toggleModal,\n googleReCaptchaProps,\n language,\n isForAddressChange\n}) => {\n const [state, setState] = useState<{\n authLoading: boolean,\n authErrors: any[],\n displayAuthErrors: boolean,\n lastName: string,\n dob: Date | null,\n idNum: string,\n ssn: string,\n pin: string,\n ddn: string,\n ssnError: string,\n lastNameError: string,\n dobError: string,\n idNumError: string,\n lastNameInvalid: boolean,\n dobInvalid: boolean,\n idNumInvalid: boolean,\n ssnIsInvalid: boolean,\n requireOne: boolean,\n requireOneError: string,\n displayPIDHelp: boolean,\n displayPINHelp: boolean,\n displayDDNHelp: boolean,\n PIDHelpContent: any,\n PINHelpContent: any,\n DDNHelpContent: any\n }>({\n authLoading: false,\n authErrors: [],\n displayAuthErrors: false,\n lastName: '',\n dob: null,\n idNum: '',\n ssn: '',\n pin: '',\n ddn: '',\n ssnError: '',\n lastNameError: '',\n dobError: '',\n idNumError: '',\n lastNameInvalid: false,\n dobInvalid: false,\n idNumInvalid: false,\n ssnIsInvalid: false,\n requireOne: false,\n requireOneError: '',\n displayPIDHelp: false,\n displayPINHelp: false,\n displayDDNHelp: false,\n PIDHelpContent: null,\n PINHelpContent: null,\n DDNHelpContent: null\n });\n const getHelpModalContent = useCallback(() => {\n getAuthHelpContent(language)\n .then((res: AuthHelpResponse) => {\n if (res?.data?.BagPart?.ContentItems?.length) {\n parseAuthHelpContent(res.data.BagPart.ContentItems);\n }\n })\n .catch((error: any) => {\n console.error(error);\n });\n }, []);\n\n const parseAuthHelpContent = (contentArray: Array) => {\n type helpAliases = 'auth-content-help-pid'|'auth-content-help-pin'|'auth-content-help-ddn';\n type helpStateNames = 'PIDHelpContent'|'PINHelpContent'|'DDNHelpContent';\n\n const helpAliasToStateMap: Record = {\n 'auth-content-help-pid': 'PIDHelpContent',\n 'auth-content-help-pin': 'PINHelpContent',\n 'auth-content-help-ddn': 'DDNHelpContent'\n } as const;\n const helpContent: Record = {\n PIDHelpContent: null,\n PINHelpContent: null,\n DDNHelpContent: null\n }\n contentArray.forEach((contentItem) => {\n const contentItemAlias = contentItem?.AliasPart?.Alias as helpAliases;\n if (helpAliasToStateMap[contentItemAlias] && contentItem.HelpPopupModal) {\n helpContent[helpAliasToStateMap[contentItemAlias]] = contentItem.HelpPopupModal;\n }\n });\n setState(prevState => ({ ...prevState, ...helpContent}));\n };\n\n useEffect(() => {\n getHelpModalContent();\n }, [getHelpModalContent]);\n\n const doesHaveTwo = () => {\n let count = 0;\n\n if (state.ssn && state.ssn !== '') {\n count++;\n }\n if (state.pin && state.pin !== '') {\n count++;\n }\n if (state.ddn && state.ddn !== '') {\n count ++;\n }\n\n return count > 1 ? true : false;\n }\n\n const verifyAddressChange = () => {\n if (!isForAddressChange) {\n return true;\n }\n return doesHaveTwo();\n }\n\n const verifySSN = (ssn?: string) => {\n // user hasn't entered SSN\n if (!ssn?.length) {\n setState(prevState => ({\n ...prevState,\n ssnError: '',\n ssnIsInvalid: false\n }));\n return true;\n }\n\n if (ssn.length < 9 || ssn.length > 9) {\n setState(prevState => ({\n ...prevState,\n ssnError: getText(authText, 'InvalidSSNLength'),\n ssnIsInvalid: true\n }));\n return false;\n }\n\n const ssnTest = RegExp(/^(\\d{9})$/, 'g');\n if (!ssnTest.test(ssn)) {\n setState(prevState => ({\n ...prevState,\n ssnError: getText(authText, 'InvalidSSNFormat'),\n ssnIsInvalid: true\n }));\n return false;\n }\n\n // No errors found\n setState(prevState => ({\n ...prevState,\n ssnError: '',\n ssnIsInvalid: false\n }));\n return true;\n };\n\n const verifyLastName = () => {\n if (!state.lastName) {\n setState(prevState => ({\n ...prevState,\n lastNameError: getText(authText, 'LastNameRequired'),\n lastNameInvalid: true\n }));\n return false;\n }\n\n setState(prevState => ({\n ...prevState,\n lastNameError: '',\n lastNameInvalid: false\n }));\n return true;\n };\n\n const dobIsInPast = (dob: Date | null) => {\n const dobTest = dob || new Date();\n const now = new Date();\n return dobTest.getTime() < now.getTime();\n };\n\n const verifyDOB = () => {\n if (!state.dob) {\n setState(prevState => ({\n ...prevState,\n dobError: getText(authText, 'DOBRequired'),\n dobInvalid: true\n }));\n return false;\n }\n if (!dobIsInPast(state.dob)) {\n setState(prevState => ({\n ...prevState,\n dobError: getText(authText, 'DOBNotInFuture'),\n dobInvalid: true\n }));\n return false;\n }\n\n setState(prevState => ({\n ...prevState,\n dobError: '',\n dobInvalid: false\n }));\n return true;\n };\n\n const verifyIdNum = () => {\n if (!state.idNum) {\n setState(prevState => ({\n ...prevState,\n idNumError: getText(authText, 'IDNumberRequired'),\n idNumInvalid: true\n }));\n return false;\n }\n setState(prevState => ({\n ...prevState,\n idNumError: '',\n idNumInvalid: false\n }));\n return true;\n };\n\n const ssnPinOrDDNHasValue = () => {\n const { ssn, pin, ddn } = state;\n\n if (ssn || pin || ddn) {\n setState(prevState => ({\n ...prevState,\n requireOne: false,\n requireOneError: ''\n }));\n return true;\n }\n\n setState(prevState => ({\n ...prevState,\n requireOne: true,\n requireOneError: getText(authText, 'OneIsRequired')\n }));\n return false;\n };\n\n const onDOBChange = (date: Date) => {\n setState(prevState => ({ ...prevState, dob: date}));\n };\n\n const onInputChange = (event: React.SyntheticEvent) => {\n const { name, value } = event.currentTarget;\n setState(prevState => ({ ...prevState, [name]: value }));\n };\n\n const onSSNChange = (event: React.SyntheticEvent) => {\n const { value } = event.currentTarget;\n const ssn = value.replace(/[^\\d]/g, '');\n verifySSN(ssn);\n setState(prevState => ({...prevState, ssn: ssn}));\n };\n\n const toggleAuthErrorDisplay = () => setState(prevState => ({ ...prevState, displayAuthErrors: !prevState.displayAuthErrors }))\n const saveAuthResults = ({authLoading, authErrors, displayAuthErrors}: {authLoading: boolean, displayAuthErrors: boolean, authErrors: any[]}) => {\n setState(prevState => ({ ...prevState, authLoading, authErrors, displayAuthErrors }))\n }\n const onClickConfirm = (event: any) => {\n event.preventDefault();\n if (\n verifyLastName()\n && verifyDOB()\n && verifyIdNum()\n && ssnPinOrDDNHasValue()\n && verifySSN(state.ssn)\n && verifyAddressChange()\n ) {\n setState(prevState => ({ ...prevState, authLoading: true }));\n googleReCaptchaProps.executeRecaptcha('authenticateUser')\n .then((token: string) => {\n const {lastName, dob, idNum, ssn, pin, ddn} = state;\n return authConfirm(saveAuthResults, true)({\n lastName,\n dob,\n idNum,\n ssn,\n pin,\n ddn\n }, token)\n })\n .then((authSuccessful: boolean) => authSuccessful && toggleModal());\n }\n };\n\n const onClickCancel = (event: any) => {\n toggleModal();\n };\n\n const ssnInvalidClass = state.ssnIsInvalid || state.requireOne ? 'is-invalid' : '';\n const dobInvalidClass = state.dobInvalid ? 'is-invalid' : '';\n const changeAddressInvalidClass = !verifyAddressChange() ? 'text-danger' : '';\n const disabledClass = !verifyAddressChange() ? 'disabled-ladda' : '';\n\n return (\n \n \n
    \n \n \n \n \n
    \n {getText(authText, 'LeftColHeading')}\n
    \n \n
    \n \n \n
    \n {getText(authText, 'LeftColSubHeading')}\n
    \n \n
    \n \n \n {/* Trying to prevent the column from getting to small */}\n
    \n \n \n \n \n \n \n {state.lastNameError}\n \n \n \n \n \n \n \n \n
    \n \n \n {state.dobError}\n \n
    \n \n
    \n \n \n \n \n \n \n {state.idNumError}\n \n \n \n \n \n
    \n \n \n \n \n
    \n {getText(authText, 'RightColHeading')}\n
    \n \n
    \n \n \n
    \n {getText(authText, 'RightColSubHeading')}\n
    \n \n
    \n \n \n
    \n \n \n \n \n \n \n {state.ssnError || state.requireOneError}\n \n \n \n \n \n \n \n \n \n \n {state.requireOneError}\n \n \n \n \n \n \n \n \n \n \n {state.requireOneError}\n \n \n \n \n \n
    \n \n
    \n \n \n \n \n \n \n \n
    \n \n \n {getLinkObj(authText, 'CancelBtn').Text || ''}\n \n \n {getText(authText, 'ConfirmButtonText')}\n \n \n
    \n );\n};\n\nexport default withGoogleReCaptcha(ReAuthenticationModal)\n","import React, { SyntheticEvent } from 'react';\nimport { Input, Button, Label, Row, Col, Card, FormFeedback, FormGroup } from 'reactstrap';\nimport { getText } from '../../utils/ContentHelpers';\nimport { isEnhancedLogin } from '../../utils/UtilityFunctions';\nimport { Addresses, Address, HelpPopUpModal, AuthFromValues } from '../../types';\nimport HelpModalWrapper from '../../components/HelpModalWrapper';\nimport HelpModalBody from '../AuthPage/components/HelpModalBody';\nimport ReAuthenticationModal from \"../../components/ReAuthenticationModal\";\n\nexport interface Props {\n authConfirm: (\n saveAuthResults: ({ authLoading, authErrors, displayAuthErrors }: { authLoading: boolean, displayAuthErrors: boolean, authErrors: any[] }) => void,\n reAuth?: boolean\n ) => (authFormValues: AuthFromValues, reCaptchaToken: string) => Promise\n authText: any\n newAddresses: Addresses\n addressContent: any\n setNewAddressState: (addresses: Addresses) => any\n spMailingHelpModalContent: HelpPopUpModal\n fieldOptions: any\n isForeignAddress: boolean\n isAPOAddress: boolean\n isForeignAddressState: (value: boolean) => any\n isAPOAddressState: (value: boolean) => any\n language: string\n isCurrentPhysicalAddress: boolean | undefined\n isCurrentMailingAddress: boolean | undefined\n setIsCurrentPhysicalAddress: (current: boolean) => any\n setIsCurrentMailingAddress: (current: boolean) => any\n reauthorized?: boolean\n}\nclass AddressManagement extends React.Component {\n state: any = {\n legalAddressInvalid: undefined,\n legalAddressError: undefined,\n otherAddressInvalid: undefined,\n otherAddressError: undefined,\n specialMailingAddressInvalid: undefined,\n specialMailingAddressError: undefined,\n specialMailingCityInvalid: undefined,\n specialMailingCityError: undefined,\n specialMailingZipInvalid: undefined,\n specialMailingZipError: undefined,\n specialMailingStateInvalid: undefined,\n specialMailingStateError: undefined,\n specialMailingCountryInvalid: undefined,\n specialMailingCountryError: undefined,\n cityInvalid: undefined,\n cityError: undefined,\n zipInvalid: undefined,\n zipError: undefined,\n stateInvalid: undefined,\n stateError: undefined,\n reAuthenticationModalOpen: false\n }\n\n legalStateList = [] as Array;\n\n createSpecialMailing = () => {\n const newSpecialMailingAddress: Address = {\n addressType: 3,\n addressClass: 0,\n city: \"\",\n apocity: \"\",\n latestAddress: false,\n lineOne: \"\",\n lineTwo: \"\",\n lineThree: \"\",\n state: \"\",\n apostate: \"\",\n country: \"\",\n zip: \"\",\n addressChanged: true\n };\n let addresses = this.props.newAddresses;\n addresses.push(newSpecialMailingAddress);\n this.props.setNewAddressState(addresses);\n }\n\n removeSpecialMailing = () => {\n const { newAddresses } = this.props;\n const addressArray: Addresses = []\n newAddresses.forEach((addr) => {\n if (addr.addressType !== 3) {\n addressArray.push(addr);\n }\n });\n this.props.setNewAddressState(addressArray);\n }\n\n handleChange(index: number, dataType: string, value: string) {\n const newState = this.props.newAddresses.map((item, i) => {\n if (i === index) {\n // any change to address counts as correcting the address\n if (item.addressType === 0) {\n this.props.setIsCurrentPhysicalAddress(true);\n }\n else if (item.addressType === 2) {\n this.props.setIsCurrentMailingAddress(true);\n }\n return { ...item, [dataType]: value, addressChanged: true };\n }\n return item;\n });\n return this.props.setNewAddressState(newState);\n }\n\n checkForSpecialMailing = () => {\n return this.props.newAddresses.filter((address: any) => address.addressType === 3).length < 1;\n }\n\n verifyLegalAddressEvent = (event: React.SyntheticEvent) => {\n this.verifyLegalAddress(event.currentTarget.value);\n }\n\n verifyOtherAddressEvent = (event: React.SyntheticEvent) => {\n this.verifyOtherAddresses(event.currentTarget.value);\n }\n\n verifyCityEvent = (event: React.SyntheticEvent, index: number) => {\n this.verifyCity(event.currentTarget.value, index)\n }\n\n verifyZipEvent = (event: React.SyntheticEvent, index: number) => {\n this.verifyZip(event.currentTarget.value, index);\n }\n\n verifyStateEvent = (event: React.SyntheticEvent, index: number) => {\n this.verifyState(event.currentTarget.value, index);\n }\n\n verifySpecialMailingAddressEvent = (event: React.SyntheticEvent) => {\n this.verifySpecialMailingAddress(event.currentTarget.value);\n }\n\n verifySpecialMailingCountryEvent = (event: React.SyntheticEvent, index: number) => {\n this.verifySpecialMailingCountry(event.currentTarget.value, index)\n }\n\n verifySpecialMailingCityEvent = (event: React.SyntheticEvent, index: number) => {\n this.verifySpecialMailingCity(event.currentTarget.value, index)\n }\n\n verifySpecialMailingZipEvent = (event: React.SyntheticEvent, index: number) => {\n this.verifySpecialMailingZip(event.currentTarget.value, index);\n }\n\n verifySpecialMailingStateEvent = (event: React.SyntheticEvent, index: number) => {\n this.verifySpecialMailingState(event.currentTarget.value, index);\n }\n\n verifySpecialMailingAddress = (value: string) => {\n if (!value || value === '') {\n this.setState({\n specialMailingAddressError: getText(this.props.addressContent, 'StreetAddressRequired'),\n specialMailingAddressInvalid: true\n });\n return false;\n } else if (value.length > 35) {\n this.setState({\n specialMailingAddressError: getText(this.props.addressContent, 'StreetAddressToLong'),\n specialMailingAddressInvalid: true\n });\n return false;\n } else {\n this.setState({\n specialMailingAddressError: '',\n specialMailingAddressInvalid: undefined\n });\n return true;\n }\n }\n\n verifyLegalAddress = (value: string) => {\n const POBoxRegex = /^ *((#\\d+)|((box|bin)[-. /\\\\]?\\d+)|(.*p[ .]? ?(o|0)[-. /\\\\]? *-?((box|bin)|b|(#|num)?\\d+))|(p(ost)? *(o(ff(ice)?)?)? *((box|bin)|b)? *\\d+)|(p *-?\\/?(o)? *-?box)|post office box|((box|bin)|b) *(number|num|#)? *\\d+|(num|number|#) *\\d+)/i;\n\n if (!value || value === '') {\n this.setState({\n legalAddressError: getText(this.props.addressContent, 'StreetAddressRequired'),\n legalAddressInvalid: true\n });\n return false;\n } else if (POBoxRegex.test(value)) {\n this.setState({\n legalAddressError: getText(this.props.addressContent, 'NoLegalPOBox'),\n legalAddressInvalid: true\n });\n return false;\n } else if (value.length > 20) {\n this.setState({\n legalAddressError: getText(this.props.addressContent, 'StreetAddressToLong'),\n legalAddressInvalid: true\n });\n return false;\n } else {\n this.setState({\n legalAddressError: '',\n legalAddressInvalid: undefined\n });\n return true;\n }\n }\n\n verifyOtherAddresses = (value: string) => {\n if (!value || value === '') {\n this.setState({\n otherAddressError: getText(this.props.addressContent, 'StreetAddressRequired'),\n otherAddressInvalid: true\n });\n return false;\n } else if (value.length > 20) {\n this.setState({\n otherAddressError: getText(this.props.addressContent, 'StreetAddressToLong'),\n otherAddressInvalid: true\n });\n return false;\n } else {\n this.setState({\n otherAddressError: '',\n otherAddressInvalid: undefined\n });\n return true;\n }\n }\n\n verifyCity = (value: string, index: number) => {\n if (!value || value === '') {\n this.setState({\n ['cityError' + index]: getText(this.props.addressContent, 'CityRequired'),\n ['cityInvalid' + index]: true\n });\n return false;\n } else if (value.length > 16) {\n this.setState({\n ['cityError' + index]: getText(this.props.addressContent, 'CityToLong'),\n ['cityInvalid' + index]: true\n });\n return false;\n } else {\n this.setState({\n ['cityError' + index]: '',\n ['cityInvalid' + index]: undefined\n });\n return true;\n }\n }\n\n verifySpecialMailingCity = (value: string, index: number) => {\n if (!value || value === '') {\n this.setState({\n specialMailingCityError: getText(this.props.addressContent, 'CityRequired'),\n specialMailingCityInvalid: true\n });\n return false;\n } else if (value.length > 20) {\n this.setState({\n specialMailingCityError: getText(this.props.addressContent, 'CityToLong'),\n specialMailingCityInvalid: true\n });\n return false;\n } else {\n this.setState({\n specialMailingCityError: '',\n specialMailingCityInvalid: undefined\n });\n return true;\n }\n }\n\n verifySpecialMailingCountry = (value: string, index: number) => {\n if (!value || value === '') {\n this.setState({\n specialMailingCountryError: getText(this.props.addressContent, 'CountryRequired'),\n specialMailingCountryInvalid: true\n });\n return false;\n } else {\n this.setState({\n specialMailingCountryError: '',\n specialMailingCountryInvalid: undefined\n });\n return true;\n }\n }\n\n verifyZip = (value: string, index: number) => {\n if (!value || value === '') {\n this.setState({\n ['zipError' + index]: getText(this.props.addressContent, 'ZipRequired'),\n ['zipInvalid' + index]: true\n });\n return false;\n } else if (value.length > 11) {\n this.setState({\n ['zipError' + index]: getText(this.props.addressContent, 'ZipToLong'),\n ['zipInvalid' + index]: true\n });\n return false;\n } else {\n this.setState({\n ['zipError' + index]: '',\n ['zipInvalid' + index]: undefined\n });\n return true;\n }\n }\n\n verifySpecialMailingZip = (value: string, index: number) => {\n if (this.props.isForeignAddress) return true;\n\n if (!value || value === '') {\n this.setState({\n specialMailingZipError: getText(this.props.addressContent, 'ZipRequired'),\n specialMailingZipInvalid: true\n });\n return false;\n } else if (value.length > 11) {\n this.setState({\n specialMailingZipError: getText(this.props.addressContent, 'ZipToLong'),\n specialMailingZipInvalid: true\n });\n return false;\n } else {\n this.setState({\n specialMailingZipError: '',\n specialMailingZipInvalid: undefined\n });\n return true;\n }\n }\n\n verifyState = (value: string, index: number) => {\n if (!value || value === '') {\n this.setState({\n ['stateError' + index]: getText(this.props.addressContent, 'StateRequired'),\n ['stateInvalid' + index]: true\n });\n return false;\n } else {\n this.setState({\n ['stateError' + index]: '',\n ['stateInvalid' + index]: undefined\n });\n return true;\n }\n }\n\n verifySpecialMailingState = (value: string, index: number) => {\n if (!value || value === '') {\n this.setState({\n specialMailingStateError: getText(this.props.addressContent, 'StateRequired'),\n specialMailingStateInvalid: true\n });\n return false;\n } else {\n this.setState({\n specialMailingStateError: '',\n specialMailingStateInvalid: undefined\n });\n return true;\n }\n }\n\n displayFeedback = (invalid?: boolean) => {\n if (invalid) {\n return \"true\";\n }\n return undefined;\n }\n\n toggleForeignAddress = (index: number) => {\n if (this.props.isForeignAddress) {\n this.props.isForeignAddressState(false);\n } else {\n this.props.isForeignAddressState(true);\n this.props.isAPOAddressState(false);\n this.handleChange(index, 'state', '');\n }\n }\n\n toggleAPOAddress = (index: number) => {\n if (this.props.isAPOAddress) {\n this.props.isAPOAddressState(false);\n } else {\n this.props.isForeignAddressState(false);\n this.props.isAPOAddressState(true);\n this.handleChange(index, 'country', '');\n this.handleChange(index, 'city', '');\n }\n }\n\n apocityOptions = () => {\n return this.props.fieldOptions.apocity.map((city: any) => );\n }\n\n apostateOptions = () => {\n return this.props.fieldOptions.apostate.map((state: any) => );\n }\n\n stateOptions = () => {\n if (this.props.fieldOptions && this.props.fieldOptions.addrstate) {\n return this.props.fieldOptions.addrstate.map((state: any) => );\n }\n return null;\n }\n\n legalStateOptions = () => {\n const stateOptions = [] as Array;\n if (this.props.fieldOptions && this.props.fieldOptions.addrstate && this.props.newAddresses && this.props.newAddresses.constructor === Array) {\n const legalState = this.props.newAddresses.filter((address: any) => address.addressType === 0)[0].state;\n this.props.fieldOptions.addrstate.forEach((state: any) => {\n if (legalState === state.code || state.code === 'VT' || this.legalStateList.includes(state.code)) {\n this.legalStateList.push(state.code);\n stateOptions.push();\n }\n });\n };\n return stateOptions;\n }\n\n toggleReAuthenticationModal = (event?: SyntheticEvent) => {\n event?.preventDefault?.();\n this.setState({ reAuthenticationModalOpen: !this.state.reAuthenticationModalOpen });\n }\n\n handleCurrentPhysicalAddressChange = (event: any) => {\n\n const isCurrent = event.target.value === 'yes' ? true : false;\n this.props.setIsCurrentPhysicalAddress(isCurrent);\n }\n\n handleCurrentMailingAddressChange = (event: any) => {\n\n const isCurrent = event.target.value === 'yes' ? true : false;\n this.props.setIsCurrentMailingAddress(isCurrent);\n }\n \n buildCurrentAddress = (addressType: number) => {\n\n const handleCurrentAddressChange = addressType === 0 ?\n this.handleCurrentPhysicalAddressChange :\n this.handleCurrentMailingAddressChange;\n\n const isCurrent = addressType === 0 ?\n this.props.isCurrentPhysicalAddress :\n this.props.isCurrentMailingAddress;\n\n const notIsCurrent = isCurrent === undefined ? undefined : !isCurrent;\n\n const name = addressType === 0 ? 'physicalAddress' : 'mailingAddress';\n const idYes = name + 'Yes';\n const idNo = name + 'No';\n\n return (\n
    \n
    \n
    Is this your correct address?
    \n
    \n \n \n \n \n
    \n
    \n {isCurrent !== undefined && !isCurrent &&\n
    * Please update this address
    \n }\n
    \n )\n }\n\n addressCards = () => {\n const addressDisplayNameMap: any = {\n 0: getText(this.props.addressContent, 'LegalDisplayName'),\n 1: getText(this.props.addressContent, 'CommercialDisplayName'),\n 2: getText(this.props.addressContent, 'MailingDisplayName'),\n 3: getText(this.props.addressContent, 'SpecialMailingDisplayName'),\n 4: getText(this.props.addressContent, 'POBoxDisplayName')\n };\n\n if (this.props.newAddresses.length > 0) {\n return this.props.newAddresses.map((address: any, index: number) => {\n if (address.addressType !== 3) {\n return (\n \n {isEnhancedLogin() || this.props.reauthorized\n ?
    \n \n \n

    \n {addressDisplayNameMap[address.addressType]}\n

    \n \n
    \n \n \n {(address.addressType === 0 || address.addressType === 2) &&\n this.buildCurrentAddress(address.addressType)\n }\n \n \n \n \n \n \n \n \n this.handleChange(index, 'lineOne', e.target.value)}\n value={this.props.newAddresses[index].lineOne}\n required={true}\n onBlur={address.addressType === 0 ? this.verifyLegalAddressEvent : this.verifyOtherAddressEvent}\n invalid={address.addressType === 0 ? this.state.legalAddressInvalid : this.state.otherAddressInvalid}\n />\n \n {address.addressType === 0 ? this.state.legalAddressError : this.state.otherAddressError}\n \n \n \n \n \n \n \n \n \n \n this.handleChange(index, 'city', e.target.value)}\n value={this.props.newAddresses[index].city}\n required={true}\n onBlur={(e) => this.verifyCityEvent(e, index)}\n invalid={this.state['cityInvalid' + index]}\n />\n \n {this.state['cityError' + index]}\n \n \n \n \n \n \n \n \n \n \n {address.addressType !== 2\n ? this.handleChange(index, 'state', e.target.value)}\n value={this.props.newAddresses[index].state}\n type=\"select\"\n name=\"legalState\"\n onBlur={(e) => this.verifyStateEvent(e, index)}\n invalid={this.state['stateInvalid' + index]}\n >\n \n \n \n \n \n \n \n this.handleChange(index, 'zip', e.target.value)}\n value={this.props.newAddresses[index].zip}\n required={true}\n onBlur={(e) => this.verifyZipEvent(e, index)}\n invalid={this.state['zipInvalid' + index]}\n />\n \n {this.state['zipError' + index]}\n \n \n \n \n
    \n :\n
    \n
    \n {addressDisplayNameMap[address.addressType] + ': '}\n
    \n
    \n {address.lineOne + ' '}
    \n {address.city + ', '}\n {address.state + ', '}\n {address.zip}\n
    \n {(address.addressType === 0 || address.addressType === 2) &&\n this.buildCurrentAddress(address.addressType)\n }\n
    \n }\n
    \n );\n } else {\n return (\n /* SPECIAL MAILING */\n \n
    \n  \n \n \n \n \n \n

    \n {addressDisplayNameMap[address.addressType]} \n

    \n \n
    \n \n \n \n \n this.toggleForeignAddress(index)}\n />\n {getText(this.props.addressContent, 'ForeignAddress')}\n \n \n this.toggleAPOAddress(index)}\n />\n {getText(this.props.addressContent, 'APOFPO')}\n \n \n \n \n \n \n \n \n this.handleChange(index, 'lineOne', e.target.value)}\n value={this.props.newAddresses[index].lineOne}\n required={true}\n onBlur={this.verifySpecialMailingAddressEvent}\n invalid={this.state.specialMailingAddressInvalid}\n />\n \n {this.state.specialMailingAddressError}\n \n \n \n \n {this.props.isAPOAddress ?\n \n \n \n \n this.handleChange(index, 'city', e.target.value)}\n >\n \n \n \n \n this.handleChange(index, 'state', e.target.value)}\n >\n \n \n \n \n \n \n \n this.handleChange(index, 'zip', e.target.value)}\n value={this.props.newAddresses[index].zip}\n />\n \n \n \n \n :\n \n \n \n \n \n \n \n this.handleChange(index, 'city', e.target.value)}\n value={this.props.newAddresses[index].city}\n required={true}\n onBlur={(e) => this.verifySpecialMailingCityEvent(e, index)}\n invalid={this.state.specialMailingCityInvalid}\n />\n \n {this.state.specialMailingCityError}\n \n \n \n \n \n {!this.props.isForeignAddress\n ? (\n \n \n \n \n \n \n this.handleChange(index, 'state', e.target.value)}\n value={this.props.newAddresses[index].state}\n type=\"select\"\n name=\"apocity\"\n onBlur={(e) => this.verifySpecialMailingStateEvent(e, index)}\n invalid={this.state.specialMailingStateInvalid}\n >\n \n \n \n \n \n \n \n this.handleChange(index, 'zip', e.target.value)}\n value={this.props.newAddresses[index].zip}\n required={true}\n onBlur={(e) => this.verifySpecialMailingZipEvent(e, index)}\n invalid={this.state.specialMailingZipInvalid}\n />\n \n {this.state.specialMailingZipInvalid}\n \n \n \n \n ) : (\n \n \n \n \n \n \n this.handleChange(index, 'country', e.target.value)}\n value={this.props.newAddresses[index].country}\n required={true}\n onBlur={(e) => this.verifySpecialMailingCountryEvent(e, index)}\n invalid={this.state.specialMailingCountryInvalid}\n />\n \n {this.state.specialMailingCountryError}\n \n \n \n \n \n \n \n \n this.handleChange(index, 'zip', e.target.value)}\n value={this.props.newAddresses[index].zip}\n required={false}\n onBlur={(e) => this.verifySpecialMailingZipEvent(e, index)}\n invalid={this.state.specialMailingZipInvalid}\n />\n {/* \n {this.state.specialMailingZipError}\n */}\n \n \n \n )\n }\n \n \n }\n \n \n
    \n
    \n )\n }\n });\n }\n }\n render() {\n return (\n \n {isEnhancedLogin()\n ? \n
    \n
    \n {getText(this.props.addressContent, 'StreetSuffixInstructional')}\n
    \n \n {getText(this.props.addressContent, 'StreetSuffix')}\n \n
    \n
    \n : \n \n \n You will have to re-authenticate to allow address changes\n \n \n \n Allow me to edit addresses\n \n \n \n }\n {this.addressCards()}\n {this.checkForSpecialMailing() && isEnhancedLogin()\n ? (\n \n
    \n  \n \n \n \n
    \n
    \n )\n : }\n \n \n );\n }\n }\n\nexport default AddressManagement;\n","import { getItemAction } from \"./baseActions\";\n\nexport const getFieldOptionsAction = (fieldName: string) => {\n return getItemAction({\n url: `/cms/api/config/field-options/${fieldName}`,\n });\n}\n","import React from 'react';\nimport {Button, Form, FormFeedback, FormGroup, Input, Label} from 'reactstrap';\nimport {getText} from '../utils/ContentHelpers';\nimport AddressManagement from '../workflows/EditInformation/AddressManagement';\nimport {\n formatHeightFeet,\n formatHeightInches,\n formatWeight,\n isEnhancedLogin,\n parseCurrency\n} from '../utils/UtilityFunctions';\nimport {Redirect} from 'react-router-dom';\nimport {getCredEditContent} from '../requestActions/contentActions';\nimport LoadingIcon from '../components/LoadingIcon';\nimport Confirmation from './Confirmation';\nimport ErrorAlert from '../components/ErrorAlert';\nimport {getFieldOptionsAction} from '../requestActions/configActions';\nimport {Addresses, AuthFromValues} from \"../types\";\n\nexport interface Props {\n authConfirm: (\n saveAuthResults: ({authLoading, authErrors, displayAuthErrors}: {authLoading: boolean, displayAuthErrors: boolean, authErrors: any[]}) => void\n ) => (authFormValues: AuthFromValues, reCaptchaToken: string) => Promise\n authText: any\n jwt: string\n location: any\n language: string\n reauthorized: boolean\n}\n\nclass EditInformation extends React.Component {\n AddressCompRef: any = null;\n state = {\n selectedCredential: {} as any,\n replacementReason: undefined,\n newAddresses: [] as Addresses,\n heightFeet: '',\n heightFeetInvalid: undefined,\n heightFeetError: undefined,\n heightInches: '',\n heightInchesInvalid: undefined,\n heightInchesError: undefined,\n weight: undefined,\n weightInvalid: undefined,\n weightError: undefined,\n eyeColor: undefined,\n gender: undefined,\n organDonor: undefined,\n currentEmail: '',\n email: '',\n emailInvalid: undefined,\n emailError: undefined,\n emailConfirmation: '',\n emailConfirmationInvalid: undefined,\n emailConfirmationError: undefined,\n receiveEmail: false,\n currentPhone: '',\n phone: '',\n phoneInvalid: undefined,\n phoneError: undefined,\n phoneConfirmation: '',\n phoneConfirmationInvalid: undefined,\n phoneConfirmationError: undefined,\n receiveSMS: false,\n medicalDisclosure: undefined,\n cdlSelfCertificationType: undefined,\n citizen: undefined,\n legalPresence: undefined,\n resident: undefined,\n declineVoter: false,\n price: undefined,\n newServiceType: undefined,\n renderConfirm: false,\n loading: true,\n content: null,\n eyeColorList: {} as any,\n genderList: {} as any,\n replacementReasonList: {} as any,\n addressContent: {} as any,\n selectedPriceObj: {} as any,\n validationErrorsObj: {} as any,\n spMailingHelp: {} as any,\n displayErrorAlert: false,\n alertErrors: [] as Array,\n fieldOptions: {},\n isForeignAddress: false,\n isAPOAddress: false,\n keepSchoolBusEndorsement: undefined,\n takenSchoolBusClinic: undefined,\n keepHazardousMaterialsEndorsement: undefined,\n submittedFingerprints: undefined,\n isCurrentPhysicalAddress: undefined,\n isCurrentMailingAddress: undefined\n }\n\n isForeignAddressState = (value: boolean) => {\n let modifyAddressClass = this.state.newAddresses.map((a) => {\n if (a.addressType === 3){\n a.addressClass = value ? 3 : 0\n }\n return a;\n });\n this.setState({\n isForeignAddress: value,\n newAddresses: modifyAddressClass\n });\n }\n\n isAPOAddressState = (value: boolean) => {\n this.setState({\n isAPOAddress: value\n });\n }\n\n setNewAddressState = (addresses: any) => {\n this.setState({\n newAddresses: addresses\n });\n }\n\n setIsCurrentPhysicalAddress = (current: boolean) => {\n this.setState({\n isCurrentPhysicalAddress: current\n });\n }\n\n setIsCurrentMailingAddress = (current: boolean) => {\n this.setState({\n isCurrentMailingAddress: current\n });\n }\n\n componentDidMount() {\n this.getContent();\n }\n\n renewalIsRestricted = (credential: any) => {\n return credential.prices.find((x: any) => x.name === 'Restricted - 1 year') !== undefined;\n }\n\n setRecordData = () => {\n const record: any = {};\n if (this.props.location && this.props.location.state) {\n const credential = this.props.location.state.selectedCredential;\n if (credential && this.state.newAddresses !== credential.contextData.addresses) {\n record.newAddresses = credential.contextData.addresses\n }\n record.selectedCredential = credential;\n record.heightFeet = credential.contextData.heightfeet;\n record.heightInches = credential.contextData.heightinches;\n record.weight = credential.contextData.weight;\n record.eyeColor = credential.contextData.eyecolor;\n record.gender = credential.contextData.gender;\n record.organDonor = credential.contextData.organdonor;\n record.newServiceType = this.props.location.state.newServiceType;\n record.currentPhone = credential.contextData.telephone || '';\n record.currentEmail = credential.contextData.email || '';\n\n if (record.newServiceType === 'renew' && this.renewalIsRestricted(credential)) {\n const restrictedPrice = credential.prices.find((x: any) => x.name === 'Restricted - 1 year');\n record.selectedPriceObj = restrictedPrice;\n record.price = restrictedPrice.currency;\n }\n\n }\n return record;\n }\n\n getContent = () => {\n getCredEditContent(this.props.language)\n .then((res: any) => {\n const newState = this.setRecordData();\n newState.content = res.data.BagPart.ContentItems[0].EditsAndChanges\n newState.eyeColorList = res.data.BagPart.ContentItems[1].EyeColorList\n newState.replacementReasonList = res.data.BagPart.ContentItems[2].ReplacementReason\n newState.addressContent = res.data.BagPart.ContentItems[3].Address\n newState.validationErrorsObj = res.data.BagPart.ContentItems[4].EditAndChangesValidationErrors\n newState.spMailingHelp = res.data.BagPart.ContentItems[5].HelpPopupModal\n newState.genderList = res.data.BagPart.ContentItems[6].GenderList\n newState.loading = false;\n\n newState.eyeColorList = {\n \"\": {\n \"Text\": \"\"\n },\n ...newState.eyeColorList,\n }\n\n newState.genderList = {\n \"\": {\n \"Text\": \"\"\n },\n ...newState.genderList,\n }\n\n this.setState(newState);\n })\n .catch((error: any) => {\n console.error(error);\n });\n\n const apoCity = getFieldOptionsAction('apocity');\n const apoState = getFieldOptionsAction('apostate');\n const addrState = getFieldOptionsAction('addrstate');\n\n Promise.all([apoCity, apoState, addrState])\n .then((res: Array) => {\n this.setState({\n fieldOptions: {\n apocity: res[0].data,\n apostate: res[1].data,\n addrstate: res[2].data\n }\n })\n })\n .catch((error: any) => {\n console.error(error);\n });\n }\n\n onClickSubmit = (event: any) => {\n // there will be a 'fields' attr that will require the following: email, receiveEmail, phone, receiveSMS (per Andrew Helmkamp)\n event.preventDefault();\n const { selectedCredential } = this.props.location.state;\n\n let errors: Array = [];\n // validate email\n errors = this.onSubmitErrors(errors, this.compareEmail, 'CompareEmailError');\n errors = this.onSubmitErrors(errors, this.verifyEmail, 'PhoneFormatError');\n\n // validate phone\n errors = this.onSubmitErrors(errors, this.comparePhone, 'ComparePhoneError');\n errors = this.onSubmitErrors(errors, this.phoneFormat, 'PhoneFormatError');\n\n // require duration for renew\n errors = this.onSubmitErrors(errors, this.requireDuration, 'DurationRequired');\n\n // require reason for replace\n errors = this.onSubmitErrors(errors, this.requireReason, 'ReplaceReasonRequired');\n\n // validate height inches\n errors = this.onSubmitErrors(errors, this.heightInchesFormat, 'HeightInchesRequired');\n\n // validate height feet\n errors = this.onSubmitErrors(errors, this.heightFeetFormat, 'HeightFeetRequired');\n\n // validate weight\n errors = this.onSubmitErrors(errors, this.weightFormat, 'WeightRequired');\n\n // require medical answer\n if (selectedCredential.contextData.displaymedicalquestion) {\n errors = this.onSubmitErrors(errors, this.medicalRequired, 'MedicalAnswerRequired');\n }\n\n // require organ donor answer\n errors = this.onSubmitErrors(errors, this.organDonorRequired, 'OrganDonorAnswerRequired');\n\n // require cdl self certification answer\n errors = this.onSubmitErrors(errors, this.cdlSelfCertificationRequired, 'CDLSelfCertificationAnswerRequired');\n\n // require legal presence answer\n errors = this.onSubmitErrors(errors, this.requireLegalPresence, 'LegalPresenceAnswerRequired');\n\n // require voter\n errors = this.onSubmitErrors(errors, this.requireVoterAnswers, 'VoterAnswerRequired');\n\n // require school bus clinic question if applicable\n errors = this.onSubmitErrors(errors, this.requireSchoolBusQuestion, 'SchoolBusAnswerRequired')\n\n // require hazardous materials question if applicable\n errors = this.onSubmitErrors(errors, this.requireHazardousMaterialsQuestion, 'HazardousMaterialQuestionRequired')\n\n // require\n errors = this.onSubmitErrors(errors, this.requireSchoolBusTestYesIfApplicable, 'SchoolBusTestRequired');\n\n //\n errors = this.onSubmitErrors(errors, this.requireFingerprintsYesIfApplicable, 'FingerprintsRequired');\n\n // verify address only in enhanced login\n if (isEnhancedLogin()) {\n errors = this.onSubmitErrors(errors, this.verifyAddresses, 'AddressValidationErrors');\n }\n\n if (\n errors\n && errors.length\n ) {\n this.setState({\n alertErrors: errors,\n displayErrorAlert: true\n });\n } else {\n this.setState({\n displayErrorAlert: false,\n alertErrors: [],\n renderConfirm: true\n });\n }\n }\n\n onSubmitErrors = (errors: Array, testFunc: () => boolean, errorText: string): Array => {\n // temporary workaround until CMS is fixed\n const CDLSelfCertificationAnswerRequired = 'Answer to CDL self certification is required';\n const LegalPresenceAnswerRequired = 'Answer to citizenship questions is required';\n const SchoolBusAnswerRequired = 'Answer to School Bus Clinic question required when keeping a School Bus endorsement';\n const HazardousMaterialQuestionRequired = 'Answer to Hazardous Materials question required when keeping a Hazardous Materials endorsement';\n const SchoolBusTestRequired = 'Your application cannot be processed online. Please call 802-828-0598';\n const FingerprintsRequired = 'Your application cannot be processed online. Please call 802-828-0598';\n\n if (!testFunc()) {\n if (errorText === 'CDLSelfCertificationAnswerRequired') {\n errors.push(CDLSelfCertificationAnswerRequired);\n }\n else if (errorText === 'LegalPresenceAnswerRequired') {\n errors.push(LegalPresenceAnswerRequired);\n }\n else if (errorText === 'SchoolBusAnswerRequired'){\n errors.push(SchoolBusAnswerRequired)\n }\n else if (errorText === 'HazardousMaterialQuestionRequired'){\n errors.push(HazardousMaterialQuestionRequired)\n }\n else if (errorText === 'SchoolBusTestRequired'){\n errors.push(SchoolBusTestRequired);\n }\n else if (errorText === 'FingerprintsRequired'){\n errors.push(FingerprintsRequired);\n }\n else {\n errors.push(getText(this.state.validationErrorsObj, errorText));\n }\n }\n return errors;\n }\n\n verifyAddresses = () => {\n const { newAddresses } = this.state;\n let passedValidation = true;\n if (newAddresses && newAddresses.length) {\n newAddresses.forEach((address: any, index) => {\n if (this.AddressCompRef) {\n if (address.addressType === 0) {\n if (!this.AddressCompRef.verifyLegalAddress(address.lineOne)) {\n passedValidation = false;\n }\n if (!this.AddressCompRef.verifyCity(address.city, index)) {\n passedValidation = false;\n }\n if (!this.AddressCompRef.verifyZip(address.zip, index)) {\n passedValidation = false;\n }\n } else if (address.addressType === 3) {\n if (!this.state.isAPOAddress) {\n if (this.state.isForeignAddress) {\n if (!this.AddressCompRef.verifySpecialMailingCountry(address.country)) {\n passedValidation = false;\n }\n } else {\n if (!this.AddressCompRef.verifySpecialMailingState(address.state)) {\n passedValidation = false;\n }\n if (!this.AddressCompRef.verifySpecialMailingZip(address.zip)) {\n passedValidation = false;\n }\n }\n if (!this.AddressCompRef.verifySpecialMailingCity(address.city)) {\n passedValidation = false;\n }\n }\n if (!this.AddressCompRef.verifySpecialMailingAddress(address.lineOne)) {\n passedValidation = false;\n }\n } else {\n if (!this.AddressCompRef.verifyOtherAddresses(address.lineOne)) {\n passedValidation = false;\n }\n if (!this.AddressCompRef.verifyCity(address.city, index)) {\n passedValidation = false;\n }\n if (!this.AddressCompRef.verifyZip(address.zip, index)) {\n passedValidation = false;\n }\n }\n }\n });\n }\n return passedValidation;\n }\n\n requireDuration = () => {\n if (this.state.newServiceType === 'renew') {\n if (this.state.price) {\n return true;\n }\n return false;\n }\n return true;\n }\n\n cdlSelfCertificationRequired = () => {\n if (!this.shouldShowCDLSelfCert()) {\n return true;\n }\n else if (this.state.cdlSelfCertificationType !== undefined &&\n this.state.cdlSelfCertificationType !== '') {\n return true;\n }\n\n return false;\n }\n\n requireLegalPresence = () => {\n const displayCitizenQuestion = this.state.selectedCredential.contextData.displaycitizenquestion;\n const serviceType = this.state.newServiceType;\n\n // do we qualify to collect citizen information?\n if (!displayCitizenQuestion) {\n return true;\n }\n // is it the correct service type to collect citizen information?\n else if (serviceType !== 'renew') {\n return true;\n }\n // we need to collect both citizen and legal presence (if citizen == false)\n else if (this.state.citizen !== undefined) {\n if (this.state.citizen === true) {\n return true;\n }\n else if (this.state.legalPresence !== undefined) {\n return true;\n }\n }\n\n return false;\n }\n\n requireVoterAnswers = () => {\n if (this.state.declineVoter) {\n return true;\n } else {\n if (this.qualifiesForLegalPresence()) {\n if (this.state.resident !== undefined) {\n return true;\n }\n else if (this.state.citizen !== undefined && this.state.resident !== undefined) {\n return true;\n }\n }\n if (this.state.citizen !== undefined && this.state.resident !== undefined) {\n return true;\n }\n return false;\n }\n }\n\n requireSchoolBusQuestion = () => {\n return this.state.keepSchoolBusEndorsement === true ? this.state.takenSchoolBusClinic !== null : true;\n };\n\n requireHazardousMaterialsQuestion = () => {\n return this.state.keepHazardousMaterialsEndorsement === true ? this.state.submittedFingerprints !== null : true;\n }\n\n requireSchoolBusTestYesIfApplicable = () => {\n return this.state.keepSchoolBusEndorsement === true ? this.state.takenSchoolBusClinic !== false : true;\n }\n\n requireFingerprintsYesIfApplicable = () => {\n return this.state.keepHazardousMaterialsEndorsement === true ? this.state.submittedFingerprints !== false : true;\n }\n\n requireReason = () => {\n if (this.state.newServiceType === 'replacement') {\n if (this.state.replacementReason) {\n return true;\n }\n return false;\n }\n return true;\n }\n\n onClickCancel = () => {\n window.location.pathname=\"/select-credential\";\n }\n\n mapEyeColor = () => {\n const options = Object.keys(this.state.eyeColorList).map((color: string) => {\n return ;\n });\n return options;\n }\n\n mapGender = () => {\n const options = Object.keys(this.state.genderList).map((gender: string) => {\n return ;\n });\n return options;\n }\n\n mapReplacementReasonList = () => {\n const options = Object.keys(this.state.replacementReasonList).map((reason: string) => {\n return ;\n });\n return options;\n }\n\n medicalRequired = () => {\n const { medicalDisclosure } = this.state;\n if (medicalDisclosure === undefined ) {\n return false;\n }\n return true;\n }\n\n organDonorRequired = () => {\n const { organDonor } = this.state;\n if (organDonor === undefined ) {\n return false;\n }\n return true;\n }\n\n setOrganDonorYes = (event: React.SyntheticEvent) => {\n if (this.state.organDonor !== undefined) {\n const currentValue = this.state.organDonor;\n if (currentValue === true) {\n this.setState({\n organDonor: undefined\n });\n } else {\n this.setState({\n organDonor: true\n })\n }\n } else {\n this.setState({\n organDonor: true\n });\n }\n }\n\n setOrganDonorNo = (event: React.SyntheticEvent) => {\n if (this.state.organDonor !== undefined) {\n const currentValue = this.state.organDonor;\n if (currentValue === false) {\n this.setState({\n organDonor: undefined\n });\n } else {\n this.setState({\n organDonor: false\n })\n }\n } else {\n this.setState({\n organDonor: false\n });\n }\n }\n\n setMedicalDisclosureYes = (event: React.SyntheticEvent) => {\n if (this.state.medicalDisclosure !== undefined) {\n const currentValue = this.state.medicalDisclosure;\n if (currentValue === true) {\n this.setState({\n medicalDisclosure: undefined\n });\n } else {\n this.setState({\n medicalDisclosure: true\n })\n }\n } else {\n this.setState({\n medicalDisclosure: true\n });\n }\n }\n\n setMedicalDisclosureNo = (event: React.SyntheticEvent) => {\n if (this.state.medicalDisclosure !== undefined) {\n const currentValue = this.state.medicalDisclosure;\n if (currentValue === false) {\n this.setState({\n medicalDisclosure: undefined\n });\n } else {\n this.setState({\n medicalDisclosure: false\n })\n }\n } else {\n this.setState({\n medicalDisclosure: false\n });\n }\n }\n\n setCitizenYes = (event: React.SyntheticEvent) => {\n if (this.state.citizen !== undefined) {\n const currentValue = this.state.citizen;\n if (currentValue === true) {\n this.setState({\n citizen: undefined\n });\n } else {\n if (this.qualifiesForLegalPresence()) {\n this.setState({\n citizen: true\n });\n }\n else {\n this.setState({\n citizen: true,\n declineVoter: false\n });\n }\n }\n } else {\n if (this.qualifiesForLegalPresence()) {\n this.setState({\n citizen: true\n });\n }\n else {\n this.setState({\n citizen: true,\n declineVoter: false\n });\n }\n }\n }\n\n setCitizenNo = (event: React.SyntheticEvent) => {\n if (this.state.citizen !== undefined) {\n const currentValue = this.state.citizen;\n if (currentValue === false) {\n this.setState({\n citizen: undefined\n });\n } else {\n if (this.qualifiesForLegalPresence()){\n this.setState({\n citizen: false,\n });\n }\n else {\n this.setState({\n citizen: false,\n declineVoter: false\n });\n }\n }\n } else {\n if (this.qualifiesForLegalPresence()){\n this.setState({\n citizen: false,\n });\n }\n else {\n this.setState({\n citizen: false,\n declineVoter: false\n });\n }\n }\n }\n\n setKeepSchoolBusEndorsement = (value: boolean | null) => {\n this.setState({\n keepSchoolBusEndorsement: value,\n takenSchoolBusClinic: null\n });\n }\n\n setTakenSchoolBusClinic = (value: boolean) => {\n this.setState({\n takenSchoolBusClinic: value\n })\n }\n\n setKeepHazardousMaterialsEndorsement = (value: boolean | null) => {\n this.setState({\n keepHazardousMaterialsEndorsement: value,\n submittedFingerprints: null\n })\n }\n\n setSubmittedFingerprints = (value: boolean) => {\n this.setState({\n submittedFingerprints: value\n })\n }\n\n shouldShowCDLSelfCert = () => {\n const licenseType = this.state.selectedCredential.contextData.licensetype;\n // TODO: get license type value from list rather than hard-coding at some point\n if (licenseType === `Commercial Driver's License`) {\n return true;\n }\n\n return false;\n }\n\n shouldShowLegalPresence = () => {\n if (this.qualifiesForLegalPresence() &&\n this.state.citizen === false) {\n return true;\n }\n\n return false;\n }\n\n qualifiesForLegalPresence = () => {\n const displayCitizenQuestion = this.state.selectedCredential.contextData.displaycitizenquestion;\n const serviceType = this.state.newServiceType;\n\n if (displayCitizenQuestion &&\n serviceType === 'renew') {\n return true;\n }\n\n return false;\n }\n\n setSelfCertificationNI = (event: React.SyntheticEvent) => {\n const type = 'ni';\n\n this.setSelfCertForType(type);\n }\n\n setSelfCertificationNA = (event: React.SyntheticEvent) => {\n const type = 'na';\n\n this.setSelfCertForType(type);\n }\n\n setSelfCertificationEI = (event: React.SyntheticEvent) => {\n const type = 'ei';\n\n this.setSelfCertForType(type);\n }\n\n setSelfCertificationEA = (event: React.SyntheticEvent) => {\n const type = 'ea';\n\n this.setSelfCertForType(type);\n }\n\n setSelfCertForType = (type: string) => {\n if (this.state.cdlSelfCertificationType !== undefined) {\n const currentValue = this.state.cdlSelfCertificationType;\n if (currentValue === type) {\n this.setSelfCertificationType(undefined);\n } else {\n this.setSelfCertificationType(type);\n }\n } else {\n this.setSelfCertificationType(type);\n }\n }\n\n setSelfCertificationType = (type: string | undefined) => {\n this.setState({\n cdlSelfCertificationType: type\n })\n }\n\n isSelfCertificationCbChecked = (type: string) => {\n if (type === this.state.cdlSelfCertificationType) {\n return true;\n }\n\n return false;\n }\n\n setLegalPresenceYes = (event: React.SyntheticEvent) => {\n if (this.state.legalPresence !== undefined) {\n const currentValue = this.state.legalPresence;\n if (currentValue === true) {\n this.setState({\n legalPresence: undefined\n });\n } else {\n this.setState({\n legalPresence: true\n })\n }\n } else {\n this.setState({\n legalPresence: true\n });\n }\n }\n\n setLegalPresenceNo = (event: React.SyntheticEvent) => {\n if (this.state.legalPresence !== undefined) {\n const currentValue = this.state.legalPresence;\n if (currentValue === false) {\n this.setState({\n legalPresence: undefined\n });\n } else {\n this.setState({\n legalPresence: false\n })\n }\n } else {\n this.setState({\n legalPresence: false\n });\n }\n }\n\n setResidentYes = (event: React.SyntheticEvent) => {\n if (this.state.resident !== undefined) {\n const currentValue = this.state.resident;\n if (currentValue === true) {\n this.setState({\n resident: undefined\n });\n } else {\n this.setState({\n resident: true,\n declineVoter: false\n })\n }\n } else {\n this.setState({\n resident: true,\n declineVoter: false\n });\n }\n }\n\n setResidentNo = (event: React.SyntheticEvent) => {\n if (this.state.resident !== undefined) {\n const currentValue = this.state.resident;\n if (currentValue === false) {\n this.setState({\n resident: undefined\n });\n } else {\n this.setState({\n resident: false,\n declineVoter: false\n })\n }\n } else {\n this.setState({\n resident: false,\n declineVoter: false\n });\n }\n }\n\n onInputChange = (event: React.SyntheticEvent) => {\n const { name } = event.currentTarget;\n const { value } = event.currentTarget;\n this.setState(\n (previousState: any) => ({\n ...previousState,\n [name]: value\n })\n );\n }\n\n onHeightFeetChange = (event: React.SyntheticEvent) => {\n const { value } = event.currentTarget;\n const heightFeet = formatHeightFeet(value);\n this.setState({\n heightFeet: heightFeet\n });\n }\n onHeightInchesChange = (event: React.SyntheticEvent) => {\n const { value } = event.currentTarget;\n const heightIn = formatHeightInches(value);\n this.setState({\n heightInches: heightIn\n });\n }\n\n declineVoterRegistration = () => {\n if (this.state.declineVoter === false || this.state.declineVoter === undefined) {\n // if citizen and legal presence are required, don't set them to undefined\n if (this.qualifiesForLegalPresence()) {\n this.setState({\n declineVoter: true,\n resident: undefined\n });\n }\n else {\n this.setState({\n declineVoter: true,\n resident: undefined,\n citizen: undefined\n });\n }\n } else {\n this.setState({\n declineVoter: false\n });\n }\n }\n\n receiveEmails = () => {\n this.setState({receiveEmail: !this.state.receiveEmail});\n }\n\n receiveSMSs = () => {\n this.setState({receiveSMS: !this.state.receiveSMS});\n }\n\n phoneInput = (event: React.SyntheticEvent) => {\n const { name, value } = event.currentTarget;\n this.setState({\n [name]: value\n });\n }\n\n emailIsValid = (email: string) => {\n return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email);\n }\n\n verifyEmail = () => {\n const value = this.state.email;\n this.compareEmail();\n if (this.emailIsValid(value) || value === '') {\n this.setState({\n emailError: '',\n emailInvalid: undefined\n });\n return true;\n } else {\n this.setState({\n emailError: getText(this.state.content, 'EmailInvalid'),\n emailInvalid: true\n });\n return false;\n }\n }\n\n compareEmail = () => {\n if (this.state.emailConfirmation !== this.state.email) {\n this.setState({\n emailConfirmationError: getText(this.state.content, 'EmailDoesNotMatch'),\n emailConfirmationInvalid: true\n });\n return false;\n } else {\n this.setState({\n emailConfirmationError: '',\n emailConfirmationInvalid: undefined\n });\n return true;\n }\n }\n\n phoneFormat = () => {\n let value = this.state.phone;\n value = value && value.replace(/[^\\d]/g, '');\n this.comparePhone();\n if (value === '') {\n this.setState({\n phoneError: '',\n phoneInvalid: undefined,\n phone: value\n });\n return true;\n } else if (value.length < 10 || value.length > 15) {\n this.setState({\n phoneError: getText(this.state.content, 'PhoneMustBeEleven'),\n phoneInvalid: true,\n phone: value\n });\n return false;\n } else {\n this.setState({\n phoneError: '',\n phoneInvalid: undefined,\n phone: value\n });\n return true;\n }\n }\n\n comparePhone = () => {\n if (this.state.phoneConfirmation !== this.state.phone) {\n this.setState({\n phoneConfirmationError: getText(this.state.content, 'PhoneDoesNotMatch'),\n phoneConfirmationInvalid: true\n });\n return false;\n } else {\n this.setState({\n phoneConfirmationError: '',\n phoneConfirmationInvalid: undefined\n });\n return true;\n }\n }\n\n phoneConfirmationInput = (event: React.SyntheticEvent) => {\n const { value } = event.currentTarget;\n this.setState({\n phoneConfirmation: value\n });\n }\n\n phoneConfirmationFormat = (event: React.SyntheticEvent) => {\n let { value } = event.currentTarget;\n value = value.replace(/[^\\d]/g, '');\n if (this.comparePhone()) {\n if (value === '') {\n this.setState({\n phoneConfirmationError: '',\n phoneConfirmationInvalid: undefined,\n phoneConfirmation: value\n });\n return true;\n } else if (value.length < 10 || value.length > 15) {\n this.setState({\n phoneConfirmationError: getText(this.state.content, 'PhoneMustBeEleven'),\n phoneConfirmationInvalid: true,\n phoneConfirmation: value\n });\n return false;\n\n } else {\n this.setState({\n phoneConfirmationError: '',\n phoneConfirmationInvalid: undefined,\n phoneConfirmation: value\n });\n return true;\n }\n } else {\n this.setState({\n phoneConfirmation: value\n });\n return false;\n }\n }\n\n heightFeetFormat = () => {\n const value = this.state.heightFeet;\n if (!value || value === '') {\n this.setState({\n heightFeetError: getText(this.state.content, 'HeightFeetRequired'),\n heightFeetInvalid: true\n });\n return false;\n } else {\n this.setState({\n heightFeetError: '',\n heightFeetInvalid: undefined\n });\n return true;\n }\n }\n\n heightInchesFormat = () => {\n const value = this.state.heightInches;\n if (!value || value === '') {\n this.setState({\n heightInchesError: getText(this.state.content, 'HeightInchesRequired'),\n heightInchesInvalid: true\n });\n return false;\n } else {\n this.setState({\n heightInchesError: '',\n heightInchesInvalid: undefined\n });\n return true;\n }\n }\n\n weightFormat = () => {\n const value = this.state.weight;\n if (!value || value === '') {\n this.setState({\n weightError: getText(this.state.content, 'WeightRequired'),\n weightInvalid: true\n });\n return false;\n } else {\n this.setState({\n weightError: '',\n weightInvalid: undefined,\n weight: formatWeight(value)\n });\n return true;\n }\n }\n\n displayFeedback = (invalid?: boolean) => {\n if (invalid) {\n return \"true\";\n }\n return undefined;\n }\n\n allowConfirmation = () => {\n\n let hasPhysicalAddress = false;\n let hasMailingAddress = false;\n\n // check if a physical and mailing address exists\n let i = 0;\n while (i < this.state.newAddresses.length &&\n (hasPhysicalAddress === false || hasMailingAddress === false)) {\n \n const address = this.state.newAddresses[i];\n \n if (address.addressType === 0) {\n hasPhysicalAddress = true;\n }\n else if (address.addressType === 2) {\n hasMailingAddress = true;\n }\n\n i++;\n }\n\n // check if an address either doesn't exist or is current\n const physicalAddressIsOk = this.isPhysicalAddressOk(hasPhysicalAddress);\n const mailingAddressIsOk = this.isMailingAddressOk(hasMailingAddress);\n\n return physicalAddressIsOk && mailingAddressIsOk;\n }\n\n isPhysicalAddressOk = (hasPhysicalAddress: boolean) => {\n if (!hasPhysicalAddress || this.state.isCurrentPhysicalAddress) {\n return true;\n }\n return false;\n }\n\n isMailingAddressOk = (hasMailingAddress: boolean) => {\n if (!hasMailingAddress || this.state.isCurrentMailingAddress) {\n return true;\n }\n return false;\n }\n\n buttons = () => {\n return(\n
    \n
    \n \n {getText(this.state.content, 'CancelButton')}\n \n
    \n
    \n
    \n
    \n
    \n \n {getText(this.state.content, 'SubmitButton')}\n \n
    \n
    \n );\n }\n\n selectDurationRenew = (event: React.SyntheticEvent) => {\n const { value } = event.currentTarget;\n const { selectedOptions } = event.currentTarget;\n const { selectedCredential } = this.state;\n if (selectedCredential && selectedCredential.prices) {\n let selectedPriceObj = {};\n selectedCredential.prices.forEach((priceObj: any) => {\n if (selectedOptions[0].innerText === priceObj.name + ' ' + parseCurrency(priceObj.currency)) {\n selectedPriceObj = priceObj;\n }\n });\n this.setState({\n price: value,\n selectedPriceObj: selectedPriceObj\n })\n }\n }\n\n checkForRenew = () => {\n const { selectedCredential } = this.state;\n if (this.state.newServiceType === 'renew') {\n const prices: Array = selectedCredential && selectedCredential.prices && selectedCredential.prices.filter((price: any) => price.name !== \"Replacement\");\n const duration = prices.map((item: any, index: number) => {\n return ;\n });\n\n const isRestricted = this.renewalIsRestricted(selectedCredential);\n\n return (\n
    \n
    \n \n
    \n {\n isRestricted ?\n
    \n {getText(this.state.content, 'RestrictedDurationText')}\n
    \n :\n
    \n \n
    \n }\n
    \n );\n } else {\n const price = selectedCredential && selectedCredential.prices && selectedCredential.prices.filter((price: any) => price.name === \"Replacement\")\n if (!this.state.price) {\n this.setState({\n price: price && price[0].currency,\n selectedPriceObj: price[0]\n });\n }\n return (\n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n );\n }\n }\n\n returnToEdit = () => {\n this.setState({renderConfirm: false})\n }\n\n toggleErrorAlert = () => {\n this.setState({displayErrorAlert: !this.state.displayErrorAlert});\n }\n\n phoneRequired = () => {\n const { currentPhone, receiveSMS} = this.state;\n\n if (!currentPhone && receiveSMS) {\n return true;\n }\n return undefined;\n }\n\n emailRequired = () => {\n const { currentEmail, receiveEmail} = this.state;\n\n if (!currentEmail && receiveEmail) {\n return true;\n }\n return undefined;\n }\n\n getVoterRegistrationHeader = (content: any) => {\n let header = getText(content, 'VoterRegHeader');\n\n if (this.qualifiesForLegalPresence()) {\n header += ' / Real ID Citizenship Confirmation';\n }\n\n return header;\n }\n\n getVoterConfidentialityStatement = (content: any) => {\n let statement = getText(content, 'VoterConfidentialityStatement')\n\n if (this.qualifiesForLegalPresence()) {\n statement += ' Since you are applying for a Real ID, you must answer the ' +\n 'citizenship question, but it will not affect your voter registration status';\n }\n\n return statement;\n }\n\n showSchoolBusQuestion = () => {\n const endorsements = this.state.selectedCredential?.endorsements as {code: string}[];\n\n if (!endorsements) return false;\n\n return endorsements.some(x => x.code === 'A' || x.code === 'S');\n }\n \n showHazardousMaterialsQuestion = () => {\n const endorsements = this.state.selectedCredential?.endorsements as {code: string}[];\n\n if (!endorsements) return false;\n\n return endorsements.some(x => x.code === 'H' || x.code === 'X');\n }\n\n SchoolBusEndorsementQuestion = (content: any) => {\n return <>\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n this.setKeepSchoolBusEndorsement(true)}\n />{' '}{getText(content, 'Yes')}\n
    \n
    \n this.setKeepSchoolBusEndorsement(false)}\n />{' '}{getText(content, 'No')}\n
    \n
    \n {this.state.keepSchoolBusEndorsement ?\n
    \n
    \n \n
    \n
    \n this.setTakenSchoolBusClinic(true)}\n />{' '}{getText(content, 'Yes')}\n
    \n
    \n this.setTakenSchoolBusClinic(false)}\n />{' '}{getText(content, 'No')}\n
    \n
    \n
    \n {this.state.takenSchoolBusClinic === false ?\n <>Your application cannot be processed online. Please call 802-828-0598 : <>}\n
    \n
    \n : <>\n }\n ;\n }\n\n HazardousMaterialsEndorsementQuestion = (content: any) => {\n return <>\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n this.setKeepHazardousMaterialsEndorsement(true)}\n />{' '}{getText(content, 'Yes')}\n
    \n
    \n this.setKeepHazardousMaterialsEndorsement(false)}\n />{' '}{getText(content, 'No')}\n
    \n
    \n {this.state.keepHazardousMaterialsEndorsement ?\n
    \n
    \n \n
    \n
    \n this.setSubmittedFingerprints(true)}\n />{' '}{getText(content, 'Yes')}\n
    \n
    \n this.setSubmittedFingerprints(false)}\n />{' '}{getText(content, 'No')}\n
    \n
    \n
    \n {this.state.submittedFingerprints === false ?\n <>Your application cannot be processed online. Please call 802-828-0598 : <>}\n
    \n
    \n : <>\n }\n \n }\n\n render() {\n const {\n selectedCredential,\n renderConfirm,\n loading,\n content,\n newServiceType,\n heightFeet,\n heightInches,\n weight,\n eyeColor,\n gender,\n organDonor,\n medicalDisclosure,\n declineVoter,\n cdlSelfCertificationType,\n citizen,\n legalPresence,\n resident,\n phone,\n email,\n receiveEmail,\n receiveSMS,\n newAddresses,\n price,\n selectedPriceObj,\n eyeColorList,\n genderList,\n displayErrorAlert,\n alertErrors,\n replacementReason,\n currentPhone,\n currentEmail,\n replacementReasonList,\n keepSchoolBusEndorsement,\n takenSchoolBusClinic,\n keepHazardousMaterialsEndorsement,\n submittedFingerprints\n\n } = this.state;\n\n if (loading) {\n return ;\n }\n\n if (renderConfirm) {\n return (\n \n );\n }\n\n return !renderConfirm && content && selectedCredential && selectedCredential.contextData ?\n (\n
    \n
    \n
    \n

    \n {getText(content, 'EditTitle')}\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {getText(content, 'EditSubtitle')}\n

    \n
    \n
    \n {this.checkForRenew()}\n
    \n
    \n \n
    \n
    \n \n \n \n {this.state.heightFeetError}\n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n {this.state.heightInchesError}\n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n {this.state.weightError}\n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {this.mapEyeColor()}\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {this.mapGender()}\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n {' '}{getText(content, 'Yes')}\n
    \n
    \n {' '}{getText(content, 'No')}\n
    \n
    \n {!this.props.location.state.selectedCredential.contextData.displaymedicalquestion\n ? \n : \n
    \n
    \n

    \n {getText(content, 'MedicalQuestionHeader')}\n

    \n
    \n
    \n
    \n
    \n {getText(content, 'MedicalQuestion')}\n
    \n
    \n
    \n
    \n
    \n {' '}{getText(content, 'Yes')}\n
    \n
    \n {' '}{getText(content, 'No')}\n
    \n
    \n }\n { this.shouldShowCDLSelfCert() ?\n <>\n {this.state.newServiceType === 'renew' ? <>\n {\n this.showSchoolBusQuestion() ?\n this.SchoolBusEndorsementQuestion(content)\n : <>\n }\n {\n this.showHazardousMaterialsQuestion() ?\n this.HazardousMaterialsEndorsementQuestion(content)\n : <>\n }\n : <>}\n
    \n
    \n

    \n {/* TODO: getText(content, 'CDLSelfCertificationHeader') */}\n CDL Self Certification\n

    \n
    \n
    \n
    \n
    \n {/* TODO: getText(content, 'CDLSelfCertificationInstructions') */}\n Please check one box:\n
    \n
    \n
    \n
    \n \n {/* TODO: getText(content, 'CDLSelfCertificationNILabel') */}\n NI (Non-Excepted Interstate, Current Medical Certificate Required).\n \n
    \n {/* TODO: getText(content, 'CDLSelfCertificationNIText') */}\n I certify that I operate or expect to operate in interstate commerce,\n and I am both subject to and meet the qualification requirements under 49 CFR part 391, and\n I am required to obtain a medical examiner's certificate by 49 CFR §391.45\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n {/* TODO: getText(content, 'CDLSelfCertificationNALabel') */}\n NA (Non-Excepted Intrastate, Current Medical Certificate Required).\n \n
    \n {/* TODO: getText(content, 'CDLSelfCertificationNAText') */}\n I certify that I operate only in intrastate commerce and therefore I am subject to and meet\n the State's driver medical qualification requirements.\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n {/* TODO: getText(content, 'CDLSelfCertificationEILabel') */}\n EI (Excepted Interstate, Current Medical NOT Required).\n \n
    \n {/* TODO: getText(content, 'CDLSelfCertificationEIText') */}\n I certify that I operate or expect to operate in interstate commerce but engage exclusively\n in transportation or operations excepted under 49 CFR §§390.3(f), 391.2, 391.68 or 398.3 from\n all or parts of the qualification requirements of 49 CFR part 391, and I am therefore not\n required to obtain a medical examiner's certificate by 49 CFR §391.45.\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n {/* TODO: getText(content, 'CDLSelfCertificationEALabel') */}\n EA (Excepted Intrastate, Current Medical Certificate NOT Required).\n \n
    \n {/* TODO: getText(content, 'CDLSelfCertificationEAText') */}\n I certify that I operate in intrastate commerce but engage exclusively in transportation or\n operations excepted from all or parts of the State's driver medical qualification.\n
    \n
    \n \n
    \n
    \n \n :\n <>\n }\n\n
    \n
    \n

    \n {this.getVoterRegistrationHeader(content)}\n

    \n
    \n
    \n
    \n
    \n {this.getVoterConfidentialityStatement(content)}\n
    \n
    \n
    \n
    \n {getText(content, 'USCitizen')}\n
    \n
    \n {' '}{getText(content, 'Yes')}\n
    \n
    \n {' '}{getText(content, 'No')}\n
    \n
    \n { this.shouldShowLegalPresence() ?\n
    \n
    \n
      \n
    • \n {/* TODO: getText(content, 'LegalPresence') */}\n If you are NOT a U.S. Citizen, do you have proof of legal presence?\n
    • \n
    \n
    \n
    \n {' '}{getText(content, 'Yes')}\n
    \n
    \n {' '}{getText(content, 'No')}\n
    \n
    \n :\n <>\n }\n\n {this.qualifiesForLegalPresence() ?\n
    \n
    \n
    \n
    \n
    \n :\n <>}\n\n
    \n
    \n {getText(content, 'Resident')}\n
    \n
    \n {' '}{getText(content, 'Yes')}\n
    \n
    \n {' '}{getText(content, 'No')}\n
    \n
    \n
    \n
    \n {getText(content, 'VoterRegistration')}\n
    \n
    \n
    \n
    \n
    \n {' '}{getText(content, 'Decline')}\n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {getText(content, 'ConfirmationTitle')}\n

    \n
    \n
    \n
    \n
    \n
    \n {getText(content, 'ConfirmationStatement')}\n
    \n
    \n
    \n
    \n
    \n
    \n {getText(content, 'CurrentEmail')} \n {this.state.currentEmail || 'N/A'}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n {this.state.emailError}\n \n \n
    \n {getText(content, 'ConfirmEmail')}\n
    \n \n \n \n {this.state.emailConfirmationError}\n \n \n
    \n
    \n
    \n
    \n
    \n \n {' '}\n {getText(content, 'EmailConfirmationCheckbox')}\n
    \n
    \n
    \n
    \n
    \n
    \n {getText(content, 'CurrentPhone')} \n {this.state.currentPhone || 'N/A'}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n {this.state.phoneError}\n \n \n
    \n {getText(content, 'ConfirmPhone')}\n
    \n \n \n \n {this.state.phoneConfirmationError}\n \n \n
    \n
    \n
    \n
    \n
    \n \n {' '}\n {getText(content, 'PhoneConfirmationCheckbox')}\n
    \n
    \n
    \n
    \n
    \n

    \n {getText(content, 'VotersOathTitle')}\n

    \n
    \n
    \n
    \n
    \n
    \n {getText(content, 'VotersOath')}\n
    \n
    \n
    \n
    \n
    \n
    \n {getText(content, 'VotersOath2')}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {this.state.addressContent ? (\n {\n this.AddressCompRef = ref\n }}\n addressContent={this.state.addressContent}\n authConfirm={this.props.authConfirm}\n authText={this.props.authText}\n newAddresses={this.state.newAddresses}\n setNewAddressState={this.setNewAddressState}\n spMailingHelpModalContent={this.state.spMailingHelp}\n fieldOptions={this.state.fieldOptions}\n isForeignAddress={this.state.isForeignAddress}\n isAPOAddress={this.state.isAPOAddress}\n isForeignAddressState={this.isForeignAddressState}\n isAPOAddressState={this.isAPOAddressState}\n language={this.props.language}\n isCurrentPhysicalAddress={this.state.isCurrentPhysicalAddress}\n isCurrentMailingAddress={this.state.isCurrentMailingAddress}\n setIsCurrentPhysicalAddress={this.setIsCurrentPhysicalAddress}\n setIsCurrentMailingAddress={this.setIsCurrentMailingAddress}\n reauthorized={this.props.reauthorized}\n />\n ) : (\n \n )}\n
    \n
    \n
    \n
    \n {getText(content, 'FeeStatement') + ' '}\n { parseCurrency(Number(this.state.price))}\n
    \n
    \n {getText(content, 'ConfirmationStatement')}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n {this.buttons()}\n \n ) : (\n \n );\n }\n}\n\nexport default EditInformation;\n","import React from 'react';\nimport {\n useLocation\n} from \"react-router-dom\";\n\nconst NotFound404 = () => {\n let location = useLocation();\n\n return (\n
    \n

    \n 404 Page Not Found for {location.pathname}\n

    \n
    \n );\n};\n\nexport default NotFound404;\n","import Handlebars from \"handlebars\";\nimport axios from \"axios\";\n\nexport type ReceiptModel = {\n firstName: string,\n lastName: string,\n middleInitial: string,\n suffix: string,\n credentialType: string,\n restrictions: string,\n endorsements: string,\n class: string,\n organDonor: string,\n veteran: string,\n paymentType: string,\n lastFourCreditCard: string,\n cardholderName: string\n confirmationNumber: string,\n dateOfTransaction: string,\n serviceType: string,\n orderTotal: number\n}\n\nconst buildReceiptTemplate = () => {\n const templateUrl = '/templates/printReceipt.html';\n return axios.get(templateUrl)\n .then((res) => {\n const receiptTemplate = Handlebars.compile(res.data);\n return receiptTemplate;\n });\n};\n\nexport const openPrintReceiptWindow = (model: ReceiptModel) => {\n const printReceiptWindow = window.open();\n if (printReceiptWindow) {\n buildReceiptTemplate()\n .then((template) => printReceiptWindow.document.write(template(model)));\n }\n}\n","import React from 'react';\nimport { Row, Col, Button } from 'reactstrap';\nimport { getPaymentConfirmationContent, getSharedContent } from '../requestActions/contentActions';\nimport LoadingIcon from '../components/LoadingIcon';\nimport { getText, getLinkObj } from '../utils/ContentHelpers';\nimport {openPrintReceiptWindow, ReceiptModel} from '../utils/ReceiptGenerator';\nimport LogoutBtn from '../components/LogoutBtn';\nimport { completePaymentTransaction } from '../requestActions/transactionActions';\nimport { TransactionCompleteResponse } from '../types';\n\ninterface Props {\n language: string\n}\n\nclass PrintReceipt extends React.Component {\n\n state = {\n loading: true,\n paymentConfirmationContent: {} as any,\n sharedContent: {} as any,\n receiptModel: {} as TransactionCompleteResponse,\n transactionParameters: {\n token: \"\",\n confId: \"\",\n result: \"\"\n }\n }\n\n componentDidMount() {\n this.setState({loading: true});\n const transactionParameters = this.getTransactionParameters();\n if (transactionParameters) {\n this.setState({transactionParameters});\n if (transactionParameters.result === \"success\" || transactionParameters.result === \"duplicate\") {\n completePaymentTransaction(transactionParameters.token as string, transactionParameters.confId as string)\n .then((res: any) => {\n const receiptModel: TransactionCompleteResponse = res.data;\n this.setState({receiptModel: receiptModel})\n })\n .then(() => {\n const contentRequests = [\n getPaymentConfirmationContent(this.props.language),\n getSharedContent(this.props.language)\n ];\n return Promise.all(contentRequests)\n })\n .then(([paymentConfirmationContentResponse, sharedContentResponse]) => {\n this.setState({\n loading: false,\n paymentConfirmationContent: paymentConfirmationContentResponse.data,\n sharedContent: sharedContentResponse.data\n });\n })\n .catch((err) => {\n this.setState({loading: false});\n console.error(err);\n })\n } else {\n this.setState({loading: false});\n }\n }\n else {\n window.location.pathname = \"\";\n }\n }\n\n getTransactionParameters = () => {\n const params = new URLSearchParams(window.location.search);\n if (params.has(\"result\")) {\n return {\n result: params.get(\"result\"),\n confId: params.get(\"confId\"),\n token: params.get(\"token\")\n };\n }\n return null;\n }\n\n openPrintReceiptTab = () => {\n const { receiptModel } = this.state;\n const printReceiptModel: ReceiptModel = {\n firstName: receiptModel.fields.firstname,\n lastName: receiptModel.fields.lastname,\n middleInitial: receiptModel.fields.middleinitial,\n suffix: receiptModel.fields.suffix,\n credentialType: receiptModel.fields.credentialtype,\n restrictions: receiptModel.fields.restrictions ? receiptModel.fields.restrictions : \"N/A\",\n endorsements: receiptModel.fields.endorsements ? receiptModel.fields.endorsements : \"N/A\",\n class: receiptModel.fields.class,\n organDonor: receiptModel.fields.organdonor ? \"YES\" : \"NO\",\n veteran: receiptModel.fields.veteran ? \"YES\" : \"NO\",\n paymentType: receiptModel.fields.paymenttype,\n lastFourCreditCard: receiptModel.fields.lastforcreditcard,\n cardholderName: receiptModel.fields.cardholdername,\n confirmationNumber: receiptModel.fields.confirmationnumber,\n orderTotal: receiptModel.fields.ordertotal,\n dateOfTransaction: new Date(receiptModel.fields.dateoftransaction).toLocaleString(),\n serviceType: receiptModel.fields.servicetype\n }\n\n openPrintReceiptWindow(printReceiptModel)\n }\n\n render() {\n const { paymentConfirmationContent, sharedContent, loading, receiptModel } = this.state;\n\n if (loading) {\n return ;\n }\n\n let duration = \"\";\n if (receiptModel.fields.servicetype === \"Renew\") {\n const pricingParts = receiptModel.fields.pricingname.split(\" - \");\n duration = pricingParts[1];\n }\n\n const faqLink = getLinkObj(sharedContent.SharedContentItems, \"BottomFAQLink\");\n\n return (\n \n \n \n

    {getText(paymentConfirmationContent.ConfirmationPage, \"Title\")}

    \n \n
    \n \n \n

    {getText(paymentConfirmationContent.ConfirmationPage, \"Subtitle\")}

    \n \n
    \n \n \n {\n receiptModel.fields.servicetype === \"Renew\" &&\n \n \n {getText(paymentConfirmationContent.ConfirmationPage, \"DurationLabel\")}\n \n {duration}\n \n }\n \n \n {getText(paymentConfirmationContent.ConfirmationPage, \"CredTypeLabel\")}\n \n {receiptModel.fields.credentialtype}\n \n \n \n {getText(paymentConfirmationContent.ConfirmationPage, \"ServiceLabel\")}\n \n {receiptModel.fields.servicetype}\n \n \n \n {getText(paymentConfirmationContent.ConfirmationPage, \"ConfirmNumberLabel\")}\n \n {receiptModel.fields.confirmationnumber}\n \n \n \n \n \n \n \n {getText(paymentConfirmationContent.ConfirmationPage, \"TextBelowConfirmationFields\")}{' '}\n {faqLink.Text || faqLink.Url}\n \n \n \n \n \n \n {getText(paymentConfirmationContent.ConfirmationPage, \"FinishButtonDescription\")}\n \n \n \n \n \n \n \n \n \n \n \n {getText(paymentConfirmationContent.ConfirmationPage, \"PrintButtonDescription\")}\n \n \n \n \n \n {getText(paymentConfirmationContent.ConfirmationPage, \"PrintButtonText\")}\n \n \n \n \n \n \n \n
    \n );\n }\n}\n\nexport default PrintReceipt;\n","import React, {useMemo} from \"react\";\nimport {Button} from \"reactstrap\";\nimport {Transaction} from \"../requestActions/transactionActions\";\nimport {openPrintReceiptWindow, ReceiptModel} from \"../utils/ReceiptGenerator\";\n\ninterface RePrintReceiptButtonProps {\n transaction: Transaction\n dateBecameNotInflight: string\n}\n\nexport const RePrintReceiptButton: React.FC = ({ transaction, dateBecameNotInflight }) => {\n\n const receivedPaymentTransaction = useMemo(\n () => !!Object.keys(transaction)?.length,\n [transaction]\n );\n\n /**\n * Returns True if we are within 5 days of when the record is no longer in flight\n */\n const isInReprintWindow = useMemo(() => {\n if (!dateBecameNotInflight) { return true; }\n\n const inFlightEnd = new Date(dateBecameNotInflight).getTime();\n const now = new Date().getTime();\n const fiveDaysInMilliseconds = 5 * 24 * 60 * 60 * 1000;\n\n return (now - inFlightEnd) <= fiveDaysInMilliseconds;\n }, [dateBecameNotInflight]);\n\n\n if (!receivedPaymentTransaction || !isInReprintWindow) {\n return ;\n }\n\n const boolToYesOrNo = (bool: boolean): \"YES\"|\"NO\" => bool ? \"YES\" : \"NO\";\n\n const transactionToReceiptModel = (transaction: Transaction): ReceiptModel => ({\n firstName: transaction.firstname,\n lastName: transaction.lastname,\n middleInitial: transaction.middleinitial,\n suffix: transaction.suffix,\n credentialType: transaction.credentialtype,\n restrictions: transaction.restrictions,\n endorsements: transaction.endorsements,\n class: transaction.class,\n organDonor: boolToYesOrNo(transaction.organdonor),\n veteran: boolToYesOrNo(transaction.veteran),\n paymentType: transaction.paymenttype,\n lastFourCreditCard: transaction.lastforcreditcard,\n cardholderName: transaction.cardholdername,\n confirmationNumber: transaction.confirmationnumber,\n dateOfTransaction: transaction.dateoftransaction,\n orderTotal: transaction.ordertotal,\n serviceType: transaction.servicetype\n });\n\n const onReprintClick = () => {\n openPrintReceiptWindow(transactionToReceiptModel(transaction));\n }\n\n return ;\n}\n","import React, {useEffect, useState} from \"react\";\nimport ReactTable, {Column} from 'react-table';\nimport {Redirect} from \"react-router-dom\";\nimport selectTableHOC from 'react-table/lib/hoc/selectTable';\nimport {Button, Col, Row} from \"reactstrap\";\n\nimport {RePrintReceiptButton} from \"../../components/RePrintReceiptButton\";\nimport {getPaymentTransactionHistory, TransactionHistoryItem} from \"../../requestActions/transactionActions\";\nimport LoadingIcon from '../../components/LoadingIcon';\nimport {parseCurrency} from \"../../utils/UtilityFunctions\";\n\nconst SelectTable = selectTableHOC(ReactTable);\n\n\nexport const TransactionHistory:React.FC = () => {\n const [loading, setLoading] = useState(false);\n const [transactionHistory, setTransactionHistory] = useState([]);\n const [redirectUrl, setRedirectUrl] = useState(\"\");\n\n useEffect(() => {\n const isTransactionHistoryItemValid = (historyItem: TransactionHistoryItem): boolean => {\n if (!historyItem) return false;\n if (!historyItem.transactionId) return false;\n return true\n };\n\n setLoading(true);\n getPaymentTransactionHistory()\n .then(history => setTransactionHistory(history.data.filter(isTransactionHistoryItemValid)))\n .catch(error => console.error(error))\n .finally(() => setLoading(false));\n }, []);\n\n const formatDateCells = (row: any) => {\n if (row.value) {\n const dateString = row.value.split('T')[0];\n const dateArray = dateString.split(\"-\");\n const formattedDate = `${dateArray[1]}/${dateArray[2]}/${dateArray[0]}`;\n return (\n
    \n {formattedDate}\n
    \n );\n }\n return (\n
    \n {'N/A'}\n
    \n );\n };\n\n const formatPriceCells = (row: any) => {\n\n if (row.value) {\n return (\n
    \n {parseCurrency(row.value, 'N/A')}\n
    \n );\n }\n return (\n
    \n {'N/A'}\n
    \n );\n };\n\n const columns: Column[] = [\n {\n Header: \"Credential Type\",\n accessor: \"fields.credentialtype\"\n },\n {\n Header: \"Service Type\",\n accessor: \"fields.servicetype\"\n },\n {\n Header: \"Transaction Date\",\n accessor: \"fields.dateoftransaction\",\n Cell: formatDateCells\n },\n {\n Header: \"Order Total\",\n accessor: \"fields.ordertotal\",\n Cell: formatPriceCells\n },\n {\n Header: \"Re-Print Receipt\",\n accessor: \"\",\n Cell: (rowInfo) => \n }\n ];\n\n const renderTransactionTable = () => {\n if (loading) return \n if (!transactionHistory.length) return (

    No Transactions Found

    )\n return (\n \n )\n };\n\n return (\n <>\n \n \n

    \n Transaction History\n

    \n \n
    \n \n \n {renderTransactionTable()}\n \n \n \n \n \n \n \n {redirectUrl ? : <>}\n \n )\n}\n","import React from 'react';\nimport {\n Switch,\n Route,\n Redirect\n} from \"react-router-dom\";\nimport {\n CredentialSelection,\n EditInformation,\n NotFound404,\n PrintReceipt\n} from './views';\nimport {AuthFromValues} from \"./types\";\nimport {TransactionHistory} from \"./workflows/TransactionHistory/TransactionHistory\";\n\ninterface Props {\n authConfirm: (\n saveAuthResults: ({authLoading, authErrors, displayAuthErrors}: {authLoading: boolean, displayAuthErrors: boolean, authErrors: any[]}) => void\n ) => (authFormValues: AuthFromValues, reCaptchaToken: string) => Promise\n authText: any\n jwt: string;\n language: string\n reauthorized: boolean\n}\nclass AuthenticatedApp extends React.Component {\n state = {\n redirectPath: '/authenticate',\n redirect: false,\n queryParams: null\n }\n componentDidMount() {\n // Parse the JWT here\n this.redirectToPage();\n }\n\n redirectToPage = () => {\n if (this.props.jwt) {\n const path = window.location.pathname !== '/'\n && window.location.pathname !== '/authenticate' ? window.location.pathname : '/select-credential';\n const queryParams = new URLSearchParams(window.location.search);\n this.setState({\n redirect: true,\n redirectPath: path,\n queryParams: queryParams\n });\n } else {\n this.setState({\n redirect: true,\n redirectPath: '/authenticate'\n });\n }\n }\n\n componentDidUpdate(prevProps: Props) {\n if (!this.props.jwt) {\n this.setState({\n redirect: true,\n redirectPath: '/authenticate'\n });\n }\n }\n\n // this was moved to a render function to prevent the component from being entirely re-rendered whenever props changed\n renderEditInfo = (props: any) => \n\n render() {\n const {\n redirectPath,\n redirect,\n queryParams\n } = this.state;\n const {\n language\n } = this.props;\n return (\n \n \n }\n />\n \n }\n />\n }\n />\n }\n />\n \n {redirect && }\n \n );\n }\n}\n\nexport default AuthenticatedApp;\n","import { postItemAction, getItemAction } from './baseActions';\n\nimport { AuthRequestValues } from '../types';\n\nexport const getReCaptchaSiteKey = () => {\n return getItemAction({\n url: '/cms/recaptcha/site-key',\n customRequestConfig: {\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n })\n}\n\nexport const authenticateAction = (bodyObj: AuthRequestValues) => {\n return postItemAction({\n url: '/cms/api/auth',\n bodyObj: bodyObj,\n customRequestConfig: {\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n });\n}\n","import React from 'react';\nimport { Row, Col, Container } from 'reactstrap';\nimport Header from './components/Headers/MainHeader';\nimport {\n AuthFromValues, AuthResponseValues\n} from './types';\n\nimport {\n BrowserRouter as Router,\n Switch,\n Route,\n} from \"react-router-dom\";\nimport {\n AuthenticatePage\n} from './views';\nimport AuthenticatedApp from './AuthenticatedApp';\nimport { getText } from './utils/ContentHelpers';\nimport {\n authenticateAction,\n getReCaptchaSiteKey\n} from './requestActions/authenticaitonActions';\nimport {\n getAuthContent,\n getSharedContent\n} from './requestActions/contentActions';\nimport { GoogleReCaptchaProvider } from 'react-google-recaptcha-v3';\n\nimport './styles/App.scss';\n\nclass App extends React.Component {\n state = {\n authPageText: {\n AuthPage: {}\n } as any,\n sharedContentText: {\n SharedContentItems: {}\n },\n siteKey: \"\",\n // isAuthenticated: false,\n loadingContent: true,\n jwt: '',\n language: \"\",\n authLoading: false,\n authErrors: [] as Array,\n displayAuthErrors: false,\n reauthorized: false\n };\n\n componentDidMount() {\n this.getReCaptchaSiteKey();\n this.getAuthPageContent(this.determineLangauge());\n this.isAuthenticated();\n }\n\n determineLangauge() {\n const sessionLanguage = this.getSessionLanguage();\n let browserLangage = '';\n if (\n window.navigator.language.slice(0, 2) !== 'en'\n && window.navigator.language.slice(0, 2) === 'es'\n ) {\n // we only support es-MX currently so all es langages becomes es-MX\n browserLangage = 'es-MX';\n }\n this.setState({language: sessionLanguage || browserLangage});\n return sessionLanguage || browserLangage;\n }\n\n getSessionLanguage = () => {\n const language = sessionStorage.getItem('vor-localization');\n if (language) {\n return language;\n }\n }\n\n getReCaptchaSiteKey = () => {\n getReCaptchaSiteKey()\n .then((response: any) => {\n this.setState({siteKey: response.data});\n })\n .catch((error: any) => {\n\n })\n }\n\n getAuthPageContent = (localization: string = \"\") => {\n const promiseArray = [\n getSharedContent(localization),\n getAuthContent(localization)\n ];\n this.setState({\n loadingContent: true\n });\n Promise.all(promiseArray)\n .then(([sharedContent, authContent]) => {\n this.setState({\n authPageText: authContent.data,\n sharedContentText: sharedContent.data,\n loadingContent: false\n });\n })\n .catch((error: any) => {\n console.error(error);\n // Should probably display an error of some kind to the user\n this.setState({\n loadingContent: false\n });\n });\n }\n\n isAuthenticated = () => {\n const jwt = sessionStorage.getItem('vor-jwt');\n if (jwt) {\n this.setState({\n jwt: jwt\n });\n } else {\n this.setState({\n jwt: ''\n });\n }\n }\n\n checkAuthenticationResponse = (authResponse: AuthResponseValues) => {\n if (authResponse.success && authResponse.token) {\n sessionStorage.setItem('vor-jwt', authResponse.token);\n this.setState({\n jwt: authResponse.token\n });\n\n return true;\n }\n\n return false;\n }\n\n authConfirm = (\n saveAuthResults: ({authLoading, authErrors, displayAuthErrors}: {authLoading: boolean, displayAuthErrors: boolean, authErrors: any[]}) => void,\n reAuth?: boolean\n ) => (authFormValues: AuthFromValues, reCaptchaToken: string) => {\n // send info to server here\n const { dob } = authFormValues;\n const dobString = dob ?\n `${dob.getFullYear()}-`\n + `${('0' + (dob.getMonth()+1)).slice(-2)}-`\n + ('0' + dob.getDate()).slice(-2) : '';\n\n return authenticateAction({\n LastName: authFormValues.lastName,\n DateOfBirth: dobString,\n PID: authFormValues.idNum,\n SSN: authFormValues.ssn || undefined,\n PIN: authFormValues.pin || undefined,\n DocDiscriminator: authFormValues.ddn || undefined,\n Captcha: reCaptchaToken\n })\n .then((response: any) => {\n saveAuthResults({\n authLoading: false,\n displayAuthErrors: false,\n authErrors: []\n });\n const authSuccessful = this.checkAuthenticationResponse(response.data);\n\n if (reAuth) {\n this.setState({\n reauthorized: authSuccessful\n });\n }\n return true;\n })\n .catch((error: any) => {\n console.error(error);\n const unknownError = ['An unknown error has occurred. Please refresh and try again.'];\n\n // if the error is formatted like > {PID: [\"One or more Identity Confirmation fields do not match.\"]}\n const flatten = (obj: any): any => {\n const result = [];\n for (const prop in obj) {\n const value = obj[prop];\n if (typeof value === 'object') {\n result.push(flatten(value));\n } else {\n result.push(value);\n }\n }\n return result;\n }\n\n if (!error?.response?.data || error.response.data.success) {\n saveAuthResults({\n authLoading: false,\n displayAuthErrors: true,\n authErrors: unknownError\n });\n return false;\n }\n\n if (error?.response?.data?.errors?.length) {\n saveAuthResults({\n authLoading: false,\n displayAuthErrors: true,\n authErrors: error.response.data.errors\n });\n return false;\n }\n\n if (\n error.response.data.errors\n && Object.prototype.toString.call(error.response.data.errors) === '[object Object]'\n ) {\n saveAuthResults({\n authLoading: false,\n displayAuthErrors: true,\n authErrors: flatten(error.response.data.errors)\n });\n return false;\n }\n\n if (error.response.data.message) {\n saveAuthResults({\n authLoading: false,\n displayAuthErrors: true,\n authErrors: [error.response.data.message]\n });\n return false;\n }\n\n saveAuthResults({\n authLoading: false,\n displayAuthErrors: true,\n authErrors: unknownError\n });\n return false;\n });\n }\n\n toggleErrorDisplay = () => {\n this.setState({displayAuthErrors: !this.state.displayAuthErrors});\n }\n\n setLoadingState = (loading: boolean) => {\n this.setState({\n authLoading: loading\n });\n }\n\n onChangeLanuguage = (language: string) => {\n this.setState({language: language});\n this.getAuthPageContent(language);\n }\n\n render() {\n const {\n jwt,\n sharedContentText,\n loadingContent,\n language,\n displayAuthErrors,\n authLoading,\n authErrors,\n siteKey\n } = this.state;\n let link: any;\n if (loadingContent) {\n return ();\n }\n\n if (!loadingContent) {\n // Old CMS link, for reference\n // link = getLinkObj(sharedContentText.SharedContentItems, 'BottomFAQLink');\n\n link = 'https://dmv.vermont.gov/faq';\n }\n return (\n
    \n \n \n \n \n \n \n \n \n \n }\n />\n \n {jwt\n ? \n : <>}\n {!loadingContent &&\n
    \n

    \n {getText(sharedContentText.SharedContentItems, 'BottomFAQMessage')}\n {link}\n

    \n
    \n }\n \n \n
    \n
    \n
    \n
    \n
    \n );\n }\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(\n (process as { env: { [key: string]: string } }).env.PUBLIC_URL,\n window.location.href\n );\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport TopHeader from './Headers/TopHeader';\nimport { Row, Col } from 'reactstrap';\n\ninterface State {\n hasError: boolean\n}\n\nclass ErrorBoundry extends React.Component {\n static getDerivedStateFromError(error: any) {\n // Update state so the next render will show the fallback UI.\n return { hasError: true };\n }\n\n constructor(props: any) {\n super(props);\n this.state = { hasError: false };\n }\n\n componentDidCatch(error: any, info: any) {\n console.error(error);\n console.error(info);\n }\n\n render() {\n // waiting for a better design from VT\n // But this is better than a whitescreen for users.\n if (this.state.hasError) {\n return (\n \n
    \n \n
    \n \n \n \n

    \n An unexpected error has occurred.\n

    \n

    \n Please refresh and try again.\n

    \n
    \n

    \n If this problem persists please contact us at: \n https://dmv.vermont.gov/contact\n

    \n
    \n \n \n
    \n
    \n );\n }\n\n return this.props.children;\n }\n}\n\nexport default ErrorBoundry;\n","import 'react-app-polyfill/ie11';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\nimport ErrorBoundry from './components/ErrorBoundary';\n\nReactDOM.render((\n \n \n \n), document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}