{"version":3,"sources":["assets/single_video.jpg","assets/preserve.png","assets/inspect.png","assets/banner_image.png","assets/testimonial1.png","assets/testimonial2.png","assets/testimonial3.png","assets/maintenance_overlay.png","assets/inspection_overlay.png","assets/grass_and_snow_overlay.png","assets/location_valleyview.png","assets/location_richardson.png","assets/google_playstore.png","assets/ios_store.png","assets/marketplace.png","assets/video_tutorial.png","assets/completion_login.png","assets/contact_info.jpg","store/api.ts","lib/helpers.ts","store/User.ts","store/index.ts","api.ts","store/messages.ts","store/documentUpload.ts","store/configureStore.ts","routes.ts","sagas/login.ts","assets/icons.tsx","components/NavMenu/index.tsx","components/Footer/index.tsx","components/Form/index.tsx","components/lib/Copy/index.tsx","components/Layout.tsx","store/helpers.ts","components/lib/WithLoader/index.tsx","components/HomePage/SignUpForm/index.tsx","components/BackgroundImage/index.tsx","components/lib/VideoWithOverlay/index.tsx","components/HomePage/Banner/index.tsx","components/HomePage/OneColumnBlock/index.tsx","components/HomePage/Videos/index.tsx","components/HomePage/ContactUs/index.tsx","components/HomePage/Testimonials/index.tsx","components/HomePage/index.tsx","components/lib/Banner/index.tsx","components/lib/CtaBanner/index.tsx","components/DashboardPage/DashboardLink/index.tsx","components/lib/BasicContent/index.tsx","components/AboutUsPage/index.tsx","components/CreatePasswordPage/CreatePasswordForm.tsx","components/lib/SimplePageScaffold/index.tsx","components/CreatePasswordPage/index.tsx","components/DashboardPage/index.tsx","components/lib/UploadButton/index.tsx","components/lib/DashboardPageStepScaffold/index.tsx","components/BackgroundCheckPage/index.tsx","components/CompanyInfoPage/CompanyInfo/index.tsx","components/CompanyInfoPage/TypesOfWork/index.tsx","components/Form/CheckBox/index.tsx","components/CompanyInfoPage/WorkLocations/index.tsx","components/lib/CollapseSection/index.tsx","components/CompanyInfoPage/EmployerIdentification/index.tsx","components/CompanyInfoPage/index.tsx","components/lib/ExternalLink/index.tsx","components/IdentificationPage/index.tsx","components/lib/RequestButton/index.tsx","components/InsurancePage/index.tsx","components/lib/ExternalLink/DownloadLink.tsx","components/TermsPage/index.tsx","components/TermsOfUsePage/index.tsx","components/FAQPage/Accordion/index.tsx","components/FAQPage/index.tsx","components/PrivacyPolicyPage/index.tsx","components/ContactUsPage/Locations/index.tsx","components/ContactUsPage/index.tsx","components/RequestForgotPasswordPage/RequestForgotPasswordForm.tsx","components/RequestForgotPasswordPage/index.tsx","components/Text/index.tsx","components/ForgotPasswordPage/index.tsx","components/CompletionPage/index.tsx","components/LoginPage/LoginForm/index.tsx","components/LoginPage/index.tsx","App.tsx","registerServiceWorker.ts","sagas/api.ts","sagas/navigation.ts","sagas/index.ts","index.tsx"],"names":["module","exports","makeApiAction","type","method","url","requestData","isSingleField","getUserAfterCall","payload","isFetching","createAction","name","action","toUpperCase","createApiActions","hasContent","str","length","uuid4","hex","s","b","toString","r","window","crypto","msCrypto","getRandomValues","Uint8Array","slice","reduce","allowedMimeTypes","fileToJsonPayload","file","a","async","Promise","resolve","reject","reader","FileReader","onload","mimeType","size","data","result","split","onerror","error","errors","tooLarge","wrongFormat","isError","findIndex","x","readAsDataURL","getUploadErrorMsg","uploadFailed","getRequiredMsg","value","undefined","getLengthMaxMsg","field","lengthMaxMsg","getLengthExactMsg","lengthExactMsg","isJwtExpired","token","JSON","parse","atob","e","parseJwt","exp","Date","now","UserFields","Actions","SET_FIRST_NAME","createSetActionType","SET_LAST_NAME","SET_EMAIL","SET_PHONE","SET_ZIP","SET_USER","SET_ADDRESS_LINE1","SET_ADDRESS_LINE2","SET_CITY","SET_STATE","SET_REFERRAL","SET_EIN","SET_WORK_TYPE_GRASS_AND_SNOW","SET_WORK_TYPE_INSPECTIONS","SET_WORK_TYPE_MAINTENANCE","SET_WORK_IN_OTHER_LOCATIONS","SET_WORK_LOCATION_REQUESTS","SET_IDENTIFICATION_UPLOADED","SET_EXTERNAL_LEAD_REQUEST","SET_VIEW_COMPLETION_PAGE","SET_COMPANY","SET_TITLE_IN_COMPANY","CONTINUE_FROM_PAGE","GO_TO_DASHBOARD","LOGOUT","ActionCreators","setField","createSetField","logOut","continueFromRoute","currentRoute","goToDashboard","didUserAcceptTerms","user","tmcVersionAccepted","tmcVersion","isCompanyInfoComplete","addressLine1","city","state","zip","referral","hasWorkType","isCompanyInfoInProgress","isPhotoIdComplete","photoIdUploaded","isBackgroundCheckComplete","backgroundCheckUploaded","requestBackgroundCheck","willObtainBackgroundCheck","isInsuranceComplete","insuranceUploaded","requestInsurance","willObtainInsurance","isAtLeastOneSteComplete","areAllStepsComplete","workTypeGrassAndSnow","workTypeInspections","workTypeMaintenance","API","getUser","UserActions","GET_USER","putField","PUT_FIELD","postDocument","document","cloudFileId","POST_DOCUMENT","deleteDocument","id","documentType","DELETE_DOCUMENT","createAccount","values","POST_ACCOUNT","createAccountPassword","POST_ACCOUNT_PASSWORD","logIn","POST_LOGIN","forgotPassword","email","POST_FORGOT_PASSWORD","postDocumentError","ActionCreator","setTokenExpired","isExpired","reducers","incomingAction","GET_USER_SUCCESS","userAction","startsWith","fieldAction","api","includes","response","meta","documentUpload","photoIdUploading","photoIdUploadFailed","backgroundCheckFailed","backgroundCheckUploadSuccess","insuranceUploading","insuranceUploadFailed","docType","backgroundCheckUploading","failed","success","backgroundCheckUploadFailed","messages","forgotPasswordTokenExpired","loggerState","index","correlationId","actionLoggerMiddleware","next","Routes","home","login","aboutUs","createPassword","dashboard","backgroundCheck","companyInfo","identification","insurance","terms","faq","privacyPolicy","contactUs","termsOfUse","requestForgotPassword","complete","ExternalLinks","handleCreateAccount","handleCreateAccountSetPassword","handleLogout","handleLoginSuccess","handleStatusCode","loginSaga","jwtTempTokenName","jwtTokenName","setJwtToLocalStorage","tokenName","localStorage","setItem","setTempToken","getJwtFromLocalStorage","getItem","clearJwtFromLocalStorage","removeItem","getJwt","forgotPasswordTempToken","tempToken","isLoggedIn","isTempLoggedIn","getToken","put","push","location","reload","status","takeEvery","POST_ACCOUNT_SUCCESS","POST_ACCOUNT_PASSWORD_SUCCESS","POST_LOGIN_SUCCESS","px","v","href","id_","Svg","props","scale","style","display","padding","className","width","height","viewBox","version","xmlns","xmlnsXlink","children","MailIcon","pathId","rectId","maskId","color","classNames","d","fill","fillRule","transform","xlinkHref","mask","PhoneIcon","y","stroke","strokeWidth","ZipCodeIcon","KabobIcon","pathId2","PersonIcon","CaretIcon","points","LogoSmall","LogoMedium","LogoBig","DotIcon","cx","cy","ActiveDotIcon","color2","PasswordIcon","ProgressCircleIcon","ProgressCircleCompleteIcon","ovalId","secondaryColor","ProgressCircleFailedIcon","ProgressCircleInProgressIcon","GrassIcon","HouseIcon","ToolboxIcon","CloseIcon","OpenIcon","InfoIcon","CheckIcon","UploadIcon","ContactPhoneIcon","ContactEmailIcon","UploadErrorIcon","UploadSuccessIcon","DownloadIcon","maskId2","SimpleScaffoldNavMenu","Navbar","NavbarBrand","tag","Link","to","colorSmall","colorBig","LogInLogOutButton","DefaultNavMenu","fixed","isContentPage","DashboardStepNavMenu","BackToDashboard","onClick","HomePageNavMenu","useState","showScrolledNavMenu","setShowScrolledNavMenu","opacity","setOpacity","useEffect","scrollHandler","showScrolled","t","getElementById","Error","bounding","getBoundingClientRect","top","left","right","innerWidth","documentElement","clientWidth","bottom","innerHeight","clientHeight","isInViewPort","addEventListener","removeEventListener","scrolledClassName","zIndex","HomePageNavMenuAtTop","Logos","HomePageNavMenuScrolled","Button","scrollTo","NavItem","NavLink","isLoginPage","connect","isHomePage","isDashboard","isDashboardStep","isSimpleScaffoldPage","route","router","pathname","path","excludingLeadingSlash","indexOf","legalList","navList","listItemsClass","list","listDirection","LinkList","map","i","key","callChangeHandler","func","getTargetValue","event","currentTarget","Form","formErrors","setFormErrors","form","setForm","validate","onSubmit","some","noReload","preventDefault","handleChange","target","replace","g","newState","Field","focus","setFocus","errorMessage","setErrorMessage","focusStyle","classes","noDefaultStyles","renderLabelIfExists","label","InputGroup","prepend","InputGroupAddon","addonType","InputGroupText","Input","checked","placeholder","placeHolder","onChange","onBlur","onFocusCapture","pattern","onKeyDown","keyCode","handleKeyPress","autoFocus","onFocus","renderErrorIfExists","validationMessage","message","Label","htmlFor","TextBox","MessageBox","Telephone","Email","Password","SelectList","options","RawButton","center","ContinueButton","rel","getIconColor","focused","ExpandedContinueButton","Row","Col","xs","Title","SubTitle","sm","Message","bold","textCenter","small","Fragment","Footer","IeMessage","show","setShow","isIE","fontWeight","fontSize","letterSpacing","textAlign","getApiError","msg","find","WithLoader","loaderClass","isLoading","loaderBodyClass","title","SignUpErrors","firstName","lastName","phone","serviceLine","formatPhone","input","formatted","substr","cleaned","c","check","isNaN","Number","externalLeadRequest","setState","minHeight","f","formProps","serviceLines","marginTop","BackgroundImage","scrollHeight","setScrollHeight","body","backgroundImage","BannerImage","position","absolute","fullPageHeight","clicked","setClick","showOverlay","alt","src","videoImage","elementClassName","videoUrl","allow","frameBorder","Container","VideoWithOverlay","singleVideo","NavMenuTriggerScrollRegion","offset","lg","videos","video","overlay","grassAndSnowOverlay","inspectionOverlay","maintenanceOverlay","detail","VideoCard","xl","objectFit","YouTube","opts","containerClassName","videoId","BlockHeader","Separator","Testimonials","activeIndex","setActiveIndex","getDot","swipeOptions","continuous","startSlide","transitionEnd","testimonials","testimonial","TestimonialCard","md","image","Testimonial1","active","Testimonial2","Testimonial3","Banner","OneColumnBlock","Videos","ContactUs","CtaBanner","text","LinkState","BasicContent","PasswordErrors","password","confirmPassword","hasErrors","setPassword","setConfirmPassword","passwordErrors","confirmPasswordErrors","requiredMsg","confirmRequiredMsg","passwordMaxLengthMsg","RegExp","test","firstPasswordError","firstConfirmPasswordError","Pixel","SimplePageScaffold","getTitle","DashboardLink","getLinkIcon","InProgress","Complete","Failed","DashboardBanner","noCompleteStepsBanner","atLeastOneCompleteStepBanner","allStepsCompleteBanner","noStepsComplete","atLeastOneStepComplete","allStepsComplete","links","getDashboardLinks","p","Unknown","hasError","UploadButtonInternal","pointerEvents","files","fileUpload","fileId","uploadFile","DefaultLabel","setClicked","nextState","isUploading","UploadNewFileLabel","onContinue","continueTitle","backgroundCheckDocumentUploaded","backgroundCheckDocumentFailed","uploading","doc","setErrors","setRequestBackgroundCheck","DashboardPageStepScaffold","UploadButton","then","catch","err","addressLine2","company","titleInCompany","checkSet","state_","states","companyName","referrals","WorkCard","icon","visibility","handleCheckbox","workLocationRequests","workInOtherLocations","CheckBox","setTimeout","CollapseSection","isCollapseOpen","setCollapseIsOpen","openIcon","iconOpen","ein","formatEin","withCaret","ExternalLink","buttonStyle","isClicked","subMessage","OrSeparator","margin","insuranceDocumentUploaded","insuranceDocumentFailed","setRequestInsurance","setWillObtaiInsurance","RequestButton","download","URL","createObjectURL","b64toBlob","base64Data","b64Data","sliceSize","byteCharacters","byteArrays","byteNumbers","Array","charCodeAt","byteArray","blob","Blob","Terms","dangerouslySetInnerHTML","__html","AcceptCheckBox","setTmcDate","tmcDate","date","year","getFullYear","month","getMonth","day","getDate","join","tmcText","tmcPdf","hideButton","DownloadLink","sections","section","Content","Accordion","locationValleyView","locationRichardson","Locations","RequestForgotPasswordErrors","setEmail","emailSent","setEmailSent","renderEmailSent","sent","tertiary","secondary","element","match","params","setForgotPasswordTempToken","StepSection","StepSectionWithApps","isAndroid","isBrowser","androidLink","GoogleStore","isIOS","iosLink","iOSStore","hasPreserve","hasInspections","loading","isFastTracked","lottie","loadAnimation","container","renderer","loop","autoplay","animationData","PreserveIcon","InspectIcon","CompletionLogin","VideoTutorial","Marketplace","ContactInfo","StepTitle","Divider","LoginErrors","apiError","onFailure","setTitle","getRender","isTempAccount","Redirect","React","component","withRouter","isForgotPasswordTempAccount","script","createElement","appendChild","script2","removeChild","Layout","Switch","Route","exact","render","search","DashboardPage","BackgroundCheckPage","CompanyInfoPage","IdentificationPage","InsurancePage","CompletionPage","TermsPage","AboutUs","FAQPage","PrivacyPolicyPage","ContactUsPage","TermsOfUsePage","RequestForgotPasswordPage","ForgotPasswordPage","isLocalhost","Boolean","hostname","registerValidSW","swUrl","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","console","log","calling","putAction","performCall","handleDocumentUpload","handlePutField","apiSaga","getHeaders","getCall","Axios","get","headers","postCall","post","putCall","apiCall","call","apiAction","select","handleContinueFromPage","handleTokenExpired","navigationSaga","viewedCompletionPage","navigateTo","rootSaga","all","fork","baseUrl","getElementsByTagName","getAttribute","history","createBrowserHistory","basename","sagaMiddleware","createSagaMiddleware","store","initialState","middleware","thunk","routerMiddleware","rootReducer","combineReducers","connectRouter","enhancers","windowIfDefined","__REDUX_DEVTOOLS_EXTENSION__","createStore","compose","applyMiddleware","configureStore","run","ReactDOM","App","process","origin","fetch","contentType","ready","unregister","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.2c5dd224.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/single_video.edcaa255.jpg\";","module.exports = __webpack_public_path__ + \"static/media/preserve.f7dd212a.png\";","module.exports = __webpack_public_path__ + \"static/media/inspect.4be92a20.png\";","module.exports = __webpack_public_path__ + \"static/media/banner_image.365674f6.png\";","module.exports = __webpack_public_path__ + \"static/media/testimonial1.5047bff5.png\";","module.exports = __webpack_public_path__ + \"static/media/testimonial2.23aae97a.png\";","module.exports = __webpack_public_path__ + \"static/media/testimonial3.186be7b0.png\";","module.exports = __webpack_public_path__ + \"static/media/maintenance_overlay.215b4d91.png\";","module.exports = __webpack_public_path__ + \"static/media/inspection_overlay.349c5016.png\";","module.exports = __webpack_public_path__ + \"static/media/grass_and_snow_overlay.0ce47fb1.png\";","module.exports = __webpack_public_path__ + \"static/media/location_valleyview.90481f78.png\";","module.exports = __webpack_public_path__ + \"static/media/location_richardson.c4667bcd.png\";","module.exports = __webpack_public_path__ + \"static/media/google_playstore.38b6a313.png\";","module.exports = __webpack_public_path__ + \"static/media/ios_store.805c1346.png\";","module.exports = __webpack_public_path__ + \"static/media/marketplace.0b4a3eab.png\";","module.exports = __webpack_public_path__ + \"static/media/video_tutorial.992328a5.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAL4AAAC+CAYAAACLdLWdAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAvqADAAQAAAABAAAAvgAAAAAuSVGBAAAURElEQVR4Ae2dC3AV13nHv90rJB6WjDFGGvN+GYoHG5I0hKddnFgIB9oScDttx2lqUwU/6MNkprVbMja1M61p2gHbBIPHretJW6B4asUIEsOEd0hjIFBjFIQACVwJE4yRBUhId3u+lVa+utq9d8/es3v33v0fhtm95/Gd7/zOX3vP7p5zrkZZDAvW3zW49eaNqVpcm0BafAKRNsEgo0wztGJDM4rNIxmFWXQRVXskoJHWJvqwWfRhs3kkrZHIqCFDrzF0o6aoT98jVZW/uuTRfMbFtIwtSBhYsml6v88+vvDVeAfNFRDmGhpNJoMC9UHCXWT1k4BG4u+BjouL3S49RrtuuWPoe5sfPnjdzyoTbfsuOsMwtPnrRs+Jt3c8Ihq5WFzRSxIdwDkIMAHxDXFVXAy36AWxN7ctO7NH08SfhY/BN+FXbBtXFD/d+i1xQf8OGcYYH9sA0/lGQNPqxBfCS/rYojeq59e2+tE85cLn4Uxz0/lvx0lbIQR/px9Ow2ZECGjaRzoZq4tLh/1A9TBIqfArXhmxQIzf14jhzKiIdA2aGQABMQw6K+4Dllc/UV+lqjolwp//8uiRHUbHGjGeX6jKMdgBgWQCYtz/TmFhwVNVlXX1yWmynzMW/rw1IxfFyXhd3JgMlK0c+UFAnoB2RSft0e3Lz22VL/t5Cc/CX7Lp7sLmpubVccN46nNzOAOBYAjomra2uLR4xeaHP2jzUqMn4ZdvvHsQXWuuEmP5GV4qRRkQUEFAjP0PUP/iBTse++CyrD1p4VdsGDcsfr1thxD9JNnKkB8EVBMQ4j+h9yssr15ae17GtpTw5706eoLR0f4Tw6DhMpUgLwj4SUDTqEGLFXxt++NnatzW41r45pX+RusBiN4tWuQLkgCLX+9bNMPtlV934xyP6c3hDa70bnAhTxYI8AWZNWref7qoP63w+elN140sxvQugCJL9giY953ioYup2TRupBU+P7LE05s0FJEcGgKsVdZsOodSjvE7X07F/yudEaSDQNgI6KR/I9VLLkfh8zSE9njHUbyRDVuXwh93BLQrRUUF9zpNb3Ac6vDcG4jeHWLkCiMBY2BbW/taJ89shc+zLDHhzAkZ4nOFAGuYtWznby/h83x6nlpslxlxIJBrBFjLrOlkv3sJv/ni+WXiznhUckZ8BoFcJMBa5oVRyb73uLnl5YIdp9vqsHIqGRM+5zQBsZIrNrZwTOIyxh5XfF4jC9HndBfDeTsCYgmsqe2EtG7h824I5sLwhEScgkC+EGBts8at9nQLn7cAwW4IFhYc846A2OnD1HhXw7qF37nvTd41Fw0CgW4CiRo3hd/5uEdb3J0DJyCQlwS0xdajTVP4vK2feOyDHc7ysrPRKIsAa5y1zp9N4XfuZWkl4wgC+UvA0nrXGN+Ym79NRctAIJFAp9Y1c6vutusXsWtxIhyc5y0BsSlnUWG/ITrvTw/R5203o2HJBMQDfda82JOTJian4TMI5DMB/iGSAs0wxK+QIKgkIPZ6oclDp9E9Q6dTWckwKi0ZTqXFw2jwLWUU0wtUVhW4rettLfTrlia6fO0iXW65SB9dOUuHzu6kk01HAvfFe4XxiVr52hFinxzDfMTj3RBKMoF7hdBnj3+IZo2toNv63xEpKJ9c+5gOndlJPz31Dh1p2BfqtovNZ9/THlw7/JgY7kwOtachd25S2RepcvZ3aWLZlJB7Gox7xy8cotcPfI8+bDwcTIWytWh0XCtfM+IM5t/LkuvMz8OXR2f+Nd033naRjzejeVTqYN2Pad3e56jpakOoWmXuty/mZBaHyqscceZLI+6jdX+wA6JP0V/TxzxIL//euzRl2MwUuYJPYs3r/JOawVed2zUumPwIPb/gX2hAIdCl68mSvgPpxd9+i353ymPpsgaWzpqPja0oWRVYjXlQUeXslfTNr6wgXet66Z0HbfK7CczqSyPvowFFxfR+/W6/q3NjP4bec4OpKw9ftRaF6Mol4XoosjI7/rYMQ4DwXfYCj1OXznzWZW5kcyKwbM5zxPdH2Q4Qvose4BdQz1asEy+fYi5yI0sqAszwmYpXzRd6qfL5nQbhuyC8TDyj55s0BDUE+KEAPwbOZoDw09Dnl1P8WA5BLQF+98FssxVye+JIANT+ZMZfea6lveMm7a/bTvwip6bpl+b8lhs3r3m2F4aCffRCKrt1OI0ZPIlmj3uIpo1+gApjRZ5c47fdf7Z5oaeymRaC8FMQ/MLw2eZksxRZHJP21VbThv0vUOPVesc8uZhwM95GDZ+cNv/vPlVlTsCrnLWSZo4tl24OT/G4Z+hX6NiFn0mXzbQAhjopCHqZiiAm/NH6vatoVXVl3oneDhVPR3h+21Lzj5zbLhvmjP+6bBEl+SH8FBj5a1w2bDzwIm09ukG2WM7n33J4Pb227++k28EzWXkad9ABwncgPrF0qvTU4v2ndxALIKqB/+B5iCcTePo2r10IOkD4DsSnjZK72rd1tNL6fc87WItO9Mb9LxLf1MsEXrATdIDwHYjfOXCUQ4p9NC/CCNv0W3tP/Y39v6vnzCdZMrXwKrWgA4TvQHzQgCEOKfbRe2vftU+IYCw/vpUJ/GY86ADhOxAf1F9O+HWXTjhYil40v7OQCbygJ+gA4TsQv31AqUOKfXTjpw32CRGM5YXoMoEX4QcdIHwH4v0KBzik2Efzix2ETgKyb6ezsfMEhA+1RpIAhB/JbkejIXxoIJIEIPxIdjsaDeFDA5EkAOFHstvRaAgfGogkAQg/kt2ORkP40EAkCUD4kex2NBrCzwEN9Mcencp7CcJXjlStwTtvHUUb/nBnqDZdVdvC7FjDLgvZ4e6qVhb96kWb6HYxe/HbYrNaDm8f3eiqLDKlJoArfmo+WUtNFL3lBIs/TNttW37l4hHCD2Gv2YnechPit0hkdoTwM+OnvHQq0VuVQfwWCe9HjPEd2L318392SPEv2o3ordox5rdIeDtC+A7c/u3Q9x1S/ImWEb3lAcRvkZA/Yqgjz0x5CS+it5zAsMciIXeE8OV4+ZKbt9HjR5ZeA8QvTw7Cl2emvMSmw+voP37xSkZ2IX45fBC+HC/fcr9x8O8hft/o9jYM4fdmkrUYiD849BB+cKxd1QTxu8KUcSYIP2OE6g1A/OqZJluE8JOJhOQzxO9vR0D4/vLNyDrEnxG+lIUh/JR4sp8I8fvTBxC+P1yVWoX4leI0jUH46pn6YhHiV4sVwlfL01drEL86vBC+OpaBWIL41WCG8NVwDNQKxJ85bgg/c4ZZsQDxZ4Y9KwtRdC1GuqZ3/tf5POEzn3Oc+LVr89grjcvZ5LfsmWmcLlle1Kjrlu2u8pYvPWxzPvYvOT+X7UozfRD1W76Ydjnd8rvr2KO+1OWFNYqZrDrtaKKumPifaYjqYpZAhc8bI71d+UGmfYXyiglEUfyZXzIkOiFudEjkRtYgCURtPn+wwo9D+EGKWbauKIk/WOEbcdm+QP6ACURF/BB+wMLKheqiIP6AhY+hTi4In31cOvNZGn7b2FxxV9rPQIXP3hmGIe0kCgRLIC6GpP/43tPU8MnpYCsOsLbAhY8nOwH2roeqWPSrf/KXtLNmq4fSuVMkC8LHDW5Y5REV0TN/CD+sKgzYryiJPjvCx7P8gCWdvrqoiZ6JBDplgSvsMNqpQ4ifx/oMPM7n/M+ME0cr3kozPxtd8SJvnPMk5kuw0yPessnpSeWT6jNEuQ6ux7TdIW7A+XNXHcIvviE307t8s8//uR89yosyZvmENqctb/rX5VNXeebSyS1u+sef2e4T96+iGWPKGa2nEEXRM6jAhf+N1yZ76iAU6k3gL+b+A0TfG4urmMDH+K68Qqa0BFj08+7+/bT5nDJE9Upv8YDwLRI5dIToM+8sCD9zhoFagOjV4Ibw1XAMxApErw4zhK+Opa+WIHq1eCF8tTx9sQbRq8cK4atnqtQiRK8UZ7cxCL8bRfhOIHr/+gTC949tRpYh+ozwpS0M4adFFHwGiN5/5hC+/4ylaoDopXB5zgzhe0anviBEr56pk0UI34lMwPEQfbDAA5+dGWzzvNe28J5vShV+59i/SuVPzPzItKcx4SwRSADnEL4D5CfuW+WQYh+difB/9L9v0f13LaShA0fbG08RG/VZlinQpEzCUCclnmASL7c00YqtD9OFK2ekKoTopXD1yAzh98CRvQ+y4ofoM+srCD8zfkpLuxU/RJ85dgg/c4ZKLaQTP0SvBjeEr4ajUitO4ofo1WGG8NWxVGopWfwQvVK8wW8opdb9/LZmib/+cm0ktvULsjfxHD9I2h7qYvEv+/dyao/f9FAaRZwIYKjjRCZE8RC9+s6A8NUzhcUcIADh50AnwUX1BCB89UxhMQcIQPg50ElwUT0BCF89U1jMAQIQfg50ElxUTwDCV88UFnOAAITv0Ekd8XaHFPvovn362ydEMLaPXijV6uttLVL5VWSG8B0oXvqs0SHFPnpQ/yH2CRGMLbt1hFSrfy3eTgcdIHwH4k3N5x1S7KMnlN5rnxDB2DGDf0Oq1ZevXZTKryIzhO9Aselqg0OKffT0MQ/aJ0Qwds64r0u1+nILhC8FzM/MjVflrvgzx8yjshK5r3g//c+W7dKS4fTl0XOlqpddayxl3CEzrvgOYI5dOOiQYh9dEOtDS2c+a58YodjKWSupMFYk1eKfn90llV9FZgjfgeLxC4fok2sfO6TaR88aV0GLpiy1T4xA7OIvVNLMsXI/PcqMTzYdCZwOhO+A3CCD9p2udkh1jv7TWX9DLICoBf6Df2zGM9LNPnRmp3QZFQUg/BQU9556N0WqfZKmaeaQZ+X8DcTj3XwPfF+zcv5rVDn7b4nbLht+euod2SJK8mMFVgqMvxTj/JONR2li2ZQUueyT+Cv/N0fdT3xF21v7LtVdOkGNnzbQzXibfYEcieUXdfzOgh/f8pMsvqnn+xsvgYeTRxr2eSmacRntwTXDjYyt5LGBSWVfpH9a8nYetzB7Tfvzzb9DHzYezooDGOqkwX6i8X3afaoqTS4kyxI4WPfjrImefYXwXfTY6/u/Ry1tzS5yIosbAldvXKF1e59zk9W3PBC+C7Q8feHF6sepI97hIjeypCLADF+oXkayb8ZT2fSSpmuk5fbdlpdWeyjzi/rdtG7Pdz2URJFEAhv2v0BHz+9PjAr8nDWvG5qB73CX6KuOv0lbj250mRvZkgkwu7dDwI81HxtXMXCZcHBgspP4bE/gfXHl5/H+1OGzSNcwUrSn1DOWhzev7l5JP/yfNT0TsvRJXPEv4orvAT5ftZ757z8ivklDSE2ALxIrq/6Y+NsyLIGv+DzGD34VQFgIZOAHj1Of/M+HiB/LIdgT4MfAy35YTnx/FKYgNN8ohjol04RTXw6TY7niS0vrVeJX7ofr95i/X1VaMixXXPfVT37bzU9ueEzf0nbV17q8GBczK6rFlAX9JFHcS3mU6SLAL7lWbF1ijvvvH7+Qpo1+gG7rf0ek+PAsS57Ut+fUj+jYhZ+Fu+2GXlNg6EYNdK+mn3jeiTX3ZGLpVJo26gG6c+AoGjRgiDm/5fYBpdSvcICayrJkhRfh83pkfrfBz+J5wQ6vXeB5NzyjNRcCa15bsP6uwa1t1y8Kn+Wn1uVCK+EjCCQS0MgoKuw3RK+q/NUlzaDjiWk4B4F8JcBaZ813PYjWgl/7la9k0a6QE+jUuil8PUYQfsi7C+6pIWBp3RT+LXcMfU882wzfcyc1bYUVEDAJsMZZ6/zBFP7mhw9eJzK2gA8I5DcBY0un1hPm4+sFsTfzu9FoXdQJJGq8+xGmYRha+csja8kwxkQdENqfhwQ0rW7Hk+fGiQXx5ssGc6jDzeQI8YjzpTxsMpoEAuIllfGSJXrG0S1888PYojfEX8BH4AQCeUVAaFpnbSeEHsKvnl/bqpOxOiEdpyCQ8wRY06ztxIb0ED4nFJcO+4F47HM2MRPOQSBXCbCWWdPJ/vcSPj/uEQ/5lydnxGcQyEUCrGXrEWai/72Ez4nVT9RXiRuB7OztlugdzkEgAwKsYdaynQlb4XPGmBYTV30Na+vsqCEuBwhoVwoLC55yctRR+NuePHNOJ+1Rp4KIB4EwE2DtVlXW1Tv5GHNK4Pja6k8/HD9/4O3iiT8vT0QAgZwgoGva2u3L67+fylnHK75VqLi0eIW4Mz5gfcYRBMJMgLXKmk3nY/eUhVQZyzfePYiuNe8VS8smpcqHNBDIJgEh+hPUv3j2jsc+uJzOD1fCZyMVG8YNi99oPWAYlP+/dpCOGtJDR0DsnNCg9y2aUb201tWv9qUd6lgtZINarOBrXIEVhyMIhIEAa5K16Vb07LNr4XPm7Y+fqeG/KvMrhSMQQCDLBFiLrEnWpowrUsJnw+ZflRhH8U2ETEXICwKqCZgaFFqUudJbPkgLnwvyzUNJWfFv8WMjyxCOIBAkAdYea9DNjaydX65vbu0Kc9y8NSMXxcl4XSxdxI7LTpAQr5CAdoVfTm1ffm5rJkY9XfETK2QHCvTYFMztSaSCcz8IsMaKigruzVT07FvGV/zEBla8MmKB2Ap9jXjePyoxHucgkAkBMZY/y7MsnSacebGd8RU/sVJ2rKRs6CRdp6exkiuRDM49EeCVU0JLrCmVomdflF7xExtXsW1cUfx067fElpzfwQL2RDI4T0tALAznNbK8XDB55VTasi4z+CZ8q37evWH+utFz4u0dj4i/s8ViGFRipeEIAhYBMZwRG5oZW3gLkG3LzuwR43lft172XfhWw/i4ZNP0fp99fOGr4j5grmjkXLGtw2Ts0pxIKELn4pLOG7iKi+EuMX7fxTuc2a2U8otIoMJPboS5RfnNG1OF+CdqhjFB3BdMEN8IpWKjk2JBpdg8klGYXA6fw09AXMHb+LemRB82m0f+ySnDqDE0rUYMsE8W9el7hHctzlZL/h8b1FcdT3/DgQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/jpeg;base64,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\"","import {Action, Reducer} from \"redux\";\n\nexport interface ApiAction {\n type: string;\n payload: {\n isFetching: boolean;\n isSingleField?: boolean;\n getUserAfterCall?: boolean;\n method: string;\n url: string,\n requestData?: T,\n status?: number;\n data?: any\n }\n}\n\nexport interface ApiState {\n isFetching: boolean;\n isSingleField?: boolean;\n getUserAfterCall?: boolean;\n response: {\n data?: object;\n errors?: string[];\n Meta?: object;\n }\n}\n\nexport interface ApiStatusAction {\n type: string,\n payload: {\n status: number\n }\n}\n\nexport const makeApiAction = (type: string, method: string, url: string, requestData?: T, isSingleField?: boolean, getUserAfterCall?: boolean): ApiAction => ({\n type,\n payload: {\n isFetching: false,\n isSingleField: isSingleField || false,\n getUserAfterCall: getUserAfterCall || false,\n method,\n url,\n requestData\n }\n});\n\nexport const CALLING = 'CALLING';\nexport const FAILED = 'FAILED';\nexport const SUCCESS = 'SUCCESS';\nexport const API_STATUS_CODE = 'API_STATUS_CODE';\n\nconst createAction = (method: string, name: string, action?: string) => (`${method}_${name}` + (action ? `_${action}` : '')).toUpperCase();\n\nexport const createApiActions = (name: string, method: 'GET' | 'POST' | 'DELETE' | 'PUT') => {\n return ({\n [`${method}_${name}`]: createAction(method, name),\n [`${method}_${name}_CALLING`]: createAction(method, name, CALLING),\n [`${method}_${name}_FAILED`]: createAction(method, name, FAILED),\n [`${method}_${name}_SUCCESS`]: createAction(method, name, SUCCESS)\n });\n};\n\nexport const apiReducer: Reducer = (state: ApiState | undefined, incomingAction: Action): any => {\n const action = incomingAction as ApiAction;\n\n if (state === undefined) {\n return {isFetching: false, isSingleField: false, getUserAfterCall: false};\n }\n const type = action.type || '';\n if (\n !type.startsWith('GET')\n && !type.startsWith('POST')\n && !type.startsWith('PUT')\n && !type.startsWith('DELETE')\n ) return state;\n\n const isFetching = action.payload.isFetching;\n const isSingleField = !!action.payload.isSingleField;\n const getUserAfterCall = !!action.payload.getUserAfterCall;\n if (type.includes('_SUCCESS') || type.includes('_FAILED')) {\n return {\n ...state,\n isFetching,\n isSingleField,\n getUserAfterCall,\n response: {\n data: action.payload.data.data,\n errors: action.payload.data.errors,\n meta: action.payload.data.meta\n }\n };\n }\n\n return {...state, isFetching, isSingleField};\n};\n","export const hasContent = (str?: string | null): boolean => (str && str.length > 0) || false;\n\nexport const dashToCamelCase = (myStr: string) => {\n return myStr.replace(/-([a-z])/g, function (g) {\n return g[1].toUpperCase();\n });\n};\n\n\nexport function uuid4() {\n //@ts-ignore\n let cryptoObj = window.crypto || window.msCrypto; // for IE 11\n \n // source: https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript?page=2&tab=Votes\n function hex(s: string, b: number) {\n return s +\n (b >>> 4).toString(16) + // high nibble\n (b & 0b1111).toString(16); // low nibble\n }\n\n let r = cryptoObj.getRandomValues(new Uint8Array(16));\n\n r[6] = (r[6] >>> 4) | 0b01000000; // Set type 4: 0100\n r[8] = (r[8] >>> 3) | 0b10000000; // Set variant: 100\n\n return r.slice(0, 4).reduce(hex, '') +\n r.slice(4, 6).reduce(hex, '-') +\n r.slice(6, 8).reduce(hex, '-') +\n r.slice(8, 10).reduce(hex, '-') +\n r.slice(10, 16).reduce(hex, '-');\n}\n\nexport interface IFileResult {\n name: string;\n mimeType: string;\n type: string;\n size: number;\n data: any;\n}\n\nconst allowedMimeTypes = [\n \"image/png\", \n \"image/jpg\", \n \"image/jpeg\", \n \"application/pdf\"\n];\nexport async function fileToJsonPayload(file: File, type: string): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => resolve({\n name: file.name,\n mimeType: file.type,\n type,\n size: file.size,\n data: (reader.result as string).split(\",\")[1]\n });\n reader.onerror = error => reject(error);\n\n const fiveMegaBytes = 10000000;\n let errors = {tooLarge: false, wrongFormat: false};\n let isError = false;\n if (file.size > fiveMegaBytes) {\n isError = true;\n errors.tooLarge = true;\n }\n if (allowedMimeTypes.findIndex(x => x === file.type) === -1) {\n isError = true;\n errors.wrongFormat = true;\n }\n if (isError) {\n reject(errors);\n }\n\n reader.readAsDataURL(file);\n });\n}\n\nexport const getUploadErrorMsg = (errors: {tooLarge?: boolean, wrongFormat?: boolean, uploadFailed?: boolean}) => {\n return !!errors.tooLarge\n ? \"File size must be less than 10 Megabytes\"\n : !!errors.wrongFormat\n ? \"Invalid file format\"\n : !!errors.uploadFailed\n ? \"Failed to upload file\"\n : null;\n}\n\nexport const stringLength = (str?: string): number => {\n if (!str) {\n return 0;\n }\n return str.length;\n};\n\nexport const\n requiredMsg = (field: string) => `${field} is required`,\n lengthMaxMsg = (field: string, length: number) => `${field} must be less than ${length} characters`,\n lengthExactMsg = (field: string, length: number) => `${field} must be ${length} numbers`,\n getRequiredMsg = (value: string, name: string) => !hasContent(value) ? requiredMsg(name) : undefined,\n getLengthMaxMsg = (value: string, length: number, name: string) => value.length > length ? lengthMaxMsg(name, length) : undefined,\n getLengthExactMsg = (value: string, length: number, name: string) => value.length !== length ? lengthExactMsg(name, length) : undefined;\n\ninterface Token {\n userId: string;\n exp: number;\n iss: string;\n aud: string;\n}\n\nexport const parseJwt = (token: string): Token => {\n try {\n return JSON.parse(atob(token.split('.')[1]));\n } catch (e) {\n return {} as Token;\n }\n};\n\nexport const isJwtExpired = (token: string): boolean => {\n const parsedToken = parseJwt(token);\n const expirationInSeconds = parsedToken.exp;\n const expirationInMs = expirationInSeconds * 1000;\n return expirationInMs < Date.now();\n};\n\nexport const removeEmbeddedStyles = (text: string) => text.replace(/]*>(?:(?!<\\/style>)[^])*<\\/style>/g, \"\");\n\nexport const isInViewPort = (id: string) => {\n const t = document.getElementById(id);\n if (t === undefined || t === null) throw Error(`Could not find element with id ${id}`);\n const bounding = t.getBoundingClientRect();\n return bounding.top >= 0 &&\n bounding.left >= 0 &&\n bounding.right <= (window.innerWidth || document.documentElement.clientWidth) &&\n bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight)\n}\n\nexport const elementBelowCurrentLocation = (id: string) => {\n const t = document.getElementById(id);\n if (t === undefined || t === null) throw Error(`Could not find element with id ${id}`);\n const bounding = t.getBoundingClientRect();\n return bounding.top > 0;\n}\n","import {Action, Reducer} from 'redux';\nimport {\n ContinueFromRoute,\n createSetActionType,\n createSetField,\n FieldAction,\n GenericAction\n} from \"./index\";\nimport {createApiActions} from \"./api\";\nimport {hasContent} from \"../lib/helpers\";\n\n// -----------------\n// STATE - This defines the type of data maintained in the Redux store.\nexport interface UserState {\n id?: string;\n firstName?: string;\n lastName?: string;\n email?: string;\n phone?: string;\n zip?: string;\n token?: string;\n\n addressLine1?: string;\n addressLine2?: string;\n city?: string;\n state?: string;\n referral?: string;\n ein?: string;\n\n workTypeGrassAndSnow?: boolean;\n workTypeInspections?: boolean;\n workTypeMaintenance?: boolean;\n\n workLocationRequests?: string;\n\n photoIdUploaded?: boolean;\n photoIdUploadFailed?: boolean;\n\n backgroundCheckUploaded?: boolean;\n backgroundCheckUploadFailed?: boolean;\n requestBackgroundCheck?: boolean;\n willObtainBackgroundCheck?: boolean;\n\n insuranceUploaded?: boolean;\n insuranceUploadFailed?: boolean;\n requestInsurance?: boolean;\n willObtainInsurance?: boolean;\n\n tmcVersion?: string;\n tmcText?: string;\n tmcVersionAccepted?: string;\n tmcPdf?: string;\n\n externalLeadRequest?: string;\n\n viewedCompletionPage?: boolean;\n\n company?: string;\n titleInCompany?: string;\n isFastTracked?: boolean;\n tmcDate?: string | null;\n}\n\nexport interface CreatePassword {\n email: string;\n password: string;\n}\n\nexport const UserFields = {\n FIRST_NAME: 'firstName',\n LAST_NAME: 'lastName',\n EMAIL: 'email',\n PHONE: 'phone',\n ZIP: 'zip',\n ADDRESS_LINE1: 'addressLine1',\n ADDRESS_LINE2: 'addressLine2',\n CITY: 'city',\n STATE: 'state',\n REFERRAL: 'referral',\n EIN: 'ein_number',\n WORK_TYPE_GRASS_AND_SNOW: 'workTypeGrassAndSnow',\n WORK_TYPE_INSPECTIONS: 'workTypeInspections',\n WORK_TYPE_MAINTENANCE: 'workTypeMaintenance',\n WORK_IN_OTHER_LOCATIONS: 'workInOtherLocations',\n WORK_LOCATION_REQUESTS: 'workLocationRequests',\n IDENTIFICATION_UPLOADED: 'identificationUploaded',\n TMC_VERSION_ACCEPTED: 'tmcVersionAccepted',\n\n EXTERNAL_LEAD_REQUEST: 'externalLeadRequest',\n VIEWED_COMPLETION_PAGE: 'viewedCompletionPage',\n COMPANY: 'company',\n TITLE_IN_COMPANY: 'titleInCompany',\n TMCDATE:'tmcDate'\n};\n\nconst USER = 'USER';\nconst ACCOUNT = 'ACCOUNT';\nconst ACCOUNT_PASSWORD = 'ACCOUNT_PASSWORD';\nconst FORGOT_PASSWORD = 'FORGOT_PASSWORD';\nconst FIELD = 'FIELD';\nconst DOCUMENT = 'DOCUMENT';\n\nexport const LOGOUT = 'LOGOUT';\nexport const LOGIN = 'LOGIN';\n\nexport const Actions = {\n SET_FIRST_NAME: createSetActionType(UserFields.FIRST_NAME),\n SET_LAST_NAME: createSetActionType(UserFields.LAST_NAME),\n SET_EMAIL: createSetActionType(UserFields.EMAIL),\n SET_PHONE: createSetActionType(UserFields.PHONE),\n SET_ZIP: createSetActionType(UserFields.ZIP),\n SET_USER: createSetActionType(USER),\n SET_ADDRESS_LINE1: createSetActionType(UserFields.ADDRESS_LINE1),\n SET_ADDRESS_LINE2: createSetActionType(UserFields.ADDRESS_LINE2),\n SET_CITY: createSetActionType(UserFields.CITY),\n SET_STATE: createSetActionType(UserFields.STATE),\n SET_REFERRAL: createSetActionType(UserFields.REFERRAL),\n SET_EIN: createSetActionType(UserFields.EIN),\n SET_WORK_TYPE_GRASS_AND_SNOW: createSetActionType(UserFields.WORK_TYPE_GRASS_AND_SNOW),\n SET_WORK_TYPE_INSPECTIONS: createSetActionType(UserFields.WORK_TYPE_INSPECTIONS),\n SET_WORK_TYPE_MAINTENANCE: createSetActionType(UserFields.WORK_TYPE_MAINTENANCE),\n SET_WORK_IN_OTHER_LOCATIONS: createSetActionType(UserFields.WORK_IN_OTHER_LOCATIONS),\n SET_WORK_LOCATION_REQUESTS: createSetActionType(UserFields.WORK_LOCATION_REQUESTS),\n SET_IDENTIFICATION_UPLOADED: createSetActionType(UserFields.IDENTIFICATION_UPLOADED),\n SET_EXTERNAL_LEAD_REQUEST: createSetActionType(UserFields.EXTERNAL_LEAD_REQUEST),\n SET_VIEW_COMPLETION_PAGE: createSetActionType(UserFields.VIEWED_COMPLETION_PAGE),\n SET_COMPANY: createSetActionType(UserFields.COMPANY),\n SET_TITLE_IN_COMPANY: createSetActionType(UserFields.TITLE_IN_COMPANY),\n CONTINUE_FROM_PAGE: 'CONTINUE_FROM_PAGE',\n GO_TO_DASHBOARD: 'GO_TO_DASHBOARD',\n LOGOUT,\n\n ...createApiActions(USER, 'GET'),\n ...createApiActions(ACCOUNT, 'POST'),\n ...createApiActions(ACCOUNT_PASSWORD, 'POST'),\n ...createApiActions(FORGOT_PASSWORD, 'POST'),\n ...createApiActions(DOCUMENT, 'POST'),\n ...createApiActions(LOGIN, 'POST'),\n ...createApiActions(FIELD, 'PUT'),\n ...createApiActions(DOCUMENT, 'DELETE')\n} as any;\n\n\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\n// declared type strings (and not any other arbitrary string).\nexport type KnownAction = FieldAction | GenericAction;\n\nexport const ActionCreators = {\n setField: (name: string, data?: any) => (createSetField(name, data)),\n logOut: () => ({type: Actions.LOGOUT, payload: {}}),\n\n continueFromRoute: (currentRoute: string) => ({\n type: Actions.CONTINUE_FROM_PAGE,\n payload: {\n currentRoute\n }\n } as ContinueFromRoute),\n\n goToDashboard: () => ({type: Actions.GO_TO_DASHBOARD, payload: {}}),\n};\n\n// ----------------\n// REDUCER - For a given state and action, returns the new state.\n\nexport const reducer: Reducer = (state: UserState | undefined, incomingAction: Action): UserState => {\n if (state === undefined) {\n return {} as UserState;\n }\n\n const action = incomingAction as KnownAction;\n switch (action.type) {\n case Actions.GET_USER_SUCCESS:\n case Actions.SET_USER:\n const userAction = incomingAction as GenericAction;\n return {...state, ...userAction.payload.data.data};\n }\n\n if (action.type.startsWith('SET_')) {\n const fieldAction = incomingAction as FieldAction;\n return {...state, [fieldAction.payload.name]: fieldAction.payload.data};\n }\n return state;\n};\n\nexport function didUserAcceptTerms(user: UserState) {\n return hasContent(user.tmcVersionAccepted)\n && user.tmcVersion === user.tmcVersionAccepted;\n}\n\nexport const isCompanyInfoComplete = (user: UserState) =>\n hasContent(user.addressLine1)\n && hasContent(user.city)\n && hasContent(user.state)\n && hasContent(user.zip)\n && hasContent(user.referral)\n && hasWorkType(user);\n\nexport const isCompanyInfoInProgress = (user: UserState) =>\n (!isCompanyInfoComplete(user)) && (\n hasContent(user.addressLine1)\n || hasContent(user.city)\n || hasContent(user.state)\n || hasContent(user.zip)\n || hasContent(user.referral)\n || hasWorkType(user)\n );\n\nexport const isPhotoIdComplete = (user: UserState) => user.photoIdUploaded;\nexport const isBackgroundCheckComplete = (user: UserState) =>\n user.backgroundCheckUploaded ||\n user.requestBackgroundCheck ||\n user.willObtainBackgroundCheck;\nexport const isInsuranceComplete = (user: UserState) =>\n user.insuranceUploaded ||\n user.requestInsurance ||\n user.willObtainInsurance;\n\nexport const isAtLeastOneSteComplete = (user: UserState) =>\n isCompanyInfoComplete(user) ||\n isPhotoIdComplete(user) ||\n isBackgroundCheckComplete(user) ||\n isInsuranceComplete(user) ||\n didUserAcceptTerms(user);\n\nexport const areAllStepsComplete = (user: UserState) =>\n isCompanyInfoComplete(user) &&\n isPhotoIdComplete(user) &&\n isBackgroundCheckComplete(user) &&\n isInsuranceComplete(user) &&\n didUserAcceptTerms(user);\n\nconst hasWorkType = (user: UserState) => (user.workTypeGrassAndSnow || user.workTypeInspections || user.workTypeMaintenance);\n","import * as User from './User';\nimport {ApiState, apiReducer} from './api';\nimport {documentUploadReducer, DocumentUploadState} from \"./documentUpload\";\nimport {messagesReducer, MessagesState} from \"./messages\";\n\n// The top-level state object\nexport interface ApplicationState {\n user: User.UserState | undefined;\n api: ApiState,\n documentUpload: DocumentUploadState,\n messages: MessagesState\n}\n\nexport interface GenericAction {\n type: string,\n payload: any\n}\n\nexport interface ContinueFromRoute {\n type: string,\n payload: {\n currentRoute: string\n }\n}\n\nexport interface FieldAction {\n type: string,\n payload: {\n name: string,\n data?: any\n }\n}\n\nexport interface Field {\n name: string,\n data?: any\n}\n\nexport interface Document {\n id: string,\n name: string,\n size: number,\n mimeType: string,\n type: 'ID' | 'BACKGROUND_CHECK' | 'INSURANCE'\n data?: any\n}\n\nexport function createSetActionType(name: string): string {\n return `SET_${name}`.toUpperCase()\n}\n\nexport function createSetField(name: string, data?: any): FieldAction {\n return ({\n type: createSetActionType(name),\n payload: {\n name,\n data\n }\n });\n}\n\nexport function createGenericAction(type: string, name: string, data?: any): FieldAction {\n return ({\n type,\n payload: {\n name,\n data\n }\n });\n}\n\n// Whenever an action is dispatched, Redux will update each top-level application state property using\n// the reducer with the matching name. It's important that the names match exactly, and that the reducer\n// acts on the corresponding ApplicationState property type.\nexport const reducers = {\n user: User.reducer,\n api: apiReducer,\n documentUpload: documentUploadReducer,\n messages: messagesReducer\n};\n\n// This type can be used as a hint on action creators so that its 'dispatch' and 'getState' params are\n// correctly typed to match your store.\nexport interface AppThunkAction {\n (dispatch: (action: TAction) => void, getState: () => ApplicationState): void;\n}\n","import {Actions as UserActions, CreatePassword, UserState} from \"./store/User\";\nimport {makeApiAction} from \"./store/api\";\nimport {Field, Document} from \"./store\";\n\nexport const API = {\n getUser: () => makeApiAction(UserActions.GET_USER, 'GET', `user`),\n putField: (field: Field, getUserAfterCall?: boolean) => makeApiAction(UserActions.PUT_FIELD, 'PUT', 'user/field', field, true, getUserAfterCall),\n postDocument: (document: Document, cloudFileId?: any) => makeApiAction(UserActions.POST_DOCUMENT, 'POST', 'user/document/'+cloudFileId, document, true),\n deleteDocument: (id: string, documentType: string) => makeApiAction(UserActions.DELETE_DOCUMENT, 'DELETE', 'user/document', {\n id,\n type: documentType\n }, true),\n createAccount: (values: UserState) => makeApiAction(UserActions.POST_ACCOUNT, 'POST', 'account/create', values),\n createAccountPassword: (values: CreatePassword) => makeApiAction(UserActions.POST_ACCOUNT_PASSWORD, 'POST', 'account/create-password', values),\n logIn: (values: { email: string, password: string }) => makeApiAction(UserActions.POST_LOGIN, 'POST', 'account/login', values),\n forgotPassword: (email: string) => makeApiAction(UserActions.POST_FORGOT_PASSWORD, 'POST', 'account/forgot-password', {email}),\n postDocumentError: (document: Document) => makeApiAction(UserActions.POST_DOCUMENT, 'POST', 'user/document-error', document, true)\n};\n\nexport const documentType = {\n photoId: 'PHOTOIDENTIFICATION',\n backgroundCheck: 'BACKGROUNDCHECK',\n insurance: 'GENEARALLIABILITYINSURANCE'\n};\n\nexport interface DispatchProps {\n putField: (field: Field) => void;\n setField: (name: string, data?: any) => void;\n}\n\n","import {Action, Reducer} from \"redux\";\n\nexport interface MessagesState {\n forgotPasswordTokenExpired?: boolean;\n}\n\nexport interface MessageAction {\n type: string;\n payload: string;\n}\n\nexport const TOKEN_EXPIRED = 'TOKEN_EXPIRED';\n\nexport const ActionCreator = {\n setTokenExpired: (isExpired: boolean) => ({type: TOKEN_EXPIRED, payload: isExpired})\n};\n\nexport const messagesReducer: Reducer = (state: MessagesState | undefined, incomingAction: Action): any => {\n const action = incomingAction as MessageAction;\n if (state === undefined) {\n return {\n forgotPasswordTokenExpired: ''\n }\n }\n \n switch (action.type) {\n case TOKEN_EXPIRED:\n return {...state, forgotPasswordTokenExpired: action.payload};\n default:\n return state;\n }\n};\n","import {Action, Reducer} from \"redux\";\nimport {ApiAction} from \"./api\";\nimport {documentType} from \"../api\";\n\nexport interface DocumentUploadState {\n photoIdUploading?: boolean;\n photoIdUploadFailed?: boolean;\n backgroundCheckUploading?: boolean;\n backgroundCheckUploadFailed?: boolean;\n insuranceUploading?: boolean;\n insuranceUploadFailed?: boolean;\n}\n\nexport const documentUploadReducer: Reducer = (state: DocumentUploadState | undefined, incomingAction: Action): any => {\n const action = incomingAction as ApiAction<{type: string}>;\n if (state === undefined) {\n return {\n photoIdUploading: false,\n photoIdUploadFailed: false,\n backgroundCheckFailed: false,\n backgroundCheckUploadSuccess: false,\n insuranceUploading: false,\n insuranceUploadFailed: false\n };\n }\n if (action.type === \"POST_DOCUMENT\" && action.payload.requestData) {\n const docType = action.payload.requestData.type;\n \n if (docType === documentType.photoId) {\n return {...state, photoIdUploading: true}\n }\n if (docType === documentType.backgroundCheck) {\n return {...state, backgroundCheckUploading: true}\n }\n if (docType === documentType.insurance) {\n return {...state, insuranceUploading: true}\n }\n }\n \n if (action.type === \"POST_DOCUMENT_SUCCESS\" && action.payload.data.data) {\n const data = action.payload.data.data;\n const docType = data.type;\n const failed = !data.success as boolean;\n\n if (docType === documentType.photoId) {\n return {...state, photoIdUploading: false, photoIdUploadFailed: failed}\n }\n if (docType === documentType.backgroundCheck) {\n return {...state, backgroundCheckUploading: false, backgroundCheckUploadFailed: failed}\n }\n if (docType === documentType.insurance) {\n return {...state, insuranceUploading: false, insuranceUploadFailed: failed}\n }\n }\n return state;\n};\n","import {applyMiddleware, combineReducers, compose, createStore, Middleware} from 'redux';\nimport thunk from 'redux-thunk';\nimport {connectRouter, routerMiddleware} from 'connected-react-router';\nimport {History} from 'history';\nimport {ApplicationState, reducers} from './';\nimport {SagaMiddleware} from '@redux-saga/core';\nimport {uuid4} from \"../lib/helpers\";\n\nconst loggerState = {\n index: 0,\n correlationId: uuid4()\n};\n\nconst actionLoggerMiddleware: Middleware = state => next => action => {\n // const payload = {...loggerState, action: {...action}};\n // todo: call api to save this action\n loggerState.index++;\n return next(action);\n};\n\nexport default function configureStore(history: History, sagaMiddleware: SagaMiddleware<{}>, initialState?: ApplicationState) {\n const middleware = [\n actionLoggerMiddleware,\n thunk,\n sagaMiddleware,\n routerMiddleware(history)\n ];\n\n const rootReducer = combineReducers({\n ...reducers,\n router: connectRouter(history)\n });\n\n const enhancers = [];\n const windowIfDefined = typeof window === 'undefined' ? null : window as any;\n if (windowIfDefined && windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__) {\n enhancers.push(windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__());\n }\n const store = createStore(\n rootReducer,\n initialState,\n compose(applyMiddleware(...middleware), ...enhancers)\n );\n return {store};\n}\n","export const Routes = {\n home: '/',\n login: '/login',\n aboutUs: '/about-us',\n createPassword: '/create-password',\n dashboard: '/dashboard',\n backgroundCheck: '/background-check',\n companyInfo: '/company-info',\n identification: '/identification',\n insurance: '/insurance',\n terms: '/terms',\n faq: '/faq',\n privacyPolicy: '/privacy-policy',\n contactUs: '/contact-us',\n termsOfUse: '/terms-of-use',\n requestForgotPassword: '/request-forgot-password',\n forgotPassword: '/forgot-password',\n complete: '/complete'\n};\n\nexport const ExternalLinks = {\n terms: 'https://safeguardproperties.com/wp-content/uploads/2022/07/Insurance-Requirements-10.19.21-002.pdf',\n insurance: 'https://safeguardproperties.com/wp-content/uploads/2022/07/Insurance-Requirements-10.19.21-002.pdf',\n identification: 'https://safeguardproperties.com/wp-content/uploads/2022/07/Insurance-Requirements-10.19.21-002.pdf',\n}\n","import { Actions as UserActions } from \"../store/User\";\nimport { ApiAction, ApiStatusAction, API_STATUS_CODE } from \"../store/api\";\nimport { push } from \"connected-react-router\";\nimport { put, takeEvery } from \"redux-saga/effects\";\nimport { Routes } from \"../routes\";\nimport { hasContent } from \"../lib/helpers\";\n\nconst jwtTempTokenName = 'safeguard-vendor-temp-token';\nconst jwtForgotPasswordTempTokenName = 'safeguard-vendor-forgot-password-temp-token';\nconst jwtTokenName = 'safeguard-vendor-token';\n\nconst setJwtToLocalStorage = (tokenName: string, token: string) => {\n try {\n window.localStorage.setItem(tokenName, token);\n } catch {\n }\n};\n\nexport function setTempToken(token: string) {\n setJwtToLocalStorage(jwtTempTokenName, token);\n}\n\nexport function setForgotPasswordTempToken(token: string) {\n setJwtToLocalStorage(jwtForgotPasswordTempTokenName, token);\n}\n\nconst getJwtFromLocalStorage = (tokenName: string) => {\n try {\n return window.localStorage.getItem(tokenName);\n } catch {\n return null;\n }\n};\n\nconst clearJwtFromLocalStorage = (tokenName: string) => {\n try {\n window.localStorage.removeItem(tokenName);\n } catch (e) {\n }\n};\n\nexport function clearTempJwtFromStorage() {\n clearJwtFromLocalStorage(jwtTempTokenName);\n}\n\nexport function getJwt() {\n const forgotPasswordTempToken = getJwtFromLocalStorage(jwtForgotPasswordTempTokenName);\n const tempToken = getJwtFromLocalStorage(jwtTempTokenName);\n const token = getJwtFromLocalStorage(jwtTokenName);\n\n if (hasContent(token)) {\n return token;\n }\n if (hasContent(tempToken)) {\n return tempToken;\n }\n if (hasContent(forgotPasswordTempToken)) {\n return forgotPasswordTempToken;\n }\n return null;\n};\n\nexport function isLoggedIn() {\n return !!getJwtFromLocalStorage(jwtTokenName);\n}\n\nexport function isTempLoggedIn() {\n return !!getJwtFromLocalStorage(jwtTempTokenName);\n}\n\nexport function isForgotPasswordTempLoggedIn() {\n return !!getJwtFromLocalStorage(jwtForgotPasswordTempTokenName);\n}\n\nconst getToken = (action: ApiAction) => action.payload.data.data.token;\n\nfunction* handleCreateAccount(action: ApiAction) {\n const token = getToken(action);\n setTempToken(token);\n yield put(push(Routes.createPassword));\n}\n\nfunction* handleCreateAccountSetPassword(action: ApiAction) {\n const token = getToken(action);\n setJwtToLocalStorage(jwtTokenName, token);\n clearJwtFromLocalStorage(jwtTempTokenName);\n clearJwtFromLocalStorage(jwtForgotPasswordTempTokenName);\n yield put(push(Routes.dashboard));\n}\n\nfunction* handleLogout() {\n clearJwtFromLocalStorage(jwtTokenName);\n clearJwtFromLocalStorage(jwtForgotPasswordTempTokenName);\n clearJwtFromLocalStorage(jwtTempTokenName);\n try {\n window.location.reload();\n } catch (e) {\n yield put(push(Routes.home));\n }\n}\n\nfunction* handleLoginSuccess(action: ApiAction) {\n const token = getToken(action);\n setJwtToLocalStorage(jwtTokenName, token);\n yield put(push(Routes.dashboard));\n}\n\nfunction* handleStatusCode(action: ApiStatusAction) {\n if (action.payload.status === 401) {\n yield handleLogout();\n }\n}\n\nexport function* loginSaga() {\n yield takeEvery(UserActions.POST_ACCOUNT_SUCCESS, handleCreateAccount);\n yield takeEvery(UserActions.POST_ACCOUNT_PASSWORD_SUCCESS, handleCreateAccountSetPassword);\n yield takeEvery(UserActions.LOGOUT, handleLogout);\n yield takeEvery(UserActions.POST_LOGIN_SUCCESS, handleLoginSuccess);\n yield takeEvery(API_STATUS_CODE, handleStatusCode);\n}","import React, {ReactNode} from 'react';\nimport {uuid4} from \"../lib/helpers\";\nimport classNames from \"classnames\";\n\ninterface IconProps {\n width?: number;\n height?: number;\n color?: string;\n secondaryColor?: string;\n className?: string;\n style?: any;\n scale?: number;\n}\n\nconst px = (v: string) => `${v}px`;\nconst id = (id: string) => `${window.location.href}#${id}`;\nconst url = (id_: string) => `url(${id(id_)})`;\n\ninterface SvgProps {\n width: number;\n height: number;\n className?: string;\n children: ReactNode;\n scale?: number;\n}\n\nconst Svg = (props: SvgProps) => {\n var scale = (props.scale || 1);\n return (\n \n \n {props.children}\n \n \n );\n};\n\nexport function MailIcon(props: IconProps) {\n const pathId = uuid4();\n const rectId = uuid4();\n const maskId = uuid4();\n const width = props.width ? props.width : 20;\n const height = props.height ? props.height : 14;\n const color = props.color ? props.color : \"#9a9a9a\";\n return (\n \n Mail\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function PhoneIcon(props: IconProps) {\n const pathId = uuid4();\n const rectId = uuid4();\n const maskId = uuid4();\n const width = props.width ? props.width : 18;\n const height = props.height ? props.height : 18;\n const color = props.color ? props.color : \"#9a9a9a\";\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function ZipCodeIcon(props: IconProps) {\n const pathId = uuid4();\n const rectId = uuid4();\n const maskId = uuid4();\n const width = props.width ? props.width : 18;\n const height = props.height ? props.height : 23;\n const color = props.color ? props.color : \"#9a9a9a\";\n return (\n \n Zip Code\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function KabobIcon(props: IconProps) {\n const pathId = uuid4();\n const pathId2 = uuid4();\n const maskId = uuid4();\n const width = props.width ? props.width : 5;\n const height = props.height ? props.height : 14;\n const color = props.color ? props.color : \"#a4a4a4\";\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function PersonIcon(props: IconProps) {\n const pathId = uuid4();\n const rectId = uuid4();\n const maskId = uuid4();\n const width = props.width ? props.width : 18;\n const height = props.height ? props.height : 16;\n const color = props.color ? props.color : \"#9a9a9a\";\n return (\n \n\n Person\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function CaretIcon(props: IconProps) {\n const id = uuid4();\n const width = props.width ? props.width : 7;\n const height = props.height ? props.height : 12;\n const color = props.color ? props.color : \"#a4a4a4\";\n return (\n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function Logo2(props: IconProps) {\n const width = props.width ? props.width : 91;\n const height = props.height ? props.height : 31;\n const color = props.color ? props.color : \"#ffffff\";\n return (\n \n \n \n \n \n \n \n );\n}\n\nexport function LogoSmall(props: IconProps) {\n const width = props.width ? props.width : 98;\n const height = props.height ? props.height : 34;\n const color = props.color ? props.color : \"#ffffff\";\n return (\n \n \n \n );\n}\n\nexport function LogoMedium(props: IconProps) {\n const width = props.width ? props.width : 115;\n const height = props.height ? props.height : 40;\n const color = props.color ? props.color : \"#ffffff\";\n return (\n \n \n \n );\n}\n\nexport function LogoBig(props: IconProps) {\n const width = props.width ? props.width : 142;\n const height = props.height ? props.height : 49;\n const color = props.color ? props.color : \"#ffffff\";\n return (\n \n \n \n );\n}\n\nexport function DotIcon(props: IconProps) {\n const id = uuid4();\n const width = props.width ? props.width : 6;\n const height = props.height ? props.height : 6;\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\ninterface ActiveDotProps_ {\n color2: string;\n}\n\ntype ActiveDotProps = IconProps & ActiveDotProps_;\n\nexport function ActiveDotIcon(props: ActiveDotProps) {\n const id = uuid4();\n const width = props.width ? props.width : 20;\n const height = props.height ? props.height : 20;\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function PasswordIcon(props: IconProps) {\n const id = uuid4();\n const width = props.width ? props.width : 24;\n const height = props.height ? props.height : 24;\n return (\n \n \n \n );\n}\n\nexport function ProgressCircleIcon(props: IconProps) {\n const width = props.width ? props.width : 30;\n const height = props.width ? props.width : 30;\n const color = props.color ? props.color : \"#B1B3B6\";\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function ProgressCircleCompleteIcon(props: IconProps) {\n const pathId = uuid4();\n const rectId = uuid4();\n const maskId = uuid4();\n const ovalId = uuid4();\n const width = props.width ? props.width : 30;\n const height = props.height ? props.height : 30;\n const color = props.color ? props.color : \"#6DD039\";\n const secondaryColor = props.secondaryColor ? props.secondaryColor : \"#ffffff\";\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function ProgressCircleFailedIcon(props: IconProps) {\n const pathId = uuid4();\n const rectId = uuid4();\n const maskId = uuid4();\n const ovalId = uuid4();\n const width = props.width ? props.width : 30;\n const height = props.height ? props.height : 30;\n const color = props.color ? props.color : \"#F7323F\";\n const secondaryColor = props.secondaryColor ? props.secondaryColor : \"#ffffff\";\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function ProgressCircleInProgressIcon(props: IconProps) {\n const pathId = uuid4();\n const rectId = uuid4();\n const maskId = uuid4();\n const ovalId = uuid4();\n const width = props.width ? props.width : 35;\n const height = props.height ? props.height : 35;\n const color = props.color ? props.color : \"#B1B3B6\";\n const secondaryColor = props.secondaryColor ? props.secondaryColor : \"#B1B3B6\";\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function GrassIcon(props: IconProps) {\n const pathId = uuid4();\n const width = props.width ? props.width : 54;\n const height = props.height ? props.height : 50;\n const color = props.color ? props.color : \"#a4a4a4\";\n return (\n \n \n \n \n \n \n \n );\n}\n\nexport function HouseIcon(props: IconProps) {\n const pathId = uuid4();\n const width = props.width ? props.width : 53;\n const height = props.height ? props.height : 49;\n const color = props.color ? props.color : \"#a4a4a4\";\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function ToolboxIcon(props: IconProps) {\n const pathId = uuid4();\n const width = props.width ? props.width : 44;\n const height = props.height ? props.height : 50;\n const color = props.color ? props.color : \"#a4a4a4\";\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function CloseIcon(props: IconProps) {\n const pathId = uuid4();\n const rectId = uuid4();\n const maskId = uuid4();\n const width = props.width ? props.width : 21;\n const height = props.height ? props.height : 21;\n const color = props.color ? props.color : \"#81B4DF\";\n\n return (\n \n Close\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function OpenIcon(props: IconProps) {\n const pathId = uuid4();\n const rectId = uuid4();\n const maskId = uuid4();\n const width = props.width ? props.width : 21;\n const height = props.height ? props.height : 21;\n const color = props.color ? props.color : \"#81B4DF\";\n\n return (\n \n Open \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function InfoIcon(props: IconProps) {\n const pathId = uuid4();\n const rectId = uuid4();\n const maskId = uuid4();\n const width = props.width ? props.width : 21;\n const height = props.height ? props.height : 21;\n const color = props.color ? props.color : \"#81B4DF\";\n\n return (\n \n Info\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n );\n}\n\nexport function CheckIcon(props: IconProps) {\n const pathId = uuid4();\n const width = props.width ? props.width : 14;\n const height = props.height ? props.height : 10;\n const color = props.color ? props.color : \"#ffffff\";\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function UploadIcon(props: IconProps) {\n const pathId = uuid4();\n const pathId2 = uuid4();\n const maskId = uuid4();\n const width = props.width ? props.width : 18;\n const height = props.height ? props.height : 22;\n const color = props.color ? props.color : \"#005288\";\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function ContactPhoneIcon(props: IconProps) {\n const pathId = uuid4();\n const width = props.width ? props.width : 57;\n const height = props.height ? props.height : 57;\n const color = props.color ? props.color : \"#005288\";\n\n return (\n \n \n \n \n \n \n \n );\n}\n\nexport function ContactEmailIcon(props: IconProps) {\n const pathId = uuid4();\n const width = props.width ? props.width : 55;\n const height = props.height ? props.height : 56;\n const color = props.color ? props.color : \"#005288\";\n\n return (\n \n \n \n \n \n \n \n );\n}\n\nexport function UploadErrorIcon(props: IconProps) {\n const pathId = uuid4();\n const pathId2 = uuid4();\n const maskId = uuid4();\n const width = props.width ? props.width : 18;\n const height = props.height ? props.height : 19;\n const color = props.color ? props.color : \"#F7323F\";\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function UploadSuccessIcon(props: IconProps) {\n const pathId = uuid4();\n const pathId2 = uuid4();\n const maskId = uuid4();\n const width = props.width ? props.width : 18;\n const height = props.height ? props.height : 19;\n const color = props.color ? props.color : \"#ffffff\";\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function DownloadIcon(props: IconProps) {\n const pathId = uuid4();\n const pathId2 = uuid4();\n const maskId = uuid4();\n const maskId2 = uuid4();\n const width = props.width ? props.width : 13;\n const height = props.height ? props.height : 16;\n const color = props.color ? props.color : \"#005288\";\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function VideoIcon(props: IconProps) {\n const pathId = uuid4();\n const pathId2 = uuid4();\n const pathId3 = uuid4();\n const width = props.width ? props.width : 95;\n const height = props.height ? props.height : 95;\n const color = props.color ? props.color : \"#46921D\";\n\n return (\n \n SG_WatchTuts\n \n \n \n \n \n \n \n \n \n \n \n );\n}\n","import React, { Fragment, useState, useEffect } from 'react';\nimport { Navbar, NavbarBrand, NavItem, NavLink, Button } from 'reactstrap';\nimport { Link } from 'react-router-dom';\nimport { Routes } from \"../../routes\";\nimport { connect } from \"react-redux\";\nimport { ApplicationState } from \"../../store\";\nimport { ActionCreators } from \"../../store/User\";\nimport { isLoggedIn, isTempLoggedIn } from \"../../sagas/login\";\nimport { RouterState } from \"connected-react-router\";\nimport { LogoBig, LogoMedium, CaretIcon, LogoSmall } from \"../../assets/icons\";\nimport { isInViewPort } from '../../lib/helpers';\nimport classNames from 'classnames';\n\ninterface NavMenuProps {\n logOut: () => void;\n goToDashboard: () => void;\n isLoggedIn: boolean;\n isTempLoggedIn: boolean;\n isLoginPage: boolean;\n isHomePage: boolean,\n isDashboard: boolean,\n isDashboardStep: boolean,\n isSimpleScaffoldPage: boolean\n isContentPage: boolean;\n}\n\nfunction NavMenu(props: NavMenuProps) {\n return (\n
\n {\n props.isHomePage\n ? \n : props.isSimpleScaffoldPage\n ? \n : props.isDashboardStep\n ? \n : \n }\n
\n );\n}\n\nconst SimpleScaffoldNavMenu = (props: NavMenuProps) => (\n \n
\n \n \n \n {!props.isTempLoggedIn ? LogInLogOutButton(props) : }\n
\n
\n);\n\nconst DefaultNavMenu = (props: NavMenuProps) => (\n \n
\n \n \n \n {!props.isTempLoggedIn ? LogInLogOutButton(props) : }\n
\n
\n);\n\nconst DashboardStepNavMenu = (props: NavMenuProps) => (\n \n
\n \n \n \n \n
\n
\n);\n\nconst BackToDashboard = (props: NavMenuProps) => (\n \n \n \n \n \n Back to Dashboard\n \n \n);\n\n\nconst HomePageNavMenu = (props: NavMenuProps) => {\n const [showScrolledNavMenu, setShowScrolledNavMenu] = useState(false);\n const [opacity, setOpacity] = useState(0);\n\n useEffect(() => {\n const scrollHandler = () => {\n const endBannerId = \"home__banner-end\";\n const showScrolled = !isInViewPort(endBannerId);\n if (showScrolledNavMenu !== showScrolled) {\n setShowScrolledNavMenu(showScrolled);\n }\n if (showScrolledNavMenu && opacity <= 100) {\n const t = document.getElementById(endBannerId);\n if (!!t) {\n //note: once we scroll past the element the top value\n //will start to go negative\n const top = -t.getBoundingClientRect().top;\n const fullOpacityAtOffset = 50;\n setOpacity(top / fullOpacityAtOffset);\n }\n }\n };\n document.addEventListener('scroll', scrollHandler, true);\n return () => document.removeEventListener('scroll', scrollHandler, true);\n });\n\n const scrolledClassName = showScrolledNavMenu ? 'd-flex' : 'hide';\n return (\n \n \n \n \n );\n};\n\nconst HomePageNavMenuAtTop = (props: NavMenuProps) => (\n \n
\n \n \n \n {!props.isTempLoggedIn ? LogInLogOutButton(props) : }\n
\n
\n);\n\nconst Logos = (props: {colorBig: string, colorSmall: string}) => (\n \n \n \n \n)\n\ninterface NavMenuScrolledProps {\n className?: string;\n style?: object;\n}\n\nconst HomePageNavMenuScrolled = (props: NavMenuProps & NavMenuScrolledProps) => (\n \n
\n \n \n \n window.scrollTo(0, 0)}\n >\n Become a Safeguard Contractor\n \n
\n \n);\n\nconst LogInLogOutButton = (props: NavMenuProps) => {\n if (props.isLoggedIn && !props.isContentPage) {\n return (\n \n \n Log Out\n \n \n )\n }\n if (props.isLoggedIn && props.isContentPage) {\n return (\n \n \n \n )\n }\n if (!props.isLoginPage) {\n return (\n \n Log In\n \n );\n }\n return \n};\n\nexport default connect(\n (state: ApplicationState & { router: RouterState }) => {\n if (!state.user) {\n return {\n isLoggedIn: false,\n isTempLoggedIn: false,\n isLoginPage: false,\n isHomePage: false,\n isDashboard: false,\n isDashboardStep: false,\n isSimpleScaffoldPage: false,\n isContentPage: false\n };\n }\n let route = '';\n if (state && state.router && state.router.location && state.router.location.pathname) {\n const path = state.router.location.pathname;\n const excludingLeadingSlash = path.slice(1);\n const nextSlash = excludingLeadingSlash.indexOf('/');\n if (nextSlash === -1) {\n route = path;\n } else {\n route = path.slice(0, excludingLeadingSlash.indexOf('/') + 1);\n }\n }\n return {\n isLoggedIn: isLoggedIn(),\n isTempLoggedIn: isTempLoggedIn(),\n isLoginPage: route === Routes.login,\n isHomePage: route === Routes.home,\n isDashboard: route === Routes.dashboard,\n isSimpleScaffoldPage: [\n Routes.login,\n Routes.createPassword,\n Routes.forgotPassword,\n Routes.requestForgotPassword\n ].includes(route),\n isContentPage: [\n Routes.faq,\n Routes.aboutUs,\n Routes.privacyPolicy,\n Routes.termsOfUse,\n Routes.contactUs\n ].includes(route),\n isDashboardStep: [\n Routes.companyInfo,\n Routes.identification,\n Routes.backgroundCheck,\n Routes.insurance,\n Routes.terms,\n Routes.complete\n ].includes(route),\n };\n },\n {\n logOut: ActionCreators.logOut,\n goToDashboard: ActionCreators.goToDashboard\n }\n)(NavMenu);","import React from \"react\";\nimport {LogoSmall} from \"../../assets/icons\";\nimport {Link} from \"react-router-dom\";\nimport {Routes} from \"../../routes\";\nimport classNames from \"classnames\";\n\nconst legalList = [{\n route: Routes.privacyPolicy,\n name: \"Privacy Policy\"\n}, {\n route: Routes.termsOfUse,\n name: \"Terms of Use\"\n}];\n\nconst navList = [{\n route: Routes.aboutUs,\n name: \"About\"\n}, {\n route: Routes.faq,\n name: \"FAQ\"\n}, {\n route: Routes.contactUs,\n name: \"Contact Us\"\n}];\n\nexport default () => (\n
\n
\n \n \n \n \n \n
\n
\n);\n\ninterface LinkListItem {\n route: string;\n name: string;\n}\n\ninterface LinkListProps {\n style?: any;\n className: string;\n listDirection?: string;\n listItemsClass?: string;\n itemClass?: string;\n list: LinkListItem[];\n}\n\nconst LinkList = (props: LinkListProps) => {\n const listDirection = props.listDirection || \"flex-row\";\n return (\n
\n
\n {props.list.map((x, i) =>\n \n {x.name}\n \n )}\n
\n
\n );\n};","import React, {FormEvent, Fragment, FunctionComponent, ReactNode, useEffect, useState} from \"react\";\nimport {some} from 'lodash';\nimport {Button, Input, InputGroup, InputGroupAddon, InputGroupText, Label, Row, Col} from \"reactstrap\";\nimport {Form as StrapForm} from \"reactstrap\";\nimport {dashToCamelCase, hasContent} from \"../../lib/helpers\";\nimport classNames from \"classnames\";\nimport {CaretIcon} from \"../../assets/icons\";\n\ntype ChangeHandler = (value: string, event?: FormEvent) => void;\nconst callChangeHandler = (\n func?: ChangeHandler,\n e?: FormEvent,\n getTargetValue: (e: FormEvent) => any = event => event.currentTarget.value) =>\n func && func(getTargetValue(e!), e);\n\nexport type FormProps = {\n onSubmit: (form: any, event?: FormEvent) => void;\n values: T,\n onChange?: (form: any) => void;\n className?: string;\n validate?: (values: any) => object;\n noReload?: boolean;\n children: (p: FormChildProps) => ReactNode;\n}\n\nexport type FormChildProps = {\n handleChange: ChangeHandler;\n errors: any;\n}\n\nexport function Form(props: FormProps) {\n const [formErrors, setFormErrors] = useState({});\n const [form, setForm] = useState(props.values);\n\n useEffect(() => setForm(props.values), [props.values]);\n\n const handleSubmit = (event: FormEvent) => {\n const errors = validate(form);\n setFormErrors(errors);\n const isError = some(errors);\n if (props.noReload) {\n event.preventDefault();\n }\n setForm(form);\n !isError && props.onSubmit(form, event);\n setForm(form);\n };\n\n const handleChange = (value?: string, event?: FormEvent) => {\n const target = event!.currentTarget;\n const name = dashToCamelCase(target.name || target.id);\n const newState = {...form, [name]: target.value} as T;\n setForm(newState);\n };\n\n const validate = (values: any): any => props.validate && props.validate(values);\n\n return (\n \n \n {props.children({\n handleChange,\n errors: formErrors\n })}\n \n \n );\n}\n\ntype FieldProps = {\n id?: string;\n name: string;\n value?: string;\n checked?: boolean;\n className?: string;\n placeHolder?: string;\n label?: string;\n onChange?: ChangeHandler;\n handleChange?: ChangeHandler;\n onBlur?: ChangeHandler;\n onFocus?: () => void;\n validationMessage?: string;\n errors?: any;\n getTargetValue?: (event: FormEvent) => any;\n pattern?: string;\n type?: any;\n list?: { name: string, value: string }[];\n autoFocus?: boolean;\n style?: object;\n prepend?: (focused: boolean) => ReactNode;\n noDefaultStyles?: boolean;\n validate?: (value?: string) => string | undefined | null;\n}\n\nexport const Field: FunctionComponent = props => {\n const [focus, setFocus] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n const handleKeyPress = (e: React.KeyboardEvent) => {\n if (e.keyCode === 13) {\n callChangeHandler(props.onBlur, e, props.getTargetValue)\n }\n };\n\n const focusStyle = focus ? \"input-text-focus input-focus\" : \"input-text\";\n const classes = classNames(\n !!props.noDefaultStyles ? \"\" : focusStyle,\n props.errors && props.errors[props.name] ? \"error\" : \"\"\n );\n return (\n
\n {renderLabelIfExists(props.name, props.label || '')}\n \n {\n props.prepend &&\n \n {props.prepend(focus)}\n \n }\n \n callChangeHandler(props.onChange, e, props.getTargetValue)\n && callChangeHandler(props.handleChange, e, props.getTargetValue)\n }\n onBlur={e => {\n if (props.validate) {\n var errorMessage = props.validate(e.currentTarget.value);\n if (hasContent(errorMessage)) {\n setErrorMessage(errorMessage || '');\n }\n }\n setFocus(false);\n callChangeHandler(props.onBlur, e, props.getTargetValue);\n }}\n onFocusCapture={() => setFocus(true)}\n type={props.type}\n pattern={props.pattern}\n onKeyDown={(e) => handleKeyPress(e)}\n autoFocus={props.autoFocus}\n onFocus={props.onFocus}\n />\n \n {\n renderErrorIfExists(\n hasContent(errorMessage) || (props.errors && props.errors[props.name]),\n hasContent(errorMessage) ? errorMessage : (props.validationMessage || '')\n )\n }\n
\n );\n};\n\nconst renderErrorIfExists = (error: any, message: string) => {\n return error && ;\n};\nconst renderLabelIfExists = (name: string, message: string) => {\n return (message ? : );\n};\n\nexport const TextBox: FunctionComponent = props => ;\nexport const MessageBox: FunctionComponent = props => ;\nexport const Telephone: FunctionComponent = props => ;\nexport const Email: FunctionComponent = props => ;\nexport const Password: FunctionComponent = props => ;\n\nexport const SelectList: FunctionComponent = props => {\n const options = props.list || [];\n const [focus, setFocus] = useState(false);\n\n const focusStyle = focus ? \"input-text-focus input-focus\" : \"input-text\";\n const classes = classNames(\n focusStyle,\n props.errors && props.errors[props.name] ? \"error\" : \"\",\n 'select-input-group'\n );\n return (\n
\n {renderLabelIfExists(props.name, props.label || '')}\n \n {\n props.prepend &&\n \n {props.prepend(focus)}\n \n \n }\n setFocus(true)}\n onChange={e => {\n setFocus(false);\n callChangeHandler(props.onChange, e, e => e.currentTarget.value)\n && callChangeHandler(props.handleChange, e, e => e.currentTarget.value)\n }}\n onBlur={e => {\n setFocus(false);\n callChangeHandler(props.onBlur, e, props.getTargetValue);\n }}\n >\n {options.map(x => )}\n \n \n {renderErrorIfExists(props.errors && props.errors[props.name], props.validationMessage || '')}\n
\n );\n};\n\ninterface ButtonProps {\n className?: string;\n color?: string;\n type?: string;\n onClick?: () => void;\n children?: ReactNode;\n center?: boolean;\n to?: string;\n}\n\n\nexport const RawButton = (props: ButtonProps) => (\n props.onClick && props.onClick()}\n >\n {props.children}\n \n);\n\nexport const ContinueButton = (props: ButtonProps) => (\n props.to != undefined ?\n \n \n {props.children ? props.children : Continue}\n \n \n :\n \n {\n \n {props.children ? props.children : Continue}\n \n \n }\n \n);\n\nexport const getIconColor = (focused: boolean, error: string) =>\n focused ? \"#005288\" : hasContent(error) ? \"#ff0000\" : \"#9a9a9a\";\n\nexport const ExpandedContinueButton = (props: ButtonProps) => (\n \n \n \n {props.children || Continue to Next Step}\n \n \n \n);","import React, { ReactNode } from 'react';\nimport './styles.scss';\nimport classNames from 'classnames';\n\ninterface TitleProps {\n children: ReactNode;\n className?: string;\n}\n\nexport const Title = (props: TitleProps) => (\n

{props.children}

\n);\n\ninterface SubTitleProps {\n children: ReactNode;\n sm?: boolean;\n className?: string;\n}\n\nexport const SubTitle = (props: SubTitleProps) => (\n

{props.children}

\n);\n\ninterface MessageProps {\n children: ReactNode;\n sm?: boolean;\n className?: string;\n bold?: boolean;\n textCenter?: boolean;\n small?: boolean;\n}\n\nexport const Message = (props: MessageProps) => (\n

\n {props.children}\n

\n);","import React, {Fragment, useState} from 'react';\nimport NavMenu from './NavMenu';\nimport Footer from './Footer';\nimport {isIE} from 'react-device-detect'\nimport {RawButton} from \"./Form\";\nimport {Message} from \"./lib/Copy\";\n\nexport default (props: { children?: React.ReactNode }) => (\n \n
\n \n {props.children}\n \n
\n
\n
\n);\n\nconst IeMessage = () => {\n let [show, setShow] = useState(true);\n if (!isIE) return \n return show ? (\n \n
\n
\n

\n It appears that you're using an unsupported browser\n

\n \n If you are currently using Internet Explorer, we recommend that you switch to Edge, Chrome, or\n Firefox to enjoy the best experience SafeguardVendors.com has to offer.\n \n
\n
\n setShow(false)} center>\n OK\n \n
\n
\n
\n
\n
\n ) : ;\n}\n","import {ApplicationState} from \"./index\";\n\nexport function getApiError(state: ApplicationState, error: string, msg: string) {\n if (!state || !state.api || !state.api.response || !state.api.response.errors) {\n return '';\n }\n const exists = state.api.response.errors.find(x => x === error);\n return exists ? msg : '';\n}","import React, { ReactNode } from \"react\";\nimport \"./styles.scss\";\nimport { DotLoader } from \"react-spinners\";\nimport classNames from \"classnames\";\n\ninterface WithLoaderProps {\n isLoading?: boolean;\n title?: string;\n style?: object;\n children?: ReactNode | undefined;\n}\n\nexport const WithLoader = (props: WithLoaderProps) => {\n const loaderClass = !!props.isLoading ? \"loader--visible\" : \"loader--hidden\";\n const loaderBodyClass = !!props.isLoading ? \"loader__body--hidden\" : \"loader__body--visible\";\n return (\n
\n
\n

{props.title}

\n
\n \n
\n
\n
\n {props.children}\n
\n
\n );\n};\n","import React, {Fragment, useState} from 'react';\nimport {connect} from 'react-redux';\nimport {Form, FormChildProps, TextBox, Telephone, Email, ContinueButton, getIconColor, SelectList} from \"../../Form\";\nimport {ApplicationState} from \"../../../store\";\nimport {ActionCreators, UserFields, UserState} from \"../../../store/User\";\nimport {getLengthExactMsg, getLengthMaxMsg, getRequiredMsg} from \"../../../lib/helpers\";\nimport {API} from \"../../../api\";\nimport {getApiError} from \"../../../store/helpers\";\nimport {Link} from \"react-router-dom\";\nimport {Routes} from \"../../../routes\";\nimport {CaretIcon, KabobIcon, MailIcon, PersonIcon, PhoneIcon, ZipCodeIcon} from \"../../../assets/icons\";\nimport {WithLoader} from \"../../lib/WithLoader\";\n\ntype StateProps = {\n firstName: string,\n lastName: string,\n email: string,\n phone: string,\n zip: string,\n serviceLine: string;\n isLoading?: boolean;\n externalLeadRequest: string,\n errorMessage?: string;\n}\n\ninterface DispatchProps {\n setField: (name: string, data?: any) => void;\n createAccount: (values: UserState) => void;\n}\n\ntype Props = StateProps & DispatchProps;\n\nclass SignUpErrors {\n firstName?: string;\n lastName?: string;\n email?: string;\n phone?: string;\n zip?: string;\n serviceLine?: string;\n}\n\nconst lightBlue = \"#81B4DF\";\n\nconst SignUpForm = (props: Props) => {\n const [state, setState] = useState({\n firstName: '',\n lastName: '',\n email: '',\n phone: '',\n zip: '',\n serviceLine: '',\n });\n\n const handleSubmit = (f: Props) => {\n props.createAccount({...f, externalLeadRequest: props.externalLeadRequest});\n };\n\n return (\n
\n

\n {\n props.isLoading ? \"Creating Account\" : \"Become a Safeguard Contractor\"\n }\n

\n \n {\n let errors: SignUpErrors = new SignUpErrors();\n errors.firstName = getRequiredMsg(f.firstName, 'First Name');\n errors.lastName = getRequiredMsg(f.lastName, 'Last Name');\n errors.email = getRequiredMsg(f.email, 'Email');\n errors.phone = getRequiredMsg(f.phone, 'Phone');\n errors.zip = getRequiredMsg(f.zip, 'ZIP');\n errors.serviceLine = getRequiredMsg(f.serviceLine, 'Service Line');\n\n if (!errors.firstName) {\n errors.firstName = getLengthMaxMsg(f.firstName!, 120, 'First Name');\n }\n if (!errors.lastName) {\n errors.lastName = getLengthMaxMsg(f.lastName!, 120, 'Last Name');\n }\n if (!errors.email) {\n errors.email = getLengthMaxMsg(f.email!, 255, 'Email');\n }\n if (!errors.phone) {\n errors.phone = getLengthExactMsg(f.phone!, 10, 'Phone');\n }\n if (!errors.zip) {\n errors.zip = getLengthExactMsg(f.zip!, 5, 'ZIP');\n }\n return errors;\n }}\n values={{\n firstName: state.firstName,\n lastName: state.lastName,\n email: state.email,\n phone: state.phone,\n zip: state.zip,\n serviceLine: state.serviceLine\n }}\n >\n {\n (formProps: FormChildProps) =>\n \n setState({...state, firstName})}\n onBlur={firstName => props.setField(UserFields.FIRST_NAME, firstName)}\n placeHolder=\"First Name\"\n value={state.firstName}\n validationMessage={formProps.errors.firstName}\n prepend={(focused) => \n }\n {...formProps}\n />\n setState({...state, lastName})}\n onBlur={lastName => props.setField(UserFields.LAST_NAME, lastName)}\n placeHolder=\"Last Name\"\n value={state.lastName}\n validationMessage={formProps.errors.lastName}\n prepend={(focused) =>\n \n }\n {...formProps}\n />\n setState({...state, email})}\n onBlur={email => props.setField(UserFields.EMAIL, email)}\n placeHolder=\"Email\"\n value={state.email}\n validationMessage={formProps.errors.email}\n prepend={(focused) =>\n \n }\n {...formProps}\n />\n
\n {\n phone = phone.replace(/\\D/g, '').substr(0, 10);\n setState({...state, phone})\n }}\n onBlur={phone => {\n phone = phone.replace(/\\D/g, '').substr(0, 10);\n props.setField(UserFields.PHONE, phone)\n }}\n placeHolder=\"Phone\"\n value={formatPhone(state.phone)}\n validationMessage={formProps.errors.phone}\n prepend={(focused) =>\n \n }\n {...formProps}\n />\n {\n if (!isNaN(Number(zip)) && zip.length <= 5) {\n setState({...state, zip})\n }\n }}\n onBlur={zip => props.setField(UserFields.ZIP, zip)}\n placeHolder=\"ZIP\"\n value={state.zip}\n validationMessage={formProps.errors.zip}\n prepend={(focused) =>\n \n }\n {...formProps}\n />\n
\n {\n setState({...state, serviceLine})\n }}\n onBlur={serviceLine => {\n props.setField(UserFields.WORK_TYPE_MAINTENANCE, false);\n props.setField(UserFields.WORK_TYPE_INSPECTIONS, false);\n props.setField(UserFields.WORK_TYPE_GRASS_AND_SNOW, false);\n props.setField(serviceLine, true);\n }}\n validationMessage={formProps.errors.serviceLine}\n list={serviceLines}\n placeHolder=\"Service Line*\"\n prepend={(focused) =>\n \n }\n value={state.serviceLine}\n {...formProps}\n />\n {props.errorMessage ?\n
\n

Could not create account.  \n Forgot Password\n

\n
\n : \n }\n\n \n\n
\n Already signed up?\n \n Log in\n \n \n
\n
\n }\n \n \n
\n );\n};\n\nconst formatPhone = (input: string): string => {\n let formatted = '';\n if (input.length > 0) {\n formatted = `(${input.substr(0, 3)}`;\n }\n if (input.length > 3) {\n formatted += `) ${input.substr(3, 3)}`;\n }\n if (input.length > 6) {\n formatted += `-${input.substr(6)}`;\n }\n\n let cleaned = '';\n for (let i = 0; i < formatted.length; i++) {\n const c = formatted[i];\n const check = (value: string, index: number): boolean => {\n return value === c && i === index;\n };\n\n if (!isNaN(Number(c)) || check('(', 0) || check(')', 4) || check(' ', 5) || check('-', 9)) {\n cleaned += c;\n }\n }\n return cleaned.substr(0, 14);\n};\n\nconst mapStateToProps = (state: ApplicationState): StateProps => {\n if (!state.user) {\n return {\n firstName: '',\n lastName: '',\n email: '',\n phone: '',\n zip: '',\n externalLeadRequest: '',\n errorMessage: '',\n serviceLine: '',\n };\n }\n let errorMessage: string = '';\n if (state.api && state.api && state.api.response && state.api.response.errors) {\n errorMessage = getApiError(state, \"COULD_NOT_CREATE_ACCOUNT\", \"Could not create account.\");\n }\n return {\n firstName: state.user.firstName || '',\n lastName: state.user.lastName || '',\n email: state.user.email || '',\n phone: state.user.phone || '',\n zip: state.user.zip || '',\n serviceLine: state.user.workTypeGrassAndSnow \n ? UserFields.WORK_TYPE_GRASS_AND_SNOW \n : state.user.workTypeInspections \n ? UserFields.WORK_TYPE_INSPECTIONS \n : state.user.workTypeMaintenance \n ? UserFields.WORK_TYPE_MAINTENANCE : '',\n externalLeadRequest: state.user.externalLeadRequest || '',\n errorMessage,\n isLoading: state.api.isFetching && !state.api.isSingleField\n };\n};\n\nexport default connect(\n mapStateToProps,\n {\n setField: ActionCreators.setField,\n createAccount: API.createAccount\n }\n)(SignUpForm);\n\nconst serviceLines = [\n {name: 'Service Line', value: ''},\n {name: 'Inspections', value: UserFields.WORK_TYPE_INSPECTIONS},\n {name: 'Grass & Snow', value: UserFields.WORK_TYPE_GRASS_AND_SNOW},\n {name: 'Maintenance', value: UserFields.WORK_TYPE_MAINTENANCE},\n]\n","import React, {ReactNode, useEffect, useState} from \"react\";\nimport BannerImage from \"../../assets/banner_image.png\";\nimport './styles.scss';\nimport classNames from \"classnames\";\n\ninterface BackgroundImageProps {\n className?: string;\n children?: ReactNode;\n absolute?: boolean;\n fullPageHeight?: boolean;\n}\n\nexport const BackgroundImage = (props: BackgroundImageProps) => {\n const [scrollHeight, setScrollHeight] = useState(0);\n useEffect(() => {\n let scrollHeight = 0;\n const body = document.getElementById(\"body\");\n if (body) {\n scrollHeight = body.scrollHeight;\n setScrollHeight(scrollHeight);\n }\n }, []);\n return (\n \n {props.children}\n \n );\n};\n","import React, {useState} from \"react\";\n\ninterface VideoWithOverlayProps {\n videoImage: string;\n videoUrl: string;\n className?: string;\n elementClassName?: string;\n showOverlay?: boolean;\n}\n\nexport default (props: VideoWithOverlayProps) => {\n const [clicked, setClick] = useState(false);\n return (\n
\n {\n !!props.showOverlay &&\n setClick(!clicked)}\n />\n }\n \n
\n );\n\n}\n","import React from \"react\";\nimport {Container} from \"reactstrap\";\nimport SignUpForm from \"../SignUpForm\";\nimport {BackgroundImage} from \"../../BackgroundImage\";\nimport VideoWithOverlay from \"../../lib/VideoWithOverlay\";\nimport singleVideo from \"../../../assets/single_video.jpg\";\n\n\nexport default () => {\n const videoUrl = \"https://www.youtube.com/embed/4fIAL2dd1Pc?&autoplay=1\";\n return (\n
\n \n \n \n \n
\n

\n Do Work That Matters\n

\n

\n Join Safeguard's elite contractor network and be your own boss, grow your business, make\n more\n money, all while helping your community.\n

\n
\n \n
\n \n
\n
\n \n \n \n \n );\n};\n\nconst NavMenuTriggerScrollRegion = () => (\n \n);","import React from \"react\";\nimport {Col, Container, Row} from \"reactstrap\";\nimport singleVideo from \"../../../assets/single_video.jpg\";\nimport VideoWithOverlay from \"../../lib/VideoWithOverlay\";\n\ninterface OneColumnBlockProps {\n className?: string;\n}\n\nexport default (props: OneColumnBlockProps) => {\n const videoUrl = \"https://videos.sproutvideo.com/embed/1c9cdab41b11efc894/6fee4d0c60bc77f5?playerTheme=dark&playerColor=2f3437&autoPlay=true\";\n return (\n \n \n \n

\n Become Part of an
Elite Team Across the Nation\n

\n \n \n

\n Make your company part of an elite team that inspects,\n maintains, and preserves homes across the nation.\n Check out some testimonials from our contractors about\n their experience partnering with Safeguard Properties.\n

\n \n \n \n \n
\n
\n );\n}\n\n","import React, { useState } from 'react';\nimport { Col, Container, Row } from \"reactstrap\";\nimport classNames from \"classnames\";\nimport YouTube from 'react-youtube';\nimport maintenanceOverlay from '../../../assets/maintenance_overlay.png';\nimport inspectionOverlay from '../../../assets/inspection_overlay.png';\nimport grassAndSnowOverlay from '../../../assets/grass_and_snow_overlay.png';\n\ninterface VideosProps {\n className?: string;\n}\n\nconst videos = [\n {\n video: {\n id: 'x5SMqHsKG3A',\n overlay: grassAndSnowOverlay\n },\n title: 'Grass & Snow',\n msg: 'Proper exterior maintenance improves curb appeal, maintains a safe environment, and assures compliance with local ordinances.'\n }, {\n video: {\n id: 'edeu7v6CP8Y',\n overlay: inspectionOverlay\n },\n title: 'Inspections',\n msg: 'Property inspections identify issues and damages that threaten the value, condition and safety of properties.'\n }, {\n video: {\n id: 'KmaDbaljeOA',\n overlay: maintenanceOverlay\n },\n title: 'Maintenance',\n msg: 'Protect and preserve vacant properties while keeping them maintained and secure.'\n }\n];\n\nexport default (props: VideosProps) => {\n return (\n \n \n \n \n {\n videos.map(\n (v, i) =>\n 0 ? \"mt-5\" : \"mt-3\")}\n detail={v}\n />\n )\n }\n \n \n );\n};\n\ninterface Video {\n id: string;\n overlay: any;\n}\n\ninterface VideoCardDetail {\n video: Video;\n title: string;\n msg: string;\n}\n\ninterface VideoCardProps {\n className?: string;\n detail: VideoCardDetail;\n}\n\nconst VideoCard = (props: VideoCardProps) => {\n const [clicked, setClick] = useState(false);\n return (\n \n
\n setClick(!clicked)}\n className=\"video-card__video\"\n >\n \n \n
\n
\n
\n
\n
\n {props.detail.title}\n
\n
\n
\n

\n {props.detail.msg}\n

\n
\n
\n \n \n );\n};\n\nconst BlockHeader = () => (\n \n \n

What are Mortgage Field Services

\n \n
\n);\n\nconst Separator = () => (\n \n \n
\n \n
\n);\n","import React from \"react\";\nimport {Link} from \"react-router-dom\";\nimport {Routes} from \"../../../routes\";\nimport {Col, Container, Row} from \"reactstrap\";\n\nexport default () => (\n \n \n \n

\n Want to Know More About Working With Safeguard?\n

\n \n \n Contact Us\n \n
\n
\n);\n","import React, { useState } from \"react\";\nimport ReactSwipe from 'react-swipe';\nimport { Col, Container, Row } from \"reactstrap\";\nimport { ActiveDotIcon, DotIcon } from \"../../../assets/icons\";\n\nexport interface Testimonial {\n image: string;\n message: string;\n name: string;\n location: string;\n active?: boolean;\n}\n\ninterface TestimonialsProps {\n testimonials: Testimonial[];\n className?: string;\n}\n\nexport const Testimonials = (props: TestimonialsProps) => {\n const [activeIndex, setActiveIndex] = useState(0);\n const getDot = (index: number) => (index === activeIndex\n ? \n : \n );\n\n return (\n \n \n setActiveIndex(index)\n }}\n >\n {props.testimonials.map((testimonial, index) => TestimonialCard(testimonial, index))}\n \n
\n
\n \n \n \n
\n
\n
\n
\n );\n};\n\nconst TestimonialCard = (t: Testimonial, i: number) => (\n
\n \n \n

\n {t.message}\n

\n
\n \n \n

{t.name}

\n

{t.location}

\n \n
\n);\n","import React, { useEffect } from 'react';\nimport Banner from \"./Banner\";\nimport Testimonial1 from \"../../assets/testimonial1.png\";\nimport Testimonial2 from \"../../assets/testimonial2.png\";\nimport Testimonial3 from \"../../assets/testimonial3.png\";\nimport OneColumnBlock from \"./OneColumnBlock\";\nimport Videos from \"./Videos\";\nimport ContactUs from \"./ContactUs\";\nimport { Testimonial, Testimonials } from \"./Testimonials\";\nimport { UserFields, ActionCreators } from '../../store/User';\nimport { connect } from 'react-redux';\nimport { hasContent } from '../../lib/helpers';\n\nconst testimonials = [{\n image: Testimonial1,\n message: \"\\\"Since coming on board with Safeguard my staff has doubled–I am proud to provide them and their families with a stable income.\\\"\",\n name: \"Maintenance Contractor\",\n location: \"California\",\n active: true\n}, {\n image: Testimonial2,\n message: \"\\\"I enjoy the compliments I receive from people in the community when I increase the curb appeal of their neighborhoods.\\\"\",\n name: \"Inspections Contractor\",\n location: \"Ohio\",\n active: true\n}, {\n image: Testimonial3,\n message: \"\\\"Safeguard allows me to work at my own pace, for myself, and with my family–and do something good for the community.\\\"\",\n name: \"Maintenance Contractor\",\n location: \"New Jersey\",\n active: true\n}] as Testimonial[];\n\ninterface OwnProps{\n referral?: string;\n}\n\ninterface DispatchProps {\n setField: (name: string, data?: any) => void;\n}\n\ntype Props = OwnProps & DispatchProps;\n\nconst HomePage = (props: Props) => {\n useEffect(() => {\n if (hasContent(props.referral)) {\n props.setField(UserFields.EXTERNAL_LEAD_REQUEST, props.referral);\n }\n }, []);\n\n return (\n
\n \n
\n \n \n
\n \n
\n
\n \n
\n
\n );\n};\n\n\n\nexport default connect(\n null, {\n setField: ActionCreators.setField,\n}\n)(HomePage);","import React from \"react\";\nimport {Col, Container, Row} from \"reactstrap\";\nimport \"./styles.scss\";\ninterface BannerProps {\n title: string;\n}\n\nexport function Banner(props: BannerProps) {\n return (\n
\n \n \n \n

\n {props.title}\n

\n \n
\n
\n
\n );\n};\n","import React from \"react\";\nimport {Link} from \"react-router-dom\";\nimport {Routes} from \"../../../routes\";\nimport {Col, Container, Row} from \"reactstrap\";\nimport \"./styles.scss\";\ninterface CtaBannerProps {\n title: string;\n text: string;\n}\n\nexport function CtaBanner(props: CtaBannerProps) {\n return (\n
\n \n \n \n

\n {props.title}\n

\n \n \n

{props.text}

\n Sign Up Now\n \n
\n
\n
\n );\n};\n","import React from \"react\";\nimport {Link} from \"react-router-dom\";\nimport {\n CaretIcon,\n ProgressCircleCompleteIcon,\n ProgressCircleFailedIcon, ProgressCircleIcon,\n ProgressCircleInProgressIcon\n} from \"../../../assets/icons\";\n\nexport enum LinkState {\n Unknown = 0,\n InProgress,\n Complete,\n Failed\n}\n\nexport interface DashboardLinkProps {\n route: string;\n title: string;\n state?: LinkState\n}\n\nexport const DashboardLink = (props: DashboardLinkProps) => {\n return (\n \n \n {getLinkIcon(props.state)}\n\n \n {props.title}\n \n \n \n \n );\n};\n\nexport const getLinkIcon = (state?: LinkState) => {\n switch (state) {\n case LinkState.InProgress:\n return ;\n case LinkState.Complete:\n return ;\n case LinkState.Failed:\n return ;\n default:\n return ;\n }\n};\n","import React, { ReactNode } from 'react';\nimport './styles.scss';\nimport classNames from 'classnames';\n\ninterface BasicContentProps {\n children: ReactNode;\n className?: string;\n}\n\nexport default (props: BasicContentProps) => (\n
\n {props.children}\n
\n);","import React from 'react';\nimport { Col, Container, Row } from \"reactstrap\";\nimport { Banner } from \"../lib/Banner\";\nimport { CtaBanner } from \"../lib/CtaBanner\";\nimport BasicContent from '../lib/BasicContent';\n\nexport default () => {\n return (\n \n \n \n \n \n
\n

Over 25 Years of Excellence

\n

Safeguard Properties is the mortgage field services industry leader, preserving vacant and foreclosed properties across the U.S., Puerto Rico, Virgin Islands and Guam. Founded in 1990 by Robert Klein and headquartered in Cleveland, Ohio, Safeguard provides the highest quality service to our clients by leveraging innovative technologies and proactively developing industry best practices and quality control procedures. Consistent with Safeguard’s values and mission, we are an active supporter of hundreds of charitable efforts across the country. Annually, Safeguard gives back to communities in partnership with our employees, vendors and clients. We also are dedicated to working with community leaders and officials to eliminate blight and stabilize neighborhoods. Safeguard is dedicated to preserving today and protecting tomorrow.

\n

Safeguard Lives by Four Simple Values

\n

Customer service and partnership. Safeguard is committed to delivering the highest quality services to clients, working in partnership with them to safeguard their interests, and upholding the value of all properties managed. Protecting and preserving neighborhoods. Safeguard is dedicated to protecting and preserving vacant and abandoned properties to prevent them from becoming a nuisance to neighboring properties or bringing blight to communities. Safeguard also supports efforts to prevent foreclosure and help troubled homeowners remain in their homes. Contributing to communities. Safeguard supports programs that help to maintain strong and vital neighborhoods, improve the quality of life for people of all ages, and provide a safe and happy environment for families to raise children. Respecting employees and contractors. Safeguard respects the nearly 1,700 employees and thousands of contractors nationally who join in our mission to deliver excellence in the work we complete. Safeguard is committed to providing employees and contractors with the training they need to do their jobs effectively, treating them with respect, providing a comfortable work environment, and doing our best to assure their safety in the field.

\n
\n \n
\n
\n \n
\n );\n};\n\n","import React, {Fragment, useState} from 'react';\nimport {connect} from 'react-redux';\nimport {ContinueButton, Form, FormChildProps, getIconColor, Password} from \"../Form\";\nimport {ApplicationState} from \"../../store\";\nimport {getLengthMaxMsg, getRequiredMsg} from \"../../lib/helpers\";\nimport {API} from \"../../api\";\nimport {CreatePassword} from \"../../store/User\";\nimport {PasswordIcon} from \"../../assets/icons\";\nimport {Message} from \"../lib/Copy\";\n\ninterface StateProps {\n isLoading?: boolean;\n email: string;\n hasErrors?: boolean;\n}\n\ninterface DispatchProps {\n createAccountPassword: (values: CreatePassword) => void;\n}\n\ntype Props = StateProps & DispatchProps;\n\nclass PasswordErrors {\n password?: string;\n confirmPassword?: string;\n}\n\nconst CreatePasswordForm = (props: Props) => {\n const [password, setPassword] = useState('');\n const [confirmPassword, setConfirmPassword] = useState('');\n\n const handleSubmit = (f: Props) => {\n props.createAccountPassword({email: props.email, password});\n };\n\n return (\n
\n {\n let errors: PasswordErrors = new PasswordErrors();\n const passwordErrors: string[] = [];\n const confirmPasswordErrors = [];\n \n const requiredMsg = getRequiredMsg(password, 'Password');\n if (requiredMsg) {\n passwordErrors.push(requiredMsg);\n }\n \n const confirmRequiredMsg = getRequiredMsg(confirmPassword, 'Confirm Password');\n if (confirmRequiredMsg) {\n confirmPasswordErrors.push(confirmRequiredMsg);\n }\n \n const passwordMaxLengthMsg = getLengthMaxMsg(password, 120, 'Password');\n if (passwordMaxLengthMsg) {\n passwordErrors.push(passwordMaxLengthMsg);\n }\n \n if (password !== confirmPassword) {\n passwordErrors.push('Password and Confirm Password do not match')\n }\n\n const strongRegex = new RegExp(\"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,})\");\n if (!strongRegex.test(password)) {\n passwordErrors.push('Password strength does not meet requirements')\n }\n \n const firstPasswordError = passwordErrors[0];\n const firstConfirmPasswordError = confirmPasswordErrors[0];\n errors.password = firstPasswordError;\n errors.confirmPassword = firstConfirmPasswordError;\n return errors;\n }}\n values={{\n password: '',\n confirmPassword: ''\n }}\n >\n {\n (formProps: FormChildProps) =>\n \n setPassword(v)}\n value={password}\n validationMessage={formProps.errors.password}\n prepend={(focused) =>\n \n }\n {...formProps}\n />\n \n Password must be at least 8 characters long and contain 1 lower case, upper case, number, and special character\n \n setConfirmPassword(v)}\n value={confirmPassword}\n validationMessage={formProps.errors.confirmPassword}\n prepend={(focused) =>\n \n }\n {...formProps}\n />\n {\n props.hasErrors && \n

Could not create password.

\n }\n \n
\n }\n \n
\n );\n};\n\nconst mapStateToProps = (state: ApplicationState): StateProps => {\n if (!state.user) {\n return {\n isLoading: true, \n hasErrors: false,\n email: '', \n };\n }\n const hasErrors = state.api \n && state.api.response \n && state.api.response.errors\n && state.api.response.errors.length > 0;\n return {\n isLoading: state.api.isFetching,\n hasErrors: hasErrors,\n email: state.user.email || ''\n };\n};\n\nexport default connect(\n mapStateToProps,\n {\n createAccountPassword: API.createAccountPassword\n }\n)(CreatePasswordForm);\n","import React, {ReactNode} from \"react\";\nimport {BackgroundImage} from \"../../BackgroundImage\";\nimport \"./styles.scss\";\nimport classNames from \"classnames\";\nimport {Col, Container, Row} from \"reactstrap\";\n\ninterface Props {\n className: string;\n children: ReactNode;\n style?: any;\n}\n\nexport default (props: Props) => {\n return (\n
\n \n
\n \n \n \n \n {props.children}\n
\n \n \n \n
\n
\n );\n};\n\n","import React from 'react';\nimport {Row, Col} from \"reactstrap\";\nimport CreatePasswordForm from \"./CreatePasswordForm\";\nimport {connect} from \"react-redux\";\nimport {ApplicationState} from \"../../store\";\nimport SimplePageScaffold from \"../lib/SimplePageScaffold\";\nimport {WithLoader} from \"../lib/WithLoader\";\n\ninterface StateProps {\n firstName?: string;\n isLoading: boolean;\n}\n\ntype Props = StateProps;\n\nconst capitalize = (v: string) => v[0].toUpperCase() + v.substr(1, v.length);\n\nconst CreatePasswordPage = (props: Props) => {\n const getTitle = (props: Props) => {\n const firstName = props.firstName;\n if (firstName) {\n return `${capitalize(firstName)}, You're In!`\n }\n return '';\n };\n return (\n \n \n \n \n

{getTitle(props)}

\n

\n Create a password so you can log back in to your vendor profile.\n

\n

\n Your username will be the email address you provided at signup.\n

\n \n \n \n \n \n
\n \n
\n );\n};\n\nconst Pixel = () => (\n \"pixel\"/\n);\n\n\nexport default connect(\n (state: ApplicationState) => {\n if (!state.user) {\n return {firstName: '', isLoading: true}\n }\n return {\n firstName: state.user.firstName,\n isLoading: state.api.isFetching\n }\n }\n)(CreatePasswordPage);\n","import React, { Fragment } from 'react';\nimport { connect } from 'react-redux';\nimport { Routes } from \"../../routes\";\nimport { Col, Container, Row } from \"reactstrap\";\nimport { WithLoader } from \"../lib/WithLoader\";\nimport { ApplicationState } from \"../../store\";\nimport { hasContent } from \"../../lib/helpers\";\nimport { didUserAcceptTerms, UserState, isAtLeastOneSteComplete, areAllStepsComplete, isCompanyInfoComplete, isCompanyInfoInProgress, isPhotoIdComplete, isBackgroundCheckComplete, isInsuranceComplete } from \"../../store/User\";\nimport { DashboardLink, DashboardLinkProps, LinkState } from \"./DashboardLink\";\n\ninterface StateProps {\n isLoading: boolean;\n companyInfoLinkState: LinkState;\n noStepsComplete?: boolean,\n atLeastOneStepComplete?: boolean,\n allStepsComplete?: boolean,\n links: DashboardLinkProps[];\n}\n\ntype Props = StateProps;\n\nconst DashboardPage = (props: Props) => {\n return (\n
\n
\n \n \n \n \n \n \n \n
\n {props.links.map((p, i) => )}\n
\n
\n \n
\n
\n
\n
\n );\n};\n\nconst DashboardBanner = (props: Props) => {\n const noCompleteStepsBanner = \n

Welcome to the Vendor dashboard

\n

Complete the following information to become a Safeguard contractor.

\n
\n const atLeastOneCompleteStepBanner = \n

You have unfinished tasks

\n

Complete the following information to become a Safeguard contractor.

\n
\n const allStepsCompleteBanner = \n

Thank you for completing the Safeguard vendor application

\n

We are reviewing your information and will be in touch with next steps.

\n
\n\n return (\n
\n {\n props.noStepsComplete\n ? noCompleteStepsBanner\n : props.atLeastOneStepComplete\n ? atLeastOneCompleteStepBanner\n : allStepsCompleteBanner\n }\n
\n );\n}\n\nexport default connect(\n (state: ApplicationState) => {\n if (!state || !state.user) {\n return {\n isLoading: true,\n noStepsComplete: true,\n atLeastOneStepComplete: false,\n allStepsComplete: false,\n links: [] as DashboardLinkProps[]\n }\n }\n const user = state.user;\n return {\n isLoading: !hasContent(user.email),\n noStepsComplete: !isAtLeastOneSteComplete(user) && !areAllStepsComplete(user),\n atLeastOneStepComplete: isAtLeastOneSteComplete(user) && !areAllStepsComplete(user),\n allStepsComplete: areAllStepsComplete(user),\n links: getDashboardLinks(state.user)\n }\n }\n)(DashboardPage);\n\n\nconst getDashboardLinks = (user: UserState) => (\n [{\n route: Routes.companyInfo,\n title: 'Company Info',\n state: isCompanyInfoComplete(user)\n ? LinkState.Complete\n : isCompanyInfoInProgress(user)\n ? LinkState.InProgress\n : LinkState.Unknown,\n }, {\n route: Routes.identification,\n title: 'Identification',\n state: user.photoIdUploadFailed\n ? LinkState.Failed\n : isPhotoIdComplete(user)\n ? LinkState.Complete\n : LinkState.Unknown\n }, {\n route: Routes.backgroundCheck,\n title: 'Background Check',\n state: user.backgroundCheckUploadFailed\n ? LinkState.Failed\n : isBackgroundCheckComplete(user)\n ? LinkState.Complete\n : LinkState.Unknown\n }, {\n route: Routes.insurance,\n title: 'Insurance',\n state: user.insuranceUploadFailed\n ? LinkState.Failed\n : isInsuranceComplete(user)\n ? LinkState.Complete\n : LinkState.Unknown\n }, {\n route: Routes.terms,\n title: 'Terms',\n state: didUserAcceptTerms(user)\n ? LinkState.Complete\n : LinkState.Unknown\n },\n ] as DashboardLinkProps[]\n);\n\n","import React, { Fragment, FormEvent, ReactNode, useState } from \"react\";\nimport Input from \"reactstrap/lib/Input\";\nimport Label from \"reactstrap/lib/Label\";\nimport classNames from \"classnames\";\nimport { UploadIcon, UploadErrorIcon, UploadSuccessIcon } from \"../../../assets/icons\";\nimport { hasContent } from \"../../../lib/helpers\";\nimport \"./styles.scss\";\nimport { PulseLoader } from \"react-spinners\";\n\ninterface UploadButtonProps {\n id: string;\n uploadFile: (file: File, fileId?: any) => void;\n className?: string;\n error?: string | null;\n success?: boolean | null;\n isUploading?: boolean | null;\n title?: string;\n onClick?: (clicked: boolean) => void;\n documentType?: string;\n}\n\nexport default (props: UploadButtonProps) => {\n const hasError = hasContent(props.error);\n\n const className = hasError\n ? \"upload-button--error\"\n : props.success\n ? \"upload-button--success\"\n : \"\";\n\n return (\n
\n \n \n \n {\n hasError &&\n

\n {props.error}\n

\n }\n {\n props.success\n && \n \n \n }\n

\n Acceptable file types jpg, png, and pdf\n

\n
\n )\n};\n\ninterface _UploadButtonProps {\n children: ReactNode;\n}\n\nconst UploadButtonInternal = (props: UploadButtonProps & _UploadButtonProps) => {\n return (\n \n ) => {\n if (e && e.currentTarget && e.currentTarget.files) {\n let file = e.currentTarget.files[0];\n let docType = \"\";\n if (props.documentType == \"PHOTOIDENTIFICATION\")\n docType = \"DOCUMENT_TYPE_PHOTO_IDENTIFICATION\";\n if (props.documentType == \"BACKGROUNDCHECK\")\n docType = \"DOCUMENT_TYPE_BACKGROUND_CHECK\";\n if (props.documentType == \"GENEARALLIABILITYINSURANCE\")\n docType = \"DOCUMENT_TYPE_INSURANCE\";\n let fileId = await fileUpload(file, docType);\n props.uploadFile(file, fileId);\n }\n }}\n />\n {props.children}\n \n );\n};\n\nconst DefaultLabel = (props: UploadButtonProps) => {\n const title = props.title || \"Upload File\";\n const hasError = hasContent(props.error);\n const [clicked, setClicked] = useState(!!props.success);\n\n const getUploadIcon = () => (\n hasError\n ? \n : !!props.success\n ? \n : \n );\n\n const getButtonContent = () => (\n props.isUploading\n ? \n :\n \n {getUploadIcon()}\n {\n props.success && !hasContent(props.error)\n ? File Successfully Uploaded\n : {title}\n }\n \n );\n\n return (\n {\n const nextState = !clicked;\n setClicked(nextState);\n props.onClick && props.onClick(nextState);\n }}\n className=\"upload-button__input d-flex align-items-center justify-content-center\"\n >\n {getButtonContent()}\n \n );\n};\n\nconst UploadNewFileLabel = (props: UploadButtonProps) => {\n const [clicked, setClicked] = useState(!!props.success);\n return (\n {\n const nextState = !clicked;\n setClicked(nextState);\n props.onClick && props.onClick(nextState);\n }}\n htmlFor={props.id}\n className=\"upload-button__input--new-file d-flex align-items-center justify-content-center\"\n >\n Upload New File\n \n );\n}","import React, { ReactNode, Fragment } from 'react';\nimport Container from 'reactstrap/lib/Container';\nimport { WithLoader } from '../WithLoader';\nimport Row from 'reactstrap/lib/Row';\nimport Col from 'reactstrap/lib/Col';\nimport { ExpandedContinueButton } from '../../Form';\nimport \"./styles.scss\";\nimport classNames from 'classnames';\n\ninterface ScaffoldProps {\n isLoading?: boolean;\n className: string;\n children: ReactNode;\n hideButton?: boolean;\n continueTitle?: string;\n onContinue?: () => void;\n lg?: object;\n xl?: object;\n}\n\nexport default (props: ScaffoldProps) => {\n const lg = props.lg || { offset: 1, size: 10 };\n const xl = props.xl || { offset: 2, size: 8 };\n return (\n \n \n \n \n {props.children}\n \n \n {\n !!props.onContinue\n ? \n {props.continueTitle}\n \n : \n }\n \n \n );\n};","import React, { useState, useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport { fileToJsonPayload, getUploadErrorMsg, hasContent } from \"../../lib/helpers\";\nimport { Document, ApplicationState, Field } from \"../../store\";\nimport { API, documentType } from \"../../api\";\nimport { CollapseSection } from '../lib/CollapseSection';\nimport UploadButton from '../lib/UploadButton';\nimport RequestButton from '../lib/RequestButton';\nimport { ActionCreators } from '../../store/User';\nimport { Title, Message, SubTitle } from '../lib/Copy';\nimport { Routes } from '../../routes';\nimport DashboardPageStepScaffold from '../lib/DashboardPageStepScaffold';\n\ninterface StateProps {\n isLoading: boolean;\n backgroundCheckDocumentUploaded: boolean;\n backgroundCheckDocumentFailed: boolean;\n uploading: boolean;\n requestBackgroundCheck: boolean;\n}\n\ninterface DispatchProps {\n postDocument: (document: Document, cloudFileId?: any) => void;\n putField: (field: Field) => void;\n continueFromRoute: (currentRoute: string) => void;\n postDocumentError: (document: Document) => void;\n}\n\ntype Props = StateProps & DispatchProps;\n\nconst BackgroundCheckPage = (props: Props) => {\n const [errors, setErrors] = useState({\n tooLarge: false,\n wrongFormat: false\n });\n\n const [requestBackgroundCheck, setRequestBackgroundCheck] = useState(props.requestBackgroundCheck);\n\n useEffect(() => {\n setRequestBackgroundCheck(props.requestBackgroundCheck);\n }, [props.requestBackgroundCheck]);\n\n const uploadFile = (file: File, cloudFileId: any) => {\n if (cloudFileId != \"uploadError\") {\n fileToJsonPayload(file, documentType.backgroundCheck)\n .then(payload => {\n setErrors({ tooLarge: false, wrongFormat: false });\n props.postDocument(payload as Document, cloudFileId);\n })\n .catch(err => {\n setErrors({ ...errors, ...err });\n });\n } else {\n fileToJsonPayload(file, documentType.backgroundCheck)\n .then(payload => {\n setErrors({ tooLarge: false, wrongFormat: false });\n props.postDocumentError(payload as Document);\n })\n .catch(err => {\n setErrors({ ...errors, ...err });\n });\n }\n };\n\n return (\n props.continueFromRoute(Routes.backgroundCheck)}\n >\n Background Check\n \n Safeguard’s clients require our contractors pass a background check before visiting their properties. \n If you have a valid, non-expired background check report you can upload it below.\n \n \n \n );\n};\n\nconst OrSeparator = () => (\n
\n \n

or

\n \n
\n);\n\nconst mapStateToProps = (state: ApplicationState) => {\n if (state === undefined || state.user === undefined) {\n return {\n isLoading: true,\n backgroundCheckDocumentUploaded: false,\n backgroundCheckDocumentFailed: false,\n uploading: false,\n requestBackgroundCheck: false\n };\n }\n\n var user = state.user;\n const doc = state.documentUpload;\n return {\n isLoading: !hasContent(user.email),\n backgroundCheckDocumentUploaded: user.backgroundCheckUploaded,\n backgroundCheckDocumentFailed: user.backgroundCheckUploadFailed,\n uploading: doc.backgroundCheckUploading,\n requestBackgroundCheck: user.requestBackgroundCheck\n }\n};\n\nexport default connect(\n mapStateToProps,\n {\n postDocument: API.postDocument,\n putField: (field: Field) => API.putField(field, true),\n continueFromRoute: ActionCreators.continueFromRoute,\n postDocumentError: API.postDocumentError\n }\n)(BackgroundCheckPage as any);\n","import React, { useState, useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport { Col, Row } from \"reactstrap\";\nimport { SelectList, TextBox } from \"../../Form\";\nimport {\n ActionCreators,\n UserFields\n} from \"../../../store/User\";\nimport { ApplicationState } from \"../../../store\";\nimport { API, DispatchProps } from \"../../../api\";\nimport { hasContent, getLengthMaxMsg } from \"../../../lib/helpers\";\nimport \"./styles.scss\";\nimport { Title, Message } from '../../lib/Copy';\n\ninterface StateProps {\n isLoading: boolean;\n addressLine1?: string;\n addressLine2?: string;\n city?: string;\n state?: string;\n zip?: string;\n referral?: string;\n company?: string;\n titleInCompany?: string;\n}\n\ntype Props = StateProps & DispatchProps;\n\nconst CompanyInfo = (props: Props) => {\n const [state, setState] = useState(props);\n useEffect(() => setState(props), [props]);\n\n return (\n
\n \n \n Company Information\n \n Please provide your company address.\n Dont have a company address?\n You can enter your home address for now.\n \n \n \n \n \n {\n if (addressLine1.length <= 255) {\n setState({ ...state, addressLine1 });\n }\n }}\n onBlur={addressLine1 => checkSet(UserFields.ADDRESS_LINE1, addressLine1, props)}\n placeHolder=\"Street Address\"\n label=\"Address Line 1*\"\n value={state.addressLine1}\n validate={v => getLengthMaxMsg(v || '', 255, \"Address Line 1\")}\n />\n \n \n {\n if (addressLine2.length <= 255) {\n setState({ ...state, addressLine2 });\n }\n }}\n onBlur={addressLine2 => checkSet(UserFields.ADDRESS_LINE2, addressLine2, props)}\n placeHolder=\"Suite, Apt, etc.\"\n label=\"Address Line 2\"\n value={state.addressLine2}\n validate={v => getLengthMaxMsg(v || '', 255, \"Address Line 2\")}\n />\n \n \n\n \n \n {\n if (city.length <= 100) {\n setState({ ...state, city })\n }\n }}\n onBlur={city => checkSet(UserFields.CITY, city, props)}\n placeHolder=\"City\"\n label=\"City*\"\n value={state.city}\n validate={v => getLengthMaxMsg(v || '', 100, \"City\")}\n />\n \n \n {\n setState({ ...state, state: state_ });\n checkSet(UserFields.STATE, state_, props);\n }}\n placeHolder=\"State\"\n list={states}\n label=\"State*\"\n value={state.state}\n />\n \n \n {\n if (!isNaN(Number(zip)) && zip.length <= 5) {\n setState({ ...state, zip })\n }\n }}\n onBlur={zip => checkSet(UserFields.ZIP, zip, props)}\n placeHolder=\"ZIP\"\n validationMessage=\"Zip is required\"\n label=\"ZIP*\"\n value={state.zip}\n validate={v => getLengthMaxMsg(v || '', 5, \"ZIP\")}\n />\n \n \n\n \n \n {\n if (company.length <= 99) {\n setState({ ...state, company });\n }\n }}\n onBlur={companyName => checkSet(UserFields.COMPANY, companyName, props)}\n placeHolder=\"Company Name\"\n label=\"Company Name\"\n value={state.company}\n validate={v => getLengthMaxMsg(v || '', 99, \"Company Name\")}\n />\n \n\n \n {\n if (titleInCompany.length <= 99) {\n setState({ ...state, titleInCompany });\n }\n }}\n onBlur={titleInCompany => checkSet(UserFields.TITLE_IN_COMPANY, titleInCompany, props)}\n placeHolder=\"Your Title / Role in Company\"\n label=\"Your Title / Role in Company\"\n value={state.titleInCompany}\n validate={v => getLengthMaxMsg(v || '', 99, \"Your Title / Role in Company\")}\n />\n \n \n \n \n {\n setState({ ...state, referral });\n checkSet(UserFields.REFERRAL, referral, props);\n }}\n list={referrals}\n label=\"How did you hear about us?*\"\n value={state.referral}\n />\n \n \n
\n );\n};\n\nconst mapStateToProps = (state: ApplicationState) => {\n if (state === undefined || state.user === undefined) {\n return { isLoading: true };\n }\n const user = state.user;\n return {\n isLoading: !hasContent(user.id),\n addressLine1: user.addressLine1 || '',\n addressLine2: user.addressLine2 || '',\n city: user.city || '',\n zip: user.zip || '',\n state: user.state || '',\n referral: user.referral || '',\n company: user.company || '',\n titleInCompany: user.titleInCompany || '',\n };\n};\n\nexport default connect(\n mapStateToProps,\n {\n setField: ActionCreators.setField,\n putField: API.putField\n }\n)(CompanyInfo);\n\nconst checkSet = (\n name: string,\n data: string,\n props: any\n) => {\n if (props[name] !== data) {\n props.setField(name, data);\n props.putField({ name, data });\n }\n};\n\nconst referrals = [\n { name: \"Select\", value: \"\" },\n { name: \"Craigslist\", value: \"craiglist\" },\n { name: \"Indeed\", value: \"indeed\" },\n { name: \"Facebook\", value: \"facebook\" },\n { name: \"Google/Internet Search\", value: \"internet_search\" },\n { name: \"LinkedIn\", value: \"linkedin\" },\n { name: \"Glassdoor\", value: \"glassdoor\" },\n { name: \"Previous Vendor\", value: \"previous_vendor\" },\n { name: \"Zip Recruiter\", value: \"zip_recruiter\" },\n];\n\nconst states = [\n { name: \"Select\", value: \"\" },\n { name: \"Alabama\", value: \"AL\" },\n { name: \"Alaska\", value: \"AK\" },\n { name: \"Arizona\", value: \"AZ\" },\n { name: \"Arkansas\", value: \"AR\" },\n { name: \"California\", value: \"CA\" },\n { name: \"Colorado\", value: \"CO\" },\n { name: \"Connecticut\", value: \"CT\" },\n { name: \"Delaware\", value: \"DE\" },\n { name: \"District Of Columbia\", value: \"DC\" },\n { name: \"Florida\", value: \"FL\" },\n { name: \"Georgia\", value: \"GA\" },\n { name: \"Guam\", value: \"GU\" },\n { name: \"Hawaii\", value: \"HI\" },\n { name: \"Idaho\", value: \"ID\" },\n { name: \"Illinois\", value: \"IL\" },\n { name: \"Indiana\", value: \"IN\" },\n { name: \"Iowa\", value: \"IA\" },\n { name: \"Kansas\", value: \"KS\" },\n { name: \"Kentucky\", value: \"KY\" },\n { name: \"Louisiana\", value: \"LA\" },\n { name: \"Maine\", value: \"ME\" },\n { name: \"Maryland\", value: \"MD\" },\n { name: \"Massachusetts\", value: \"MA\" },\n { name: \"Michigan\", value: \"MI\" },\n { name: \"Minnesota\", value: \"MN\" },\n { name: \"Mississippi\", value: \"MS\" },\n { name: \"Missouri\", value: \"MO\" },\n { name: \"Montana\", value: \"MT\" },\n { name: \"Nebraska\", value: \"NE\" },\n { name: \"Nevada\", value: \"NV\" },\n { name: \"New Hampshire\", value: \"NH\" },\n { name: \"New Jersey\", value: \"NJ\" },\n { name: \"New Mexico\", value: \"NM\" },\n { name: \"New York\", value: \"NY\" },\n { name: \"North Carolina\", value: \"NC\" },\n { name: \"North Dakota\", value: \"ND\" },\n { name: \"Ohio\", value: \"OH\" },\n { name: \"Oklahoma\", value: \"OK\" },\n { name: \"Oregon\", value: \"OR\" },\n { name: \"Pennsylvania\", value: \"PA\" },\n { name: \"Puerto Rico\", value: \"PR\" },\n { name: \"Rhode Island\", value: \"RI\" },\n { name: \"South Carolina\", value: \"SC\" },\n { name: \"South Dakota\", value: \"SD\" },\n { name: \"Tennessee\", value: \"TN\" },\n { name: \"Texas\", value: \"TX\" },\n { name: \"Utah\", value: \"UT\" },\n { name: \"Vermont\", value: \"VT\" },\n { name: \"Virgin Islands\", value: \"VI\" },\n { name: \"Virginia\", value: \"VA\" },\n { name: \"Washington\", value: \"WA\" },\n { name: \"West Virginia\", value: \"WV\" },\n { name: \"Wisconsin\", value: \"WI\" },\n { name: \"Wyoming\", value: \"WY\" }\n];\n\n","import React, {ReactNode, Fragment} from 'react';\nimport {connect} from 'react-redux';\nimport {Col, Row} from \"reactstrap\";\nimport \"./styles.scss\";\nimport {\n ActionCreators,\n UserFields\n} from \"../../../store/User\";\nimport {ApplicationState} from \"../../../store\";\nimport {API, DispatchProps} from \"../../../api\";\nimport {CheckIcon, GrassIcon, HouseIcon, ToolboxIcon} from \"../../../assets/icons\";\nimport classNames from \"classnames\";\nimport {Title, Message} from '../../lib/Copy';\n\ninterface StateProps {\n workTypeGrassAndSnow: boolean;\n workTypeInspections: boolean;\n workTypeMaintenance: boolean;\n}\n\ntype Props = StateProps & DispatchProps;\n\ninterface WorkCardProps {\n onClick?: () => void;\n className?: string;\n icon?: () => ReactNode;\n title: string;\n checked?: boolean;\n message: string;\n}\n\nconst WorkCard = (props: WorkCardProps) => {\n return (\n
\n \n
\n {props.icon && props.icon()}\n {props.title}\n
\n \n
\n
\n
\n {props.message}\n \n );\n};\n\n\nconst TypesOfWork = (props: Props) => {\n const iconGray = \"#a4a4a4\";\n\n const handleCheckbox = (\n name: string,\n checked: boolean\n ) => {\n props.setField(name, checked);\n props.putField({name, data: checked.toString()});\n };\n\n return (\n
\n \n \n Types Of Work\n \n What type of work you are interested in?\n \n

\n Select all that apply.*\n

\n \n
\n
\n {\n const nextState = !props.workTypeInspections;\n handleCheckbox(UserFields.WORK_TYPE_INSPECTIONS, nextState);\n }}\n checked={props.workTypeInspections}\n title=\"Inspections\"\n message=\"Verify occupancy and report condition/damages\"\n icon={() =>\n \n \n \n \n }\n />\n {\n const nextState = !props.workTypeGrassAndSnow;\n handleCheckbox(UserFields.WORK_TYPE_GRASS_AND_SNOW, nextState);\n }}\n checked={props.workTypeGrassAndSnow}\n title=\"Grass & Snow\"\n message=\"Lawn mowing, general yard work, and snow removal\"\n icon={() =>\n \n \n \n \n }\n />\n {\n const nextState = !props.workTypeMaintenance;\n handleCheckbox(UserFields.WORK_TYPE_MAINTENANCE, nextState);\n }}\n checked={props.workTypeMaintenance}\n title=\"Maintenance\"\n message=\"Traditional preservation and general home repair\"\n icon={() =>\n \n \n \n \n }\n />\n
\n
\n );\n};\n\nconst mapStateToProps = (state: ApplicationState) => {\n if (state === undefined || state.user === undefined) {\n return {\n workTypeGrassAndSnow: false,\n workTypeInspections: false,\n workTypeMaintenance: false\n };\n }\n const user = state.user;\n return {\n workTypeGrassAndSnow: user.workTypeGrassAndSnow || false,\n workTypeInspections: user.workTypeInspections || false,\n workTypeMaintenance: user.workTypeMaintenance || false\n };\n};\n\nexport default connect(\n mapStateToProps,\n {\n setField: ActionCreators.setField,\n putField: API.putField\n }\n)(TypesOfWork);\n","import React, {ReactNode} from \"react\";\nimport {Label} from \"reactstrap\";\nimport classNames from \"classnames\";\nimport \"./styles.scss\";\n\ninterface CheckBoxProps {\n id: string;\n className?: string;\n onChange?: (checked?: boolean) => void;\n checked?: boolean;\n children?: ReactNode;\n}\n\nexport default (props: CheckBoxProps) => (\n \n);\n","import React, {Fragment, useState, useEffect} from 'react';\nimport {connect} from 'react-redux';\nimport \"./styles.scss\";\nimport {MessageBox} from \"../../Form\";\nimport CheckBox from \"../../Form/CheckBox\";\nimport {Col, Label, Row} from \"reactstrap\";\nimport {\n ActionCreators,\n UserFields\n} from \"../../../store/User\";\nimport {ApplicationState} from \"../../../store\";\nimport {API, DispatchProps} from \"../../../api\";\nimport {hasContent, stringLength} from \"../../../lib/helpers\";\nimport {Title, Message} from '../../lib/Copy';\n\ninterface StateProps {\n workLocationRequests: string;\n}\n\ntype Props = StateProps & DispatchProps;\n\n// note: this value is saved if the user clicks yes, but doesn't fill out the message box\nconst implicitYesToOtherLocations = \"YES_TO_OTHER_LOCATIONS\";\n\nconst WorkLocations = (props: Props) => {\n const [state, setState] = useState({\n ...props,\n workInOtherLocations: hasContent(props.workLocationRequests)\n });\n useEffect(() => setState({\n ...props,\n workInOtherLocations: hasContent(props.workLocationRequests)\n }), [props]);\n\n return (\n
\n \n \n Work Locations\n \n Are you interested in working in locations outside of your ZIP code?\n \n \n \n \n \n {\n // state.workInOtherLocations is the past state of the checkbox since we haven't called\n // setState() yet\n if (state.workInOtherLocations) {\n // if we were previously checked, but now are not, then clear their selection\n // @tech-debt: make the call a bit later to lower the possibility of the delete \n // getting to the api first. We really should buffer and check the open promises\n setTimeout(() => checkSet(UserFields.WORK_LOCATION_REQUESTS, \"\", props), 1000);\n }\n if (!state.workInOtherLocations) {\n // if we were previously not checked, but now are, then set the default value\n checkSet(UserFields.WORK_LOCATION_REQUESTS, implicitYesToOtherLocations, props);\n }\n setState({...state, workInOtherLocations: !state.workInOtherLocations});\n }}\n >\n I want to do work in other locations\n \n\n {\n state.workInOtherLocations\n ? \n {\n if (workLocationRequests.length <= 255) {\n setState({\n ...state,\n workLocationRequests\n })\n }\n }}\n onBlur={workLocationRequests => {\n if (state.workInOtherLocations) {\n return hasContent(workLocationRequests)\n ? checkSet(UserFields.WORK_LOCATION_REQUESTS, workLocationRequests, props)\n : checkSet(UserFields.WORK_LOCATION_REQUESTS, implicitYesToOtherLocations, props);\n }\n return checkSet(UserFields.WORK_LOCATION_REQUESTS, \"\", props);\n }}\n value={\n hasContent(state.workLocationRequests)\n && state.workLocationRequests !== implicitYesToOtherLocations\n ? state.workLocationRequests\n : ''\n }\n />\n \n {state.workLocationRequests !== implicitYesToOtherLocations ? stringLength(state.workLocationRequests) : 0} /\n 255\n \n \n : \n }\n \n \n
\n );\n};\n\nconst mapStateToProps = (state: ApplicationState) => {\n if (state === undefined || state.user === undefined) {\n return {workLocationRequests: ''};\n }\n const user = state.user;\n return {\n workLocationRequests: user.workLocationRequests || ''\n };\n};\n\nexport default connect(\n mapStateToProps,\n {\n setField: ActionCreators.setField,\n putField: API.putField,\n }\n)(WorkLocations);\n\nconst checkSet = (\n name: string,\n data: string,\n props: any\n) => {\n if (props[name] !== data) {\n props.setField(name, data);\n props.putField({name, data});\n }\n};\n\n","import React, { ReactNode, Fragment, useState } from \"react\";\nimport { CloseIcon, InfoIcon } from \"../../../assets/icons\";\nimport \"./styles.scss\";\nimport classNames from \"classnames\";\n\ninterface CollapseSectionProps {\n title: string;\n children: ReactNode;\n className?: string;\n iconOpen?: () => JSX.Element;\n}\n\nexport function CollapseSection(props: CollapseSectionProps) {\n const [isCollapseOpen, setCollapseIsOpen] = useState(false);\n const openIcon = (props.iconOpen && props.iconOpen()) || ;\n return (\n
\n
\n
\n {isCollapseOpen\n ? \n \n \n : \n \n \n }\n
\n
\n setCollapseIsOpen(!isCollapseOpen)}\n >\n {isCollapseOpen\n ? \n \n \n : openIcon\n }\n \n {props.title}\n \n \n
\n {isCollapseOpen && props.children}\n
\n
\n
\n
\n );\n}\n\n","import React, {useState, useEffect} from 'react';\nimport {Col, Row} from \"reactstrap\";\nimport {connect} from 'react-redux';\nimport \"./styles.scss\";\nimport {TextBox} from \"../../Form\";\nimport {\n ActionCreators,\n UserFields\n} from \"../../../store/User\";\nimport {ApplicationState} from \"../../../store\";\nimport {API, DispatchProps} from \"../../../api\";\nimport {CollapseSection} from \"../../lib/CollapseSection\";\nimport {Title} from '../../lib/Copy';\n\ninterface StateProps {\n ein?: string;\n}\n\ntype Props = StateProps & DispatchProps;\n\nconst EmployerIdentification = (props: Props) => {\n const [state, setState] = useState({...props});\n useEffect(() => setState(props), [props]);\n const setEin = (data: string) => setState({...state, ein: formatEin(data)});\n\n return (\n
\n \n \n Employer Identification Number (Optional)\n \n \n \n

\n Your EIN is an individually assigned number by the IRS and \n used to determine federal tax requirements. \n Safeguard Properties will not share your EIN.\n

\n
\n \n \n checkSet(UserFields.EIN, ein, props)}\n value={state.ein}\n label=\"EIN\"\n placeHolder=\"XX-XXXXXXX\"\n />\n \n \n
\n );\n};\n\nconst mapStateToProps = (state: ApplicationState) => {\n if (state === undefined || state.user === undefined) {\n return {ein: ''};\n }\n const user = state.user;\n return {\n ein: user.ein || ''\n };\n};\n\nexport default connect(\n mapStateToProps,\n {\n setField: ActionCreators.setField,\n putField: API.putField,\n }\n)(EmployerIdentification);\n\nconst checkSet = (\n name: string,\n data: string,\n props: any\n) => {\n if (props[name] !== data) {\n props.setField(name, data);\n props.putField({name, data});\n }\n};\n\nconst formatEin = (value: string): string => {\n let input = value.replace('-', '');\n if (input.length > 9) return value.substr(0, 10);\n if (!isNaN(Number(input))) {\n let value = input.substr(0, 2);\n if (input.length > 2) {\n value += '-' + input.substr(2);\n }\n return value;\n }\n return value.substr(0, value.length - 1);\n};\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { ActionCreators } from \"../../store/User\";\nimport { ApplicationState } from \"../../store\";\nimport { Routes } from \"../../routes\";\nimport { hasContent } from \"../../lib/helpers\";\nimport CompanyInfo from \"./CompanyInfo\";\nimport TypesOfWork from \"./TypesOfWork\";\nimport WorkLocations from \"./WorkLocations\";\nimport EmployerIdentification from \"./EmployerIdentification\";\nimport DashboardPageStepScaffold from '../lib/DashboardPageStepScaffold';\n\ninterface StateProps {\n isLoading: boolean;\n}\n\ninterface DispatchProps {\n continueFromRoute: (currentRoute: string) => void;\n goToDashboard?: () => void;\n}\n\ntype Props = StateProps & DispatchProps;\n\nconst CompanyInfoForm = (props: Props) => (\n props.continueFromRoute(Routes.companyInfo)}\n >\n \n \n \n \n \n);\n\nconst mapStateToProps = (state: ApplicationState) => {\n if (state === undefined || state.user === undefined) {\n return { isLoading: true };\n }\n const user = state.user;\n return {\n isLoading: !hasContent(user.id)\n };\n};\n\nexport default connect(\n mapStateToProps,\n {\n continueFromRoute: ActionCreators.continueFromRoute,\n goToDashboard: ActionCreators.goToDashboard\n }\n)(CompanyInfoForm);\n","import React, { ReactNode } from 'react';\nimport { CaretIcon } from '../../../assets/icons';\nimport classNames from 'classnames';\nimport \"./styles.scss\";\n\ninterface ExternalLinkProps {\n to: string;\n className?: string;\n withCaret?: boolean;\n children: ReactNode;\n}\n\nexport default (props: ExternalLinkProps) => (\n \n {props.children}\n {\n !!props.withCaret\n && \n }\n \n)","import React, { useState } from 'react';\nimport { connect } from 'react-redux';\nimport { API, documentType } from \"../../api\";\nimport { ApplicationState, Document } from \"../../store\";\nimport { fileToJsonPayload, hasContent, getUploadErrorMsg } from \"../../lib/helpers\";\nimport { Routes, ExternalLinks } from '../../routes';\nimport { ActionCreators } from '../../store/User';\nimport UploadButton from \"../lib/UploadButton\";\nimport { Title, Message, SubTitle } from '../lib/Copy';\nimport ExternalLink from '../lib/ExternalLink';\nimport DashboardPageStepScaffold from '../lib/DashboardPageStepScaffold';\n\ninterface StateProps {\n isLoading: boolean;\n uploading?: boolean;\n photoIdUploaded?: boolean;\n photoIdUploadFailed?: boolean;\n}\n\ninterface DispatchProps {\n postDocument: (document: Document, cloudFileId?: any) => void;\n continueFromRoute: (currentRoute: string) => void;\n postDocumentError: (document: Document) => void;\n}\n\ntype Props = StateProps & DispatchProps;\n\nconst IdentificationPage = (props: Props) => {\n const [errors, setErrors] = useState({\n tooLarge: false,\n wrongFormat: false\n });\n const uploadFile = (file: File, cloudFileId: any) => {\n if (cloudFileId != \"uploadError\") {\n fileToJsonPayload(file, documentType.photoId)\n .then(payload => {\n setErrors({ tooLarge: false, wrongFormat: false });\n props.postDocument(payload as Document, cloudFileId);\n })\n .catch(err => {\n setErrors({ ...errors, ...err });\n });\n } else {\n fileToJsonPayload(file, documentType.photoId)\n .then(payload => {\n setErrors({ tooLarge: false, wrongFormat: false });\n props.postDocumentError(payload as Document);\n })\n .catch(err => {\n setErrors({ ...errors, ...err });\n });\n }\n };\n\n return (\n props.continueFromRoute(Routes.identification)}\n >\n Photo Identification\n We require a valid government issued ID in order to be eligible as a vendor.\n Don't have a valid photo ID?\n \n Get One Here\n \n \n \n );\n};\n\nexport default connect(\n (state: ApplicationState) => {\n if (state === undefined || state.user === undefined) {\n return {\n isLoading: true,\n photoIdUploaded: false,\n photoIdUploadFailed: false\n };\n }\n\n const user = state.user;\n const doc = state.documentUpload;\n return {\n isLoading: !hasContent(user.email),\n uploading: doc.photoIdUploading,\n photoIdUploaded: user.photoIdUploaded,\n photoIdUploadFailed: doc.photoIdUploadFailed || user.photoIdUploadFailed\n }\n },\n {\n postDocument: API.postDocument,\n continueFromRoute: ActionCreators.continueFromRoute,\n postDocumentError: API.postDocumentError\n }\n)(IdentificationPage);\n","import React, { Fragment } from \"react\";\nimport \"./styles.scss\";\nimport classNames from \"classnames\";\nimport { CheckIcon } from \"../../../assets/icons\";\n\ninterface RequestButtonProps {\n title: string;\n isClicked: boolean;\n onClick: () => void;\n className?: string;\n subMessage?: string;\n}\n\nexport default (props: RequestButtonProps) => {\n const buttonStyle = props.isClicked ? \"request-button--clicked\" : \"request-button--not-clicked\";\n return (\n
\n {\n props.onClick();\n }}\n >\n \n {props.title}\n \n {\n props.isClicked\n ? \n : \n }\n
\n

{props.subMessage}

\n \n );\n};","import React, { useState, useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport { fileToJsonPayload, getUploadErrorMsg, hasContent } from \"../../lib/helpers\";\nimport { Document, ApplicationState, Field } from \"../../store\";\nimport { API, documentType } from \"../../api\";\nimport { CollapseSection } from '../lib/CollapseSection';\nimport UploadButton from '../lib/UploadButton';\nimport RequestButton from '../lib/RequestButton';\nimport { ActionCreators } from '../../store/User';\nimport { Title, Message, SubTitle } from '../lib/Copy';\nimport ExternalLink from '../lib/ExternalLink';\nimport { Routes, ExternalLinks } from '../../routes';\nimport DashboardPageStepScaffold from '../lib/DashboardPageStepScaffold';\n\n\ninterface StateProps {\n isLoading: boolean;\n insuranceDocumentUploaded: boolean;\n insuranceDocumentFailed: boolean;\n uploading: boolean;\n willObtainInsurance: boolean;\n requestInsurance: boolean;\n}\n\ninterface DispatchProps {\n postDocument: (document: Document, cloudFileId?: any) => void;\n putField: (field: Field) => void;\n continueFromRoute: (currentRoute: string) => void;\n postDocumentError: (document: Document) => void;\n}\n\ntype Props = StateProps & DispatchProps;\n\nconst InsurancePage = (props: Props) => {\n const [errors, setErrors] = useState({\n tooLarge: false,\n wrongFormat: false\n });\n\n const [requestInsurance, setRequestInsurance] = useState(props.requestInsurance);\n const [willObtainInsurance, setWillObtaiInsurance] = useState(props.willObtainInsurance);\n\n useEffect(() => {\n setRequestInsurance(props.requestInsurance);\n setWillObtaiInsurance(props.willObtainInsurance);\n }, [props.willObtainInsurance, props.requestInsurance]);\n\n const uploadFile = (file: File, cloudFileId: any) => {\n if (cloudFileId != \"uploadError\") {\n fileToJsonPayload(file, documentType.insurance)\n .then(payload => {\n setErrors({ tooLarge: false, wrongFormat: false });\n props.postDocument(payload as Document, cloudFileId);\n })\n .catch(err => {\n setErrors({ ...errors, ...err });\n });\n } else {\n fileToJsonPayload(file, documentType.insurance)\n .then(payload => {\n setErrors({ tooLarge: false, wrongFormat: false });\n props.postDocumentError(payload as Document);\n })\n .catch(err => {\n setErrors({ ...errors, ...err });\n });\n }\n };\n\n return (\n props.continueFromRoute(Routes.insurance)}\n >\n General Liability Insurance\n \n Upload or request General Liability and Errors & Omissions Insurance.\n \n \n Review our Insurance Requirements\n \n \n Don't Have Insurance?\n \n Safeguard offers Quick Start - a program that allows you to join Safeguard's vendor \n network while temporarily delaying the upfront costs of obtaining insurance.\n \n \n
\n

\n By electing Quick Start vendor status,\n I understand and agree that Safeguard\n is not providing my insurance and that\n I am financially responsible for my business.\n

\n
\n \n {\n var clicked = !requestInsurance;\n var data = clicked ? \"QUICKSTART\" : \"NONE\";\n setRequestInsurance(clicked);\n setWillObtaiInsurance(false);\n setErrors({ tooLarge: false, wrongFormat: false });\n props.putField({ name: documentType.insurance, data });\n }}\n />\n \n {\n var clicked = !willObtainInsurance;\n var data = clicked ? \"NOVALID\" : \"NONE\";\n setWillObtaiInsurance(clicked);\n setRequestInsurance(false);\n setErrors({ tooLarge: false, wrongFormat: false });\n props.putField({ name: documentType.insurance, data });\n }}\n />\n \n );\n};\n\nconst OrSeparator = () => (\n
\n \n

or

\n \n
\n);\n\nconst mapStateToProps = (state: ApplicationState) => {\n if (state === undefined || state.user === undefined) {\n return {\n isLoading: true,\n insuranceDocumentUploaded: false,\n insuranceDocumentFailed: false,\n uploading: false,\n willObtainInsurance: false,\n requestInsurance: false\n };\n }\n\n var user = state.user;\n const doc = state.documentUpload;\n return {\n willObtainInsurance: user.willObtainInsurance,\n isLoading: !hasContent(user.email),\n insuranceDocumentUploaded: user.insuranceUploaded,\n insuranceDocumentFailed: user.insuranceUploadFailed,\n uploading: doc.insuranceUploading,\n requestInsurance: user.requestInsurance\n }\n};\n\nexport default connect(\n mapStateToProps,\n {\n postDocument: API.postDocument,\n putField: (field: Field) => API.putField(field, true),\n continueFromRoute: ActionCreators.continueFromRoute,\n postDocumentError: API.postDocumentError\n }\n)(InsurancePage as any);\n","import React, { ReactNode } from 'react';\nimport { CaretIcon } from '../../../assets/icons';\nimport classNames from 'classnames';\nimport \"./styles.scss\";\n\ninterface ExternalLinkProps {\n base64Data: string;\n className?: string;\n withCaret?: boolean;\n children: ReactNode;\n}\n\nexport default (props: ExternalLinkProps) => {\n return (\n \n {props.children}\n {\n !!props.withCaret\n && \n }\n \n );\n}\n\nconst b64toBlob = (b64Data: string, sliceSize = 512) => {\n const byteCharacters = atob(b64Data);\n const byteArrays = [];\n\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n const slice = byteCharacters.slice(offset, offset + sliceSize);\n\n const byteNumbers = new Array(slice.length);\n for (let i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i);\n }\n\n const byteArray = new Uint8Array(byteNumbers);\n byteArrays.push(byteArray);\n }\n\n const blob = new Blob(byteArrays, { type: 'application/pdf' });\n return blob;\n}\n// function saveFile(name: string, blob: Blob) {\n// if (blob !== null && navigator.msSaveBlob)\n// return navigator.msSaveBlob(blob, name);\n// var a = $(\"\");\n// var url = window.URL.createObjectURL(blob);\n// a.attr(\"href\", url);\n// a.attr(\"download\", name);\n// $(\"body\").append(a);\n// a[0].click();\n// window.URL.revokeObjectURL(url);\n// a.remove();\n// }","import React, { Fragment } from 'react';\nimport { connect } from \"react-redux\";\nimport { ApplicationState, Field } from \"../../store\";\nimport CheckBox from \"../Form/CheckBox\";\nimport { API } from \"../../api\";\nimport { ActionCreators, UserFields } from \"../../store/User\";\nimport { Row, Col } from \"reactstrap\";\nimport { hasContent, removeEmbeddedStyles } from \"../../lib/helpers\";\nimport classNames from 'classnames';\nimport { Routes } from '../../routes';\nimport DashboardPageStepScaffold from '../lib/DashboardPageStepScaffold';\nimport { DownloadIcon } from '../../assets/icons';\nimport DownloadLink from '../lib/ExternalLink/DownloadLink';\n\ninterface StateProps {\n isLoading?: boolean;\n tmcVersion?: string;\n tmcText?: string;\n tmcVersionAccepted?: string;\n tmcPdf?: string;\n tmcDate?:string | null;\n}\n\ninterface DispatchProps {\n continueFromRoute: (currentRoute: string) => void;\n setField: (name: string, data?: any) => void;\n putField: (field: Field) => void;\n}\n\ntype Props = StateProps & DispatchProps;\n\nconst TermsPage = (props: Props) => {\n let tmcText = !!props.tmcText\n ? removeEmbeddedStyles(props.tmcText)\n : '';\n return (\n props.continueFromRoute(Routes.terms)}\n continueTitle=\"Finish\"\n >\n\n
\n {\n hasContent(props.tmcPdf)\n ? \n \n Download Terms\n \n : \n }\n
\n \n \n \n \n \n \n \n );\n};\n\nconst Terms = (props: { text: string }) => (\n
\n \n
\n \n);\n\nconst AcceptCheckBox = (props: Props) => {\n const handleCheckbox = (\n name: string,\n value?: string | null\n ) => {\n props.setField(name, value);\n props.putField({ name, data: value });\n };\n\n\n const getDate = ()=>{\n var date = new Date();\n var year = date.getFullYear();\n var month = ''+(date.getMonth()+1);\n var day = ''+date.getDate();\n if(month.length < 2)\n {\n month = '0' + month;\n }\n if(day.length < 2)\n {\n day = '0' + day;\n }\n return [year, month, day].join('-');\n }\n\n const setTmcDate = (checked:any,props:Props)=>{\n if(checked && props.tmcDate){\n return true;\n }\n else if(checked && !props.tmcDate){\n handleCheckbox(UserFields.TMCDATE, getDate());\n }\n else if(!checked)\n {\n handleCheckbox(UserFields.TMCDATE, \"\");\n }\n }\n\n return (\n
\n
\n \n \n {\n checked\n ? handleCheckbox(UserFields.TMC_VERSION_ACCEPTED, props.tmcVersion)\n : handleCheckbox(UserFields.TMC_VERSION_ACCEPTED, \"\");\n // checked\n // && handleCheckbox(UserFields.TMCDATE, getDate());\n setTmcDate(checked,props);\n \n }}\n >\n I attest that I have authority to accept these terms and conditions\n for and on behalf of the Contractor and therefore agree to the above Terms and Conditions.\n \n \n \n
\n
\n );\n};\n\nexport default connect(\n (state: ApplicationState) => {\n if (!state.user) {\n return {\n isLoading: true,\n tmcVersion: '',\n tmcText: '',\n tmcVersionAccepted: '',\n tmcPdf: '',\n };\n }\n const user = state.user;\n return {\n isLoading: !hasContent(user.email),\n tmcVersion: user.tmcVersion,\n tmcText: user.tmcText,\n tmcVersionAccepted: user.tmcVersionAccepted,\n tmcPdf: user.tmcPdf,\n tmcDate: user.tmcDate\n };\n },\n {\n continueFromRoute: ActionCreators.continueFromRoute,\n putField: API.putField,\n setField: ActionCreators.setField\n }\n)(TermsPage);\n","import React from 'react';\nimport { Container, Row, Col } from \"reactstrap\";\nimport { Banner } from \"../lib/Banner\";\nimport BasicContent from '../lib/BasicContent';\n\n\nexport default () => {\n return (\n \n \n \n \n \n {sections.map((s, index) => )}\n \n \n \n \n );\n};\n\nconst Content = (props: { section: Section }) => (\n
\n

{props.section.title}

\n {\n props.section.body.map((body, index) =>

{body}

)\n }\n
\n);\n\ninterface Section {\n title: string;\n body: string[];\n}\n\nconst sections = [{\n title: 'Copyright',\n body: ['You should assume that everything you see or read on this Web site is copyrighted unless otherwise noted, and may not be used except as provided in these Terms and Conditions or in the text on the Web site without the written permission of Safeguard Properties (\"Safeguard\"). Safeguard neither warrants nor represents that your use of the information and materials (\"Materials\") displayed on this Web site will not infringe on rights of third parties now owned by or affiliated with Safeguard. Images, photographs, or illustrations displayed on the Web site are either the property of or used with permission by Safeguard. The use of these Materials by you, or anyone authorized by you, is prohibited unless specifically permitted by this Agreement or specific permission provided elsewhere on this Web site. Any unauthorized use of the images may violate copyright laws, trademark laws, the laws of privacy and publicity, and communications regulations and statutes.']\n}, {\n title: 'Trademarks',\n body: ['The trademarks, logos and service marks (collectively the \"Trademarks\") displayed on this Web site are the unregistered trademarks of Safeguard, its affiliates and other third parties. Nothing contained on this Web site should be construed as granting, by implication, estoppel or otherwise, any license or right to use any Trademark displayed on the Web site without written permission of Safeguard or such third party that may own the Trademark displayed on the Web site. Your misuse of the Trademarks displayed on the Web site, or any other content on the Web site, except as provided herein, is strictly prohibited.']\n}, {\n title: 'Limited License',\n body: [\n 'Subject to the terms and conditions set forth in this Agreement, Safeguard grants you a non-exclusive, non-transferable, limited right to access, use and display this site and the materials thereon. You agree not to interrupt or attempt to interrupt the operation of this site in any way.',\n 'Safeguard authorizes you to view and download the information (\"Materials\") at this Web site. However, this authorization is not a transfer of title in the Materials and copies of the Materials and is subject to the following restrictions: (1) you must retain, on all copies of the Materials downloaded, all copyright and other proprietary notices contained in the Materials; (2) you may not modify the Materials in any way or reproduce or publicly display, perform, distribute or otherwise use them for any public or commercial purpose without the written permission of Safeguard; and (3) you must not transfer the Materials to any other person unless you give them notice of, and they agree to accept, the obligations arising under this Agreement. You agree to abide by all additional restrictions displayed on this Web site as may be updated from time to time.'\n ]\n}, {\n title: 'Submission',\n body: [\n 'All information submitted to Safeguard via this Web site shall be deemed and will remain the property of Safeguard, and Safeguard shall be free to use, for any purpose, any ideas, concepts, know-how or techniques contained in information a visitor to this site provided to Safeguard through this Web Site by a visitor to this Web Site. Safeguard shall not be subject to any obligations of confidentiality regarding submitted information except as specifically agreed by Safeguard or required by law.'\n ]\n}, {\n title: 'Third Party Sites',\n body: [\n 'As a convenience to you, Safeguard may provide on this Web site links to Web sites operated by other entities. If you decide to visit any linked site, you do so at your own risk and it is your responsibility to take all protective measures to guard against viruses or other destructive elements. Safeguard makes no warranty or representation regarding, and does not endorse, any linked Web sites or the information appearing thereon or any of the products or services described thereon. Links do not imply that Safeguard or this Web Site sponsors, endorses, or is affiliated or associated with linked sites, or is legally authorized to use any trademark, trade name, logo or copyright symbol displayed in or accessible through the links, or that any linked site is authorized to use any trademark, trade name, logo or copyright symbol of Safeguard or any of its affiliates or subsidiaries.'\n ]\n}, {\n title: 'Limitations of Liability',\n body: [\n 'IN NO EVENT SHALL SAFEGUARD OR ANY OF ITS AFFILIATES OR SUBSIDIARIES BE LIABLE TO ANY ENTITY FOR ANY DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL OR OTHER DAMAGES (INCLUDING, WITHOUT LIMITATION, ANY LOST PROFITS, BUSINESS INTERRUPTION, LOSS OF INFORMATION, PROGRAMS OR OTHER DATA ON YOUR INFORMATION HANDLING SYSTEM) THAT ARE RELATED TO THE USE OF, OR THE INABILITY TO USE, THE CONTENT, MATERIALS, AND FUNCTIONS OF THE SITE OR ANY LINKED WEBSITE, EVEN IF SAFEGUARD IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. HYPERLINKS TO OTHER INTERNET RESOURCES ARE USED AT YOUR OWN RISK; THE CONTENT, ACCURACY, OPINIONS EXPRESSED AND OTHER LINKS PROVIDED BY THESE RESOURCES ARE NOT INVESTIGATED, VERIFIED, MONITORED OR ENDORSED BY SAFEGUARD.'\n ]\n}, {\n title: 'Changes',\n body: [\n 'Safeguard reserves the right, at its sole discretion, to change, modify, add or remove any portion of this Agreement in whole or in part, at any time. Changes in this Agreement will be effective when notice of such change is posted. Your continued use of this Web site after any changes to this Agreement are posted will be considered acceptance of those changes.',\n 'Safeguard may terminate, change, suspend or discontinue any aspect of the Safeguard Web site, including the availability of any features of this Web site, at any time. Safeguard may also impose limits on certain features and services or restrict access to parts or all of this Web site without notice or liability. Safeguard may terminate the authorization, rights and license given above and, upon such termination, you shall immediately destroy all Materials.'\n ]\n},\n] as Section[];\n","import React from 'react';\nimport { CollapseSection } from \"../../lib/CollapseSection\";\nimport \"./styles.scss\";\nimport { OpenIcon } from '../../../assets/icons';\n\n\nconst Accordion = () => {\n return (\n
\n
\n }\n >\n

\n You will be assigned a regional recruiter who specializes in your chosen service line.\n

\n \n
\n
\n }\n >\n

\n Yes. Once you have become familiar with our network and your performance meets established standards you will be provided multiple opportunities to expand.\n

\n \n
\n
\n }\n >\n

\n Smart phones are essential to operate Safeguard's web-based ordering system and utilize the work order-fulfilling software through an app downloaded to your smart phone.\n

\n \n
\n
\n }\n >\n

\n New vendors must complete an on-boarding process which includes initial service line training online. Once the on-boarding process is complete you will enter a credentialing period, where you will receive your first work order.\n

\n \n
\n
\n );\n}\n\nexport default Accordion;\n\n","import React from 'react';\nimport { Col, Container, Row } from \"reactstrap\";\nimport Accordion from \"./Accordion\";\nimport { Banner } from \"../lib/Banner\";\nimport { CtaBanner } from \"../lib/CtaBanner\";\nimport BasicContent from '../lib/BasicContent';\n\nexport default () => {\n return (\n \n \n \n \n \n
\n \n
\n \n
\n
\n \n
\n );\n};\n","import React from 'react';\nimport { Container, Row, Col } from \"reactstrap\";\nimport { Banner } from \"../lib/Banner\";\nimport BasicContent from '../lib/BasicContent';\n\nexport default () => {\n return (\n \n \n \n \n \n
\n

\n Safeguard Properties only has access to or collects information that you voluntarily give us via email or other direct contact from you. This Web site employs the use of cookies to enhance your browsing experience, and may use them to collect personally identifiable data such as your email address and page views.\n

\n

\n We may use the information we gather about you to contact you via email, post, or telephone; to send you newsletters (\"All Client Alerts\"); and to view your activity on the Web site.\n

\n

\n We will not share your information with any third party outside of our organization.\n

\n

\n You may opt out of receiving any future contact from us at any time.\n

\n

\n This includes an \"opt out notice\" in any future email we may send you. You can see what data we have about you, if any, and update/correct/delete that data at anytime by contacting us via the email or phone number given on our Web site.\n

\n
\n \n
\n
\n
\n );\n};\n\n","import React from \"react\";\nimport { Col, Container, Row } from \"reactstrap\";\nimport locationValleyView from \"../../../assets/location_valleyview.png\";\nimport locationRichardson from \"../../../assets/location_richardson.png\";\nimport \"./styles.scss\";\nimport ExternalLink from \"../../lib/ExternalLink\";\n\nexport default () => {\n return (\n
\n \n \n \n

\n Our Locations\n

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

Valley View

\n

7887 Safeguard Circle (HUB PKWY)
Valley View, OH 44125

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

Richardson

\n

2400 Lakeside Blvd. #300
Richardson, TX 75082

\n
\n \n
\n
\n
\n );\n};\n","import React from 'react';\nimport { Col, Container, Row } from \"reactstrap\";\nimport { Banner } from \"../lib/Banner\";\nimport { CtaBanner } from \"../lib/CtaBanner\";\nimport Locations from \"./Locations\";\nimport { ContactPhoneIcon, ContactEmailIcon } from \"../../assets/icons\";\nimport BasicContent from '../lib/BasicContent';\n\nexport default () => {\n return (\n \n \n \n \n \n
\n \n \n
\n \n

Email

\n

\n vm.leads@safeguardproperties.com\n

\n
\n \n \n \n \n \n \n );\n};\n","import React, {Fragment, useState} from 'react';\nimport {connect} from 'react-redux';\nimport {ContinueButton, Email, Form, FormChildProps, getIconColor} from \"../Form\";\nimport {API} from \"../../api\";\nimport {getRequiredMsg} from \"../../lib/helpers\";\nimport {MailIcon} from \"../../assets/icons\";\n\ninterface DispatchProps {\n emailSent: (sent: boolean) => void;\n forgotPassword: (email: string) => void;\n}\n\ntype Props = DispatchProps;\n\nclass RequestForgotPasswordErrors {\n email?: string;\n}\n\nconst RequestForgotPasswordForm = (props: Props) => {\n const [email, setEmail] = useState('');\n\n const handleSubmit = (f: Props) => {\n props.forgotPassword(email);\n props.emailSent(true);\n };\n\n return (\n
\n {\n const errors = new RequestForgotPasswordErrors();\n errors.email = getRequiredMsg(f.email, 'Email');\n return errors;\n }}\n values={{\n email\n }}\n >\n {\n (formProps: FormChildProps) =>\n \n setEmail(v)}\n value={email}\n validationMessage={formProps.errors.email}\n prepend={(focused) =>\n \n }\n {...formProps}\n />\n \n \n }\n \n
\n );\n};\n\nexport default connect(\n null,\n {\n forgotPassword: API.forgotPassword\n }\n)(RequestForgotPasswordForm);\n","import React, {useState} from 'react';\nimport RequestForgotPasswordForm from \"./RequestForgotPasswordForm\";\nimport {Col, Row} from \"reactstrap\";\nimport SimplePageScaffold from \"../lib/SimplePageScaffold\";\n\nexport default () => {\n const [emailSent, setEmailSent] = useState(false);\n return (\n \n \n \n

Forgot Password

\n

We'll send you an email with a link to\n reset your password.

\n \n \n {!emailSent\n ? setEmailSent(sent)}/>\n : renderEmailSent()\n }\n \n
\n
\n );\n};\n\nconst renderEmailSent = () => {\n return (\n
\n

\n Email Sent\n

\n
\n );\n};","import React from 'react';\nimport './index.scss';\nimport classNames from \"classnames\";\n\ninterface TitleProps {\n text: string;\n sm?: boolean;\n md?: boolean;\n lg?: boolean;\n className?: string;\n primary?: boolean;\n secondary?: boolean;\n tertiary?: boolean;\n}\n\nexport const Title = function (props: TitleProps) {\n const className = props.className;\n const color = props.tertiary ? \"white\" : props.secondary ? \"light-blue\" : \"dark-blue\";\n const classes = classNames(className, color, \"mx-sm-auto\");\n let element = props.sm ?

{props.text}

\n : props.md ?

{props.text}

\n :

{props.text}

;\n return (\n
\n {element}\n
\n );\n};\n\ninterface IText {\n text: string;\n sm?: boolean;\n md?: boolean;\n lg?: boolean;\n className?: string;\n style?: object;\n primary?: boolean;\n secondary?: boolean;\n tertiary?: boolean;\n}\n\nexport const Text = function (props: IText) {\n const classes = classNames(props.className);\n return (\n

\n {props.text}\n

\n );\n};\n","import React, {useEffect} from 'react';\nimport {Title} from \"../Text\";\nimport CreatePasswordForm from \"../CreatePasswordPage/CreatePasswordForm\";\nimport {RouteComponentProps} from \"react-router\";\nimport {setForgotPasswordTempToken} from \"../../sagas/login\";\nimport {isJwtExpired} from \"../../lib/helpers\";\nimport {connect} from \"react-redux\";\nimport {ActionCreator} from '../../store/messages';\nimport {Col, Row} from \"reactstrap\";\nimport SimplePageScaffold from \"../lib/SimplePageScaffold\";\nimport { WithLoader } from '../lib/WithLoader';\nimport { ApplicationState } from '../../store';\n\ninterface MatchParams {\n token: string;\n}\n\ninterface ForgotPasswordProps extends RouteComponentProps {\n isLoading?: boolean;\n}\n\ninterface DispatchProps {\n setTokenExpired: (isExpired: boolean) => void;\n}\n\ntype Props = ForgotPasswordProps & DispatchProps;\n\nconst ForgotPassword = (props: Props) => {\n useEffect(() => {\n const token = props.match.params.token;\n if (isJwtExpired(token)) {\n props.setTokenExpired(true);\n } else {\n setForgotPasswordTempToken(token);\n }\n }, [props]);\n return (\n \n \n \n \n </Col>\n <Col sm={{ offset: 2, size: 8 }} xs=\"12\" className=\"mt-30px\">\n <WithLoader isLoading={props.isLoading} style={{minHeight: \"210px\", height: \"210px\"}}>\n <CreatePasswordForm/>\n </WithLoader>\n </Col>\n </Row>\n </SimplePageScaffold>\n );\n};\n\nexport default connect(\n (state: ApplicationState) => {\n if (state === undefined || state === undefined) {\n return {\n isLoading: false\n };\n }\n\n return {\n isLoading: state.api.isFetching\n };\n },\n {\n setTokenExpired: ActionCreator.setTokenExpired\n }\n)(ForgotPassword);\n","import React, {useEffect, Fragment, ReactNode} from 'react';\r\nimport {Title, Message, SubTitle} from '../lib/Copy';\r\nimport animationData from '../../assets/complete_animation.json';\r\nimport lottie from 'lottie-web';\r\nimport Row from 'reactstrap/lib/Row';\r\nimport Col from 'reactstrap/lib/Col';\r\nimport DashboardPageStepScaffold from '../lib/DashboardPageStepScaffold';\r\nimport PreserveIcon from \"../../assets/preserve.png\";\r\nimport InspectIcon from \"../../assets/inspect.png\";\r\nimport GoogleStore from \"../../assets/google_playstore.png\";\r\nimport iOSStore from \"../../assets/ios_store.png\";\r\nimport Marketplace from \"../../assets/marketplace.png\";\r\nimport VideoTutorial from \"../../assets/video_tutorial.png\";\r\nimport CompletionLogin from \"../../assets/completion_login.png\";\r\nimport {isAndroid, isBrowser, isIOS} from \"react-device-detect\";\r\nimport ExternalLink from '../lib/ExternalLink';\r\nimport {ApplicationState} from \"../../store\";\r\nimport {connect} from \"react-redux\";\r\nimport classNames from \"classnames\";\r\nimport ContactInfo from \"../../assets/contact_info.jpg\";\r\n\r\ninterface StateProps {\r\n loading: boolean;\r\n hasPreserve: boolean;\r\n hasInspections: boolean;\r\n isFastTracked: boolean;\r\n}\r\n\r\ntype Props = StateProps;\r\n\r\nconst CompletionPage = (props: Props) => {\r\n useEffect(() => {\r\n lottie.loadAnimation({\r\n container: document.getElementById(\"completion__animation\") as Element,\r\n renderer: 'svg',\r\n loop: false,\r\n autoplay: true,\r\n animationData: animationData\r\n });\r\n }, [props.loading]);\r\n return (\r\n <DashboardPageStepScaffold className=\"completion\">\r\n <Row>\r\n <Col sm={{offset: 1, size: 10}}>\r\n <div id=\"completion__animation\" className=\"mx-auto\"/>\r\n <Title className=\"completion__complete mt-15px\">Congratulations!\r\n \r\n You’ve successfully applied to be part of the most elite vendor\r\n network in Mortgage Field Servicing.\r\n \r\n \r\n \r\n {\r\n props.isFastTracked ?\r\n <>\r\n Step 1: Download Our App\r\n
\r\n {\r\n props.hasPreserve ?\r\n \r\n : \r\n }\r\n {\r\n props.hasInspections ?\r\n \r\n : \r\n }\r\n
\r\n \r\n \r\n Step 2: Log In On the App\r\n \r\n \r\n Forgot your password?\r\n

\r\n \r\n Click here to reset your Safeview Preserve™ password\r\n \r\n

\r\n

\r\n \r\n Click here to reset your Safeview Inspect™ password\r\n \r\n

\r\n \r\n \r\n \r\n \r\n Step 3: Watch the Video\r\n \r\n \r\n Step 4: Start Doing Work\r\n \r\n \r\n :\r\n <>\r\n Step 1: Download Our App\r\n
\r\n {\r\n props.hasPreserve ?\r\n \r\n : \r\n }\r\n {\r\n props.hasInspections ?\r\n \r\n : \r\n }\r\n
\r\n \r\n\r\n Step 2: We'll Be In Touch!\r\n \r\n \r\n \r\n If you’d like to get in touch with us, you can reach us by phone or email.\r\n \r\n \r\n
\r\n \r\n \r\n Phone: 216 739 2900 Ext.2192 \r\n \r\n \r\n \r\n \r\n Email: Recruiting@safeguardproperties.com \r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\ninterface StepSectionProps {\r\n title: string;\r\n message: string;\r\n image: any;\r\n className?: string;\r\n children?: ReactNode;\r\n}\r\n\r\nconst StepSection = (props: StepSectionProps) => (\r\n \r\n \r\n {props.title}\r\n \r\n \r\n \r\n \r\n {props.title}\r\n \r\n \r\n \r\n {props.message}\r\n \r\n \r\n {props.children}\r\n \r\n \r\n \r\n);\r\n\r\ninterface StepSectionWithAppProps {\r\n iosLink: string;\r\n androidLink: string;\r\n}\r\n\r\nconst StepSectionWithApps = (props: StepSectionProps & StepSectionWithAppProps) => (\r\n \r\n \r\n {\r\n (isAndroid || isBrowser)\r\n ?\r\n \r\n \r\n \r\n : \r\n }\r\n \r\n \r\n {\r\n (isIOS || isBrowser)\r\n ?\r\n \r\n \"Apple\r\n \r\n : \r\n }\r\n \r\n \r\n);\r\n\r\nexport default connect((state: ApplicationState) => {\r\n if (state == null) {\r\n return {\r\n hasPreserve: false,\r\n hasInspections: false,\r\n loading: true,\r\n isFastTracked: false,\r\n } as StateProps;\r\n }\r\n\r\n return {\r\n hasPreserve: state.user!.workTypeGrassAndSnow || state.user!.workTypeMaintenance,\r\n hasInspections: state.user!.workTypeInspections,\r\n loading: false,\r\n isFastTracked: false,\r\n } as StateProps;\r\n})(CompletionPage);\r\n\r\ninterface StepTitleProps {\r\n children: ReactNode;\r\n}\r\n\r\nconst StepTitle = (props: StepTitleProps) => (\r\n

{props.children}

\r\n);\r\n\r\nconst Divider = () => (\r\n \r\n
\r\n \r\n);","import React, { useEffect, useState, Fragment } from 'react';\nimport \"./styles.scss\";\nimport { connect } from 'react-redux';\nimport { ContinueButton, Email, Form, FormChildProps, getIconColor, Password } from \"../../Form\";\nimport { Label } from \"reactstrap\";\nimport { API } from \"../../../api\";\nimport { ApplicationState } from \"../../../store\";\nimport { getRequiredMsg, hasContent } from \"../../../lib/helpers\";\nimport { getApiError } from \"../../../store/helpers\";\nimport { Link } from \"react-router-dom\";\nimport { Routes } from \"../../../routes\";\nimport { MailIcon, PasswordIcon } from \"../../../assets/icons\";\n\ninterface StateProps {\n isLoading?: boolean;\n apiError?: string;\n}\n\ninterface DispatchProps {\n onContinue?: () => void;\n onFailure?: () => void;\n logIn: (data: { email: string, password: string }) => void;\n}\n\ntype Props = StateProps & DispatchProps;\n\nclass LoginErrors {\n email?: string;\n password?: string;\n}\n\nconst LoginForm = (props: Props) => {\n const [email, setEmail] = useState('');\n const [password, setPassword] = useState('');\n const { apiError } = props;\n\n const handleSubmit = (f: Props) => {\n props.logIn({ email, password });\n };\n\n useEffect(() => {\n if (hasContent(apiError)) {\n props.onFailure && props.onFailure();\n }\n\n });\n\n return (\n
\n {\n const errors = new LoginErrors();\n errors.email = getRequiredMsg(f.email, 'Email');\n errors.password = getRequiredMsg(f.password, 'Password');\n return errors;\n }}\n values={{\n email,\n password\n }}\n >\n {\n (formProps: FormChildProps) =>\n \n \n setEmail(v)}\n value={email}\n validationMessage={formProps.errors.email}\n prepend={(focused) =>\n \n }\n {...formProps}\n />\n setPassword(v)}\n value={password}\n validationMessage={formProps.errors.password}\n prepend={(focused) =>\n \n }\n {...formProps}\n />\n
\n Forgot Password\n \n
\n
\n }\n \n
\n );\n};\n\nexport default connect(\n (state: ApplicationState) => {\n if (!state || !state.api) {\n return { apiError: '', isLoading: false };\n }\n\n return {\n isLoading: state.api.isFetching,\n apiError: getApiError(state, \"INVALID_CREDENTIALS\", \"Invalid Email or Password\")\n };\n },\n {\n logIn: API.logIn\n }\n)(LoginForm);\n","import React, { useState } from 'react';\nimport LoginForm from \"./LoginForm\";\nimport { connect } from \"react-redux\";\nimport { ApplicationState } from \"../../store\";\nimport { Col, Row } from \"reactstrap\";\nimport SimplePageScaffold from \"../lib/SimplePageScaffold\";\nimport { WithLoader } from '../lib/WithLoader';\n\ninterface StateProps {\n isLoading: boolean;\n forgotPasswordTokenExpired?: boolean;\n}\n\ntype Props = StateProps;\n\nconst LoginPage = (props: Props) => {\n const [title, setTitle] = useState('Log In');\n const errorMessage = props.forgotPasswordTokenExpired ? \"The forgot password link expired.\" : '';\n return (\n \n \n \n

{title}

\n \n \n \n

\n {errorMessage}\n

\n setTitle('Logging In')}\n onFailure={() => setTitle('Log In')}\n />\n
\n \n
\n
\n );\n};\n\nexport default connect(\n (state: ApplicationState) => {\n if (state === undefined || state === null) {\n return {\n isLoading: true\n };\n }\n\n return {\n isLoading: state.api.isFetching,\n forgotPasswordTokenExpired: state.messages.forgotPasswordTokenExpired\n };\n },\n)(LoginPage);\n","import * as React from 'react';\nimport './styles.scss';\nimport { Redirect, Route, RouteComponentProps, Switch, withRouter } from 'react-router';\nimport { connect } from \"react-redux\";\nimport { ApplicationState } from \"./store\";\nimport { isLoggedIn, isTempLoggedIn, isForgotPasswordTempLoggedIn } from \"./sagas/login\";\nimport Layout from './components/Layout';\nimport Home from './components/HomePage';\nimport AboutUs from './components/AboutUsPage';\nimport CreatePassword from './components/CreatePasswordPage';\nimport DashboardPage from './components/DashboardPage';\nimport BackgroundCheckPage from './components/BackgroundCheckPage';\nimport CompanyInfoPage from './components/CompanyInfoPage';\nimport IdentificationPage from './components/IdentificationPage';\nimport InsurancePage from './components/InsurancePage';\nimport TermsPage from './components/TermsPage';\nimport TermsOfUsePage from './components/TermsOfUsePage';\nimport FAQPage from './components/FAQPage';\nimport PrivacyPolicyPage from './components/PrivacyPolicyPage';\nimport ContactUsPage from './components/ContactUsPage';\nimport RequestForgotPasswordPage from './components/RequestForgotPasswordPage';\nimport ForgotPasswordPage from './components/ForgotPasswordPage';\nimport CompletionPage from './components/CompletionPage';\nimport { Routes } from \"./routes\";\nimport LoginPage from \"./components/LoginPage\";\nimport { useEffect } from \"react\";\nimport { API } from \"./api\";\nimport { hasContent } from './lib/helpers';\n\ninterface StateProps {\n isLoggedIn: boolean;\n isTempAccount: boolean;\n isForgotPasswordTempAccount: boolean;\n}\n\ninterface DispatchProps {\n getUser: () => void;\n}\n\ntype Props = StateProps & DispatchProps;\n\nconst RoutesComponent = (props: Props) => {\n useEffect(() => {\n const script = document.createElement('script');\n script.src = \"https://assets.cloudfil.es/cloudfiles.js\";\n script.async = false;\n document.body.appendChild(script);\n\n const script2 = document.createElement('script');\n script2.src = \"/cloudfilesinit.js\";\n script2.async = false;\n document.body.appendChild(script2);\n\n return () => {\n document.body.removeChild(script);\n document.body.removeChild(script2);\n }\n }, []);\n useEffect(() => {\n try {\n if (props.isLoggedIn || props.isTempAccount) {\n props.getUser();\n }\n window.scrollTo(0, 0);\n } catch (e) {\n }\n }, [props]);\n return (\n \n \n props.isTempAccount\n ? \n : props.isLoggedIn\n ? \n : \n }\n />\n\n (\n props.isTempAccount\n ? \n : props.isLoggedIn\n ? \n : \n )\n }\n />\n \n \n \n \n \n \n\n \n \n \n \n \n \n props.isLoggedIn\n ? \n : }\n />\n hasContent(p.match.params.token) || props.isForgotPasswordTempAccount\n ? \n : } />\n\n props.isTempAccount\n ? \n : props.isLoggedIn\n ? \n : \n }\n />\n props.isLoggedIn\n ? \n : \n }\n />\n \n \n );\n};\n\ninterface getRenderProps {\n isTempAccount: boolean;\n isLoggedIn: boolean;\n component: React.ComponentType> | React.ComponentType;\n}\n\nconst getRender = (props: getRenderProps) => () => {\n return (\n props.isTempAccount\n ? \n : props.isLoggedIn\n ? React.createElement(props.component, {})\n : \n );\n};\n\nexport default withRouter(connect(\n (state: ApplicationState) => {\n if (!state.user) {\n return {\n isLoggedIn: false,\n isTempAccount: false,\n isForgotPasswordTempAccount: false\n };\n }\n return {\n isLoggedIn: isLoggedIn(),\n isTempAccount: isTempLoggedIn(),\n isForgotPasswordTempAccount: isForgotPasswordTempLoggedIn()\n };\n },\n {\n getUser: API.getUser,\n }\n)(RoutesComponent) as any);\n","// In production, we register a service worker to serve assets from local cache.\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 the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\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\nexport default function register() {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const url = process.env.PUBLIC_URL as string;\n const publicUrl = new URL(url, window.location.toString());\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/facebookincubator/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. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing as ServiceWorker;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\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 }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string) {\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 (response.status === 404 || (contentType && contentType.indexOf('javascript') === -1)) {\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);\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.');\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 {call, put, takeEvery, select} from 'redux-saga/effects';\nimport {Actions as UserActions} from \"../store/User\";\nimport Axios, {AxiosResponse} from \"axios\";\nimport {ApiAction, API_STATUS_CODE} from \"../store/api\";\nimport {getJwt} from \"./login\";\nimport {API} from \"../api\";\n\nconst getHeaders = () => ({'Authorization': 'Bearer ' + getJwt()});\n\nconst getCall = (action: ApiAction) => Axios.get(action.payload.url, {headers: getHeaders()});\n\nconst postCall = (action: ApiAction) => Axios.post(action.payload.url, action.payload.requestData, {\n headers: getHeaders()\n});\n\nconst putCall = (action: ApiAction) => Axios.put(\n action.payload.url,\n action.payload.requestData, {\n headers: getHeaders()\n }\n);\n\nfunction* calling(action: ApiAction) {\n yield put({\n type: `${action.type}_CALLING`,\n payload: {\n isFetching: true,\n isSingleField: action.payload.isSingleField,\n getUserAfterCall: action.payload.getUserAfterCall,\n }\n });\n}\n\nfunction* putAction(\n state: 'SUCCESS' | 'FAILED' | 'DELETE' | 'PUT',\n action: ApiAction,\n data: object,\n status: number) {\n yield put({\n type: `${action.type}_${state}`,\n payload: {\n isFetching: false,\n isSingleField: action.payload.isSingleField,\n getUserAfterCall: action.payload.getUserAfterCall,\n status,\n data\n }\n });\n}\n\nfunction* performCall(\n apiCall: (apiAction: ApiAction) => Promise>,\n action: ApiAction\n) {\n yield calling(action);\n try {\n const {data, status} = yield call(apiCall, action);\n yield putAction('SUCCESS', action, data, status);\n yield put({\n type: API_STATUS_CODE,\n payload: {\n status\n }\n });\n } catch (e) {\n const status = e.response.status;\n const data = e.response.data;\n yield putAction('FAILED', action, data, status);\n yield put({\n type: API_STATUS_CODE,\n payload: {\n ...data,\n status\n }\n });\n }\n}\n\nfunction* handleDocumentUpload(apiAction: ApiAction) {\n yield performCall(postCall, apiAction);\n yield put(API.getUser());\n}\n\nfunction* handlePutField(apiAction: ApiAction) {\n yield performCall(putCall, apiAction);\n\n const shouldGetUser = yield select(state => state.api.getUserAfterCall);\n if (shouldGetUser) {\n yield put(API.getUser());\n }\n}\n\nexport function* apiSaga() {\n yield takeEvery(UserActions.GET_USER, performCall, getCall);\n yield takeEvery(UserActions.PUT_FIELD, handlePutField);\n yield takeEvery([\n UserActions.POST_ACCOUNT,\n UserActions.POST_ACCOUNT_PASSWORD,\n UserActions.POST_FORGOT_PASSWORD,\n UserActions.POST_LOGIN],\n performCall,\n postCall\n );\n\n yield takeEvery(\n UserActions.POST_DOCUMENT,\n handleDocumentUpload\n );\n}","import { Actions, areAllStepsComplete, UserFields, ActionCreators } from \"../store/User\";\nimport { ContinueFromRoute, GenericAction } from \"../store\";\nimport { takeEvery, put, select } from \"redux-saga/effects\";\nimport { Routes } from \"../routes\";\nimport { push } from \"connected-react-router\";\nimport { TOKEN_EXPIRED } from \"../store/messages\";\nimport { clearTempJwtFromStorage } from \"./login\";\n\nfunction* handleContinueFromPage(action: ContinueFromRoute) {\n var user = yield select(s => s.user);\n var isComplete = false;\n if (!!user) {\n var viewedCompletionPage = !!user.viewedCompletionPage;\n isComplete = areAllStepsComplete(user) || false;\n if (isComplete && (!viewedCompletionPage || action.payload.currentRoute === Routes.terms)) {\n yield put(push(Routes.complete));\n yield put(ActionCreators.setField(UserFields.VIEWED_COMPLETION_PAGE, true));\n return;\n }\n }\n let navigateTo = '';\n switch (action.payload.currentRoute) {\n case Routes.companyInfo:\n navigateTo = Routes.identification;\n break;\n case Routes.identification:\n navigateTo = Routes.backgroundCheck;\n break;\n case Routes.backgroundCheck:\n navigateTo = Routes.insurance;\n break;\n case Routes.insurance:\n navigateTo = Routes.terms;\n break;\n case Routes.terms:\n navigateTo = Routes.dashboard;\n break;\n default:\n navigateTo = Routes.dashboard;\n }\n yield put(push(navigateTo));\n}\n\nfunction* goToDashboard(action: GenericAction) {\n var user = yield select(s => s.user);\n var isComplete = false;\n if (!!user) {\n var viewedCompletionPage = !!user.viewedCompletionPage;\n isComplete = areAllStepsComplete(user) || false;\n if (isComplete && !viewedCompletionPage) {\n yield put(push(Routes.complete));\n yield put(ActionCreators.setField(UserFields.VIEWED_COMPLETION_PAGE, true));\n return;\n }\n }\n yield put(push(Routes.dashboard));\n}\n\nfunction* handleTokenExpired(action: GenericAction) {\n clearTempJwtFromStorage();\n yield put(push(Routes.login));\n}\n\nexport function* navigationSaga() {\n yield takeEvery(Actions.CONTINUE_FROM_PAGE, handleContinueFromPage);\n yield takeEvery(Actions.GO_TO_DASHBOARD, goToDashboard);\n yield takeEvery(TOKEN_EXPIRED, handleTokenExpired);\n}","import {all, fork} from 'redux-saga/effects';\nimport {apiSaga} from './api';\nimport {loginSaga} from './login';\nimport {navigationSaga} from \"./navigation\";\n\nexport default function* rootSaga() {\n yield all([\n fork(apiSaga),\n fork(loginSaga),\n fork(navigationSaga)\n ]);\n}","import 'react-app-polyfill/ie11';\nimport 'bootstrap/dist/css/bootstrap.css';\nimport 'react-app-polyfill/stable';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport {Provider} from 'react-redux';\nimport {ConnectedRouter} from 'connected-react-router';\nimport {createBrowserHistory} from 'history';\nimport createSagaMiddleware from '@redux-saga/core';\nimport configureStore from './store/configureStore';\nimport App from './App';\nimport registerServiceWorker from './registerServiceWorker';\nimport rootSaga from \"./sagas\";\n\n// Create browser history to use in the Redux store\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href') as string;\nconst history = createBrowserHistory({basename: baseUrl});\nconst sagaMiddleware = createSagaMiddleware();\n\n// Get the application-wide store instance, prepopulating with state from the server where available.\nconst {store} = configureStore(history, sagaMiddleware);\nsagaMiddleware.run(rootSaga);\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root')\n);\n\nregisterServiceWorker();\n"],"sourceRoot":""}