{"version":3,"sources":["assets/images/icon_placeholder.png","assets/images/main_icon.png","components/organisms/CardBase.js","components/organisms/CategoryBase.js","components/organisms/EmptyStateHolder.js","components/organisms/ExternalApplicationLink.js","assets/images/solid_main_icon.png","components/organisms/FormComponent.js","components/organisms/ModuleLink.js","components/organisms/Hero.js","components/organisms/ProfileBanner.js","components/organisms/Section.js","components/organisms/SectionAlternate.js","components/organisms/CertificateFields.js","components/organisms/CovidVaccine.js","components/organisms/DataListAndRowView.js","components/organisms/EmployeeSearchBar.js","components/organisms/InfluenzaVaccine.js","components/atoms/DarkModeToggler.js","components/atoms/Icon.js","components/atoms/Image.js","components/atoms/LearnMoreLink.js","components/atoms/ScrollTop.js","components/atoms/Button.js","components/atoms/CheckBox.js","components/atoms/TextField.js","components/atoms/Select.js","components/atoms/ImageNav.js","components/atoms/TextFieldDatePicker.js","components/atoms/CircularLoader.js","components/atoms/HelperText.js","components/atoms/Alert.js","components/atoms/Dialog.js","components/molecules/DialogConfirm.js","services/AppConfigService.js","services/ConnectService.js","services/CredentialsService.js","services/DashboardService.js","components/molecules/LanguageSelect.js","components/molecules/SectionHeader.js","components/molecules/DragNDrop.js","components/molecules/ImageGallery.js","components/molecules/PDFViewer.js","components/molecules/Snackbar.js","components/molecules/DialogAlert.js","components/molecules/PDFViewerAndToolbar.js","components/molecules/CountiesFilter.js","components/molecules/Signature.js","components/molecules/ModuleList.js","components/molecules/CustomMenu.js","components/molecules/SearchEmployee.js","components/molecules/SearchResults.js","components/molecules/SelectedEmployee.js","components/molecules/EmployeeRow.js","helpers/AppDetails.js","helpers/RequestApi.js","helpers/RequestVersionedApi.js","helpers/RequestVersionedConnectApi.js","helpers/Session.js","utils/Config.js","utils/NetworkSettings.js","theme/palette.js","theme/index.js","WithLayout.js","store/route.js","PrivateRoute.js","assets/images/main_icon_negative.png","layouts/Main/components/Footer.js","store/user.js","layouts/Main/components/Topbar.js","assets/data/connect_modules_list.js","assets/images/contacts_icon.png","assets/images/ContEdu_icon.png","assets/images/Credentials_icon.png","assets/images/Documents_icon.png","assets/images/Forms_icon.png","assets/images/Protocols_icon.png","assets/images/Selfservice_icon.png","assets/images/Safety_icon.png","assets/images/GMR_Connect_Portal.pdf","layouts/Main/components/Sidebar/components/SidebarNav/SidebarNav.js","layouts/Main/components/Sidebar/Sidebar.js","layouts/Main/Main.js","layouts/Minimal/components/Topbar/Topbar.js","layouts/Minimal/Minimal.js","layouts/DocsLayout/components/Topbar/Topbar.js","layouts/DocsLayout/components/Navbar/components/NavItem/NavItem.js","layouts/DocsLayout/components/Navbar/data/index.js","layouts/DocsLayout/components/Navbar/Navbar.js","layouts/DocsLayout/DocsLayout.js","components/molecules/SessionTimeout.js","layouts/None/None.js","views/Account/components/Profile.js","views/Account/components/Settings.js","views/Account/Account.js","views/Communications/Communications.js","views/Contacts/Contacts.js","views/ContinuingEducation/ContinuingEducation.js","views/Forms/Forms.js","views/Documents/Documents.js","views/Protocols/Protocols.js","views/SelfService/SelfService.js","views/Credentials/components/AddCertificates/helperFunctions.js","views/Credentials/components/AddCertificates/validate.js","views/Credentials/components/AddCertificates/EcardModal.js","views/Credentials/components/AddCertificates/index.js","views/Credentials/components/ViewCertificates.js","views/Credentials/components/ListBase.js","views/Credentials/components/ItemDetailsBase.js","views/Credentials/components/UpdateCertificate.js","views/Credentials/components/formatMissingCert.js","store/credentials.js","views/Credentials/Credentials.js","store/dashboard.js","views/Dashboard.js","assets/images/GMR_Background.png","assets/images/Connect_Logo.png","views/Login.js","views/Safety/Safety.js","views/LoginTest.js","views/NotFound.js","views/Map/Map.js","Routes.js","App.js","reportWebVitals.js","i18nextInit.js","store/client.js","store/form.js","store/admin.js","store/index.js","index.js","store/counties.js","store/certificates.js","store/addCertificate.js"],"names":["useStyles","makeStyles","theme","root","height","width","withShadow","boxShadow","palette","cardShadow","noShadow","noBorder","border","noBg","background","liftUp","transition","boxShadowStart","boxShadowEnd","transform","content","flexDirection","alignItems","padding","spacing","breakpoints","up","left","right","center","CardBase","props","children","align","className","cardContentProps","rest","classes","Card","clsx","CardContent","defaultProps","featureCheck","marginRight","logoContainer","textAlign","display","justifyContent","verticalAlign","logoImage","ctaWrapper","flex","alignSelf","iconColor","color","primary","main","CategoryBase","title","subtitle","icon","categoryComponent","cta","titleProps","subtitleProps","Grid","container","item","xs","href","faFolderOpen","size","Typography","variant","gutterBottom","Box","fontWeight","m","Divider","margin","iconContainer","marginBottom","marginLeft","pointerIconColor","gray","EmptyStateHolder","placeholderText","displaySelectIcon","locationIcon","isLoading","faCheckCircle","src","lazy","faHandPointLeft","faCompass","sx","CircularProgress","fontSize","borderRadius","text","dashButton","logoSquare","logoRectangle","a","textDecoration","ExternalApplicationLink","name","logo","externalLink","key","useState","isSquare","setIsSquare","getHeightAndWidthOfImage","useCallback","img","Image","onload","this","useEffect","style","target","rel","icon_placeholder","alternate","inner","maxWidth","layout","contentWidth","innerNarrowed","requiredBadge","backgroundColor","completedBadge","iconButton","reviewSectionHeader","questionAnswersHolder","paddingBottom","answers","sigImageContainer","multiButton","viewer","window","innerWidth","innerHeight","stickToCenter","position","bottom","zIndex","loadingBox","FormComponent","currentForm","submitFormPDF","history","useHistory","React","currentPage","setCurrentPage","disableNextButton","setDisableNextButton","questionnaire","setQuestionnaire","requiredFieldsCount","setRequiredFieldsCount","reviewForm","setReviewForm","submitMessage","setSubmitMessage","totalRatings","setTotalRatings","totalScore","setTotalScore","openSigModal","setOpenSigModal","failedAgreement","setFailedAgreement","failedAgreementDisableNext","setFailedAgreementDisableNext","alertMessage","setAlertMessage","prevPhoneNumber","setPrevPhoneNumber","heightInFeet","setHeightInFeet","heightInInches","setHeightInInches","checkCurrentPage","setCheckCurrentPage","enableNameField","setEnableNameField","credentials","useSelector","state","user","scrollTo","top","behavior","allRequiredFields","questions","filter","question","field_type","isRequired","answer","length","includes","handleBackToHome","goBack","handlePageBack","checkPageAndQuestion","questionID","forEach","index","date","moment","Date","format","label","onValueChange","employeeProfile","firstName","lastName","jobTitleName","gender","questionIndex","updatedValue","ratingTotal","undefined","tempScore","parseInt","tempTotalRatings","clonedQuestionnaire","updatedQuestions","map","currentQuestionIndex","handleHeight","measurement","concat","IsJsonString","str","JSON","parse","e","parseMultiSelectValue","questionAnswers","toString","replace","parseTimeValue","indexOf","slice","submitPDF","formKey","doc","jsPDF","pageHeight","internal","pageSize","pageWidth","y","addImage","solid_main_icon","employeeNumber","email","setFontSize","setFont","formName","page","screenKey","addPage","splitLabel","splitTextToSize","lastIndex","indent","isNaN","halfLength","x","getStringUnitWidth","screenTitle","splitText","join","output","then","result","console","log","formContents","currentAnswer","push","ex","ctaGroup","Button","disabled","onClick","disableGutter","id","section","sectionIndex","minWidth","input","textarea","multiselectlist","datefield","time","radiobuttonlist","textfield","checkbox","sectionHeader","Badge","badge","TextField","isViewOnly","placeholder","onChange","value","fullWidth","InputLabelProps","shrink","inputProps","inputMode","currentValue","filterNumbersOnly","options","handleChange","cvLength","formatted","formatPhoneNumber","isEditable","multiline","rows","RadioGroup","updatedAnswers","currentAnswers","updatedValueIndex","splice","stringify","onMultiSelectValueChange","select_options","selectOption","selectOptionIndex","FormControlLabel","checked","selectValue","control","Radio","direction","IconButton","getMonth","getDate","getFullYear","formatDate","utc","local","KeyboardButtonProps","keyboardIcon","faClock","defaultValue","required","focused","Checkbox","Rating","max","signature","Container","images","original","showNav","fullscreen","badgeContent","dialogProps","open","okBtnText","cancelBtnText","onOkClickHandler","onCancelClickHandler","iconColorActive","iconColorInactive","ModuleLink","isModuleActive","currentCounty","tileName","setTileName","secondTileName","setSecondTileName","checkName","county","noWrap","overflow","dark","textWhite","Hero","sectionNoPaddingTop","paddingTop","promoSection","purpleStripes","blueStripes","blueStripesThin","blueStripesGradient","ProfileBanner","disablePadding","narrow","Section","SectionAlternate","imageWrapper","marginTop","typography","CertificateFields","filterValues","isSmUp","hash","formik","values","setState","setOpenModal","addCertificate","eCardData","setECardData","setIsFrontImageRequired","setIsBackImageRequired","isChangingImage","setIsChangingImage","certificates","certificateTypes","eCardDataUpdatedRef","eCardMapData","setEcardMapData","isEcard","setIsEcard","ecardAlert","setEcardAlert","previousCertificateRef","useRef","certificateID","Object","current","Number","prevState","stateDLFormat","v","setFieldValue","setFieldTouched","selectedCertificate","find","isFrontImageRequired","isBackImageRequired","isEcardCert","eCard","codeValue","CredentialsService","eCardMapping","eCards","filterCertBasisOfAddUpdateFlag","statesOptions","countiesOptions","cert","disposition","addedStateOrCountyCerts","addedCert","stateCounty","stateCodes","stateCode","filteredStates","stateCountyOptions","stateDescription","tempStateCountyOptions","Array","from","groupByStates","_","groupBy","tempModifiedStateCounties","keys","stateInfo","counties","tempCounties","addedCounties","countyName","filteredCounties","data","isMissingCert","useMemo","checkSelectedCertType","onStateChange","event","getStateDLFormat","response","onDateChange","split","substring","args","handleBlur","renderState","onBlur","formProps","error","touched","Boolean","errors","helperText","md","pop","documentNumber","splitCertNumberAndZipCode","certificateTypesOptions","certificateName","isCapital","formatMsg","toUpper","type","zipCode","agencyOptions","agency","setExpDate","add","onIssueDateChange","issueDate","expirationDate","isExpCert","renderCertificateFields","certificateImage","FormControl","formControl","uploadedImage","hasUploadedImage","changeImageClick","restrictFileExplorer","dropZoneProps","disableUpdateImage","frontImage","setUploadedImage","backImage","renderImageUploadFields","onYesClickHandler","onNoClickHandler","dialog","CovidVaccine","forwardRef","ref","manufacturersList","certificateList","setManufacturers","actions","loading","openBoosterAlert","openUnVaccinatedConfirm","boosterAlertMsg","boosterShotAlertShownOnce","vaccineState","setVaccineState","getManufacturersList","createAndSetManufacturerOptions","manufacturersOptions","manufacturer","toLower","onCertificateNameChange","onDialogToggle","dialogState","onUnVaccinatedChange","handleBoosterShootChange","confirmBtnClicked","vaccineCount","getvaccineCount","johnson","moderna","pfizer","astraZeneca","useImperativeHandle","validateAndDisplayBoosterAlert","vaccineBooster","isVaccineDeclined","activeFlag","isBooster","isAfter","reduce","test","renderVaccineBooster","vaccineCondition","issueDateDateCondition","isBefore","lotNumber","paper","connect","dispatch","bindActionCreators","menu","list","flexWrap","listItem","paddingRight","paddingLeft","borderLeft","listItemActive","pagePaddingTop","paperHolder","unit","whiteSpace","wordBreak","paperTitle","flexGrow","paperText","smallContainer","down","hidden","parentIcon","childIcon","selfServiceWrapper","header","contactsCategories","maxHeight","overflowY","DataListAndRowView","useTheme","emptyStateText","fetchedData","mainDisplayColumns","altDisplayColumn","isPDFView","isForm","onRowSelected","module","pdfType","hasFilter","hasModal","safetyFormSelected","setSafetyFormSelected","setOpenRespAlert","hasRespMedClearance","setOriginalData","setFilteredData","selectedRow","setSelectedRow","originalData","filteredData","categories","setCategories","notCategorized","setNotCategorized","selectedCategory","setSelectedCategory","holdCategories","setHoldCategories","holdNoCategory","setHoldNoCategory","lastSelectedIndex","setLastSelectedIndex","isViewingFile","setIsViewingFile","isFiltering","setIsFiltering","isMd","useMediaQuery","defaultMatches","manipulateData","temp","noCategory","i","categoryTitle","category","isViewing","renderNoCategoryFiles","row","isMainDisplayShowing","formattedStartDate","startDate","Paper","handleSelectRow","faUser","faFile","Children","toArray","column","renderCategories","rowIndex","handleSelectCategory","formID","selectedData","has","searchCategories","folder","categoryCase","toLowerCase","valueCase","searchNoCategory","file","titleCase","onFilterValueChange","InputProps","endAdornment","InputAdornment","s","toUpperCase","faChevronCircleLeft","image","fileURL","isDownloadable","EmployeeSearchBar","setLoading","noResults","setNoResults","employeeSelected","setEmployeeSelected","employeeData","handleOnClick","setopenUnVaccinatedConfirm","borderColor","divider","borderDark","colors","indigo","modeToggler","cursor","modeTogglerDark","modeTogglerIcon","svgColor","fill","secondary","DarkModeToggler","themeMode","viewBox","xmlns","fillRule","clipRule","d","faSun","extraSmall","small","medium","large","Icon","fontIconClass","fontIconColor","NoSsr","dBlock","srcSet","alt","lazyProps","LearnMoreLink","component","iconProps","typographyProps","ScrollTop","trigger","useScrollTrigger","disableHysteresis","threshold","Zoom","in","role","Fab","ButtonComp","CheckBoxComp","FormHelperText","PropTypes","string","TextFieldComp","textTransform","SelectComp","InputLabel","htmlFor","Select","isArray","MenuItem","option","any","ImageNav","memo","iconName","displayName","textField","TextFieldDatePicker","CircularLoader","HelperText","Alert","elevation","Transition","Slide","Dialog","ariaLabelledby","ariaDescribedby","TransitionComponent","keepMounted","DialogConfirm","contentProps","actionsProps","wrap","getLatestAppBuildDetails","RequestApi","get","Config","appKey","getAppInformation","getCountiesList","RequestVersionedConnectApi","getContactsList","getContinuingEducationList","getDocumentsList","getProtocolsList","getPDFBase64String","getSelfServiceList","getFormsList","getFormByKey","submitForm","payload","post","submitPDFForm","getWebAppVersion","platform","Promise","resolve","reject","encodeURIComponent","catch","err","getemployeeProfile","employeeID","RequestVersionedApi","getListOfEmployeeProfiles","searchRequest","getFilterValues","getCerts","employeeNum","getCertificateImage","addUpdateCertificates","getEcardDetails","eCardNumber","getCertificatesTypes","employeeActionItems","updateEmployeeLastLogin","put","languageMap","en","dir","active","es","LanguageSelect","selected","localStorage","getItem","t","useTranslation","menuAnchor","setMenuAnchor","document","body","currentTarget","Popover","anchorEl","onClose","anchorOrigin","vertical","horizontal","transformOrigin","List","ListSubheader","ListItem","button","i18next","changeLanguage","SectionHeader","titleVariant","subtitleVariant","subtitleColor","overline","fadeUp","titleClasses","labelProps","justifyGrid","justify","DragNDrop","setHasUploadedImage","onDrop","acceptedFiles","maxSize","maxSizeMB","maxWidthOrHeight","useWebWorker","imageCompression","reader","FileReader","onabort","onerror","base64","readAsDataURL","useDropzone","getRootProps","getInputProps","uploadContainer","borderStyle","opacity","buttonContainer","ImgGallery","pdfTitle","isPDF","setIsPDF","showFullScreenButtonOption","setShowFullScreenButtonOption","firstImageIsPDF","setFirstImageIsPDF","secondImageIsPDF","setSecondImageIsPDF","checkImage","fileUrl","items","showThumbnails","lazyLoad","showPlayButton","useBrowserFullscreen","showFullscreenButton","renderLeftNav","faChevronLeft","renderRightNav","faChevronRight","pdfjs","GlobalWorkerOptions","workerSrc","version","modalBackground","default","modalView","PDFViewer","openModal","isMobile","download","Snackbar","close","openSnackbar","autoHideDuration","snackbarMessage","action","alertProps","message","severity","DialogAlert","yesBtnText","noBtnText","DialogTitle","DialogContent","DialogActions","centerLoading","searchButtons","searchIcon","borderRight","PDFViewerAndToolBar","pdfData","setPdfData","pdfUrl","setPdfUrl","toolbarPluginInstance","toolbarPlugin","Toolbar","renderPDFSearch","Search","renderSearchProps","keyword","setKeyword","onKeyDown","keyCode","search","Position","BottomCenter","borderBottom","matchCase","changeMatchCase","offset","wholeWords","changeWholeWords","numberOfMatches","renderPDFSearchArrowButtons","jumpToPreviousMatch","faChevronUp","currentMatch","jumpToNextMatch","faChevronDown","ConnectService","base64String","alert","getUrlFromBase64","url","URL","createObjectURL","base64WithoutPrefix","substr","bytes","atob","out","Uint8Array","charCodeAt","Blob","base64toBlob","workerUrl","CurrentPageInput","Download","EnterFullScreen","GoToNextPage","GoToPreviousPage","NumberOfPages","Print","ZoomIn","ZoomOut","plugins","gridItem","primaryLocationButton","countyTextField","locationButtonText","CountiesFilter","countiesList","listComponent","useDispatch","isSm","setSelectedCounty","bgcolor","Modal","matchingResults","record","startsWith","endIcon","PersonPinCircle","p","footer","sigBorder","signatureCanvas","Signature","sigCanvas","canvasProps","clear","imageURL","getTrimmedCanvas","toDataURL","save","modalContainer","spacing1","spacing2","textWrap","wordWrap","webLink","iconSpace","calendarButton","closeButton","ModuleList","setTitle","formatMobilePhoneNumber","setFormatMobilePhoneNumber","formatOfficePhoneNumber","setFormatOfficePhoneNumber","formatStreetAddress","setFormatStreetAddress","formatCityStateZip","setFormatCityStateZip","companyTitle","setCompanyTitle","startTime","setStartTime","setStartDate","endTime","setEndTime","endDate","setEndDate","googleCalendarEvent","setGoogleCalendarEvent","googleCalendarMobileEvent","setGoogleCalendarMobileEvent","outlookCalendarLiveEvent","setOutlookCalendarLiveEvent","outlookCalendarOfficeEvent","setOutlookCalendarOfficeEvent","openEventModal","setOpenEventModal","formatData","tempTitle","mobilePhone","phoneNumber","remainingPhoneDigits","areaCode","officePhone","address","fullAddress","formattedStreetAddress","formattedCityStateZip","googleCalendarLink","googleCalendarLinkMobile","outlookCalendarOfficeLink","outlookCalendarLiveLink","formatStartDate","formatStartTime","formatEndDate","formatEndTime","startDateWithStartTime","startDateWithEndTime","convertStartDateWithEndTime","toISOString","convertStartTime","convertEndTime","outlookStartTime","outlookEndTime","company","faMapMarkerAlt","emailAddress","faEnvelope","faPhoneAlt","faCalendarAlt","seatsAvailable","faUsers","notes","faClipboard","faTimesCircle","faMicrosoft","faGoogle","BootstrapInput","withStyles","transitions","create","InputBase","menuPaper","CustomMenu","MenuProps","SearchEmployee","isFocused","setIsFocused","searchValue","setSearchValue","getEmployeeData","preventDefault","onFocus","itemContainer","card","SearchResults","sm","boldText","SelectedEmployee","businessUnitID","userStatus","workEmail","lastLogin","businessUnitName","regionName","divisionName","EmployeeRow","currentBuildVersion","appDetails","buildVersion","axios","baseURL","NetworkSettings","fullApiUrl","headers","interceptors","request","use","config","selectedLanguage","token","auth","username","password","store","addNotification","insert","animationIn","animationOut","dismiss","duration","onScreen","apiVersion","connectfullApiUrl","connectApiVersion","getSessionCookie","sessionCookie","Cookies","SessionContext","createContext","setSessionCookie","session","expires","deleteSessionCookie","process","currentAppVersion","demoMode","userName","light","getTheme","mode","responsiveFontSizes","createTheme","fontFamily","appBar","drawer","WithLayout","Component","Layout","jssStyles","querySelector","parentElement","removeChild","AOS","init","once","delay","easing","setTheme","mountedComponent","setMountedComponent","setMode","setItem","localTheme","refresh","useDarkMode","themeToggler","ThemeProvider","CssBaseline","createSlice","initialState","route","reducers","setRoute","PrivateRoute","currentRoute","restOfProps","isAuthenticated","location","exact","to","footerContainer","logoContainerItem","groupTitle","socialIcon","menuListContainer","menuItem","menuGroupItem","menuGroupTitle","navLink","Footer","disableGutters","main_icon_negative","pathname","AppDetails","initialUser","loginSuccess","logoutSuccess","removeItem","generateToken","removeToken","login","currentUser","logout","getToken","navigationContainer","toolbar","listItemText","listItemButton","listItemIcon","popover","expandOpen","logoContainerDark","noUnderline","groupItems","headerText","Topbar","onSidebarOpen","pages","setAnchorEl","setCountiesList","Hidden","smDown","main_icon","connect_modules","closeIcon","spaceBetween","darkMode","bottomPush","rotate","subMenuButtons","SidebarNav","isSupportMenuOpen","setIsSupportMenuOpen","isSafetyUser","useContext","SafetyUserContext","ListItemIcon","smUp","faHome","faUserCircle","application","isActive","link","applications_list","GMR_Connect_Portal","faQuestionCircle","faHeadset","faSignOutAlt","nav","Sidebar","Drawer","anchor","Main","openSidebar","setOpenSidebar","stickyHeader","topbar","landings","services","apps","web","career","helpCenter","contact","blog","portfolio","account","settings","signup","signin","Minimal","itemActive","NavItem","components","mobileDrawer","desktopDrawer","navGroup","navGroupTitle","Navbar","onMobileClose","openMobile","mt","mdUp","wrapper","contentContainer","countdownInterval","timeout","updateContact","General","trim","titleCta","Settings","defaultChecked","TabPanel","other","Account","selectedIndex","setSelectedIndex","handleChangedIndex","newValue","Tabs","indicatorColor","textColor","scrollButtons","centered","Tab","Profile","Communications","Contacts","setFetchedData","useQuery","URLSearchParams","useLocation","query","currentState","sortBy","availableContacts","ContinuingEducation","sortedList","availableClasses","sort","d1","d2","getTime","Forms","currentSelectedForm","setCurrentSelectedForm","forms","onFormSelected","selectedForm","form","onSubmitFormPDF","formBase64String","dateOptions","weekday","year","month","day","hour","minute","second","localTime","localTimezone","match","businessUnit","documentTypeID","documentType","toUTCString","toLocaleDateString","otherFormPayloads","Documents","documents","Protocols","protocols","SelfService","availableLinks","sleep","ms","setTimeout","validate","compState","regexFormat","RegExp","isValid","subtract","isSame","submitButton","EcardModal","setEcardNumber","eCardError","setEcardError","setIsLoading","eCardAlertData","setEcardAlertData","handleAlertButtons","openAlert","openEcard","onHandleEcardBlur","reason","frontImageType","status","actionButtons","topButtons","closeIconColor","AddCertificates","selectedCertImageData","setFilterValues","saveCertificateData","setCertificateTypes","certificateDetails","handleClose","setHash","requiredImage","setRequiredImage","isLoadingOnSubmit","setIsLoadingOnSubmit","covidCertRef","onHashChange","activeHash","filteredCerts","removeAlreadyAddedCerts","createCertificatesTypesOptions","createAgencyOptions","agencies","acc","isAllowDuplicates","allowedDup","notAllowedDup","certificateIds","removedAlreadyAddedCerts","nAllowedcert","b","agencyDescription","addEventListener","onStepChange","removeEventListener","stepNo","formikInitialValues","jobTitle","backImageType","doseNumber","employeeCertificatesID","useFormik","enableReinitialize","initialValues","onSubmit","submitSource","dataSource","fileIDFront","fileID","fileIDBack","isExpiring","submissionID","uuid","updateSource","createdBy","certStatus","certificateType","formatAddUpdateCertificateRequestPayload","resetForm","certs","reload","resetClickHandler","getFormikObject","handleSubmit","obj","renderCertificateBasedOnName","ledgerContainer","CURRENT","EXPIRED","expired","MISSING","missing","PENDING","pending","certificateContainer","ledgerTitle","ViewCertificates","setCertificateDetails","isViewingCert","setIsViewingCert","selectedCert","setSelectedCert","currentlyViewing","setCurrentlyViewing","showPendingMessage","setShowPendingMessage","listBaseRef","handleMobileBackButton","checkCertStatus","currentStatus","assign","formatLabel","formatMissingCert","getCertificates","selectedCertIndex","clickedCert","certNameList","getAllCertificateItems","certificateDispositionID","scrollIntoView","behaviour","block","isViewingItem","handleBack","fullContainer","spaceContainer","selectedCard","nonselectedCard","selectedCardText","invisible","headerContainer","sideBorders","pointer","ListBase","sortCertsBy","setSortCertsBy","currentlySortedType","setCurrentlySortedType","allCertificateItemRefs","createRef","printCertnameWithStateCounty","certInfo","certType","certName","handleToggleSortCerts","sortCertsByColumn","hiddenSmall","ItemDetailsBase","setShowNav","setImages","loadImages","certImage","saveSelectedCertImageData","showImageNav","modelNumber","respiratorType","respiratorSize","testResults","UpdateCertificate","splitByValue","missingCertList","newCertString","certListString","initialEmployeeProfile","saveEmployeeProfileInfo","box","subHeader","flexCenter","plusIcon","leftArrowIcon","minHeight","HeaderPanel","handleClickIndex","faArrowLeft","faPlusCircle","Credentials","addCertClearDataAlert","setAddCertClearDataAlert","addCertificateRef","formikObj","fieldTouchAndEnterInput","touchField","onAddCertAlertYesClickHandler","onAddCertAlertNoClickHandler","saveEmployeeActionData","saveEmployeeActionItems","actionItems","mixins","corporateLogoBox","certIcon","EXPIRING","expiring","credentailsWrapper","CERT_ICONS","faExclamationCircle","Dashboard","displayCounties","setDisplayCounties","corporate_communications","corporate_applications","displayModule","isHoveringWorkLocation","setIsHoveringWorkLocation","isHoveringViewCredentials","setIsHoveringViewCredentials","dashboard","setIsSafetyUser","DashboardService","finally","getActionItems","getEmployeeDetails","saveEmployeeProfile","checkIfSafetyUser","routeChange","path","faInfo","newEmployeeActionItems","expiringDaysOut","itemCount","ListItemText","renderActionItems","onMouseEnter","onMouseLeave","Tooltip","faComments","faTabletAlt","backgroundImage","GMR_Background","backgroundPosition","backgroundRepeat","backgroundSize","formContainer","disablePage","disablePageText","textShadow","objectFit","borderTop","imageContainer","logoContainerSize","Login","AppConfigService","phone","openid_email","employer","city","dob","employeeRecord","setEmployeeRecord","userAuthenticated","setUserAuthenticated","disableGMRConnectWeb","updateEmployeeRecordUser","userInfo","btoa","removeFrom","previousRoute","parsed","queryString","doesExist","FirstName","Firstname","LastName","Email","org","ADcompany","EmployeeNumber","PrimaryPhone","ADBusinessUnit","ADManagerEmail","ADPhysicalDeliveryOfficeName","Department","Connect_Logo","smallCallBaclUrl","origin","SafetyForms","SafetyList","Safety","setOpenSnackbar","setEmployeeData","fallback","employee","setSumbitMessage","LoginTest","NotFound","back","responsiveIframe","Map","Routes","render","matchProps","LoginView","NoneLayout","AccountView","MainLayout","CommunicationsView","ContactsView","ContinuingEducationView","CredentialsView","DashboardView","DocumentsView","FormsView","LoginTestView","ProtocolsView","SelfServiceView","SafetyView","NotFoundView","MinimalLayout","MapView","SessionTimeout","timeoutModalOpen","timeoutCountdown","clearDialogTimeout","clearTimeout","clearDialogInterval","clearInterval","signout","useIdleTimer","onActive","onIdle","setInterval","debounce","reset","pause","browserHistory","createBrowserHistory","App","Session","currentSession","setCurrentSession","getAppVersion","latestAppVersion","appVersion","caches","names","delete","Provider","utils","DateFnsUtils","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","resources","translation","i18n","Backend","LanguageDetector","initReactI18next","fallbackLng","detection","checkWhitelist","debug","whitelist","interpolation","escapeValue","initialClient","client","saveClientInfo","deleteClientInfo","initialForm","formSelected","formReset","initialAdminUser","adminUser","loginAdminSuccess","logoutAdminSuccess","reducer","combineReducers","admin","configureStore","ReactDOM","StrictMode","getElementById","initialCountiesList","initialCounty","SignalCellularNullRounded","countiesListSuccess","setSelectedCountySuccess","clearCountyListSuccess","currentList","saveCertificates","deleteCertificates","saveSelectedCertImage","currentCertificates","imageData","setFilterValuesInfo","setManufacturersList","setCertificateTypesInfo"],"mappings":"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,YAER,CACEX,MAAO,aACPW,KAAM,eAER,CACEX,MAAO,gBACPW,KAAM,kBAER,CACEX,MAAO,SACPW,KAAM,WAER,CACEX,MAAO,iBACPW,KAAM,mBAER,CACEX,MAAO,YACPW,KAAM,kBAMhBmqC,MAAO,CACL9qC,MAAO,QACP2O,GAAI,kBACJrQ,SAAU,CACRovC,OAAQ,CACN/E,WAAY,SACZmC,MAAO,CACL,CACE9qC,MAAO,SACPW,KAAM,mBAER,CACEX,MAAO,iBACPW,KAAM,2BAER,CACEX,MAAO,UACPW,KAAM,qBAIZgtC,WAAY,CACVhF,WAAY,cACZmC,MAAO,CACL,CACE9qC,MAAO,WACPW,KAAM,gBAER,CACEX,MAAO,UACPW,KAAM,0BAIZ+/B,QAAS,CACPiI,WAAY,UACZmC,MAAO,CACL,CACE9qC,MAAO,QACPW,KAAM,UAER,CACEX,MAAO,gBACPW,KAAM,qBAER,CACEX,MAAO,UACPW,KAAM,YAER,CACEX,MAAO,QACPW,KAAM,oBAIZitC,QAAS,CACPjF,WAAY,UACZmC,MAAO,CACL,CACE9qC,MAAO,aACPW,KAAM,iBAER,CACEX,MAAO,cACPW,KAAM,wBAER,CACEX,MAAO,QACPW,KAAM,yBAIZktC,KAAM,CACJlF,WAAY,OACZmC,MAAO,CACL,CACE9qC,MAAO,WACPW,KAAM,kBAER,CACEX,MAAO,aACPW,KAAM,oBAER,CACEX,MAAO,SACPW,KAAM,gBAER,CACEX,MAAO,UACPW,KAAM,mBAIZmtC,UAAW,CACTnF,WAAY,YACZmC,MAAO,CACL,CACE9qC,MAAO,QACPW,KAAM,mBAER,CACEX,MAAO,UACPW,KAAM,sBAER,CACEX,MAAO,YACPW,KAAM,mBAER,CACEX,MAAO,kBACPW,KAAM,eAMhBotC,QAAS,CACP/tC,MAAO,UACP2O,GAAI,UACJrQ,SAAU,CACR0vC,SAAU,CACRrF,WAAY,WACZmC,MAAO,CACL,CACE9qC,MAAO,UACPW,KAAM,yBAER,CACEX,MAAO,WACPW,KAAM,0BAER,CACEX,MAAO,gBACPW,KAAM,+BAER,CACEX,MAAO,UACPW,KAAM,2BAIZstC,OA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","file":"static/js/main.ddd6ca7d.chunk.js","sourcesContent":["export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Card, CardContent } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n height: '100%',\r\n width: '100%',\r\n },\r\n withShadow: {\r\n boxShadow: `0 2px 10px 0 ${theme.palette.cardShadow}`,\r\n },\r\n noShadow: {\r\n boxShadow: 'none',\r\n },\r\n noBorder: {\r\n border: 0,\r\n },\r\n noBg: {\r\n background: 'transparent',\r\n },\r\n liftUp: {\r\n transition:\r\n 'box-shadow .25s ease,transform .25s ease,-webkit-transform .25s ease',\r\n '&:hover': {\r\n boxShadow:\r\n `0 1.5rem 2.5rem ${theme.palette.boxShadowStart},0 .3rem 0.5rem -.50rem ${theme.palette.boxShadowEnd} !important`,\r\n transform: 'translate3d(0,-5px,0)',\r\n },\r\n },\r\n content: {\r\n height: '100%',\r\n // display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n // padding: theme.spacing(4, 2),\r\n // '&:last-child': {\r\n // padding: theme.spacing(4, 2),\r\n // },\r\n // [theme.breakpoints.up('md')]: {\r\n // padding: theme.spacing(6, 3),\r\n // '&:last-child': {\r\n // padding: theme.spacing(6, 3),\r\n // },\r\n // },\r\n padding: theme.spacing(2),\r\n '&:last-child': {\r\n padding: theme.spacing(2),\r\n },\r\n [theme.breakpoints.up('md')]: {\r\n padding: theme.spacing(3),\r\n '&:last-child': {\r\n padding: theme.spacing(3),\r\n },\r\n },\r\n },\r\n left: {\r\n alignItems: 'flex-start',\r\n },\r\n right: {\r\n alignItems: 'flex-end',\r\n },\r\n center: {\r\n alignItems: 'center',\r\n },\r\n}));\r\n\r\n/**\r\n * Component to display the basic card\r\n *\r\n * @param {Object} props\r\n */\r\nconst CardBase = props => {\r\n const {\r\n withShadow,\r\n noShadow,\r\n noBorder,\r\n noBg,\r\n liftUp,\r\n children,\r\n align,\r\n className,\r\n cardContentProps,\r\n ...rest\r\n } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nCardBase.defaultProps = {\r\n align: 'center',\r\n cardContentProps: {},\r\n};\r\n\r\nCardBase.propTypes = {\r\n /**\r\n * External classes\r\n */\r\n className: PropTypes.string,\r\n /**\r\n * The children content of the basic card\r\n */\r\n children: PropTypes.node.isRequired,\r\n /**\r\n * Whether to show custom shadow\r\n */\r\n withShadow: PropTypes.bool,\r\n /**\r\n * Whether to render the card without shadow\r\n */\r\n noShadow: PropTypes.bool,\r\n /**\r\n * Whether to hide the card borders\r\n */\r\n noBorder: PropTypes.bool,\r\n /**\r\n * Whether to show transparent background\r\n */\r\n noBg: PropTypes.bool,\r\n /**\r\n * Whether to lift up on hover\r\n */\r\n liftUp: PropTypes.bool,\r\n /**\r\n * The content alignment\r\n */\r\n align: PropTypes.oneOf(['left', 'right', 'center']),\r\n /**\r\n * Additional props to pass to the CardContent component\r\n */\r\n cardContentProps: PropTypes.object,\r\n};\r\n\r\nexport default CardBase;","import React from \"react\";\r\nimport clsx from \"clsx\";\r\nimport PropTypes from \"prop-types\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Typography, ListItem, Divider, Box, Grid } from \"@material-ui/core\";\r\nimport { CardBase } from \"@components/organisms\";\r\nimport { Image } from \"@components/atoms\";\r\nimport icon_placeholder from \"@assets/images/icon_placeholder.png\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faFolderOpen } from \"@fortawesome/free-regular-svg-icons\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: \"100%\",\r\n },\r\n featureCheck: {\r\n marginRight: theme.spacing(1),\r\n },\r\n logoContainer: {\r\n width: 40,\r\n height: 40,\r\n textAlign: \"center\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n verticalAlign: \"middle\"\r\n },\r\n logoImage: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n },\r\n ctaWrapper: {\r\n width: \"100%\",\r\n flex: 1,\r\n },\r\n content: {\r\n justifyContent: \"center\",\r\n alignSelf: \"center\",\r\n },\r\n iconColor: {\r\n color: theme.palette.primary.main,\r\n },\r\n}));\r\n\r\n/**\r\n * Component to display the job card\r\n *\r\n * @param {Object} props\r\n */\r\nconst CategoryBase = (props) => {\r\n const {\r\n title,\r\n subtitle,\r\n icon,\r\n categoryComponent,\r\n cta,\r\n className,\r\n titleProps,\r\n subtitleProps,\r\n ...rest\r\n } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n\r\n {subtitle && (\r\n \r\n {subtitle}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {categoryComponent}\r\n \r\n \r\n
\r\n {cta && (\r\n \r\n \r\n \r\n \r\n \r\n {cta}\r\n \r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nCategoryBase.defaultProps = {\r\n titleProps: {},\r\n subtitleProps: {}\r\n};\r\n\r\nCategoryBase.propTypes = {\r\n /**\r\n * External classes\r\n */\r\n className: PropTypes.string,\r\n /**\r\n * Title of the pricing card\r\n */\r\n title: PropTypes.string.isRequired,\r\n /**\r\n * Subtitle of the pricing card\r\n */\r\n subtitle: PropTypes.string,\r\n /**\r\n * The pricing component of the pricing card\r\n */\r\n categoryComponent: PropTypes.node,\r\n /**\r\n * CTA button of the pricing card\r\n */\r\n cta: PropTypes.node,\r\n /**\r\n * Additional props to pass to the title Typography component\r\n */\r\n titleProps: PropTypes.object,\r\n /**\r\n * Additional props to pass to the subtitle Typography component\r\n */\r\n subtitleProps: PropTypes.object,\r\n};\r\n\r\nexport default CategoryBase;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Typography, Box, CircularProgress } from \"@material-ui/core\";\r\nimport { Image } from \"@components/atoms\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faCheckCircle, faHandPointLeft, faCompass } from \"@fortawesome/free-regular-svg-icons\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n height: \"100%\",\r\n width: \"100%\",\r\n textAlign: \"center\",\r\n margin: 10,\r\n },\r\n featureCheck: {\r\n marginRight: theme.spacing(1),\r\n },\r\n iconContainer: {\r\n width: 80,\r\n marginBottom: 20,\r\n marginLeft: \"auto\",\r\n marginRight: \"auto\",\r\n },\r\n iconColor: {\r\n color: \"#58a15f\",\r\n },\r\n pointerIconColor: {\r\n color: theme.palette.icon.gray,\r\n },\r\n}));\r\n\r\n/**\r\n * Component to display the job card\r\n *\r\n * @param {Object} props\r\n */\r\nconst EmptyStateHolder = (props) => {\r\n const { placeholderText, icon, displaySelectIcon, locationIcon, className, isLoading, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n
\r\n {!icon && !displaySelectIcon && !locationIcon && !isLoading && (\r\n \r\n )}\r\n {icon && !isLoading && (\r\n \r\n )}\r\n {displaySelectIcon && !isLoading && (\r\n \r\n )}\r\n {locationIcon && !isLoading && (\r\n \r\n )}\r\n
\r\n\r\n {isLoading && (\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n {placeholderText}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nEmptyStateHolder.propTypes = {\r\n /**\r\n * External classes\r\n */\r\n className: PropTypes.string,\r\n /**\r\n * Text to display\r\n */\r\n placeholderText: PropTypes.string.isRequired,\r\n /**\r\n * optional Icon\r\n */\r\n icon: PropTypes.string,\r\n};\r\n\r\nexport default EmptyStateHolder;\r\n","import React, { useState, useCallback, useEffect } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Typography, Box } from \"@material-ui/core\";\r\nimport { Image as ImageAtom } from \"@components/atoms\";\r\nimport icon_placeholder from \"@assets/images/icon_placeholder.png\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport clsx from \"clsx\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n height: \"70%\",\r\n width: \"70%\",\r\n },\r\n featureCheck: {\r\n marginRight: theme.spacing(1),\r\n },\r\n logoContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n marginBottom: 20,\r\n fontSize: \"40px\",\r\n textAlign: \"center\",\r\n borderRadius: 20,\r\n color: theme.palette.text.primary,\r\n \"&:hover\": {\r\n background:theme.palette.background.dashButton,\r\n },\r\n },\r\n logoSquare: {\r\n width: '20%',\r\n },\r\n logoRectangle: {\r\n width: '60%',\r\n },\r\n a: {\r\n textDecoration: \"none\",\r\n },\r\n iconColor: {\r\n color: theme.palette.icon.primary,\r\n },\r\n}));\r\n\r\n/**\r\n * Component to display the job card\r\n *\r\n * @param {Object} props\r\n */\r\nconst ExternalApplicationLink = (props) => {\r\n const { name, logo, icon, externalLink, className, key, ...rest } = props;\r\n\r\n const [isSquare, setIsSquare] = useState(false);\r\n const classes = useStyles();\r\n\r\n const getHeightAndWidthOfImage = useCallback(() => {\r\n const img = new Image();\r\n img.onload = function() {\r\n if (this.height === this.width) {\r\n setIsSquare(true);\r\n } else {\r\n setIsSquare(false);\r\n }\r\n }\r\n img.src = logo;\r\n }, [logo]);\r\n\r\n useEffect(() => {\r\n getHeightAndWidthOfImage();\r\n }, [logo]);\r\n\r\n return (\r\n \r\n
\r\n {icon && (\r\n \r\n )}\r\n {logo && (\r\n \r\n )}\r\n\r\n
\r\n {name}\r\n
\r\n\r\n
\r\n
\r\n );\r\n};\r\n\r\nExternalApplicationLink.propTypes = {\r\n /**\r\n * DOM Key\r\n */\r\n key: PropTypes.string,\r\n /**\r\n * External classes\r\n */\r\n className: PropTypes.string,\r\n /**\r\n * Name of the application\r\n */\r\n name: PropTypes.string.isRequired,\r\n /**\r\n * Logo of application\r\n */\r\n logo: PropTypes.string.isRequired,\r\n /**\r\n * Link for application\r\n */\r\n externalLink: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default ExternalApplicationLink;\r\n","export default __webpack_public_path__ + \"static/media/solid_main_icon.4743e726.png\";","import React, { useCallback, useEffect } from \"react\";\r\nimport clsx from \"clsx\";\r\nimport PropTypes from \"prop-types\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport moment from 'moment';\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nimport jsPDF from \"jspdf\";\r\nimport html2canvas from \"html2canvas\";\r\nimport * as htmlToImage from \"html-to-image\";\r\n\r\n//@material-ui\r\nimport {\r\n Grid,\r\n Button,\r\n Box,\r\n Divider,\r\n Typography,\r\n IconButton,\r\n Container,\r\n CircularProgress,\r\n} from \"@material-ui/core\";\r\nimport { KeyboardTimePicker } from '@material-ui/pickers';\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport CardContent from \"@material-ui/core/CardContent\";\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport Rating from \"@material-ui/lab/Rating\";\r\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport Stepper from \"@material-ui/core/Stepper\";\r\nimport Step from \"@material-ui/core/Step\";\r\nimport StepLabel from \"@material-ui/core/StepLabel\";\r\nimport Icon from \"@material-ui/core/Icon\";\r\nimport Badge from \"@material-ui/core/Badge\";\r\nimport RadioGroup from \"@material-ui/core/RadioGroup\";\r\nimport Radio from \"@material-ui/core/Radio\";\r\nimport { useSelector } from 'react-redux';\r\nimport main_icon from \"@assets/images/main_icon.png\";\r\nimport solid_main_icon from \"@assets/images/solid_main_icon.png\";\r\n\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faClock } from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nimport CancelIcon from \"@material-ui/icons/Cancel\";\r\n\r\n//components\r\nimport { SectionHeader, Signature, ImgGallery, DialogConfirm, CustomMenu } from \"@components/molecules\";\r\nimport { update } from \"lodash\";\r\nimport { current } from \"@reduxjs/toolkit\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n background: theme.palette.alternate.main,\r\n },\r\n inner: {\r\n maxWidth: theme.layout.contentWidth,\r\n width: \"100%\",\r\n margin: \"0 auto\",\r\n // padding: theme.spacing(6, 2),\r\n // [theme.breakpoints.up(\"sm\")]: {\r\n // padding: theme.spacing(8, 8),\r\n // },\r\n // [theme.breakpoints.up(\"md\")]: {\r\n // padding: theme.spacing(12, 8),\r\n // },\r\n },\r\n innerNarrowed: {\r\n maxWidth: 800,\r\n },\r\n requiredBadge: {\r\n backgroundColor: \"#ba1e45\",\r\n color: \"white\",\r\n },\r\n completedBadge: {\r\n backgroundColor: \"#339900\",\r\n color: \"white\",\r\n },\r\n iconButton: {\r\n marginLeft: theme.spacing(1),\r\n padding: 0,\r\n \"&:hover\": {\r\n background: \"transparent\",\r\n },\r\n },\r\n reviewSectionHeader: {\r\n // backgroundColor: \"red\"\r\n },\r\n questionAnswersHolder: {\r\n paddingBottom: \"20px\",\r\n },\r\n answers: {\r\n fontWeight: \"bold\",\r\n color: \"#115293\",\r\n },\r\n center: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n },\r\n sigImageContainer: {\r\n width: '30%',\r\n },\r\n multiButton: {\r\n [theme.breakpoints.up(\"sm\")] : {\r\n width: '25%',\r\n },\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n width: '100%',\r\n },\r\n viewer: {\r\n width: window.innerWidth, //the pdf viewer will take up all of the width and height\r\n height: window.innerHeight,\r\n },\r\n stickToCenter: {\r\n position: 'fixed',\r\n right: '5%',\r\n bottom: 10,\r\n width: '90%',\r\n zIndex: 9997,\r\n backgroundColor: 'white',\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: '35%',\r\n right: '10%',\r\n },\r\n },\r\n loadingBox: {\r\n border: '2px solid #000',\r\n boxShadow: 24,\r\n borderRadius: theme.spacing(2),\r\n display: 'flex',\r\n alignItems: 'center',\r\n padding: theme.spacing(1),\r\n justifyContent: 'space-around'\r\n }\r\n}));\r\n\r\n/**\r\n * Component to display the alternative sections\r\n *\r\n * @param {Object} props\r\n */\r\nconst FormComponent = (props) => {\r\n const { currentForm, className, submitFormPDF, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n const history = useHistory();\r\n //Set variables\r\n const [loading, setLoading] = React.useState(false);\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [disableNextButton, setDisableNextButton] = React.useState(true);\r\n const [questionnaire, setQuestionnaire] = React.useState(null);\r\n const [requiredFieldsCount, setRequiredFieldsCount] = React.useState(1);\r\n const [reviewForm, setReviewForm] = React.useState(false);\r\n const [submitMessage, setSubmitMessage] = React.useState(\"\");\r\n const [totalRatings, setTotalRatings] = React.useState(0);\r\n const [totalScore, setTotalScore] = React.useState(0);\r\n const [openSigModal, setOpenSigModal] = React.useState(false);\r\n const [failedAgreement, setFailedAgreement] = React.useState(false);\r\n const [failedAgreementDisableNext, setFailedAgreementDisableNext] = React.useState(false);\r\n const [alertMessage, setAlertMessage] = React.useState('');\r\n const [prevPhoneNumber, setPrevPhoneNumber] = React.useState('');\r\n const [heightInFeet, setHeightInFeet] = React.useState('');\r\n const [heightInInches, setHeightInInches] = React.useState('');\r\n const [checkCurrentPage, setCheckCurrentPage] = React.useState(false);\r\n const [enableNameField, setEnableNameField] = React.useState(false);\r\n\r\n const { credentials } = useSelector((state) => state);\r\n const { user } = useSelector((state) => state.user);\r\n\r\n React.useEffect(() => {\r\n setQuestionnaire(currentForm.questionnaire);\r\n }, [currentForm]);\r\n\r\n React.useEffect(() => {\r\n //on page change, scroll to the top\r\n if (window) {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: \"smooth\",\r\n });\r\n }\r\n }, [currentPage, reviewForm]);\r\n\r\n React.useEffect(() => {\r\n if (!questionnaire) return;\r\n\r\n //check required fields condition\r\n let allRequiredFields = [];\r\n allRequiredFields = questionnaire[currentPage].questions.filter(\r\n (question) => {\r\n return (\r\n question.field_type !== \"readonly\" &&\r\n question.isRequired === true &&\r\n (question.answer === null || question.answer.length === 0) ||\r\n (question.field_type === \"input-phone\" && question.answer.length < 14) ||\r\n (question.field_type === \"input-height\" && (!question.answer.includes(\"Feet\") || !question.answer.includes(\"Inch\")))\r\n );\r\n }\r\n );\r\n // console.log(allRequiredFields);\r\n setRequiredFieldsCount(allRequiredFields.length);\r\n setDisableNextButton(allRequiredFields.length !== 0);\r\n }, [currentPage, questionnaire]);\r\n\r\n const handleBackToHome = () => {\r\n history.goBack();\r\n };\r\n\r\n const handlePageBack = () => {\r\n setCurrentPage(currentPage - 1);\r\n setFailedAgreementDisableNext(false);\r\n };\r\n\r\n const handleNextPage = () => {\r\n setCurrentPage(currentPage + 1);\r\n setCheckCurrentPage(true);\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n const checkPageAndQuestion = useCallback(() => {\r\n if (questionnaire && checkCurrentPage) {\r\n if (currentPage === 0 || currentPage === 3) {\r\n if (questionnaire[currentPage].questions[0].questionID === 157 && questionnaire[currentPage].questions[0].answer === \"No\") {\r\n setFailedAgreementDisableNext(true);\r\n } else if (questionnaire[currentPage].questions[0].questionID === 160 && questionnaire[currentPage].questions[0].answer === \"No\") {\r\n setFailedAgreementDisableNext(true);\r\n } else {\r\n setFailedAgreementDisableNext(false);\r\n }\r\n }\r\n \r\n questionnaire[currentPage].questions.forEach((question, index) => {\r\n const date = moment(new Date()).format('MM/DD/YYYY');\r\n if (question.label.includes(\"Today's date\")) {\r\n onValueChange(index, date);\r\n } else if (question.label.includes(\"Your name\") && !question.answer && credentials) {\r\n if (credentials.employeeProfile.firstName && credentials.employeeProfile.lastName) {\r\n onValueChange(index, `${credentials.employeeProfile.firstName} ${credentials.employeeProfile.lastName}`);\r\n } else {\r\n setEnableNameField(true);\r\n }\r\n } else if (question.label.includes(\"Your job title\") && !question.answer && credentials) {\r\n onValueChange(index, credentials.employeeProfile.jobTitleName)\r\n } else if (question.label.includes(\"Sex\") && !question.answer && credentials) {\r\n onValueChange(index, credentials.employeeProfile.gender);\r\n }\r\n })\r\n }\r\n setCheckCurrentPage(false)\r\n }, [currentPage, checkCurrentPage]);\r\n\r\n useEffect(() => {\r\n checkPageAndQuestion();\r\n }, [currentPage]);\r\n\r\n const onValueChange = (questionIndex, updatedValue, ratingTotal) => {\r\n if (ratingTotal !== undefined) {\r\n const tempScore = totalScore + parseInt(updatedValue);\r\n const tempTotalRatings = totalRatings + ratingTotal;\r\n setTotalScore(tempScore);\r\n setTotalRatings(tempTotalRatings);\r\n }\r\n let clonedQuestionnaire = [...questionnaire];\r\n let updatedQuestions = clonedQuestionnaire[currentPage].questions.map(\r\n (question, currentQuestionIndex) => {\r\n if (currentQuestionIndex !== questionIndex) return question;\r\n if (question.questionID === 157 && updatedValue === \"No\") {\r\n setAlertMessage({ title: 'Please ensure your privacy', content: `When you're ready to proceed with this form click \"Yes\".` });\r\n setFailedAgreement(true);\r\n setFailedAgreementDisableNext(true);\r\n } else if (question.questionID === 157 && updatedValue === \"Yes\") {\r\n setFailedAgreementDisableNext(false);\r\n }\r\n if (question.questionID === 160 && updatedValue === \"No\") {\r\n setAlertMessage({ title: 'ATTENTION', content: 'If you made a mistake, please update your selection, if you selection is accurate, please contact your trainer or supervisor. (Exit Form or Continue)' });\r\n setFailedAgreement(true);\r\n setFailedAgreementDisableNext(true);\r\n } else if (question.questionID === 160 && updatedValue === \"Yes\") {\r\n setFailedAgreementDisableNext(false);\r\n }\r\n return {\r\n ...question,\r\n answer: updatedValue,\r\n };\r\n }\r\n );\r\n\r\n clonedQuestionnaire[currentPage].questions = updatedQuestions;\r\n\r\n //update current form with updated values\r\n setQuestionnaire(clonedQuestionnaire);\r\n };\r\n\r\n const handleHeight = (questionIndex, measurement) => {\r\n let height = '';\r\n if (measurement.includes(\"Feet\")) {\r\n setHeightInFeet(measurement);\r\n height = measurement.concat(', ', heightInInches);\r\n } else {\r\n setHeightInInches(measurement);\r\n height = heightInFeet.concat(', ', measurement);\r\n }\r\n onValueChange(questionIndex, height)\r\n }\r\n\r\n const onMultiSelectValueChange = (questionIndex, updatedValue) => {\r\n if (updatedValue === undefined) return;\r\n\r\n debugger;\r\n let clonedQuestionnaire = [...questionnaire];\r\n let updatedQuestions = clonedQuestionnaire[currentPage].questions.map(\r\n (question, currentQuestionIndex) => {\r\n if (currentQuestionIndex !== questionIndex) return question;\r\n\r\n let updatedAnswers = [];\r\n if (question.answer?.length > 0) {\r\n let currentAnswers = JSON.parse(question.answer);\r\n\r\n let updatedValueIndex = currentAnswers.indexOf(updatedValue);\r\n updatedValueIndex === -1\r\n ? currentAnswers.push(updatedValue)\r\n : currentAnswers.splice(updatedValueIndex, 1);\r\n updatedAnswers = currentAnswers;\r\n } else {\r\n updatedAnswers.push(updatedValue);\r\n }\r\n\r\n return {\r\n ...question,\r\n answer: JSON.stringify(updatedAnswers),\r\n };\r\n }\r\n );\r\n\r\n clonedQuestionnaire[currentPage].questions = updatedQuestions;\r\n\r\n //update current form with updated values\r\n setQuestionnaire(clonedQuestionnaire);\r\n };\r\n\r\n const formatPhoneNumber = (questionIndex, updatedValue) => {\r\n const currentValue = updatedValue.replace(/[^\\d]/g, '');\r\n const cvLength = currentValue.length;\r\n\r\n if (!prevPhoneNumber || updatedValue.length > prevPhoneNumber.length) {\r\n setPrevPhoneNumber(currentValue);\r\n if (cvLength < 4) return onValueChange(questionIndex, currentValue);\r\n if (cvLength < 7) return onValueChange(questionIndex, `(${currentValue.slice(0, 3)}) ${currentValue.slice(3)}`);\r\n const formatted = `(${currentValue.slice(0, 3)}) ${currentValue.slice(3, 6)}-${currentValue.slice(6, 10)}`;\r\n return onValueChange(questionIndex, formatted);\r\n } else if (updatedValue.length <= prevPhoneNumber.length) {\r\n setPrevPhoneNumber(currentValue)\r\n return onValueChange(questionIndex, currentValue);\r\n }\r\n }\r\n\r\n const filterNumbersOnly = (questionIndex, updatedValue) => {\r\n const currentValue = updatedValue.replace(/[^\\d]/g, '');\r\n onValueChange(questionIndex, currentValue);\r\n }\r\n\r\n //helper methods\r\n const IsJsonString = (str) => {\r\n try {\r\n JSON.parse(str);\r\n } catch (e) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n const formatDate = (date) => {\r\n return (\r\n (date.getMonth() > 8\r\n ? date.getMonth() + 1\r\n : \"0\" + (date.getMonth() + 1)) +\r\n \"/\" +\r\n (date.getDate() > 9 ? date.getDate() : \"0\" + date.getDate()) +\r\n \"/\" +\r\n date.getFullYear()\r\n );\r\n };\r\n\r\n const checkMultiSelectValueExists = (questionAnswers, selectValue) => {\r\n if (questionAnswers === null) return false;\r\n\r\n if (questionAnswers.length > 0 && IsJsonString(questionAnswers)) {\r\n let currentAnswers = JSON.parse(questionAnswers);\r\n let selectValueIndex = currentAnswers.indexOf(selectValue);\r\n return selectValueIndex === -1 ? false : true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const parseMultiSelectValue = (questionAnswers) => {\r\n if (questionAnswers === null) return \"\";\r\n\r\n if (questionAnswers.length > 0 && IsJsonString(questionAnswers)) {\r\n let currentAnswers = JSON.parse(questionAnswers);\r\n return currentAnswers.toString().replace(/,/g, \", \");\r\n } else {\r\n return questionAnswers;\r\n }\r\n };\r\n\r\n const parseTimeValue = (questionAnswers) => {\r\n if (questionAnswers === null) return \"\";\r\n\r\n let formattedTime;\r\n if (questionAnswers.length > 0) {\r\n const index = questionAnswers.indexOf(\",\");\r\n formattedTime = questionAnswers.slice(index + 1)\r\n } else {\r\n return \"\";\r\n }\r\n return formattedTime;\r\n }\r\n\r\n const generatePDF = () => {\r\n htmlToImage\r\n .toPng(document.getElementById(\"pdfForm\"))\r\n .then(function (dataUrl) {\r\n console.log(dataUrl);\r\n // saveAs(dataUrl, 'my-node2.png');\r\n });\r\n\r\n html2canvas(document.querySelector(\"#pdfForm\")).then((canvas) => {\r\n var pdfdoc = new jsPDF(\"p\", \"mm\");\r\n\r\n var imgData = canvas.toDataURL(\"image/png\");\r\n var pageHeight = pdfdoc.internal.pageSize.getHeight();\r\n var pageWidth = pdfdoc.internal.pageSize.getWidth();\r\n\r\n var imgheight =\r\n (document.querySelector(\"#pdfForm\").clientHeight * 25.4) / 96; //px to mm\r\n var pagecount = Math.ceil(imgheight / pageHeight);\r\n pagecount = pagecount + 3; //add extra pages just incase we need additional space\r\n /* add initial page */\r\n pdfdoc.addPage(\"l\", \"mm\", \"a4\");\r\n pdfdoc.addImage(\r\n imgData,\r\n \"PNG\",\r\n 2,\r\n 0,\r\n pageWidth - 4,\r\n 0,\r\n undefined,\r\n \"FAST\"\r\n );\r\n\r\n /* add extra pages if the div size is larger than a a4 size */\r\n if (pagecount > 0) {\r\n var j = 1;\r\n while (j < pagecount) {\r\n pdfdoc.addPage(\"l\", \"mm\", \"a4\");\r\n pdfdoc.addImage(\r\n imgData,\r\n \"PNG\",\r\n 2,\r\n -(j * pageHeight),\r\n pageWidth - 4,\r\n 0,\r\n undefined,\r\n \"FAST\"\r\n );\r\n j++;\r\n }\r\n }\r\n\r\n pdfdoc.deletePage(1); // first page is blank, not sure why so deleting it for now\r\n\r\n //pdfdoc.save(\"final.pdf\"); //Download the rendered PDF.\r\n return pdfdoc.output(\"datauristring\");\r\n });\r\n };\r\n\r\n const saveAs = (blob, fileName) => {\r\n var elem = window.document.createElement(\"a\");\r\n elem.href = blob;\r\n elem.download = fileName;\r\n elem.style = \"display:none;\";\r\n (document.body || document.documentElement).appendChild(elem);\r\n if (typeof elem.click === \"function\") {\r\n elem.click();\r\n } else {\r\n elem.target = \"_blank\";\r\n elem.dispatchEvent(\r\n new MouseEvent(\"click\", {\r\n view: window,\r\n bubbles: true,\r\n cancelable: true,\r\n })\r\n );\r\n }\r\n URL.revokeObjectURL(elem.href);\r\n elem.remove();\r\n };\r\n\r\n const submitPDF = () => {\r\n\r\n try\r\n {\r\n setSubmitMessage(\"Generating PDF...\")\r\n if (currentForm.formKey === \"MDCSCRNDCT\") {\r\n const doc = new jsPDF(\"p\", \"pt\");\r\n const pageHeight = doc.internal.pageSize.height;\r\n const pageWidth = doc.internal.pageSize.width;\r\n let y = 30; \r\n\r\n doc.addImage(solid_main_icon, 'png', 15, 30, 125, 40);\r\n doc.text(300, y, `${user.firstName} ${user.lastName}`);\r\n y+=15;\r\n doc.text(300, y, `Number: ${user.employeeNumber}`);\r\n y+=15;\r\n doc.text(300, y, `Email: ${user.email}`);\r\n y+=15;\r\n doc.text(300, y, `Date: ${moment(new Date()).format('MM/DD/YYYY')}`);\r\n y+=30;\r\n doc.setFontSize(20);\r\n doc.setFont(undefined, 'bold');\r\n doc.text(pageWidth / 2, y, currentForm.formName, {align: 'center'});\r\n\r\n questionnaire.length > 0 && questionnaire.map((page) => {\r\n if (page.screenKey === 'cover_warning1' || page.screenKey === 'cover_warning3') {\r\n return;\r\n }\r\n if (y > pageHeight) {\r\n doc.addPage();\r\n y = 0;\r\n }\r\n\r\n if (page.title) {\r\n y+=30;\r\n if (y > pageHeight) {\r\n doc.addPage();\r\n y = 30;\r\n }\r\n doc.setFontSize(16);\r\n doc.setFont(undefined, 'bold');\r\n doc.text(pageWidth / 2, y, page.title, {align: 'center'});\r\n y+=15;\r\n }\r\n page.questions.length > 0 && page.questions.map((question) => {\r\n if (y > pageHeight) {\r\n doc.addPage();\r\n y = 0;\r\n }\r\n const splitLabel = doc.splitTextToSize(question.label, 500);\r\n if (y + 30 * splitLabel.length > pageHeight) {\r\n doc.addPage();\r\n y = 0;\r\n }\r\n\r\n doc.setFontSize(14);\r\n doc.setFont(undefined, 'normal');\r\n const lastIndex = splitLabel[splitLabel.length - 1];\r\n let indent = false;\r\n if (question.field_type !== 'readonly' && lastIndex[lastIndex.length - 1] !== \"?\") {\r\n splitLabel[splitLabel.length - 1] = `${splitLabel[splitLabel.length - 1]}:`;\r\n y+=20;\r\n if (isNaN(question.label[0])) {\r\n doc.text(60, y, splitLabel);\r\n indent = true;\r\n } else {\r\n doc.text(15, y, splitLabel);\r\n }\r\n } else {\r\n y+=20;\r\n doc.text(15, y, splitLabel);\r\n }\r\n if (!question.answer) {\r\n const halfLength = splitLabel.length / 2;\r\n y+=30 * halfLength;\r\n }\r\n if (y > pageHeight) {\r\n doc.addPage();\r\n y = 0;\r\n }\r\n\r\n let x = 75;\r\n if (question.answer && !question.answer.includes('base64')) {\r\n if (y !== 0) {\r\n y+=30 * splitLabel.length;\r\n }\r\n doc.setFontSize(12);\r\n doc.setFont(undefined, 'bold');\r\n const textWidth = doc.getStringUnitWidth(splitLabel[splitLabel.length - 1]);\r\n const addMoreWidth = indent ? 45 : 0;\r\n const width = textWidth * 14 + addMoreWidth;\r\n if (question.screenTitle && width < 500 && question.field_type !== 'textarea') {\r\n let space = 0;\r\n if (width < 175) {\r\n space = 20;\r\n } else if (width >= 175 && width <= 320) {\r\n space = 10;\r\n } else if (width > 320 && width <= 375) {\r\n space = -5;\r\n } else {\r\n space = -10;\r\n }\r\n x = width + space;\r\n const length = splitLabel.length;\r\n if (length === 1) {\r\n if (y > 30) {\r\n y-= 30;\r\n }\r\n question.answer !== null && doc.text(x, y, question.answer);\r\n y+= 10;\r\n } else {\r\n if (y > 30) {\r\n y-=(30 * length) - (16 * (length - 1));\r\n }\r\n question.answer !== null && doc.text(x, y, question.answer);\r\n y+=(10 * length) - (16 * (length - 1));\r\n }\r\n } else if (question.field_type === 'textarea') {\r\n const splitText = doc.splitTextToSize(question.answer, 500);\r\n if (y + 30 * splitText.length > pageHeight) {\r\n doc.addPage();\r\n y = 20;\r\n }\r\n doc.setFontSize(12);\r\n doc.setFont(undefined, 'bold');\r\n doc.text(x, y, splitText);\r\n y+=30 * (splitText.length / 2);\r\n } else {\r\n question.answer !== null && doc.text(x, y, question.answer);\r\n y+=10;\r\n }\r\n } else if (question.answer && question.answer.includes('base64')) {\r\n y+=10;\r\n doc.addImage(question.answer, 'png', x, y, 75, 24);\r\n y+=30;\r\n }\r\n } \r\n ).join('')\r\n }).join('')\r\n setSubmitMessage(\"Submitting...\");\r\n submitFormPDF(doc.output(\"datauristring\")).then((result) => {\r\n console.log('result: ', result)\r\n if(!result) {\r\n setSubmitMessage(\"\");\r\n }\r\n });\r\n } else {\r\n setSubmitMessage(\"Submitting...\");\r\n let formContents = [];\r\n questionnaire.length > 0 && questionnaire.map((page) => {\r\n if (page.questions.length > 0) {\r\n page.questions.length > 0 && page.questions.map((currentAnswer) => {\r\n if (currentAnswer.label === \"Total Score\") {\r\n return;\r\n }\r\n if (currentAnswer.field_type.includes(\"rating\")) {\r\n formContents.push({ \"label\": currentAnswer.label, \"value\": currentAnswer?.answer ? currentAnswer.answer : \"0\" });\r\n } else {\r\n formContents.push({ \"label\": currentAnswer.label, \"value\": currentAnswer.answer });\r\n }\r\n })\r\n }\r\n })\r\n submitFormPDF(null, formContents).then((result) => {\r\n if(!result) {\r\n setSubmitMessage(\"\");\r\n }\r\n });\r\n }\r\n }\r\n catch (ex) {\r\n console.log(ex)\r\n setSubmitMessage(\"oops\");\r\n }\r\n }\r\n\r\n const generateTestPDF = () => {\r\n const doc = new jsPDF(\"p\", \"pt\");\r\n const pageHeight = doc.internal.pageSize.height;\r\n const pageWidth = doc.internal.pageSize.width;\r\n let y = 30; \r\n\r\n doc.addImage(solid_main_icon, 'png', 15, 30, 125, 40);\r\n doc.text(300, y, `${user.firstName} ${user.lastName}`);\r\n y+=15;\r\n doc.text(300, y, `Number: ${user.employeeNumber}`);\r\n y+=15;\r\n doc.text(300, y, `Email: ${user.email}`);\r\n y+=15;\r\n doc.text(300, y, `Date: ${moment(new Date()).format('MM/DD/YYYY')}`);\r\n y+=30;\r\n doc.setFontSize(20);\r\n doc.setFont(undefined, 'bold');\r\n doc.text(pageWidth / 2, y, currentForm.formName, {align: 'center'});\r\n\r\n questionnaire.length > 0 && questionnaire.map((page) => {\r\n if (page.screenKey === 'cover_warning1' || page.screenKey === 'cover_warning3') {\r\n return;\r\n }\r\n if (y > pageHeight) {\r\n doc.addPage();\r\n y = 0;\r\n }\r\n\r\n if (page.title) {\r\n y+=30;\r\n if (y > pageHeight) {\r\n doc.addPage();\r\n y = 30;\r\n }\r\n doc.setFontSize(16);\r\n doc.setFont(undefined, 'bold');\r\n doc.text(pageWidth / 2, y, page.title, {align: 'center'});\r\n y+=15;\r\n }\r\n page.questions.length > 0 && page.questions.map((question) => {\r\n if (y > pageHeight) {\r\n doc.addPage();\r\n y = 0;\r\n }\r\n const splitLabel = doc.splitTextToSize(question.label, 500);\r\n if (y + 30 * splitLabel.length > pageHeight) {\r\n doc.addPage();\r\n y = 0;\r\n }\r\n\r\n doc.setFontSize(14);\r\n doc.setFont(undefined, 'normal');\r\n const lastIndex = splitLabel[splitLabel.length - 1];\r\n let indent = false;\r\n if (question.field_type !== 'readonly' && lastIndex[lastIndex.length - 1] !== \"?\") {\r\n splitLabel[splitLabel.length - 1] = `${splitLabel[splitLabel.length - 1]}:`;\r\n y+=20;\r\n if (isNaN(question.label[0])) {\r\n doc.text(60, y, splitLabel);\r\n indent = true;\r\n } else {\r\n doc.text(15, y, splitLabel);\r\n }\r\n } else {\r\n y+=20;\r\n doc.text(15, y, splitLabel);\r\n }\r\n if (!question.answer) {\r\n const halfLength = splitLabel.length / 2;\r\n y+=30 * halfLength;\r\n }\r\n if (y > pageHeight) {\r\n doc.addPage();\r\n y = 0;\r\n }\r\n\r\n let x = 75;\r\n if (question.answer && !question.answer.includes('base64')) {\r\n if (y !== 0) {\r\n y+=30 * splitLabel.length;\r\n }\r\n doc.setFontSize(12);\r\n doc.setFont(undefined, 'bold');\r\n const textWidth = doc.getStringUnitWidth(splitLabel[splitLabel.length - 1]);\r\n const addMoreWidth = indent ? 45 : 0;\r\n const width = textWidth * 14 + addMoreWidth;\r\n if (question.screenTitle && width < 500 && question.field_type !== 'textarea') {\r\n let space = 0;\r\n if (width < 175) {\r\n space = 20;\r\n } else if (width >= 175 && width <= 320) {\r\n space = 10;\r\n } else if (width > 320 && width <= 375) {\r\n space = -5;\r\n } else {\r\n space = -10;\r\n }\r\n x = width + space;\r\n const length = splitLabel.length;\r\n if (length === 1) {\r\n if (y > 30) {\r\n y-= 30;\r\n }\r\n question.answer !== null && doc.text(x, y, question.answer);\r\n y+= 10;\r\n } else {\r\n if (y > 30) {\r\n y-=(30 * length) - (16 * (length - 1));\r\n }\r\n question.answer !== null && doc.text(x, y, question.answer);\r\n y+=(10 * length) - (16 * (length - 1));\r\n }\r\n } else if (question.field_type === 'textarea') {\r\n const splitText = doc.splitTextToSize(question.answer, 500);\r\n if (y + 30 * splitText.length > pageHeight) {\r\n doc.addPage();\r\n y = 20;\r\n }\r\n doc.setFontSize(12);\r\n doc.setFont(undefined, 'bold');\r\n doc.text(x, y, splitText);\r\n y+=30 * (splitText.length / 2);\r\n } else {\r\n question.answer !== null && doc.text(x, y, question.answer);\r\n y+=10;\r\n }\r\n } else if (question.answer && question.answer.includes('base64')) {\r\n y+=10;\r\n doc.addImage(question.answer, 'png', x, y, 75, 24);\r\n y+=30;\r\n }\r\n } \r\n ).join('')\r\n }).join('')\r\n return doc.output(\"dataurlnewwindow\");\r\n } \r\n\r\n const handleSelectNoToAll = () => {\r\n questionnaire[currentPage].questions.forEach((question, index) => {\r\n if (question.field_type !== 'readonly') {\r\n onValueChange(index, \"No\");\r\n }\r\n });\r\n }\r\n\r\n return (\r\n \r\n {currentForm && currentForm.formName && (\r\n \r\n )}\r\n \r\n\r\n {reviewForm && (\r\n <>\r\n {/* */}\r\n \r\n 0}\r\n onClick={() => setReviewForm(false)}\r\n >\r\n Back\r\n ,\r\n 0}\r\n onClick={() => submitPDF()}\r\n >\r\n {submitMessage.length > 0 ? {submitMessage} : \"Submit\"}\r\n ,\r\n ]}\r\n align={\"right\"}\r\n disableGutter\r\n />\r\n \r\n\r\n \r\n\r\n {questionnaire &&\r\n questionnaire.map((section, sectionIndex) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {section &&\r\n section.questions.map((question, questionIndex) => (\r\n \r\n {/* {(question.answer === null || question.answer === \"\") &&\r\n question.isRequired &&\r\n question.field_type !== \"readonly\" && (\r\n \r\n )} */}\r\n
\r\n {\" \"}\r\n {question.label}\r\n {/* {question.answer?.length !== 0 && question.answer} */}\r\n
\r\n {\r\n {\r\n input: (\r\n
\r\n {question.answer?.length !== 0 &&\r\n question.answer}\r\n
\r\n ),\r\n \"input-int\": (\r\n
\r\n {question.answer?.length !== 0 &&\r\n question.answer}\r\n
\r\n ),\r\n \"input-height\": (\r\n
\r\n {question.answer?.length !== 0 &&\r\n question.answer}\r\n
\r\n ),\r\n \"input-phone\": (\r\n
\r\n {question.answer?.length !== 0 &&\r\n question.answer}\r\n
\r\n ),\r\n textarea: (\r\n
\r\n {question.answer?.length !== 0 &&\r\n question.answer}\r\n
\r\n ),\r\n multiselectlist: (\r\n
\r\n {question.answer?.length !== 0 &&\r\n question.answer !== null &&\r\n parseMultiSelectValue(\r\n question.answer\r\n )}\r\n
\r\n ),\r\n datefield: (\r\n
\r\n {question.answer?.length !== 0 &&\r\n question.answer}\r\n
\r\n ),\r\n time: (\r\n
\r\n {question.answer?.length !== 0 &&\r\n question.answer !== null &&\r\n parseTimeValue(question.answer)}\r\n
\r\n ),\r\n radiobuttonlist: (\r\n
\r\n {question.answer?.length !== 0 &&\r\n question.answer !== null &&\r\n parseMultiSelectValue(\r\n question.answer\r\n )}\r\n
\r\n ),\r\n textfield: (\r\n
\r\n {question.answer?.length !== 0 &&\r\n question.answer}\r\n
\r\n ),\r\n checkbox: (\r\n
\r\n {question.answer?.length !== 0 &&\r\n question.answer}\r\n
\r\n ),\r\n \"rating-3\": (\r\n
\r\n {question.answer?.length !== 0 &&\r\n question.answer}\r\n
\r\n ),\r\n \"rating-4\": (\r\n
\r\n {question.answer?.length !== 0 &&\r\n question.answer}\r\n
\r\n ),\r\n \"rating-5\": (\r\n
\r\n {question.answer?.length !== 0 &&\r\n question.answer}\r\n
\r\n ),\r\n \"total-rating\": (\r\n
\r\n {question.answer?.length !== 0 &&\r\n question.answer}\r\n
\r\n ),\r\n }[question.field_type]\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 0}\r\n onClick={() => setReviewForm(false)}\r\n >\r\n Back\r\n ,\r\n 0}\r\n onClick={() => submitPDF()}\r\n >\r\n {submitMessage.length > 0 ? {submitMessage} : \"Submit\"}\r\n ,\r\n ]}\r\n align={\"right\"}\r\n disableGutter\r\n />\r\n \r\n \r\n )}\r\n {!reviewForm && (\r\n
\r\n {/* */}\r\n \r\n \r\n \r\n \r\n\r\n {/* dev testing button only! Keep button commented out for production */}\r\n {currentPage === 5 && (user.employeeNumber === 'C8102122' || user.employeeNumber === '26004400' || user.employeeNumber === '1986211') && (\r\n \r\n )}\r\n\r\n \r\n \r\n\r\n {currentPage ===\r\n (questionnaire && questionnaire.length - 1) && currentForm.formKey === \"MDCSCRNDCT\" && (\r\n \r\n 0}\r\n onClick={() => handlePageBack()}\r\n >\r\n Back\r\n ,\r\n 0}\r\n onClick={() => submitPDF()}\r\n >\r\n {submitMessage.length > 0 ? {submitMessage} : \"Submit\"}\r\n ,\r\n ]}\r\n align={\"right\"}\r\n disableGutter\r\n />\r\n \r\n )}\r\n\r\n \r\n {questionnaire &&\r\n questionnaire[currentPage].questions.map(\r\n (question, questionIndex) => (\r\n \r\n \r\n \r\n {question.field_type !== \"readonly\" && question.field_type !== \"input-phone\" && question.field_type !== 'input-height' && question.isRequired && (\r\n (question.answer === null ||\r\n question.answer === \"\") ||\r\n failedAgreementDisableNext\r\n ? (\r\n \r\n )\r\n : \r\n )}\r\n {question.field_type === \"input-phone\" && question.isRequired && (\r\n (question.answer === null ||\r\n question.answer.length < 14) ||\r\n failedAgreementDisableNext\r\n ? (\r\n \r\n )\r\n : \r\n )}\r\n {question.field_type === \"input-height\" && question.isRequired && (\r\n question.answer === null ||\r\n (!question.answer.includes(\"Feet\") || !question.answer.includes(\"Inch\")) ||\r\n failedAgreementDisableNext\r\n ? (\r\n \r\n )\r\n : \r\n )}\r\n {\" \"}\r\n {question.label}\r\n {/* {question.answer?.length !== 0 && question.answer} */}\r\n
\r\n {\r\n {\r\n input: (\r\n !checkCurrentPage && (\r\n \r\n onValueChange(questionIndex, e.target.value)\r\n }\r\n fullWidth={true}\r\n InputLabelProps={{\r\n shrink: true,\r\n }}\r\n value={\r\n question.answer?.length !== 0 ?\r\n question.answer : ''\r\n }\r\n />\r\n )\r\n ),\r\n \"input-int\": (\r\n \r\n filterNumbersOnly(questionIndex, e.target.value)\r\n }\r\n fullWidth={true}\r\n InputLabelProps={{\r\n shrink: true,\r\n }}\r\n value={\r\n question.answer?.length !== 0 ?\r\n question.answer : ''\r\n }\r\n />\r\n ),\r\n \"input-height\": (\r\n
\r\n handleHeight(questionIndex, e.target.value)}\r\n value={heightInFeet}\r\n />\r\n handleHeight(questionIndex, e.target.value)}\r\n value={heightInInches}\r\n />\r\n
\r\n ),\r\n \"input-phone\": (\r\n \r\n formatPhoneNumber(questionIndex, e.target.value)\r\n }\r\n fullWidth={true}\r\n InputLabelProps={{\r\n shrink: true,\r\n }}\r\n value={\r\n question.answer?.length !== 0 ?\r\n question.answer : ''\r\n }\r\n />\r\n ),\r\n textarea: (\r\n \r\n onValueChange(questionIndex, e.target.value)\r\n }\r\n fullWidth={true}\r\n multiline\r\n rows={4}\r\n value={\r\n question.answer?.length !== 0 ?\r\n question.answer : ''\r\n }\r\n />\r\n ),\r\n multiselectlist: (\r\n \r\n onMultiSelectValueChange(\r\n questionIndex,\r\n e.target.value\r\n )\r\n }\r\n >\r\n {question.select_options !== null &&\r\n JSON.parse(\r\n question.select_options\r\n ).map((selectOption, selectOptionIndex) => (\r\n }\r\n label={selectOption}\r\n />\r\n ))}\r\n \r\n ),\r\n datefield: (\r\n <>\r\n {question.answer?.length !== 0 &&\r\n question.answer ? (\r\n <>\r\n \r\n {question.answer}\r\n \r\n onValueChange(questionIndex, \"\")\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n onValueChange(\r\n questionIndex,\r\n formatDate(date)\r\n )\r\n }\r\n />\r\n )}\r\n \r\n ),\r\n time: (\r\n \r\n onValueChange(questionIndex, moment\r\n .utc(time, 'MM/DD/YYYY hh:mm:ss a')\r\n .local()\r\n .format('MMMM DD, hh:mm A'))\r\n }\r\n KeyboardButtonProps={{\r\n 'aria-label': 'change time',\r\n }}\r\n keyboardIcon={\r\n \r\n }\r\n />\r\n ),\r\n radiobuttonlist: (\r\n \r\n onValueChange(questionIndex, e.target.value)\r\n }\r\n className={classes.multiButton}\r\n >\r\n {question.select_options !== null &&\r\n JSON.parse(\r\n question.select_options\r\n ).map((selectOption, selectOptionIndex) => (\r\n }\r\n label={selectOption.label}\r\n />\r\n ))}\r\n \r\n ),\r\n textfield: (\r\n \r\n onValueChange(questionIndex, e.target.value)\r\n }\r\n />\r\n ),\r\n checkbox: (\r\n \r\n onValueChange(\r\n questionIndex,\r\n e.target.value\r\n )\r\n }\r\n sx={{\r\n color: question.isRequired\r\n ? \"red\"\r\n : \"grey\",\r\n }}\r\n />\r\n }\r\n id={question.questionID}\r\n label={question.label}\r\n />\r\n ),\r\n \"rating-3\": (\r\n \r\n onValueChange(\r\n questionIndex,\r\n e.target.value,\r\n 3\r\n )\r\n }\r\n sx={{\r\n color: question.isRequired\r\n ? \"red\"\r\n : \"grey\",\r\n }}\r\n />\r\n ),\r\n \"rating-4\": (\r\n \r\n onValueChange(\r\n questionIndex,\r\n e.target.value,\r\n 4\r\n )\r\n }\r\n sx={{\r\n color: question.isRequired\r\n ? \"red\"\r\n : \"grey\",\r\n }}\r\n />\r\n ),\r\n \"rating-5\": (\r\n \r\n onValueChange(\r\n questionIndex,\r\n e.target.value,\r\n 5\r\n )\r\n }\r\n sx={{\r\n color: question.isRequired\r\n ? \"red\"\r\n : \"grey\",\r\n }}\r\n />\r\n ),\r\n \"total-rating\": (\r\n {totalScore} / {totalRatings}\r\n ),\r\n signature: (\r\n <>\r\n {question.answer ? \r\n :\r\n \r\n }\r\n {question.answer && (\r\n \r\n \r\n \r\n )}\r\n \r\n ),\r\n }[question.field_type]\r\n }\r\n {openSigModal && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n )\r\n )}\r\n
\r\n
\r\n\r\n \r\n handleBackToHome() : () => handlePageBack()}\r\n >\r\n Back\r\n ,\r\n \r\n {currentPage !==\r\n (questionnaire && questionnaire.length - 1) && (\r\n handleNextPage()}\r\n >\r\n Next\r\n \r\n )}\r\n {currentPage ===\r\n (questionnaire && questionnaire.length - 1) && (\r\n // setReviewForm(true)}\r\n // >\r\n // Review\r\n // \r\n 0}\r\n onClick={() => submitPDF()}\r\n >\r\n {submitMessage.length > 0 ? {submitMessage} : \"Submit\"}\r\n \r\n )}\r\n ,\r\n ]}\r\n align={\"right\"}\r\n disableGutter\r\n />\r\n \r\n
\r\n )}\r\n {submitMessage.length > 0 && (\r\n
\r\n
\r\n Submitting your form. This process may take a minute or two...\r\n \r\n
\r\n
\r\n )}\r\n setFailedAgreement(false),\r\n onCancelClickHandler: () => handleBackToHome()\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nFormComponent.propTypes = {\r\n /**\r\n * External classes\r\n */\r\n className: PropTypes.string,\r\n /**\r\n * Children to placed inside the section\r\n */\r\n children: PropTypes.node,\r\n /**\r\n * Should show narrow sections\r\n */\r\n innerNarrowed: PropTypes.bool,\r\n};\r\n\r\nexport default FormComponent;\r\n","import React, { useCallback, useEffect, useState } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Typography, Box } from \"@material-ui/core\";\r\nimport { Image } from \"@components/atoms\";\r\nimport icon_placeholder from \"@assets/images/icon_placeholder.png\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n height: \"100%\",\r\n width: \"100%\",\r\n },\r\n featureCheck: {\r\n marginRight: theme.spacing(1),\r\n },\r\n logoContainer: {\r\n width: '120%',\r\n // height: 40,\r\n marginBottom: 20,\r\n fontSize: \"10px\",\r\n textAlign: \"center\",\r\n borderRadius: 20,\r\n color: theme.palette.text.primary,\r\n \"&:hover\": {\r\n background: theme.palette.background.dashButton,\r\n },\r\n },\r\n logoImage: {\r\n width: 50,\r\n height: 50,\r\n },\r\n a: {\r\n textDecoration: \"none\",\r\n },\r\n iconColorActive: {\r\n color: theme.palette.icon.primary,\r\n },\r\n iconColorInactive: {\r\n color: \"grey\",\r\n },\r\n}));\r\n\r\n/**\r\n * Component to display the job card\r\n *\r\n * @param {Object} props\r\n */\r\nconst ModuleLink = (props) => {\r\n const { name, logo, icon, isModuleActive, externalLink, className, key, currentCounty, ...rest } = props;\r\n\r\n const [tileName, setTileName] = useState('');\r\n const [secondTileName, setSecondTileName] = useState('');\r\n\r\n const classes = useStyles();\r\n\r\n const checkName = useCallback(() => {\r\n if (name.includes(\" \")) {\r\n const index = name.indexOf(\" \")\r\n setTileName(name.slice(0, index));\r\n setSecondTileName(name.slice(index));\r\n } else {\r\n setTileName(name);\r\n }\r\n }, [name]);\r\n\r\n useEffect(() => {\r\n checkName();\r\n }, [name]);\r\n\r\n return (\r\n \r\n
\r\n {icon && (\r\n \r\n )}\r\n {logo && (\r\n \r\n )}\r\n \r\n \r\n {secondTileName ?\r\n <>\r\n {tileName}\r\n {secondTileName}\r\n \r\n : {tileName}}\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nModuleLink.propTypes = {\r\n /**\r\n * DOM Key\r\n */\r\n key: PropTypes.string,\r\n /**\r\n * External classes\r\n */\r\n className: PropTypes.string,\r\n /**\r\n * Name of the application\r\n */\r\n name: PropTypes.string.isRequired,\r\n /**\r\n * Logo of application\r\n */\r\n logo: PropTypes.string.isRequired,\r\n /**\r\n * Link for application\r\n */\r\n externalLink: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default ModuleLink;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { SectionHeader } from \"@components/molecules\";\r\nimport { Section } from \"@components/organisms\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n position: \"relative\",\r\n overflow: \"hidden\",\r\n background: theme.palette.primary.dark,\r\n },\r\n textWhite: {\r\n color: \"white\",\r\n },\r\n title: {\r\n fontWeight: \"bold\",\r\n },\r\n}));\r\n\r\nconst Hero = (props) => {\r\n const { className, title, subtitle, ...rest } = props;\r\n const classes = useStyles();\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nHero.propTypes = {\r\n /**\r\n * External classes\r\n */\r\n className: PropTypes.string,\r\n /**\r\n * Title of the pricing card\r\n */\r\n title: PropTypes.string.isRequired,\r\n /**\r\n * Subtitle of the pricing card\r\n */\r\n subtitle: PropTypes.string,\r\n};\r\n\r\nexport default Hero;\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport {useSelector} from 'react-redux';\r\nimport { Section } from \"@components/organisms\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n sectionNoPaddingTop: {\r\n paddingTop: 0,\r\n },\r\n promoSection: {\r\n background: theme.palette.alternate.main,\r\n padding: theme.spacing(2, 2),\r\n [theme.breakpoints.up(\"md\")]: {\r\n padding: theme.spacing(4, 2),\r\n },\r\n },\r\n purpleStripes: {\r\n color: \"white\",\r\n background:\r\n \"repeating-linear-gradient(-55deg, #606dbc, #606dbc 10px, #465298 10px, #465298 20px)\",\r\n },\r\n blueStripes: {\r\n color: \"white\",\r\n background:\r\n \"repeating-linear-gradient(-55deg, #1788cf, #1788cf 15px, #0076bd 15px, #0076bd 30px)\",\r\n },\r\n blueStripesThin: {\r\n color: \"white\",\r\n background:\r\n \"repeating-linear-gradient(-55deg, #1788cf, #1788cf 10px, #0076bd 10px, #0076bd 20px)\",\r\n },\r\n blueStripesGradient: {\r\n color: \"white\",\r\n background: \"linear-gradient(90deg, rgba(79,154,201,1) 47%, rgba(11,82,125,1) 100%)\", //4f9ac9 & 0b527d\r\n }\r\n}));\r\n\r\n/**\r\n * Component to display the sections\r\n *\r\n * @param {Object} props\r\n */\r\nconst ProfileBanner = props => {\r\n const { user } = useSelector(state => state.user);\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n
\r\n

Hello {user.firstName} {user.lastName} ({user.employeeNumber})

\r\n
\r\n \r\n );\r\n};\r\n\r\n\r\nexport default ProfileBanner;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n maxWidth: theme.layout.contentWidth,\r\n width: '100%',\r\n margin: '0 auto',\r\n padding: theme.spacing(6, 2),\r\n [theme.breakpoints.up('sm')]: {\r\n padding: theme.spacing(8, 8),\r\n },\r\n [theme.breakpoints.up('md')]: {\r\n padding: theme.spacing(6, 8),\r\n },\r\n },\r\n fullWidth: {\r\n maxWidth: '100%',\r\n },\r\n disablePadding: {\r\n padding: 0,\r\n },\r\n narrow: {\r\n maxWidth: 800,\r\n },\r\n}));\r\n\r\n/**\r\n * Component to display the sections\r\n *\r\n * @param {Object} props\r\n */\r\nconst Section = props => {\r\n const {\r\n children,\r\n fullWidth,\r\n narrow,\r\n disablePadding,\r\n className,\r\n ...rest\r\n } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nSection.propTypes = {\r\n /**\r\n * External classes\r\n */\r\n className: PropTypes.string,\r\n /**\r\n * Children to placed inside the section\r\n */\r\n children: PropTypes.node,\r\n /**\r\n * Should show narrow sections\r\n */\r\n narrow: PropTypes.bool,\r\n /**\r\n * Should the section be full width\r\n */\r\n fullWidth: PropTypes.bool,\r\n /**\r\n * Should the section render with no padding\r\n */\r\n disablePadding: PropTypes.bool,\r\n};\r\n\r\nexport default Section;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n background: theme.palette.alternate.main,\r\n },\r\n inner: {\r\n maxWidth: theme.layout.contentWidth,\r\n width: '100%',\r\n margin: '0 auto',\r\n padding: theme.spacing(6, 2),\r\n [theme.breakpoints.up('sm')]: {\r\n padding: theme.spacing(8, 8),\r\n },\r\n [theme.breakpoints.up('md')]: {\r\n padding: theme.spacing(12, 8),\r\n },\r\n },\r\n innerNarrowed: {\r\n maxWidth: 800,\r\n },\r\n}));\r\n\r\n/**\r\n * Component to display the alternative sections\r\n *\r\n * @param {Object} props\r\n */\r\nconst SectionAlternate = props => {\r\n const { children, innerNarrowed, className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nSectionAlternate.propTypes = {\r\n /**\r\n * External classes\r\n */\r\n className: PropTypes.string,\r\n /**\r\n * Children to placed inside the section\r\n */\r\n children: PropTypes.node,\r\n /**\r\n * Should show narrow sections\r\n */\r\n innerNarrowed: PropTypes.bool,\r\n};\r\n\r\nexport default SectionAlternate;","import React, { Fragment, useState, useEffect, useRef, useCallback, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { Field } from 'formik';\r\nimport { Grid, Typography, FormControl, makeStyles } from '@material-ui/core';\r\nimport { TextField, Select, TextFieldDatePicker, HelperText } from '@components/atoms';\r\nimport { DragNDrop, DialogAlert } from '@components/molecules';\r\nimport { CredentialsService } from '@services';\r\nimport moment from 'moment';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n imageWrapper: {\r\n marginTop: theme.spacing(3),\r\n },\r\n typography: {\r\n color: theme.palette.primary.main,\r\n }\r\n}));\r\n\r\nconst CertificateFields = (props) => {\r\n const {\r\n filterValues, isSmUp, hash, formik, formik: { values }, state, setState, setOpenModal,\r\n addCertificate, eCardData, setECardData, setIsFrontImageRequired, setIsBackImageRequired,\r\n isChangingImage, setIsChangingImage, certificates, certificateTypes, eCardDataUpdatedRef\r\n } = props;\r\n const [eCardMapData, setEcardMapData] = useState();\r\n const [isEcard, setIsEcard] = useState(false);\r\n const [ecardAlert, setEcardAlert] = useState(false);\r\n const classes = useStyles();\r\n const previousCertificateRef = useRef();\r\n\r\n const handleEcardModal = () => {\r\n setOpenModal(true);\r\n setEcardAlert(false);\r\n }\r\n\r\n const handleChangeImage = () => {\r\n formik.setFieldValue('certificateImage', '');\r\n // setIsChangingImage(true);\r\n }\r\n\r\n useEffect(() => {\r\n if (addCertificate) setIsChangingImage(true);\r\n if (!values.certificateID || !Object.values(values).join('').length) {\r\n previousCertificateRef.current = '';\r\n return;\r\n }\r\n if (previousCertificateRef.current && previousCertificateRef.current !== values.certificateID) {\r\n if (Number(values.certificateID) !== 268)\r\n setState(prevState => ({ ...prevState, stateDLFormat: null }));\r\n ['documentNumber', 'agency', 'stateCode', 'countyName', 'issueDate', 'expirationDate', 'frontImage', 'backImage'].forEach(v => {\r\n formik.setFieldValue(v, '', false);\r\n formik.setFieldTouched(v, false);\r\n });\r\n !eCardDataUpdatedRef.current && setECardData();\r\n if (addCertificate && !eCardData && values.certificateID && [142, 409, 166, 230, 233, 143, 231, 410, 167].includes(Number(values.certificateID))) setEcardAlert(true);\r\n }\r\n if (!previousCertificateRef.current) {\r\n if (addCertificate && !eCardData && values.certificateID && [142, 409, 166, 230, 233, 143, 231, 410, 167].includes(Number(values.certificateID))) setEcardAlert(true);\r\n }\r\n previousCertificateRef.current = values.certificateID;\r\n const selectedCertificate = certificateTypes.find(v => Number(values.certificateID) === Number(v.certificateID));\r\n setIsFrontImageRequired(selectedCertificate.isFrontImageRequired === \"True\" ? true : false);\r\n setIsBackImageRequired(selectedCertificate.isBackImageRequired === \"True\" ? true : false);\r\n let isEcardCert = false;\r\n if (!eCardMapData) {\r\n CredentialsService.eCardMapping()\r\n .then(eCards => {\r\n isEcardCert = !!eCards.find(eCard => Number(selectedCertificate.certificateID) === Number(eCard.codeValue));\r\n setIsEcard(isEcardCert);\r\n setEcardMapData(eCards);\r\n setEcardAlert(isEcardCert);\r\n });\r\n } else {\r\n isEcardCert = !!eCardMapData.find(eCard => Number(selectedCertificate.certificateID) === Number(eCard.codeValue));\r\n setIsEcard(isEcardCert);\r\n }\r\n let statesOptions = [], countiesOptions = [];\r\n // const certTypesBasedonAddCertFlag = addCertificate ? filterValues.certificateTypes : certificateTypes;\r\n let filterCertBasisOfAddUpdateFlag;\r\n if (certificates) {\r\n filterCertBasisOfAddUpdateFlag = (addCertificate ? certificates : certificates.filter(cert => cert.certificateID !== selectedCertificate.certificateID)).filter(cert => !['MISSING', 'REJECTED'].includes(cert?.disposition));\r\n }\r\n const addedStateOrCountyCerts = filterCertBasisOfAddUpdateFlag ? filterCertBasisOfAddUpdateFlag.filter(addedCert => Number(addedCert.certificateID) === Number(values.certificateID)) : [];\r\n if ([1, 2].includes(Number(selectedCertificate.stateCounty))) {\r\n /* const addedStateCerts = certTypesBasedonAddCertFlag.reduce((acc, certType) => {\r\n const cert = filterCertBasisOfAddUpdateFlag.filter(addedCert => addedCert.certificateID === certType.certificateID && [\"1\", \"2\"].includes(certType.stateCounty))\r\n if (cert?.length)\r\n acc.push(...cert);\r\n return acc;\r\n }, []); */\r\n\r\n const stateCodes = addedStateOrCountyCerts.filter(cert => !!cert.stateCode && (addCertificate ? true : cert.stateCode !== values.stateCode)).map(v => v.stateCode);\r\n const filteredStates = filterValues.stateCountyOptions.filter(item => !stateCodes.includes(item.stateCode));\r\n statesOptions = ([1].includes(Number(selectedCertificate.stateCounty)) ? filteredStates : filterValues.stateCountyOptions).map(v => ({ label: v.stateDescription, value: v.stateCode }));\r\n // console.log('selectedCertificate.stateCounty', [1].includes(Number(selectedCertificate.stateCounty)) ? 'State cert' : 'county cert', 'statesOptions', statesOptions);\r\n }\r\n if (values.stateCode && [2].includes(Number(selectedCertificate.stateCounty))) {\r\n /* const addedCountyCerts = certTypesBasedonAddCertFlag.reduce((acc, certType) => {\r\n const cert = filterCertBasisOfAddUpdateFlag.filter(addedCert => addedCert.certificateID === certType.certificateID && [\"2\"].includes(certType.stateCounty) && !!addedCert.stateCode);\r\n if (cert?.length)\r\n acc.push(...cert);\r\n return acc;\r\n }, []); */\r\n const tempStateCountyOptions = Array.from(filterValues.stateCountyOptions);\r\n const groupByStates = _.groupBy(addedStateOrCountyCerts, 'stateCode');\r\n\r\n // const tempRemovedAddedStateCounties = tempStateCountyOptions.filter(v => !_.keys(groupByStates).includes(v.stateCode));\r\n // let modifiedStateCounties = [];\r\n let tempModifiedStateCounties = [...tempStateCountyOptions];\r\n _.keys(groupByStates).forEach(item => {\r\n let stateInfo = tempStateCountyOptions.find(v => v.stateCode == item);\r\n if (stateInfo?.counties?.length) {\r\n const tempCounties = Array.from(stateInfo.counties);\r\n const addedCounties = groupByStates[item].filter(v => !!v.countyName).map(v => v.countyName);\r\n const filteredCounties = tempCounties.filter(v => !addedCounties.includes(v));\r\n /* modifiedStateCounties = [...modifiedStateCounties, ...tempStateCountyOptions.reduce((acc, v) => {\r\n if (v.stateCode == item) {\r\n const data = { ...v };\r\n data.counties = [...filteredCounties];\r\n acc.push(data);\r\n }\r\n return acc;\r\n }, [])]; */\r\n tempModifiedStateCounties = tempModifiedStateCounties.map(v => {\r\n if (v.stateCode == item) {\r\n const data = { ...v };\r\n data.counties = [...filteredCounties];\r\n return data;\r\n }\r\n return v;\r\n });\r\n }\r\n });\r\n // const filteredStateCountyOptions = _.sortBy([...tempRemovedAddedStateCounties, ...modifiedStateCounties], 'stateCode');\r\n countiesOptions = tempModifiedStateCounties.find(v => v.stateCode == values.stateCode).counties.map(v => ({ label: v, value: v }));\r\n }\r\n //const statesOptions = [\"1\", \"2\"].includes(selectedCertificate.stateCounty) ? filterValues.stateCountyOptions.map(v => ({ label: v.stateDescription, value: v.stateCode })) : [];\r\n //const countiesOptions = values.stateCode && [\"2\"].includes(selectedCertificate.stateCounty) ? filterValues.stateCountyOptions.find(v => v.stateCode == values.stateCode).counties.map(v => ({ label: v, value: v })) : [];\r\n setState(prevState => ({ ...prevState, selectedCertificate, statesOptions, countiesOptions }));\r\n }, [values, addCertificate]);\r\n\r\n const isMissingCert = useMemo(() => (formik.values.certificateID && certificates ? certificates.find(cert => Number(cert.certificateID) === Number(formik.values.certificateID))?.disposition === 'MISSING' : false), [state.selectedCertificate]);\r\n\r\n const checkSelectedCertType = useCallback(() => {\r\n if (!isEcard) {\r\n setECardData();\r\n }\r\n }, [isEcard]);\r\n\r\n useEffect(() => {\r\n checkSelectedCertType();\r\n }, [isEcard]);\r\n\r\n const onStateChange = async (event) => {\r\n formik.handleChange(event);\r\n formik.setFieldValue('documentNumber', '');\r\n formik.setFieldTouched('documentNumber', false);\r\n if (Number(values.certificateID) === 268) { //driversLicense\r\n const response = await CredentialsService.getStateDLFormat(event.target.value);\r\n setState(prevState => ({ ...prevState, stateDLFormat: response[0] }));\r\n }\r\n }\r\n\r\n const onDateChange = e => {\r\n let result = e.target.value;\r\n if (Number(result?.split('-')[0]) > 2099) result = '2099' + result.substring(4);\r\n else if (Number(result?.split('-')[0]) < 2000) result = '2000' + result.substring(4);\r\n const args = e;\r\n args.target.value = result;\r\n formik.handleChange(args);\r\n formik.handleBlur(args);\r\n }\r\n\r\n const onIssueDateChange = e => {\r\n if (state.selectedCertificate.certificateID === '242') {\r\n const setExpDate = moment(e.target.value).add(1, 'year').format('YYYY-MM-DD')\r\n formik.setFieldValue('expirationDate', setExpDate);\r\n }\r\n formik.setFieldValue('issueDate', e.target.value);\r\n }\r\n\r\n const renderState = (\r\n \r\n );\r\n\r\n const renderStateCountyBasedOnCertificate = () => {\r\n if ((state.selectedCertificate && !parseInt(state.selectedCertificate.stateCounty)) || !state.selectedCertificate) return null;\r\n if (state.selectedCertificate.certificateName === \"Drivers License-Canada\" && formik.values.stateCode !== \"CD\") (\r\n formik.setFieldValue('stateCode', 'CD')\r\n )\r\n return (\r\n state.selectedCertificate.stateCounty == \"1\" ? renderState : (\r\n \r\n {renderState}\r\n \r\n \r\n )\r\n );\r\n }\r\n\r\n const renderCertificateFields = () => {\r\n if (formik.values.stateCode === 'NJ' && formik.values.documentNumber.includes(':')) {\r\n const splitCertNumberAndZipCode = formik.values.documentNumber.split(':');\r\n formik.setFieldValue('documentNumber', splitCertNumberAndZipCode[0]);\r\n formik.setFieldValue('zipCode', splitCertNumberAndZipCode[1]);\r\n }\r\n\r\n return (\r\n \r\n { formik.setFieldValue('certificateID', event.target.value); eCardDataUpdatedRef.current = false; },\r\n onBlur: formik.handleBlur,\r\n options: state.certificateTypesOptions || [],\r\n formProps: { variant: \"outlined\", required: true, fullWidth: true, },\r\n value: formik.values.certificateID,\r\n error: formik.touched.certificateID && Boolean(formik.errors.certificateID),\r\n helperText: formik.touched.certificateID && formik.errors.certificateID,\r\n disabled: !addCertificate && !isMissingCert\r\n }} />\r\n {renderStateCountyBasedOnCertificate()}\r\n formik.setFieldValue('documentNumber', _.toUpper(event.target.value)),\r\n onBlur: formik.handleBlur,\r\n fullWidth: true,\r\n required: true,\r\n value: formik.values.documentNumber,\r\n error: formik.touched.documentNumber && Boolean(formik.errors.documentNumber),\r\n helperText: formik.touched.documentNumber && formik.errors.documentNumber,\r\n disabled: Number(formik.values.certificateID) === 268 && !formik.values.stateCode,\r\n }} />\r\n {formik.values.stateCode === 'NJ' && (\r\n formik.setFieldValue('zipCode', event.target.value),\r\n onBlur: formik.handleBlur,\r\n fullWidth: true,\r\n required: true,\r\n value: formik.values.zipCode,\r\n error: formik.touched.zipCode && Boolean(formik.errors.zipCode),\r\n helperText: formik.touched.zipCode && formik.errors.zipCode,\r\n }} />\r\n )}\r\n \r\n \r\n \r\n onIssueDateChange(e),\r\n onBlur: onDateChange,\r\n fullWidth: true,\r\n variant: \"outlined\",\r\n style: { width: '15rem' },\r\n value: formik.values.issueDate,\r\n error: formik.touched.issueDate && Boolean(formik.errors.issueDate),\r\n helperText: formik.touched.issueDate && formik.errors.issueDate,\r\n }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n const renderImageUploadFields = () => {\r\n const isEcardCert = [142, 409, 166, 230, 233, 143, 231, 410, 167].includes(Number(formik.values?.certificateID));\r\n return (\r\n \r\n {\r\n !addCertificate && values.certificateImage && !isChangingImage && (\r\n \r\n \r\n \r\n Credential Image Upload\r\n \r\n handleChangeImage() : () => { },\r\n restrictFileExplorer: isEcardCert ? eCardDataUpdatedRef.current || true : false,\r\n dropZoneProps: { disabled: isEcardCert ? eCardDataUpdatedRef.current : false },\r\n disableUpdateImage: isEcardCert ? eCardDataUpdatedRef.current : false,\r\n }} />\r\n \r\n \r\n \r\n )\r\n }\r\n {\r\n state.selectedCertificate && !values.certificateImage && state.selectedCertificate.isFrontImageRequired === \"True\" && (\r\n \r\n \r\n \r\n Front Image Upload\r\n \r\n formik.setFieldValue('frontImage', data),\r\n type: 'png, jpeg, jpg',\r\n }} />\r\n \r\n \r\n \r\n )\r\n }\r\n {\r\n state.selectedCertificate && !values.certificateImage && state.selectedCertificate.isBackImageRequired === \"True\" && !eCardData && (\r\n \r\n \r\n \r\n Back Image Upload\r\n \r\n formik.setFieldValue('backImage', data),\r\n type: 'png, jpeg, jpg',\r\n }} />\r\n \r\n \r\n \r\n )\r\n }\r\n \r\n );\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n {isSmUp || hash.split('-').pop() === '1' ? renderCertificateFields() : null}\r\n \r\n \r\n {isSmUp || hash.split('-').pop() > '1' ? renderImageUploadFields() : null}\r\n \r\n handleEcardModal(),\r\n onNoClickHandler: () => setEcardAlert(false)\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default CertificateFields;","import React, { useState, useEffect, useCallback, forwardRef, useRef, useImperativeHandle, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport moment from 'moment';\r\nimport { Grid, Typography, FormControl, makeStyles, } from '@material-ui/core';\r\nimport { TextField, Select, TextFieldDatePicker, HelperText, CheckBox, CircularLoader } from '@components/atoms';\r\nimport { DragNDrop, DialogAlert, DialogConfirm } from '@components/molecules';\r\n\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\n\r\n//API Requests\r\nimport { CredentialsService } from \"@services\";\r\n\r\nimport { setManufacturers } from '@store/addCertificate';\r\nimport certificates from 'src/store/certificates';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n imageWrapper: {\r\n marginTop: theme.spacing(3),\r\n },\r\n typography: {\r\n color: theme.palette.primary.main,\r\n },\r\n dialog: {\r\n\r\n }\r\n}));\r\n\r\nconst CERT_STATUS_OPTIONS = [\r\n {\r\n label: 'Active',\r\n value: 'Active'\r\n },\r\n {\r\n label: 'Inactive',\r\n value: 'Inactive'\r\n },\r\n];\r\n\r\nconst CovidVaccine = forwardRef((props, ref) => {\r\n const { filterValues, isSmUp, hash, formik, formik: { values }, state, setState, manufacturersList, certificateList, actions: { setManufacturers }, addCertificate, setECardData, isChangingImage, setIsChangingImage } = props;\r\n const [vaccineState, setVaccineState] = useState({ loading: true, openBoosterAlert: false, openUnVaccinatedConfirm: false, boosterAlertMsg: '', boosterShotAlertShownOnce: false });\r\n const classes = useStyles();\r\n const previousCertificateRef = useRef();\r\n\r\n useEffect(() => {\r\n if (addCertificate) setIsChangingImage(true);\r\n if (!values.certificateID || !Object.values(values).join('').length) return;\r\n if (previousCertificateRef.current && Number(previousCertificateRef.current) !== Number(values.certificateID)) {\r\n ['documentNumber', 'issueDate', 'frontImage'].forEach(v => formik.setFieldValue(v, '', false));\r\n setECardData();\r\n }\r\n previousCertificateRef.current = values.certificateID;\r\n const selectedCertificate = filterValues.certificateTypes.find(v => Number(values.certificateID) === Number(v.certificateID));\r\n setState(prevState => ({ ...prevState, selectedCertificate }));\r\n }, [values]);\r\n\r\n const getManufacturersList = async () => {\r\n const manufacturersList = await CredentialsService.getManufacturersList();\r\n setManufacturers(manufacturersList);\r\n createAndSetManufacturerOptions(manufacturersList);\r\n };\r\n\r\n const createAndSetManufacturerOptions = (manufacturersList) => {\r\n const manufacturersOptions = manufacturersList.map(v => ({ label: v.manufacturer, value: _.toLower(v.manufacturer) }));\r\n setVaccineState(prevState => ({ ...prevState, manufacturersOptions, loading: false }));\r\n };\r\n\r\n useEffect(() => {\r\n try {\r\n if (!manufacturersList) {\r\n setVaccineState(prevState => ({ ...prevState, loading: true }));\r\n getManufacturersList();\r\n } else {\r\n createAndSetManufacturerOptions(manufacturersList);\r\n }\r\n } catch (error) {\r\n setVaccineState(prevState => ({ ...prevState, loading: false }));\r\n }\r\n }, []);\r\n\r\n const onCertificateNameChange = (event) => {\r\n formik.setFieldValue('issueDate', '');\r\n formik.setFieldValue('manufacturer', '');\r\n formik.setFieldValue('lotNumber', '');\r\n formik.setFieldValue('isVaccineDeclined', false);\r\n formik.setFieldValue('vaccineBooster', false);\r\n formik.setFieldValue('frontImage', '');\r\n formik.handleChange(event);\r\n };\r\n\r\n const onDialogToggle = (dialogState) => {\r\n setVaccineState(prevState => ({ ...prevState, [dialogState]: !prevState[dialogState] }));\r\n };\r\n\r\n const onUnVaccinatedChange = (event) => {\r\n formik.handleChange(event);\r\n if (event.target.checked) onDialogToggle('openUnVaccinatedConfirm');\r\n };\r\n\r\n const handleChangeImage = () => {\r\n formik.setFieldValue('certificateImage', '');\r\n // setIsChangingImage(true);\r\n };\r\n\r\n const onOkUnVaccinatedConfirmClickHandler = () => {\r\n formik.setFieldValue('issueDate', moment().format('YYYY-MM-DD'), false);\r\n formik.setFieldValue('manufacturer', '', false);\r\n formik.setFieldValue('lotNumber', '', false);\r\n formik.setFieldValue('frontImage', '', false);\r\n onDialogToggle('openUnVaccinatedConfirm');\r\n }\r\n\r\n const onCancelUnVaccinateConfirmClickHandler = () => {\r\n onDialogToggle('openUnVaccinatedConfirm');\r\n formik.setFieldValue('isVaccineDeclined', false);\r\n };\r\n\r\n const handleBoosterShootChange = (event, confirmBtnClicked) => {\r\n if (!confirmBtnClicked) formik.handleChange(event);\r\n const vaccineCount = getvaccineCount();\r\n const boosterAlertMsg =\r\n vaccineCount.johnson >= 1 || (vaccineCount.moderna + vaccineCount.pfizer + vaccineCount.astraZeneca) >= 2\r\n ? 'Based on the COVID Vaccines you have added so far it seems this could be a booster, is that correct?'\r\n : 'You are adding this vaccine as a COVID booster vaccine, would you like to continue with this selection?';\r\n setVaccineState(prevState => ({ ...prevState, boosterAlertMsg }));\r\n };\r\n\r\n useImperativeHandle(\r\n ref,\r\n () => ({\r\n validateAndDisplayBoosterAlert: () => {\r\n const { issueDate, vaccineBooster, isVaccineDeclined, activeFlag } = formik.values;\r\n const vaccineCount = getvaccineCount();\r\n const isBooster = moment(issueDate).isAfter('2021/07/31');\r\n\r\n if (!vaccineBooster && !vaccineState.boosterShotAlertShownOnce && !isVaccineDeclined && (activeFlag == 'Active' || activeFlag == 'A')) {\r\n if (vaccineCount.johnson >= 1 && isBooster) {\r\n handleBoosterShootChange(null, true);\r\n setVaccineState(prevState => ({ ...prevState, openBoosterAlert: true }));\r\n return false;\r\n }\r\n if (vaccineCount.moderna + vaccineCount.pfizer + vaccineCount.astraZeneca >= 2 && isBooster) {\r\n handleBoosterShootChange(null, true);\r\n setVaccineState(prevState => ({ ...prevState, openBoosterAlert: true }));\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n }));\r\n\r\n const onYesBoosterAlertClickHandler = () => {\r\n formik.setFieldValue('vaccineBooster', true);\r\n setVaccineState(prevState => ({ ...prevState, boosterShotAlertShownOnce: true }));\r\n onDialogToggle('openBoosterAlert');\r\n };\r\n\r\n const onNoBoosterAlertClickHandler = () => {\r\n setVaccineState(prevState => ({ ...prevState, boosterShotAlertShownOnce: true }));\r\n onDialogToggle('openBoosterAlert');\r\n };\r\n\r\n const getvaccineCount = useCallback(() => {\r\n if (certificateList !== null) {\r\n const vaccineCount = certificateList.reduce(\r\n (result, v) => {\r\n if (Number(v.certificateID) === 1007) {\r\n if (/^johnson & johnson$/i.test(v.manufacturer)) {\r\n result.johnson++;\r\n } else if (/^moderna$/i.test(v.manufacturer)) {\r\n result.moderna++;\r\n } else if (/^pfizer$/i.test(v.manufacturer)) {\r\n result.pfizer++;\r\n } else if (/^astraZeneca$/i.test(v.manufacturer)) {\r\n result.astraZeneca++;\r\n }\r\n }\r\n return result;\r\n },\r\n { johnson: 0, moderna: 0, pfizer: 0, astraZeneca: 0, }\r\n );\r\n return vaccineCount;\r\n } else {\r\n return { johnson: 0, moderna: 0, pfizer: 0, astraZeneca: 0, };\r\n }\r\n }, [certificateList]);\r\n\r\n const renderVaccineBooster = () => {\r\n const vaccineCount = getvaccineCount();\r\n const vaccineCondition = !(vaccineCount.johnson >= 1 || vaccineCount.moderna >= 2 || vaccineCount.pfizer >= 2 || vaccineCount.astraZeneca >= 2);\r\n const issueDateDateCondition = moment(formik.values.issueDate).isBefore('2021/08/01');\r\n const hideBoosterShot = !formik.values.issueDate || formik.values.isVaccineDeclined || issueDateDateCondition || vaccineCondition;\r\n if (hideBoosterShot) return null;\r\n return (\r\n handleBoosterShootChange(event),\r\n formProps: { required: true, fullWidth: true, },\r\n checked: formik.values.vaccineBooster,\r\n error: formik.touched.vaccineBooster && Boolean(formik.errors.vaccineBooster),\r\n helperText: formik.touched.vaccineBooster && formik.errors.vaccineBooster,\r\n color: \"primary\"\r\n }} />\r\n );\r\n };\r\n\r\n const renderVaccineFields = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {((!formik.values.manufacturer && !formik.values.lotNumber && !formik.values.frontImage) || (!addCertificate && !values.certificateImage)) &&\r\n ()\r\n }\r\n {renderVaccineBooster()}\r\n \r\n );\r\n };\r\n\r\n const renderImageUploadFields = () => {\r\n return (\r\n \r\n {\r\n !addCertificate && values.certificateImage && !isChangingImage && (\r\n \r\n \r\n \r\n Credential Image Upload\r\n \r\n handleChangeImage(),\r\n restrictFileExplorer: true,\r\n }} />\r\n \r\n \r\n \r\n )\r\n }\r\n {\r\n state.selectedCertificate && !values.certificateImage && state.selectedCertificate.isFrontImageRequired === \"True\" && (\r\n \r\n \r\n \r\n Front Image Upload\r\n \r\n formik.setFieldValue('frontImage', data),\r\n type: 'png, jpeg, jpg',\r\n dropZoneProps: { disabled: formik.values.isVaccineDeclined },\r\n }} />\r\n \r\n \r\n \r\n )\r\n }\r\n \r\n );\r\n };\r\n if (vaccineState.loading) return
;\r\n return (\r\n \r\n \r\n {isSmUp || hash.split('-').pop() === '1' ? renderVaccineFields() : null}\r\n \r\n \r\n {isSmUp || hash.split('-').pop() > '1' ? renderImageUploadFields() : null}\r\n \r\n \r\n \r\n \r\n );\r\n});\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n manufacturersList: state.addCertificate.manufacturersList,\r\n certificateList: state.certificates.certificates,\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n dispatch,\r\n actions: bindActionCreators({ setManufacturers }, dispatch),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps, null, { forwardRef: true })(CovidVaccine);","import React, { useCallback, useEffect, useState, Fragment } from \"react\";\r\nimport {\r\n Box,\r\n List,\r\n ListItem,\r\n Grid,\r\n Typography,\r\n TextField,\r\n Button,\r\n useMediaQuery,\r\n} from \"@material-ui/core\";\r\nimport { Link } from \"react-router-dom\";\r\nimport clsx from \"clsx\";\r\nimport _ from \"lodash\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faChevronCircleLeft, faUser, faFile } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport { Pagination } from \"@material-ui/lab\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport ChevronRightIcon from \"@material-ui/icons/ChevronRight\";\r\nimport FolderIcon from \"@material-ui/icons/Folder\";\r\nimport { isMobile } from \"react-device-detect\";\r\nimport moment from \"moment\";\r\n\r\n//helpers\r\nimport { usePagination } from \"@helpers\";\r\n\r\n//components\r\nimport { EmptyStateHolder } from \"@components/organisms\";\r\nimport { PDFViewer, ModuleList, PDFViewerAndToolBar } from \"@components/molecules\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n },\r\n menu: {\r\n height: \"auto\",\r\n },\r\n list: {\r\n display: \"inline-flex\",\r\n overflow: \"auto\",\r\n flexWrap: \"nowrap\",\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n marginRight: theme.spacing(-3),\r\n marginLeft: theme.spacing(-3),\r\n },\r\n },\r\n listItem: {\r\n marginRight: theme.spacing(2),\r\n flex: 0,\r\n [theme.breakpoints.up(\"md\")]: {\r\n paddingRight: theme.spacing(3),\r\n paddingLeft: theme.spacing(3),\r\n borderLeft: \"2px solid transparent\",\r\n },\r\n },\r\n listItemActive: {\r\n [theme.breakpoints.up(\"md\")]: {\r\n borderLeft: `2px solid ${theme.palette.primary.dark}`,\r\n },\r\n \"& .menu__item\": {\r\n color: theme.palette.text.primary,\r\n },\r\n },\r\n pagePaddingTop: {\r\n marginTop: \"100px\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n marginTop: \"100px\",\r\n },\r\n },\r\n paperHolder: {\r\n padding: theme.spacing.unit,\r\n color: theme.palette.text.primary,\r\n whiteSpace: \"wrap\",\r\n marginBottom: theme.spacing.unit,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n wordBreak: \"break-all\",\r\n // \"& > div:first-child\": {\r\n // display: \"flex\",\r\n // },\r\n },\r\n paperTitle: {\r\n fontWeight: \"bold\",\r\n whiteSpace: \"wrap\",\r\n color: theme.palette.text.primary,\r\n marginBottom: theme.spacing.unit,\r\n flexGrow: 2,\r\n wordBreak: \"break-word\",\r\n },\r\n paperText: {\r\n whiteSpace: \"wrap\",\r\n marginBottom: theme.spacing.unit,\r\n paddingLeft: 30,\r\n },\r\n smallContainer: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n iconColor: {\r\n color: theme.palette.primary.main,\r\n },\r\n hidden: {\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n parentIcon: {\r\n padding: \"0 12px 0 12px\",\r\n },\r\n childIcon: {\r\n fontSize: \"1rem\",\r\n textAlign: \"center\",\r\n transition: \"background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms\",\r\n margin: \"0 12px 0 30px\",\r\n },\r\n selfServiceWrapper: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flexWrap: \"wrap\",\r\n wordBreak: \"break-all\",\r\n justifyContent: \"center\",\r\n \"& > h5, & > a\": {\r\n marginBottom: \"1rem\",\r\n },\r\n \"& > h5\": {\r\n color: theme.palette.background.header,\r\n },\r\n },\r\n contactsCategories: {\r\n maxHeight: \"20rem\",\r\n overflowY: \"auto\",\r\n },\r\n}));\r\n\r\nconst DataListAndRowView = (props) => {\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n\r\n const {\r\n isLoading,\r\n emptyStateText,\r\n fetchedData,\r\n mainDisplayColumns,\r\n altDisplayColumn,\r\n isPDFView,\r\n isForm,\r\n onRowSelected,\r\n module = \"\",\r\n pdfType,\r\n hasFilter,\r\n hasModal,\r\n setOpenModal,\r\n safetyFormSelected,\r\n setSafetyFormSelected,\r\n setOpenRespAlert,\r\n hasRespMedClearance,\r\n } = props;\r\n\r\n //on page load\r\n React.useEffect(() => {\r\n setOriginalData(fetchedData);\r\n setFilteredData(fetchedData);\r\n }, [fetchedData]);\r\n\r\n //variables\r\n const [selectedRow, setSelectedRow] = useState(null);\r\n const [originalData, setOriginalData] = useState([]);\r\n const [filteredData, setFilteredData] = useState([]);\r\n const [categories, setCategories] = useState([]);\r\n const [notCategorized, setNotCategorized] = useState([]);\r\n const [selectedCategory, setSelectedCategory] = useState([]);\r\n const [holdCategories, setHoldCategories] = useState([]);\r\n const [holdNoCategory, setHoldNoCategory] = useState([]);\r\n const [lastSelectedIndex, setLastSelectedIndex] = useState(null);\r\n const [isViewingFile, setIsViewingFile] = useState(false);\r\n const [isFiltering, setIsFiltering] = useState(false);\r\n\r\n const isMd = useMediaQuery(theme.breakpoints.up('md'), {\r\n defaultMatches: true,\r\n });\r\n\r\n //Paging/Filter Component\r\n // const PER_PAGE_DEFAULT = 20;\r\n // let [currentPage, setCurrentPage] = React.useState(1);\r\n // let [pageCount, setPageCount] = React.useState(0);\r\n\r\n // React.useEffect(() => {\r\n // PreparePagedData();\r\n // }, [filteredData]);\r\n\r\n // const PreparePagedData = () => {\r\n // const count = Math.ceil(filteredData.length / PER_PAGE_DEFAULT);\r\n // setPageCount(count);\r\n // };\r\n\r\n // let currentPagedData = usePagination(filteredData, PER_PAGE_DEFAULT);\r\n\r\n // const handleChange = (e, p) => {\r\n // setCurrentPage(p);\r\n // currentPagedData.jump(p);\r\n // };\r\n const manipulateData = useCallback(() => {\r\n if (filteredData) {\r\n let temp = [],\r\n categories = [],\r\n noCategory = [];\r\n\r\n for (let i = 0; i < filteredData.length; i++) {\r\n if (\r\n !temp.includes(filteredData[i].categoryTitle) &&\r\n filteredData[i].categoryTitle\r\n ) {\r\n if (filteredData[i].categoryTitle !== null) {\r\n temp.push(filteredData[i].categoryTitle);\r\n categories.push({\r\n category: filteredData[i].categoryTitle,\r\n isViewing: false,\r\n });\r\n }\r\n }\r\n if (!filteredData[i].categoryTitle) {\r\n noCategory.push(filteredData[i]);\r\n }\r\n }\r\n if (categories.length > 0 && noCategory.length > 0) {\r\n categories.push({ category: \"No Category\", isViewing: false });\r\n }\r\n setCategories(categories);\r\n setHoldCategories(categories);\r\n setNotCategorized(noCategory);\r\n setHoldNoCategory(noCategory);\r\n }\r\n }, [filteredData]);\r\n\r\n useEffect(() => {\r\n manipulateData();\r\n }, [filteredData]);\r\n\r\n //helper method\r\n const titleCase = (s) => {\r\n return s\r\n .replace(/([^A-Z])([A-Z])/g, \"$1 $2\") // split cameCase\r\n .replace(/[_\\-]+/g, \" \") // split snake_case and lisp-case\r\n .toLowerCase()\r\n .replace(/(^\\w|\\b\\w)/g, function (m) {\r\n return m.toUpperCase();\r\n }) // title case words\r\n .replace(/\\s+/g, \" \") // collapse repeated whitespace\r\n .replace(/^\\s+|\\s+$/, \"\"); // remove leading/trailing whitespace\r\n };\r\n\r\n const findByMatchingProperties = (set, properties) => {\r\n return set.filter(function (entry) {\r\n return Object.keys(properties).every(function (key) {\r\n return entry[key] === properties[key];\r\n });\r\n });\r\n };\r\n\r\n const findByValue = (set, properties, value) => {\r\n return set.filter(function (entry) {\r\n return Object.keys(properties).every(function (key) {\r\n return (\r\n entry[key] !== null &&\r\n entry[key].toString().toLowerCase().trim() ===\r\n value.toLowerCase().trim()\r\n );\r\n });\r\n });\r\n };\r\n\r\n const onFilterValueChange = (value) => {\r\n if (value.length > 0) {\r\n let searchCategories = [];\r\n if (categories) {\r\n holdCategories.forEach((folder) => {\r\n if (folder.category) {\r\n const categoryCase = folder.category.toLowerCase();\r\n const valueCase = value.toLowerCase();\r\n if (categoryCase.includes(valueCase)) {\r\n searchCategories.push(folder);\r\n }\r\n }\r\n });\r\n }\r\n\r\n let searchNoCategory = [];\r\n React.Children.toArray(\r\n mainDisplayColumns.forEach((column) => {\r\n filteredData.forEach((file) => {\r\n let titleCase = \"\",\r\n valueCase = value.toLowerCase();\r\n if (file[column]) {\r\n titleCase = file[column];\r\n } else if (\r\n file[altDisplayColumn] &&\r\n !file[altDisplayColumn].includes(\"http\")\r\n ) {\r\n titleCase = file[altDisplayColumn];\r\n }\r\n titleCase = titleCase.toLowerCase();\r\n if (titleCase.includes(valueCase)) {\r\n searchNoCategory.push(file);\r\n }\r\n });\r\n })\r\n );\r\n\r\n setIsFiltering(true);\r\n setCategories(searchCategories);\r\n setNotCategorized(searchNoCategory);\r\n } else {\r\n setIsFiltering(false);\r\n setCategories(holdCategories);\r\n setNotCategorized(holdNoCategory);\r\n }\r\n };\r\n\r\n const renderNoCategoryFiles = (row) => {\r\n let isMainDisplayShowing = true;\r\n let formattedStartDate = \"\";\r\n if (row.startDate) {\r\n formattedStartDate = moment(row.startDate).format(\"MMM Do\");\r\n }\r\n\r\n return (\r\n handleSelectRow(row)}>\r\n
\r\n \r\n \r\n \r\n {\r\n React.Children.toArray(mainDisplayColumns.map((column) => {\r\n row[column] ? isMainDisplayShowing = true : isMainDisplayShowing = false;\r\n return (\r\n \r\n {row[column]} \r\n \r\n )}\r\n ))\r\n }\r\n {!isMainDisplayShowing && (\r\n row[altDisplayColumn] && !row[altDisplayColumn].includes(\"http\") && (\r\n \r\n {row[altDisplayColumn]}\r\n \r\n )\r\n )}\r\n {module === \"continuing education\" && (\r\n \r\n - {formattedStartDate}\r\n \r\n )}\r\n
\r\n
\r\n )\r\n }\r\n\r\n const renderCategories = (row, rowIndex) => {\r\n return (\r\n <>\r\n {row.category && (\r\n handleSelectCategory(row, rowIndex)}\r\n >\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {row.category}\r\n
\r\n
\r\n {row[altDisplayColumn] && (\r\n \r\n {row[altDisplayColumn]}\r\n \r\n )}\r\n
\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n const handleSelectRow = (row) => {\r\n if (hasModal) {\r\n if (row.formName === 'Respiratory Fit Test' && !hasRespMedClearance) {\r\n return setOpenRespAlert(true);\r\n } \r\n \r\n switch (row.formName) {\r\n case 'Respiratory Fit Test':\r\n setSafetyFormSelected({\r\n ...safetyFormSelected,\r\n formName: row.formName,\r\n formID: '242'\r\n });\r\n break;\r\n case 'EVOC':\r\n setSafetyFormSelected({\r\n ...safetyFormSelected,\r\n formName: row.formName,\r\n formID: '189'\r\n });\r\n break;\r\n case 'Safe Stretcher Handling':\r\n setSafetyFormSelected({\r\n ...safetyFormSelected,\r\n formName: row.formName,\r\n formID: '997'\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n return setOpenModal(true);\r\n }\r\n setIsViewingFile(true);\r\n if (isForm) {\r\n onRowSelected(row);\r\n } else {\r\n setSelectedRow(row);\r\n }\r\n };\r\n\r\n const handleSelectCategory = (row, rowIndex) => {\r\n let selectedData = [];\r\n for (let i = 0; i < filteredData.length; i++) {\r\n if (row.category === filteredData[i].categoryTitle) {\r\n selectedData.push(filteredData[i]);\r\n }\r\n if (row.category === \"No Category\" && !filteredData[i].categoryTitle) {\r\n selectedData.push(filteredData[i]);\r\n }\r\n }\r\n setSelectedCategory(selectedData);\r\n let temp = categories.slice();\r\n if (_.has(temp[rowIndex], \"isViewing\"))\r\n temp[rowIndex].isViewing = !temp[rowIndex].isViewing;\r\n if (!temp[rowIndex].isViewing) setSelectedRow();\r\n setLastSelectedIndex(rowIndex);\r\n if (\r\n lastSelectedIndex !== null &&\r\n lastSelectedIndex !== rowIndex &&\r\n temp[lastSelectedIndex]\r\n ) {\r\n temp[lastSelectedIndex].isViewing = false;\r\n setSelectedRow();\r\n }\r\n setCategories(temp);\r\n };\r\n\r\n const handleSmallScreenBackButton = () => {\r\n setSelectedRow();\r\n setIsViewingFile(false);\r\n };\r\n\r\n // const renderSelfServiceUI = () => (\r\n //
\r\n // {/* {selectedRow.categoryTitle && {selectedRow.categoryTitle}} */}\r\n // {selectedRow.linkTitle && {selectedRow.linkTitle}}\r\n // {selectedRow.linkURL && {selectedRow.linkURL}}\r\n // {selectedRow.notes && {selectedRow.notes}}\r\n // {/* {selectedRow.notes &&
} */}\r\n //
\r\n // );\r\n\r\n return (\r\n \r\n {isLoading || originalData.length === 0 ? (\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n \r\n {hasFilter && (\r\n onFilterValueChange(e.target.value)}\r\n InputProps={{\r\n endAdornment: (\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 {categories.length > 1 && categories[0].category && isFiltering && (\r\n \r\n Filtered Folders...\r\n \r\n )}\r\n\r\n \r\n {categories.map((row, rowIndex) => (\r\n \r\n {mainDisplayColumns.length > 0 &&\r\n renderCategories(row, rowIndex)}\r\n {row.isViewing &&\r\n selectedCategory &&\r\n selectedCategory.map((category) =>\r\n renderNoCategoryFiles(category)\r\n )}\r\n \r\n ))}\r\n\r\n {notCategorized.length > 0 && isFiltering && (\r\n \r\n Filtered Files...\r\n \r\n )}\r\n\r\n {(isFiltering || categories.length === 0) &&\r\n notCategorized.map((row, rowIndex) => (\r\n \r\n {mainDisplayColumns.length > 0 &&\r\n renderNoCategoryFiles(row)}\r\n \r\n ))}\r\n
\r\n\r\n {/* */}\r\n \r\n \r\n {!selectedRow && filteredData.length > 0 && (\r\n
\r\n \r\n
\r\n )}\r\n\r\n {selectedRow &&\r\n !isPDFView &&\r\n (module === \"contacts\" ||\r\n module === \"continuing education\" ||\r\n module === \"self service\" ? (\r\n \r\n ) : (\r\n // /selfService/i.test(module) ? renderSelfServiceUI() :\r\n <>\r\n {Object.keys(selectedRow).map((key, i) => (\r\n <>\r\n {![\r\n \"id\",\r\n \"mobileSecurityID\",\r\n \"modifiedBy\",\r\n \"modifiedDate\",\r\n ].includes(key) &&\r\n selectedRow[key] !== null &&\r\n selectedRow[key].length > 0 && (\r\n

\r\n \r\n {titleCase(key)}:{\" \"}\r\n {selectedRow[key]}\r\n \r\n

\r\n )}\r\n \r\n ))}\r\n \r\n ))}\r\n\r\n {isViewingFile && !isMd && (\r\n \r\n )}\r\n\r\n {selectedRow && isPDFView && (\r\n \r\n )}\r\n
\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default DataListAndRowView;\r\n","import React from 'react';\r\nimport { SearchEmployee, SearchResults, SelectedEmployee } from '@components/molecules';\r\n\r\nconst EmployeeSearchBar = ({ \r\n filteredData, \r\n setFilteredData, \r\n loading, \r\n setLoading, \r\n noResults, \r\n setNoResults, \r\n employeeSelected, \r\n setEmployeeSelected, \r\n employeeData, \r\n handleOnClick\r\n}) => {\r\n \r\n return (\r\n <>\r\n \r\n\r\n {employeeSelected ? \r\n :\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nexport default EmployeeSearchBar;\r\n","import React, { Fragment, useState, useMemo, useEffect } from 'react';\r\nimport _ from 'lodash';\r\nimport { Grid, Typography, FormControl, makeStyles } from '@material-ui/core';\r\nimport { TextField, Select, TextFieldDatePicker, HelperText, CheckBox } from '@components/atoms';\r\nimport { DragNDrop, DialogAlert, DialogConfirm } from '@components/molecules';\r\nimport moment from 'moment';\r\n\r\nconst CERT_STATUS_OPTIONS = [\r\n {\r\n label: 'Active',\r\n value: 'Active'\r\n },\r\n {\r\n label: 'Inactive',\r\n value: 'Inactive'\r\n },\r\n];\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n imageWrapper: {\r\n marginTop: theme.spacing(3),\r\n },\r\n typography: {\r\n color: theme.palette.primary.main,\r\n }\r\n}));\r\n\r\nconst CertificateFields = (props) => {\r\n const {\r\n isSmUp, hash, formik, formik: { values }, state, setState, setOpenModal,\r\n addCertificate, eCardData,\r\n isChangingImage, certificates, eCardDataUpdatedRef\r\n } = props;\r\n const [ecardAlert, setEcardAlert] = useState(false);\r\n const [openUnVaccinatedConfirm, setopenUnVaccinatedConfirm] = useState(false);\r\n const classes = useStyles();\r\n\r\n const handleEcardModal = () => {\r\n setOpenModal(true);\r\n setEcardAlert(false);\r\n }\r\n\r\n const handleChangeImage = () => {\r\n formik.setFieldValue('certificateImage', '');\r\n // setIsChangingImage(true);\r\n }\r\n\r\n const isMissingCert = useMemo(() => (formik.values.certificateID && certificates ? certificates.find(cert => Number(cert.certificateID) === Number(formik.values.certificateID))?.disposition === 'MISSING' : true), [state.selectedCertificate]);\r\n\r\n const onDateChange = e => {\r\n let result = e.target.value;\r\n if (Number(result?.split('-')[0]) > 2099) result = '2099' + result.substring(4);\r\n else if (Number(result?.split('-')[0]) < 2000) result = '2000' + result.substring(4);\r\n const args = e;\r\n args.target.value = result;\r\n formik.handleChange(args);\r\n formik.handleBlur(args);\r\n formik.setFieldValue('expirationDate', moment(args.target.value, 'YYYY-MM-DD').add(1, 'year').format('YYYY-MM-DD'));\r\n }\r\n\r\n const onUnVaccinatedChange = (event) => {\r\n formik.handleChange(event);\r\n if (event.target.checked) setopenUnVaccinatedConfirm(prevState => !prevState);;\r\n };\r\n\r\n const onOkUnVaccinatedConfirmClickHandler = () => {\r\n formik.setFieldValue('isVaccineDeclined', true, false);\r\n formik.setFieldValue('issueDate', moment().format('YYYY-MM-DD'), false);\r\n formik.setFieldValue('expirationDate', moment().add(1, 'year').format('YYYY-MM-DD'), false);\r\n formik.setFieldValue('frontImage', '', false);\r\n formik.setFieldValue('backImage', '', false);\r\n formik.setFieldValue('activeFlag', 'Active', false);\r\n setopenUnVaccinatedConfirm(prevState => !prevState);\r\n }\r\n\r\n const onCancelUnVaccinateConfirmClickHandler = () => {\r\n setopenUnVaccinatedConfirm(prevState => !prevState);\r\n formik.setFieldValue('isVaccineDeclined', false);\r\n };\r\n\r\n useEffect(() => {\r\n formik.setFieldValue('isVaccineDeclined', false, false);\r\n }, []);\r\n\r\n const renderCertificateFields = () => {\r\n return (\r\n \r\n { formik.setFieldValue('certificateID', event.target.value); eCardDataUpdatedRef.current = false; },\r\n onBlur: formik.handleBlur,\r\n options: state.certificateTypesOptions || [],\r\n formProps: { variant: \"outlined\", required: true, fullWidth: true, },\r\n value: formik.values.certificateID,\r\n error: formik.touched.certificateID && Boolean(formik.errors.certificateID),\r\n helperText: formik.touched.certificateID && formik.errors.certificateID,\r\n disabled: (!addCertificate && !isMissingCert)\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\n \r\n );\r\n }\r\n\r\n const renderImageUploadFields = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n Front Image Upload\r\n \r\n formik.setFieldValue('frontImage', data),\r\n type: 'png, jpeg, jpg',\r\n }} />\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n {renderCertificateFields()}\r\n \r\n \r\n {renderImageUploadFields()}\r\n \r\n \r\n\r\n \r\n );\r\n};\r\n\r\nexport default CertificateFields;","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles, colors } from '@material-ui/core';\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faSun } from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n position: 'relative',\r\n },\r\n border: {\r\n width: theme.spacing(5),\r\n height: theme.spacing(2),\r\n borderRadius: theme.spacing(3),\r\n border: '3px solid',\r\n borderColor: theme.palette.divider,\r\n backgroundColor: 'transparent',\r\n [theme.breakpoints.up('md')]: {\r\n width: theme.spacing(6),\r\n height: theme.spacing(3),\r\n }\r\n },\r\n borderDark: {\r\n borderColor: colors.indigo[700],\r\n },\r\n modeToggler: {\r\n position: 'absolute',\r\n top: `-${theme.spacing(1/2)}px`,\r\n left: `-${theme.spacing(1/2)}px`,\r\n width: theme.spacing(3),\r\n height: theme.spacing(3),\r\n borderRadius: '50%',\r\n backgroundColor: theme.palette.text.primary,\r\n transition: `transform .3s cubic-bezier(.4,.03,0,1)`,\r\n cursor: 'pointer',\r\n [theme.breakpoints.up('md')]: {\r\n width: theme.spacing(4),\r\n height: theme.spacing(4),\r\n }\r\n },\r\n modeTogglerDark: {\r\n transform: `translateX(${theme.spacing(3)}px)`,\r\n backgroundColor: colors.indigo[900],\r\n },\r\n modeTogglerIcon: {\r\n marginTop: theme.spacing(1/2),\r\n marginLeft: theme.spacing(1/2),\r\n [theme.breakpoints.up('md')]: {\r\n marginTop: theme.spacing(1),\r\n marginLeft: theme.spacing(1),\r\n }\r\n },\r\n svgColor: {\r\n fill: theme.palette.secondary.main,\r\n },\r\n iconColor: {\r\n color: theme.palette.secondary.main,\r\n },\r\n}));\r\n\r\n/**\r\n * Component to display the dark mode toggler\r\n *\r\n * @param {Object} props\r\n */\r\nconst DarkModeToggler = ({ themeMode = 'light', onClick, className, ...rest }) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n {themeMode === 'dark' ?\r\n \r\n \r\n \r\n : \r\n }\r\n
\r\n \r\n );\r\n};\r\n\r\nDarkModeToggler.propTypes = {\r\n /**\r\n * External classes\r\n */\r\n className: PropTypes.string,\r\n /**\r\n * The theme mode\r\n */\r\n themeMode: PropTypes.string,\r\n /**\r\n * Theme toggler function\r\n */\r\n onClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default DarkModeToggler;","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport NoSsr from '@material-ui/core/NoSsr';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n extraSmall: {\r\n fontSize: 10,\r\n },\r\n small: {\r\n fontSize: 20,\r\n },\r\n medium: {\r\n fontSize: 30,\r\n },\r\n large: {\r\n fontSize: 40,\r\n },\r\n}));\r\n\r\n/**\r\n * Component to display the icon\r\n *\r\n * @param {Object} props\r\n */\r\nconst Icon = props => {\r\n const { fontIconClass, size, fontIconColor, className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nIcon.defaultProps = {\r\n size: 'small',\r\n};\r\n\r\nIcon.propTypes = {\r\n /**\r\n * External classes\r\n */\r\n className: PropTypes.string,\r\n /**\r\n * The classes of the font icon\r\n */\r\n fontIconClass: PropTypes.string.isRequired,\r\n /**\r\n * Source set for the responsive images\r\n */\r\n size: PropTypes.oneOf(['extraSmall', 'small', 'medium', 'large']),\r\n /**\r\n * Color of the icon\r\n */\r\n fontIconColor: PropTypes.string,\r\n};\r\n\r\nexport default Icon;","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n// import { LazyLoadImage } from 'react-lazy-load-image-component';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n width: '100%',\r\n height: '100%',\r\n },\r\n dBlock: {\r\n display: 'block',\r\n },\r\n}));\r\n\r\n/**\r\n * Component to display the images\r\n *\r\n * @param {Object} props\r\n */\r\nconst Image = props => {\r\n const { src, srcSet, alt, lazy, lazyProps, className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n if (lazy) {\r\n return (\r\n \r\n // \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nImage.defaultProps = {\r\n alt: '...',\r\n lazy: true,\r\n lazyProps: {\r\n width: 'auto',\r\n height: 'auto',\r\n },\r\n};\r\n\r\nImage.propTypes = {\r\n /**\r\n * External classes\r\n */\r\n className: PropTypes.string,\r\n /**\r\n * Source of the image\r\n */\r\n src: PropTypes.string.isRequired,\r\n /**\r\n * Source set for the responsive images\r\n */\r\n srcSet: PropTypes.string,\r\n /**\r\n * Image title\r\n */\r\n alt: PropTypes.string,\r\n /**\r\n * Lazy loading properties\r\n */\r\n lazyProps: PropTypes.object,\r\n /**\r\n * Should lazy load the image\r\n */\r\n lazy: PropTypes.bool,\r\n};\r\n\r\nexport default Image;","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Typography, IconButton } from '@material-ui/core';\r\nimport ArrowRightAltIcon from '@material-ui/icons/ArrowRightAlt';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n textDecoration: 'none',\r\n },\r\n title: {\r\n fontWeight: 'bold',\r\n },\r\n icon: {\r\n padding: 0,\r\n marginLeft: theme.spacing(1),\r\n '&:hover': {\r\n background: 'transparent',\r\n },\r\n },\r\n}));\r\n\r\n/**\r\n * Component to display the \"Learn More\" link\r\n *\r\n * @param {Object} props\r\n */\r\nconst LearnMoreLink = props => {\r\n const {\r\n color,\r\n component,\r\n variant,\r\n title,\r\n href,\r\n className,\r\n iconProps,\r\n typographyProps,\r\n ...rest\r\n } = props;\r\n\r\n const classes = useStyles();\r\n\r\n const children = (\r\n <>\r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nLearnMoreLink.defaultProps = {\r\n variant: 'subtitle1',\r\n href: '#',\r\n typographyProps: {},\r\n iconProps: {},\r\n component: 'a',\r\n};\r\n\r\nLearnMoreLink.propTypes = {\r\n /**\r\n * External classes\r\n */\r\n className: PropTypes.string,\r\n /**\r\n * The component to load as a main DOM\r\n */\r\n component: PropTypes.oneOf(['Link', 'a']),\r\n /**\r\n * Title of the link\r\n */\r\n title: PropTypes.string.isRequired,\r\n /**\r\n * Variant of the link\r\n */\r\n variant: PropTypes.oneOf(['h6', 'subtitle1', 'subtitle2', 'body1', 'body2']),\r\n /**\r\n * Href of the link\r\n */\r\n href: PropTypes.string,\r\n /**\r\n * Color of the link\r\n */\r\n color: PropTypes.string,\r\n /**\r\n * Additional properties to pass to the Icon component\r\n */\r\n iconProps: PropTypes.object,\r\n /**\r\n * Additional properties to pass to the Typography component\r\n */\r\n typographyProps: PropTypes.object,\r\n};\r\n\r\nexport default LearnMoreLink;","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport useScrollTrigger from '@material-ui/core/useScrollTrigger';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport KeyboardArrowUpIcon from '@material-ui/icons/KeyboardArrowUp';\r\nimport Zoom from '@material-ui/core/Zoom';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n position: 'fixed',\r\n bottom: theme.spacing(2),\r\n right: theme.spacing(2),\r\n },\r\n}));\r\n\r\nconst ScrollTop = () => {\r\n const classes = useStyles();\r\n const trigger = useScrollTrigger({\r\n disableHysteresis: true,\r\n threshold: 100,\r\n });\r\n\r\n const handleClick = () => {\r\n if (window) {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ScrollTop;","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { Button, makeStyles } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n\r\n },\r\n}));\r\nconst ButtonComp = ({ variant, className, color, children, ...rest }) => {\r\n const classes = useStyles();\r\n return (\r\n {children}\r\n );\r\n};\r\n\r\nButtonComp.propTypes = {\r\n variant: PropTypes.string,\r\n className: PropTypes.string,\r\n children: PropTypes.any.isRequired,\r\n color: PropTypes.string,\r\n};\r\n\r\nButtonComp.defaultProps = {\r\n variant: \"contained\",\r\n className: \"\",\r\n color: \"primary\",\r\n};\r\n\r\nexport default ButtonComp;","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { FormControl, FormControlLabel, Checkbox, FormHelperText } from \"@material-ui/core\";\r\n\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n formControl: {\r\n marginTop: '0.4rem',\r\n },\r\n root: {\r\n\r\n },\r\n}));\r\n\r\nconst CheckBoxComp = ({ error, label, size, className, helperText, formProps, ...rest }) => {\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n }\r\n className={classes.formControl}\r\n />\r\n {error && {helperText}}\r\n \r\n );\r\n};\r\n\r\nCheckBoxComp.propTypes = {\r\n error: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n size: PropTypes.string,\r\n className: PropTypes.string,\r\n helperText: PropTypes.string,\r\n formProps: PropTypes.object,\r\n};\r\n\r\nCheckBoxComp.defaultProps = {\r\n error: PropTypes.string,\r\n size: \"medium\",\r\n className: '',\r\n helperText: PropTypes.string,\r\n formProps: {},\r\n};\r\n\r\nexport default CheckBoxComp;\r\n\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { TextField } from \"@material-ui/core\";\r\n\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n marginTop: '1.2rem',\r\n },\r\n}));\r\n\r\nconst TextFieldComp = ({ label, variant, className, isCapital, ...rest }) => {\r\n const classes = useStyles();\r\n return (\r\n \r\n );\r\n};\r\n\r\nTextFieldComp.propTypes = {\r\n label: PropTypes.string.isRequired,\r\n className: PropTypes.string,\r\n variant: PropTypes.string,\r\n size: PropTypes.string,\r\n};\r\n\r\nTextFieldComp.defaultProps = {\r\n className: '',\r\n variant: \"outlined\",\r\n size: \"medium\"\r\n};\r\n\r\nexport default TextFieldComp;","import React, { Fragment } from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { FormControl, InputLabel, Select, MenuItem, FormHelperText, makeStyles } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n formControl: {\r\n marginTop: '1.2rem',\r\n },\r\n root: {\r\n '& legend:focus': {\r\n width: '2rem',\r\n }\r\n },\r\n}));\r\n\r\nconst SelectComp = ({ error, label, name, className, helperText, children, options, formProps, ...rest }) => {\r\n const classes = useStyles();\r\n return (\r\n \r\n {label}\r\n \r\n {children}\r\n {Array.isArray(options) && options.length && (Select {label})}\r\n {Array.isArray(options) && options.length && (\r\n React.Children.toArray(options.map((option, index) => {option.label}))\r\n )}\r\n \r\n {error && {helperText}}\r\n \r\n );\r\n};\r\n\r\nSelectComp.propTypes = {\r\n label: PropTypes.string.isRequired,\r\n className: PropTypes.string,\r\n children: PropTypes.any.isRequired,\r\n helperText: PropTypes.string,\r\n formProps: PropTypes.object,\r\n};\r\n\r\nSelectComp.defaultProps = {\r\n label: PropTypes.string.isRequired,\r\n className: \"\",\r\n children: PropTypes.any.isRequired,\r\n helperText: \"\",\r\n formProps: {},\r\n};\r\n\r\nexport default SelectComp;","import React from 'react';\r\nimport { bool, func } from 'prop-types';\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n\r\nconst ImageNav = React.memo(({\r\n disabled,\r\n onClick,\r\n iconName,\r\n direction,\r\n}) => {\r\n \r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n\r\nImageNav.displayName = 'ImageNav';\r\n\r\nImageNav.propTypes = {\r\n disabled: bool.isRequired,\r\n onClick: func.isRequired,\r\n};\r\n\r\n\r\nexport default ImageNav;","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport moment from 'moment';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n textField: {\r\n marginTop: '1rem',\r\n },\r\n}));\r\n\r\nconst TextFieldDatePicker = (props) => {\r\n const { className, type, defaultValue, InputLabelProps, ...rest } = props;\r\n const classes = useStyles();\r\n return (\r\n \r\n );\r\n};\r\n\r\nTextFieldDatePicker.propTypes = {\r\n className: PropTypes.string,\r\n type: PropTypes.string,\r\n defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\r\n InputLabelProps: PropTypes.object,\r\n};\r\n\r\nTextFieldDatePicker.defaultProps = {\r\n className: '',\r\n type: 'date',\r\n defaultValue: moment().format('DD/MM/YYYY'),\r\n InputLabelProps: { shrink: true }\r\n};\r\n\r\nexport default TextFieldDatePicker;","import React from 'react';\r\nimport { CircularProgress } from '@material-ui/core';\r\n\r\nconst CircularLoader = (props) => ;\r\n\r\nexport default CircularLoader;","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { FormHelperText } from '@material-ui/core';\r\n\r\nconst HelperText = ({ error, helperText }) => (error && helperText ? {helperText} : null);\r\n\r\nHelperText.propTypes = {\r\n error: PropTypes.bool,\r\n helperText: PropTypes.string,\r\n};\r\n\r\nHelperText.defaultProps = {\r\n error: false,\r\n helperText: '',\r\n};\r\n\r\nexport default HelperText;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\n\r\nconst Alert = (props) => {\r\n const { elevation, variant, ...rest } = props;\r\n return ();\r\n};\r\n\r\nAlert.propTypes = {\r\n elevation: PropTypes.number,\r\n variant: PropTypes.string,\r\n};\r\n\r\nAlert.defaultProps = {\r\n elevation: 6,\r\n variant: \"filled\",\r\n};\r\n\r\nexport default Alert;","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles, Dialog as MuiDialog, Slide } from '@material-ui/core';\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n borderRadius: 16,\r\n '& .MuiDialogTitle-root, & .MuiDialogTitle-root > *': {\r\n fontWeight: 'bold',\r\n fontSize: '1rem',\r\n },\r\n '& .MuiDialogContent-root': {\r\n fontSize: '0.938rem',\r\n textAlign: 'left',\r\n },\r\n '& .MuiDialog-paper': {\r\n borderRadius: 16,\r\n },\r\n '& .MuiDialogActions-root': {\r\n padding: '8px 24px 24px 24px',\r\n },\r\n },\r\n}));\r\n\r\nconst Dialog = props => {\r\n const classes = useStyles();\r\n const { open, children, ariaLabelledby, ariaDescribedby, className, ...rest } = props;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nDialog.propTypes = {\r\n open: PropTypes.bool,\r\n ariaLabelledby: PropTypes.string,\r\n ariaDescribedby: PropTypes.string,\r\n children: PropTypes.any.isRequired,\r\n className: PropTypes.string,\r\n};\r\n\r\nDialog.defaultProps = {\r\n open: false,\r\n ariaLabelledby: 'alert-dialog-slide-title',\r\n ariaDescribedby: 'alert-dialog-slide-description',\r\n className: '',\r\n};\r\n\r\nexport default Dialog;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Dialog } from '@components/atoms';\r\nimport { DialogTitle, DialogContent, DialogActions, Grid, Button, makeStyles } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n flex: {\r\n display: 'flex',\r\n }\r\n}));\r\n\r\nconst DialogConfirm = (props) => {\r\n const { dialogProps, titleProps, title, contentProps, content, actionsProps, actions, okBtnText, cancelBtnText, onOkClickHandler, onCancelClickHandler } = props;\r\n const classes = useStyles();\r\n return (\r\n \r\n {title}\r\n {content}\r\n {actions ? actions : (\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\nDialogConfirm.propTypes = {\r\n dialogProps: PropTypes.object,\r\n titleProps: PropTypes.object,\r\n title: PropTypes.any,\r\n contentProps: PropTypes.object,\r\n content: PropTypes.any,\r\n actionsProps: PropTypes.object,\r\n actions: PropTypes.any,\r\n onOkClickHandler: PropTypes.func.isRequired,\r\n onCancelClickHandler: PropTypes.func.isRequired,\r\n okBtnText: PropTypes.string,\r\n cancelBtnText: PropTypes.string,\r\n};\r\n\r\nDialogConfirm.defaultProps = {\r\n okBtnText: 'OK',\r\n cancelBtnText: 'Cancel',\r\n};\r\n\r\nexport default DialogConfirm;\r\n","import { RequestApi } from '@helpers';\r\nimport { Config } from \"@utils\";\r\n\r\nconst getLatestAppBuildDetails = () => {\r\n return RequestApi.get(`/appConfig/${Config.appKey}`);\r\n};\r\n\r\nconst getAppInformation = (type) => {\r\n return RequestApi.get(`/appConfig/information/${type}`);\r\n};\r\n\r\nexport default {\r\n getLatestAppBuildDetails,\r\n getAppInformation\r\n};","import { RequestVersionedConnectApi } from \"@helpers\";\r\n\r\nconst getCountiesList = () => {\r\n return RequestVersionedConnectApi.get(`/counties`);\r\n};\r\n\r\nconst getContactsList = (stateCode, countyName) => {\r\n return RequestVersionedConnectApi.get(\r\n `/contacts?stateCode=${stateCode}&countyName=${countyName}`\r\n );\r\n};\r\n\r\nconst getContinuingEducationList = (stateCode, countyName) => {\r\n return RequestVersionedConnectApi.get(\r\n `/continuingEducation?stateCode=${stateCode}&countyName=${countyName}`\r\n );\r\n};\r\n\r\nconst getDocumentsList = (stateCode, countyName) => {\r\n return RequestVersionedConnectApi.get(\r\n `/documents?stateCode=${stateCode}&countyName=${countyName}`\r\n );\r\n};\r\n\r\nconst getProtocolsList = (stateCode, countyName) => {\r\n return RequestVersionedConnectApi.get(\r\n `/protocols?stateCode=${stateCode}&countyName=${countyName}`\r\n );\r\n};\r\n\r\nconst getPDFBase64String = (type, id) => {\r\n return RequestVersionedConnectApi.get(`/${type}?type=${type}&id=${id}`);\r\n};\r\n\r\nconst getSelfServiceList = (stateCode, countyName) => {\r\n return RequestVersionedConnectApi.get(\r\n `/selfService?stateCode=${stateCode}&countyName=${countyName}`\r\n );\r\n};\r\n\r\nconst getFormsList = (stateCode, countyName) => {\r\n return RequestVersionedConnectApi.get(\r\n `/forms?stateCode=${stateCode}&countyName=${countyName}`\r\n );\r\n};\r\n\r\nconst getFormByKey = (formKey) => {\r\n return RequestVersionedConnectApi.get(`/forms?formKey=${formKey}`);\r\n};\r\n\r\nconst submitForm = (payload) => {\r\n return RequestVersionedConnectApi.post(`/forms`, payload);\r\n};\r\n\r\nconst submitPDFForm = (formKey, payload) => {\r\n return RequestVersionedConnectApi.post(`/forms?formKey=${formKey}`, payload);\r\n};\r\n\r\nconst getWebAppVersion = (platform) => {\r\n return new Promise((resolve, reject) => {\r\n RequestVersionedConnectApi\r\n .get('/appUpdate?p1=' + encodeURIComponent(platform))\r\n .then((response) => {\r\n resolve(response);\r\n })\r\n .catch((err) => reject(err));\r\n });\r\n};\r\n\r\nexport default {\r\n getCountiesList,\r\n getContactsList,\r\n getContinuingEducationList,\r\n getDocumentsList,\r\n getProtocolsList,\r\n getPDFBase64String,\r\n getSelfServiceList,\r\n getFormsList,\r\n getFormByKey,\r\n submitForm,\r\n submitPDFForm,\r\n getWebAppVersion,\r\n};\r\n","import { RequestVersionedApi, RequestApi } from '@helpers';\r\n\r\nconst getemployeeProfile = (employeeID) => RequestVersionedApi.get(`/Employees/employeeProfile?employeeID=${employeeID}`);\r\n\r\nconst getListOfEmployeeProfiles = (employeeID, searchRequest) => RequestVersionedApi.get(`Employees/listOfEmployees?searchText=${searchRequest}&adminID=1986211`);\r\n\r\nconst getFilterValues = (employeeID) => RequestApi.get(`/CDM/filterValues?employeeID=${employeeID}`);\r\n\r\nconst getManufacturersList = () => RequestApi.get(`/CDM/covidManufacturers`);\r\n\r\nconst getCerts = (employeeNum) => RequestApi.get(`/Certificate/employeeCerts?EmployeeID=${employeeNum}`);\r\n\r\nconst getCertificateImage = (payload) => RequestApi.post(`/Certificate/getImage`, payload);\r\n\r\nconst addUpdateCertificates = (payload) => RequestApi.post(`/Certificate/addUpdateNewCert`, payload);\r\n\r\nconst getStateDLFormat = (state) => RequestApi.get(`/CDM/stateDLFormat?State=${state}`);\r\n\r\nconst getEcardDetails = (employeeID, eCardNumber, certificateID) => RequestApi.get(`/CDM/getECardDetails?eCardNumber=${eCardNumber}&employeeID=${employeeID}&certificateID=${certificateID}`);\r\n\r\nconst eCardMapping = () => RequestApi.get(\"/CDM/ecardMapping?codeType=ECARD\");\r\n\r\nconst getCertificatesTypes = () => RequestApi.get(\"/CDM/certificateTypes\");\r\n\r\nconst getCountiesList = () => RequestApi.get(\"CDM/counties\");\r\n\r\n// eslint-disable-next-line import/no-anonymous-default-export\r\nexport default {\r\n getemployeeProfile,\r\n getListOfEmployeeProfiles,\r\n getFilterValues,\r\n getCerts,\r\n getCertificateImage,\r\n getManufacturersList,\r\n addUpdateCertificates,\r\n getStateDLFormat,\r\n getEcardDetails,\r\n eCardMapping,\r\n getCertificatesTypes,\r\n getCountiesList,\r\n};","import { RequestApi, RequestVersionedApi } from '@helpers';\r\n\r\nconst employeeActionItems = (employeeID) => RequestApi.get(`/Certificate/employeeActionItems?employeeID=${employeeID}`);\r\n\r\nconst updateEmployeeLastLogin = (payload) => RequestVersionedApi.put(`/Employees/updateEmployeeLogin`, payload);\r\n\r\nexport default {\r\n employeeActionItems,\r\n updateEmployeeLastLogin\r\n};","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport i18next from \"i18next\";\r\n\r\nimport ArrowDropDown from \"@material-ui/icons/ArrowDropDown\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Popover from \"@material-ui/core/Popover\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListSubheader from \"@material-ui/core/ListSubheader\";\r\n\r\nconst languageMap = {\r\n en: { label: \"English\", dir: \"ltr\", active: true },\r\n es: { label: \"Español\", dir: \"ltr\", active: false }\r\n};\r\n\r\nconst LanguageSelect = () => {\r\n const selected = localStorage.getItem(\"i18nextLng\") || \"en\";\r\n const { t } = useTranslation();\r\n\r\n const [menuAnchor, setMenuAnchor] = React.useState(null);\r\n React.useEffect(() => {\r\n document.body.dir = languageMap[selected].dir;\r\n }, [menuAnchor, selected]);\r\n\r\n return (\r\n
\r\n \r\n setMenuAnchor(null)}\r\n anchorOrigin={{\r\n vertical: \"bottom\",\r\n horizontal: \"right\"\r\n }}\r\n transformOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\"\r\n }}\r\n >\r\n
\r\n \r\n {t(\"select_language\")}\r\n {Object.keys(languageMap)?.map(item => (\r\n {\r\n i18next.changeLanguage(item);\r\n setMenuAnchor(null);\r\n }}\r\n >\r\n {languageMap[item].label}\r\n \r\n ))}\r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default LanguageSelect;","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Grid, Typography } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n marginBottom: theme.spacing(3),\r\n [theme.breakpoints.up('md')]: {\r\n marginBottom: theme.spacing(4),\r\n },\r\n },\r\n disableGutter: {\r\n marginBottom: 0,\r\n },\r\n title: {\r\n fontWeight: 'bold',\r\n },\r\n cta: {\r\n marginLeft: theme.spacing(1),\r\n '&:first-child': {\r\n marginLeft: theme.spacing(0),\r\n },\r\n },\r\n}));\r\n\r\n/**\r\n * Component to display the section headers\r\n *\r\n * @param {Object} props\r\n */\r\nconst SectionHeader = props => {\r\n const {\r\n title,\r\n titleVariant,\r\n subtitleVariant,\r\n subtitle,\r\n subtitleColor,\r\n label,\r\n overline,\r\n fadeUp,\r\n align,\r\n ctaGroup,\r\n disableGutter,\r\n titleClasses,\r\n className,\r\n labelProps,\r\n titleProps,\r\n subtitleProps,\r\n ...rest\r\n } = props;\r\n\r\n const classes = useStyles();\r\n let justifyGrid = 'center';\r\n if (align === 'left') {\r\n justifyGrid = 'flex-start';\r\n } else if (align === 'right') {\r\n justifyGrid = 'flex-end';\r\n }\r\n\r\n return (\r\n \r\n {overline && (\r\n \r\n {overline}\r\n \r\n )}\r\n {label && (\r\n \r\n \r\n {label}\r\n \r\n \r\n )}\r\n \r\n \r\n {title}\r\n \r\n \r\n {subtitle && (\r\n \r\n \r\n {subtitle}\r\n \r\n \r\n )}\r\n {ctaGroup && ctaGroup.length && (\r\n \r\n \r\n {ctaGroup.map((item, index) => (\r\n \r\n {item}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nSectionHeader.defaultProps = {\r\n titleVariant: 'h4',\r\n labelProps: {},\r\n titleProps: {},\r\n subtitleProps: {},\r\n};\r\n\r\nSectionHeader.propTypes = {\r\n /**\r\n * External classes\r\n */\r\n className: PropTypes.string,\r\n /**\r\n * Title of the section header\r\n */\r\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\r\n /**\r\n * Subtitle of the section header\r\n */\r\n subtitle: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\r\n /**\r\n * Label title of the section header\r\n */\r\n label: PropTypes.string,\r\n /**\r\n * The overline component in the section header\r\n */\r\n overline: PropTypes.node,\r\n /**\r\n * Array of the CTAs\r\n */\r\n ctaGroup: PropTypes.arrayOf(PropTypes.node),\r\n /**\r\n * Whether to fade up on scroll\r\n */\r\n fadeUp: PropTypes.bool,\r\n /**\r\n * Header content (title, subtitle, CTAs) alignment\r\n */\r\n align: PropTypes.oneOf(['right', 'left', 'center']),\r\n /**\r\n * Whether to disable bottom margin of the section\r\n */\r\n disableGutter: PropTypes.bool,\r\n /**\r\n * Styles classes to be attached to the title from the parent component\r\n */\r\n titleClasses: PropTypes.string,\r\n /**\r\n * Title variant\r\n */\r\n titleVariant: PropTypes.oneOf(['h1', 'h2', 'h3', 'h4', 'h5', 'h6'])\r\n .isRequired,\r\n /**\r\n * SubTitle variant\r\n */\r\n subtitleVariant: PropTypes.oneOf([\r\n 'h1',\r\n 'h2',\r\n 'h3',\r\n 'h4',\r\n 'h5',\r\n 'h6',\r\n 'subtitle1',\r\n 'subtitle2',\r\n 'body1',\r\n 'body2',\r\n ]),\r\n /**\r\n * SubTitle color\r\n */\r\n subtitleColor: PropTypes.oneOf([\r\n 'textPrimary',\r\n 'textSecondary',\r\n 'primary',\r\n 'secondary',\r\n ]),\r\n /**\r\n * Additional properties to pass to the label Typography component\r\n */\r\n labelProps: PropTypes.object,\r\n /**\r\n * Additional properties to pass to the title Typography component\r\n */\r\n titleProps: PropTypes.object,\r\n /**\r\n * Additional properties to pass to the subtitle Typography component\r\n */\r\n subtitleProps: PropTypes.object,\r\n};\r\n\r\nexport default SectionHeader;","import React, { useCallback } from 'react';\r\nimport { useDropzone } from 'react-dropzone';\r\nimport imageCompression from 'browser-image-compression';\r\n\r\n// molecules\r\nimport { ImgGallery } from '@components/molecules';\r\n\r\n// material-ui\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Box, Button } from '@material-ui/core';\r\n\r\nconst DragNDrop = (props) => {\r\n const { type, uploadedImage, setUploadedImage, hasUploadedImage, setHasUploadedImage, dropZoneProps, changeImageClick, restrictFileExplorer, disableUpdateImage } = props;\r\n const onDrop = useCallback(\r\n (acceptedFiles) => {\r\n acceptedFiles.forEach(async(file) => {\r\n // console.log(`original file size ${file.size / 1024 / 1024} MB`);\r\n const maxSize = file.size > 10 ? 1 : 0.5;\r\n const options = {\r\n maxSizeMB: maxSize,\r\n maxWidthOrHeight: 1920,\r\n useWebWorker: true\r\n }\r\n try {\r\n file = await imageCompression(file, options);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n // console.log(`compressed file size ${file.size / 1024 / 1024} MB`);\r\n const reader = new FileReader();\r\n\r\n reader.onabort = () => console.log('file reading was aborted');\r\n reader.onerror = () => console.log('file reading has failed');\r\n reader.onload = () => {\r\n const base64 = reader.result;\r\n const images = [\r\n {\r\n original: base64,\r\n },\r\n ];\r\n setUploadedImage(images);\r\n typeof setHasUploadedImage === \"function\" && setHasUploadedImage(true);\r\n };\r\n\r\n reader.readAsDataURL(file);\r\n });\r\n },\r\n [setHasUploadedImage, setUploadedImage]\r\n );\r\n\r\n const { getRootProps, getInputProps, open } = useDropzone({ onDrop, ...dropZoneProps });\r\n\r\n const useStyles = makeStyles((theme) => ({\r\n uploadContainer: {\r\n padding: theme.spacing(3),\r\n borderStyle: 'dashed',\r\n cursor: 'pointer',\r\n opacity: props => props?.dropZoneProps?.disabled ? 0.4 : 1,\r\n },\r\n buttonContainer: {\r\n paddingBottom: theme.spacing(2),\r\n },\r\n }));\r\n\r\n const classes = useStyles(props);\r\n\r\n const changeImageClickHandler = () => {\r\n if (typeof changeImageClick === 'function') changeImageClick();\r\n if (restrictFileExplorer) return;\r\n open();\r\n };\r\n\r\n return (\r\n <>\r\n {!hasUploadedImage ? (\r\n \r\n \r\n \r\n

Drag 'n' drop, or click here to upload image

\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\n};\r\n\r\nDragNDrop.defaultProps = {\r\n dropZoneProps: {},\r\n changeImageClick: () => { },\r\n restrictFileExplorer: false,\r\n disableUpdateImage: false,\r\n}\r\n\r\nexport default DragNDrop;\r\n","import React, { useCallback, useEffect, useState } from 'react';\r\nimport ImageGallery from 'react-image-gallery';\r\nimport 'react-image-gallery/styles/css/image-gallery.css';\r\nimport { ImageNav } from '@components/atoms';\r\nimport { PDFViewer } from '@components/molecules';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { faChevronLeft, faChevronRight } from '@fortawesome/free-solid-svg-icons';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n },\r\n}));\r\n\r\nconst ImgGallery = ({ showNav, images, fullscreen, pdfTitle }) => {\r\n const [isPDF, setIsPDF] = useState(false);\r\n const [showFullScreenButtonOption, setShowFullScreenButtonOption] = useState(false);\r\n const [firstImageIsPDF, setFirstImageIsPDF] = useState(false);\r\n const [secondImageIsPDF, setSecondImageIsPDF] = useState(false);\r\n\r\n const classes = useStyles();\r\n\r\n const renderLeftNav = (onClick, disabled) => (\r\n \r\n )\r\n const renderRightNav = (onClick, disabled) => (\r\n \r\n )\r\n\r\n const checkImage = useCallback(() => {\r\n for (let i = 0; i < images.length; i++) {\r\n if (images[i].original.slice(0, 28).includes('pdf')) {\r\n setIsPDF(true);\r\n if (i === 0) {\r\n setFirstImageIsPDF(true);\r\n } else if (i === 1) {\r\n setSecondImageIsPDF(true);\r\n }\r\n } else {\r\n setIsPDF(false);\r\n }\r\n if (!images[i].original.includes('null') && fullscreen) {\r\n setShowFullScreenButtonOption(true);\r\n } else {\r\n setShowFullScreenButtonOption(false);\r\n }\r\n }\r\n }, [images]);\r\n\r\n useEffect(() => {\r\n checkImage();\r\n }, [checkImage, images]);\r\n\r\n return ( \r\n <> \r\n {\r\n !isPDF ?\r\n \r\n :\r\n <>\r\n {firstImageIsPDF && ()}\r\n\r\n {secondImageIsPDF && images[1].original && ()}\r\n \r\n }\r\n \r\n )\r\n};\r\n\r\nexport default ImgGallery;","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport clsx from \"clsx\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Modal, Typography } from \"@material-ui/core\";\r\nimport { Section } from \"@components/organisms\";\r\nimport { Document, Page, pdfjs } from \"react-pdf\";\r\nimport { isMobile } from 'react-device-detect';\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faTimesCircle } from \"@fortawesome/free-solid-svg-icons\";\r\npdfjs.GlobalWorkerOptions.workerSrc = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n position: \"relative\",\r\n overflow: \"scroll\",\r\n // background: theme.palette.primary.dark,\r\n },\r\n textWhite: {\r\n color: \"white\",\r\n },\r\n title: {\r\n fontWeight: \"bold\",\r\n },\r\n modalBackground: {\r\n backgroundColor: theme.palette.background.default,\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(2),\r\n },\r\n modalView: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n },\r\n icon: {\r\n color: theme.palette.background.header,\r\n },\r\n}));\r\n\r\nconst PDFViewer = (props) => {\r\n const { className, title, subtitle, fileUrl, openModal, setOpenModal, isDownloadable, ...rest } = props;\r\n const classes = useStyles();\r\n\r\n // const [numPages, setNumPages] = React.useState(null);\r\n // const [pageNumber, setPageNumber] = React.useState(1);\r\n\r\n const handleClose = () => setOpenModal(false);\r\n\r\n // function onDocumentLoadSuccess({ numPages }) {\r\n // setNumPages(numPages);\r\n // }\r\n\r\n return (\r\n
\r\n
\r\n {title && !isMobile &&

{title}

}\r\n\r\n {fileUrl && !isMobile && (\r\n
\r\n \r\n Press me: Download PDF\r\n \r\n {isDownloadable && (\r\n Press me: Download PDF\r\n )}\r\n {/* \r\n \r\n \r\n

\r\n Page {pageNumber} of {numPages}\r\n

*/}\r\n
\r\n )}\r\n \r\n {/* {fileUrl && isMobile && (\r\n \r\n
\r\n
\r\n {title &&

{title}

}\r\n setOpenModal(false)}\r\n />\r\n
\r\n \r\n Presss me: Download PDF\r\n \r\n
\r\n Presss me: Download PDF\r\n
\r\n
\r\n \r\n )} */}\r\n
\r\n
\r\n );\r\n};\r\n\r\nPDFViewer.propTypes = {\r\n /**\r\n * External classes\r\n */\r\n className: PropTypes.string,\r\n /**\r\n * Title of the document\r\n */\r\n title: PropTypes.string,\r\n /**\r\n * Subtitle of the document\r\n */\r\n subtitle: PropTypes.string,\r\n /**\r\n * File URL of the document\r\n */\r\n fileUrl: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default PDFViewer;","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport MuiSnackbar from '@material-ui/core/Snackbar';\r\nimport { Alert } from '@components/atoms';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n close: {\r\n padding: theme.spacing(0.5),\r\n },\r\n}));\r\n\r\nconst Snackbar = (props) => {\r\n const { anchorOrigin, openSnackbar, autoHideDuration, onClose, snackbarMessage, action, children, alertProps, alertMessage, ...rest } = props;\r\n\r\n return (\r\n {children ? children : {alertMessage}}\r\n );\r\n};\r\n\r\nSnackbar.propTypes = {\r\n anchorOrigin: PropTypes.object,\r\n open: PropTypes.bool.isRequired,\r\n autoHideDuration: PropTypes.number,\r\n onClose: PropTypes.func,\r\n snackbarMessage: PropTypes.string,\r\n alertMessage: PropTypes.string,\r\n action: PropTypes.any,\r\n alertProps: PropTypes.object,\r\n\r\n}\r\n\r\nSnackbar.defaultProps = {\r\n anchorOrigin: {\r\n vertical: 'bottom',\r\n horizontal: 'left',\r\n },\r\n autoHideDuration: 4000,\r\n snackbarMessage: '',\r\n alertMessage: '',\r\n onClose: () => { },\r\n alertProps: {\r\n severity: \"success\"\r\n },\r\n}\r\n\r\nexport default Snackbar;","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Dialog } from '@components/atoms';\r\nimport { DialogTitle, DialogContent, DialogActions, Grid, Button, makeStyles } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n flex: {\r\n display: 'flex',\r\n }\r\n}));\r\n\r\nconst DialogAlert = (props) => {\r\n const { dialogProps, titleProps, title, contentProps, content, actionsProps, actions, yesBtnText, noBtnText, onYesClickHandler, onNoClickHandler } = props;\r\n const classes = useStyles();\r\n return (\r\n \r\n {title}\r\n {content}\r\n {actions ? actions : (\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\nDialogAlert.propTypes = {\r\n dialogProps: PropTypes.object,\r\n titleProps: PropTypes.object,\r\n title: PropTypes.any,\r\n contentProps: PropTypes.object,\r\n content: PropTypes.any,\r\n actionsProps: PropTypes.object,\r\n actions: PropTypes.any,\r\n onYesClickHandler: PropTypes.func.isRequired,\r\n onNoClickHandler: PropTypes.func.isRequired,\r\n yesBtnText: PropTypes.string,\r\n noBtnText: PropTypes.string,\r\n};\r\n\r\nDialogAlert.defaultProps = {\r\n yesBtnText: 'Yes',\r\n noBtnText: 'No',\r\n}\r\n\r\n\r\nexport default DialogAlert;\r\n","import React, { useCallback, useEffect, useState } from 'react';\r\nimport { Viewer, Worker, Icon, Position, Tooltip } from '@react-pdf-viewer/core';\r\nimport { toolbarPlugin } from '@react-pdf-viewer/toolbar';\r\nimport { Typography, CircularProgress, Button } from '@material-ui/core';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport { ConnectService } from \"@services\";\r\nimport { isMobile } from \"react-device-detect\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faChevronDown, faChevronUp } from \"@fortawesome/free-solid-svg-icons\";\r\nimport clsx from \"clsx\";\r\nimport '@react-pdf-viewer/core/lib/styles/index.css';\r\nimport '@react-pdf-viewer/toolbar/lib/styles/index.css';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n centerLoading: {\r\n [theme.breakpoints.up('sm')]: {\r\n left: '62%',\r\n top: '50%',\r\n },\r\n position: 'absolute',\r\n left: '50%',\r\n top: '75%',\r\n '-webkit-transform': 'translate(-50%, -50%)',\r\n transform: 'translate(-50%, -50%)',\r\n },\r\n searchButtons: {\r\n background: '#fff',\r\n border: 'none',\r\n height: '100%',\r\n padding: '0 2px',\r\n cursor: 'pointer',\r\n },\r\n searchIcon: {\r\n display: 'flex', \r\n alignItems: 'center',\r\n paddingRight: theme.spacing(1),\r\n borderRight: '1px solid grey'\r\n }\r\n}));\r\n\r\nconst PDFViewerAndToolBar = ({ id, title, image, isDownloadable, pdfType }) => {\r\n const classes = useStyles();\r\n\r\n const [pdfData, setPdfData] = useState(null);\r\n const [pdfUrl, setPdfUrl] = useState(null);\r\n const [loading, setLoading] = useState(null);\r\n\r\n const toolbarPluginInstance = toolbarPlugin();\r\n const { Toolbar } = toolbarPluginInstance;\r\n\r\n const renderPDFSearch = (Search) => {\r\n return (\r\n \r\n {(renderSearchProps) => {\r\n return (\r\n <>\r\n
\r\n \r\n {\r\n renderSearchProps.setKeyword(e.target.value);\r\n }}\r\n onKeyDown={(e) => {\r\n if (e.keyCode === 13 && renderSearchProps.keyword) {\r\n renderSearchProps.search();\r\n }\r\n }}\r\n />\r\n
renderSearchProps.search()} className={clsx(classes.searchButtons, classes.searchIcon)}>\r\n \r\n
\r\n \r\n renderSearchProps.changeMatchCase(!renderSearchProps.matchCase)\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\n content={() => 'Match case'}\r\n offset={{ left: 0, top: 8 }}\r\n />\r\n \r\n renderSearchProps.changeWholeWords(!renderSearchProps.wholeWords)\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n }\r\n content={() => 'Match whole word'}\r\n offset={{ left: 0, top: 8 }}\r\n />\r\n
\r\n {renderSearchProps.keyword &&\r\n renderSearchProps.numberOfMatches > 0 && !isMobile && (\r\n renderPDFSearchArrowButtons(renderSearchProps)\r\n )}\r\n \r\n\r\n {renderSearchProps.keyword &&\r\n renderSearchProps.numberOfMatches > 0 && isMobile && (\r\n renderPDFSearchArrowButtons(renderSearchProps)\r\n )}\r\n \r\n );\r\n }}\r\n
\r\n )\r\n }\r\n\r\n const renderPDFSearchArrowButtons = (renderSearchProps) => {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n {renderSearchProps.currentMatch} / {renderSearchProps.numberOfMatches}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {renderSearchProps.keyword &&\r\n renderSearchProps.numberOfMatches === 0 && (\r\n
Not found
\r\n )}\r\n
\r\n
\r\n )\r\n }\r\n\r\n useEffect(() => {\r\n // debugger;\r\n if (\r\n id &&\r\n (pdfType.toLowerCase() === \"protocols\" ||\r\n pdfType.toLowerCase() === \"documents\")\r\n ) {\r\n //sample api GET request\r\n // debugger;\r\n setPdfData(null);\r\n setLoading(true);\r\n ConnectService.getPDFBase64String(pdfType, id)\r\n .then((data) => {\r\n // setLoading(false);\r\n setPdfData(data.base64String);\r\n })\r\n .catch((err) => {\r\n alert(JSON.stringify(err));\r\n setLoading(false);\r\n });\r\n }\r\n }, [id]);\r\n\r\n const base64toBlob = (base64) => {\r\n const base64WithoutPrefix = base64.substr('data:application/pdf;base64,'.length);\r\n \r\n const bytes = window.atob(base64WithoutPrefix);\r\n let length = bytes.length;\r\n let out = new Uint8Array(length);\r\n \r\n while (length--) {\r\n out[length] = bytes.charCodeAt(length);\r\n }\r\n \r\n return new Blob([out], { type: 'application/pdf' });\r\n };\r\n\r\n const getUrlFromBase64 = useCallback(() => {\r\n if (pdfData) {\r\n const url = URL.createObjectURL(base64toBlob(pdfData));\r\n setLoading(false);\r\n setPdfUrl(url);\r\n }\r\n }, [pdfData]);\r\n\r\n useEffect(() => {\r\n getUrlFromBase64();\r\n }, [pdfData, getUrlFromBase64]);\r\n\r\n return (\r\n \r\n {title}\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) :\r\n \r\n \r\n \r\n {(props) => {\r\n const {\r\n CurrentPageInput,\r\n Download,\r\n EnterFullScreen,\r\n GoToNextPage,\r\n GoToPreviousPage,\r\n NumberOfPages,\r\n Print,\r\n Zoom,\r\n ZoomIn,\r\n ZoomOut,\r\n } = props;\r\n return (\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\n
\r\n \r\n
\r\n
\r\n / \r\n
\r\n
\r\n \r\n
\r\n {!isMobile && (\r\n
\r\n \r\n
\r\n )}\r\n {isDownloadable && (\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\n \r\n {(props) => {\r\n const { Search } = props;\r\n return (\r\n
\r\n {renderPDFSearch(Search)}\r\n
\r\n );\r\n }}\r\n
\r\n \r\n \r\n {pdfUrl && (\r\n \r\n )}\r\n \r\n }\r\n
\r\n )\r\n}\r\n\r\n export default PDFViewerAndToolBar;\r\n ","import React from \"react\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport { useMediaQuery } from '@material-ui/core';\r\n\r\nimport {\r\n Modal,\r\n Box,\r\n List,\r\n ListItem,\r\n Grid,\r\n Typography,\r\n TextField,\r\n Button\r\n} from \"@material-ui/core\";\r\n\r\n//redux\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n//redux functions\r\nimport { setSelectedCounty } from \"@store/counties\";\r\nimport { PersonPinCircle } from \"@material-ui/icons\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paperHolder: {\r\n padding: theme.spacing.unit,\r\n color: theme.palette.text.primary,\r\n whiteSpace: \"wrap\",\r\n marginBottom: theme.spacing.unit,\r\n },\r\n paperTitle: {\r\n fontWeight: \"bold\",\r\n whiteSpace: \"wrap\",\r\n color: theme.palette.text.primary,\r\n marginBottom: theme.spacing.unit,\r\n },\r\n paperText: {\r\n whiteSpace: \"wrap\",\r\n marginBottom: theme.spacing.unit,\r\n },\r\n transform: {\r\n textTransform: \"capitalize\",\r\n },\r\n gridItem: {\r\n height: \"100%\",\r\n },\r\n primaryLocationButton: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n paddingTop: theme.spacing(1),\r\n justifyContent: \"flex-start\"\r\n },\r\n },\r\n countyTextField: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n },\r\n },\r\n locationButtonText: {\r\n paddingLeft: theme.spacing(1),\r\n },\r\n}));\r\n\r\nconst CountiesFilter = ({ openModal, setOpenModal, listComponent, ...rest }) => {\r\n const { countiesList } = useSelector((state) => state.counties);\r\n const { user } = useSelector((state) => state.user);\r\n\r\n const classes = useStyles();\r\n //redux\r\n const dispatch = useDispatch();\r\n\r\n const theme = useTheme();\r\n const isSm = useMediaQuery(theme.breakpoints.down('sm'), {\r\n defaultMatches: true,\r\n });\r\n\r\n //variables\r\n const [selectedRow, setSelectedRow] = React.useState(null);\r\n const [originalData, setOriginalData] = React.useState([]);\r\n const [filteredData, setFilteredData] = React.useState([]);\r\n\r\n //on page load\r\n React.useEffect(() => {\r\n if (countiesList && countiesList.length > 0) {\r\n setOriginalData(countiesList);\r\n setFilteredData(countiesList);\r\n }\r\n }, [countiesList]);\r\n\r\n React.useEffect(() => {\r\n if (selectedRow !== null) {\r\n dispatch(setSelectedCounty(selectedRow));\r\n setOpenModal(false);\r\n }\r\n }, [selectedRow]);\r\n\r\n const handleClose = () => setOpenModal(false);\r\n const onFilterValueChange = (value) => {\r\n if (value.length > 0) {\r\n const matchingResults = originalData.filter((record) => {\r\n return record.county.toLowerCase().startsWith(value.toLowerCase());\r\n });\r\n setFilteredData(matchingResults);\r\n } else {\r\n setFilteredData(originalData);\r\n }\r\n };\r\n\r\n const handlePrimaryLocation = () => {\r\n filteredData.forEach((item) => {\r\n if (item.county === user.county && item.state === user.state) {\r\n setSelectedRow(item);\r\n }\r\n });\r\n };\r\n\r\n const style = {\r\n position: \"absolute\",\r\n top: \"50%\",\r\n left: \"50%\",\r\n transform: \"translate(-50%, -50%)\",\r\n width: isSm ? \"80%\" : \"40%\",\r\n bgcolor: \"background.paper\",\r\n border: \"2px solid #000\",\r\n boxShadow: 24,\r\n padding: 20,\r\n overflowY: \"scroll\",\r\n height: \"90%\",\r\n zIndex: 9999,\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n onFilterValueChange(e.target.value)}\r\n InputProps={{\r\n endAdornment: (\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\n \r\n \r\n } \r\n size=\"small\" \r\n className={classes.transform}\r\n >\r\n \r\n My Primary Location\r\n \r\n \r\n \r\n \r\n
\r\n {filteredData.map((row, rowIndex) => (\r\n setSelectedRow(row)}>\r\n \r\n {row.county}\r\n
\r\n {row.state}\r\n
\r\n
\r\n ))}\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default CountiesFilter;\r\n","import React, { useRef } from 'react';\r\nimport { Modal, Box, Button, Container } from \"@material-ui/core\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport SignatureCanvas from 'react-signature-canvas'\r\n\r\nconst style = {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n height: 200,\r\n bgcolor: 'background.paper',\r\n border: '2px solid #000',\r\n boxShadow: 24,\r\n p: 4,\r\n };\r\n \r\n const useStyles = makeStyles(theme => ({\r\n container: {\r\n [theme.breakpoints.up('sm')]: {\r\n width: '50%',\r\n height: 300,\r\n },\r\n width: '90%',\r\n height: '70%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n textAlign: 'center',\r\n },\r\n footer: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n marginTop: 'auto'\r\n },\r\n sigBorder: {\r\n borderRadius: theme.spacing(3),\r\n border: '2px solid',\r\n borderColor: theme.palette.divider,\r\n },\r\n signatureCanvas: {\r\n width: '100%',\r\n height: '100%',\r\n }\r\n }));\r\n\r\nconst Signature = ({ questionIndex, onValueChange, openSigModal, setOpenSigModal }) => {\r\n const classes = useStyles();\r\n const handleClose = () => setOpenSigModal(false);\r\n\r\n const sigCanvas = useRef({});\r\n\r\n const clear = () => sigCanvas.current.clear();\r\n \r\n const save = () => {\r\n let imageURL = sigCanvas.current.getTrimmedCanvas().toDataURL('image/jpeg');\r\n setOpenSigModal(false);\r\n onValueChange(questionIndex, imageURL);\r\n }\r\n\r\n return (\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\n\r\nexport default Signature;\r\n","import React, { useState, useCallback, useEffect } from 'react';\r\nimport { Typography, Modal, Box, useMediaQuery } from '@material-ui/core';\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faMapMarkerAlt, faEnvelope, faPhoneAlt, faUsers, faTimesCircle, faFileDownload } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { faCalendarAlt, faClock, faClipboard } from \"@fortawesome/free-regular-svg-icons\";\r\nimport { faGoogle, faMicrosoft } from \"@fortawesome/free-brands-svg-icons\";\r\nimport { isMobile } from \"react-device-detect\";\r\nimport { createEvent } from \"ics\";\r\nimport { saveAs } from \"file-saver\";\r\nimport clsx from \"clsx\";\r\nimport moment from \"moment\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n modalContainer: {\r\n [theme.breakpoints.up('sm')]: {\r\n width: '50%',\r\n },\r\n [theme.breakpoints.up('lg')]: {\r\n width: '35%',\r\n },\r\n height: '45%',\r\n width: '90%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n },\r\n spacing1: {\r\n paddingTop: theme.spacing(1),\r\n },\r\n spacing2: {\r\n paddingTop: theme.spacing(2),\r\n },\r\n row: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n container: {\r\n width: '75%',\r\n },\r\n textWrap: {\r\n wordWrap: 'break-word',\r\n },\r\n webLink: {\r\n color: 'inherit',\r\n textDecoration: 'none',\r\n cursor: 'pointer',\r\n width: '100%',\r\n },\r\n iconSpace: {\r\n paddingRight: theme.spacing(1),\r\n },\r\n iconColor: {\r\n color: theme.palette.primary.main,\r\n },\r\n calendarButton: {\r\n [theme.breakpoints.up('sm')]: {\r\n paddingLeft: theme.spacing(3),\r\n paddingRight: theme.spacing(3),\r\n },\r\n margin: theme.spacing(2),\r\n borderRadius: theme.spacing(3),\r\n border: '2px solid',\r\n borderColor: theme.palette.primary.main,\r\n textAlign: 'center',\r\n cursor: 'pointer',\r\n padding: theme.spacing(1),\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n paddingLeft: theme.spacing(1),\r\n paddingRight: theme.spacing(1),\r\n },\r\n closeButton: {\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n paddingBottom: theme.spacing(1),\r\n },\r\n}));\r\n\r\nconst ModuleList = ({ data, mainDisplayColumns, altDisplayColumn }) => {\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n\r\n const isMd = useMediaQuery(theme.breakpoints.up('md'), {\r\n defaultMatches: true,\r\n });\r\n const style = {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n height: isMd ? '40%' : '50%',\r\n // height: isMd ? '50%' : '65%',\r\n bgcolor: 'background.paper',\r\n border: '2px solid #000',\r\n boxShadow: 24,\r\n p: 4,\r\n };\r\n\r\n const [title, setTitle] = useState('');\r\n const [formatMobilePhoneNumber, setFormatMobilePhoneNumber] = useState('');\r\n const [formatOfficePhoneNumber, setFormatOfficePhoneNumber] = useState('');\r\n const [formatStreetAddress, setFormatStreetAddress] = useState('');\r\n const [formatCityStateZip, setFormatCityStateZip] = useState('');\r\n const [companyTitle, setCompanyTitle] = useState('');\r\n const [startTime, setStartTime] = useState('');\r\n const [startDate, setStartDate] = useState('');\r\n const [endTime, setEndTime] = useState('');\r\n const [endDate, setEndDate] = useState('');\r\n const [utcTime, setUtcTime] = useState('');\r\n const [icsFileDateAndTime, setIcsFileDateAndTime] = useState([]);\r\n const [icsDuration, setIcsDuration] = useState({});\r\n const [googleCalendarEvent, setGoogleCalendarEvent] = useState('');\r\n const [googleCalendarMobileEvent, setGoogleCalendarMobileEvent] = useState('');\r\n const [outlookCalendarLiveEvent, setOutlookCalendarLiveEvent] = useState('');\r\n const [outlookCalendarOfficeEvent, setOutlookCalendarOfficeEvent] = useState('');\r\n const [openEventModal, setOpenEventModal] = useState(false);\r\n\r\n const formatData = useCallback(() => {\r\n let tempTitle = '';\r\n React.Children.toArray(mainDisplayColumns.forEach((column) => {\r\n if (data[column] && tempTitle.length === 0) {\r\n tempTitle = data[column];\r\n } else if (data[column] && tempTitle.length > 0) {\r\n tempTitle = tempTitle.concat(' ', data[column]);\r\n }\r\n }))\r\n if (!tempTitle) {\r\n if (data[altDisplayColumn]) {\r\n tempTitle = data[altDisplayColumn];\r\n }\r\n }\r\n setTitle(tempTitle);\r\n\r\n if (data.mobilePhone) {\r\n let phoneNumber = '';\r\n if (data.mobilePhone[0] === \"1\") {\r\n let areaCode = '(',\r\n remainingPhoneDigits = '';\r\n areaCode = areaCode.concat(data.mobilePhone.slice(1, 4), \")\");\r\n remainingPhoneDigits = data.mobilePhone.slice(4, 7).concat(\"-\", data.mobilePhone.slice(7));\r\n phoneNumber = areaCode.concat(\" \", remainingPhoneDigits);\r\n }\r\n setFormatMobilePhoneNumber(phoneNumber);\r\n } \r\n\r\n if (data.officePhone) {\r\n let phoneNumber = '';\r\n if (data.officePhone[0] === \"1\") {\r\n let areaCode = '(',\r\n remainingPhoneDigits = '';\r\n areaCode = areaCode.concat(data.officePhone.slice(1, 4), \")\");\r\n remainingPhoneDigits = data.officePhone.slice(4, 7).concat(\"-\", data.officePhone.slice(7));\r\n phoneNumber = areaCode.concat(\" \", remainingPhoneDigits);\r\n }\r\n setFormatOfficePhoneNumber(phoneNumber);\r\n }\r\n\r\n if (data.title && data.categoryTitle) {\r\n setCompanyTitle(data.title.concat(\", \", data.categoryTitle));\r\n } else if (data.title) {\r\n setCompanyTitle(data.title);\r\n } else {\r\n setCompanyTitle(data.categoryTitle);\r\n }\r\n\r\n const hasAddress = data.fullAddress || data.address ? true : false;\r\n let address = '';\r\n if (hasAddress) {\r\n address = data.fullAddress ? data.fullAddress : data.address;\r\n const index = address.indexOf(',');\r\n const formattedStreetAddress = address.slice(0, index);\r\n const formattedCityStateZip = address.slice(index + 2);\r\n setFormatStreetAddress(formattedStreetAddress);\r\n setFormatCityStateZip(formattedCityStateZip);\r\n } else {\r\n setFormatStreetAddress('');\r\n setFormatCityStateZip('');\r\n }\r\n\r\n let googleCalendarLink = 'https://www.google.com/calendar/render?action=TEMPLATE&',\r\n googleCalendarLinkMobile = 'https://calendar.google.com/calendar/u/0/gp#~calendar:view=e&bm=1',\r\n outlookCalendarOfficeLink = 'https://outlook.office.com/calendar/0/deeplink/compose?path=/calendar/action/compose&rru=addevent&',\r\n outlookCalendarLiveLink = 'https://outlook.live.com/calendar/0/deeplink/compose?path=/calendar/action/compose&rru=addevent&',\r\n formatStartDate = '',\r\n formatStartTime = '',\r\n formatEndDate = '',\r\n formatEndTime = '',\r\n icsStartTime,\r\n icsEndTime;\r\n if (data.startDate) {\r\n formatStartDate = moment(data.startDate).format('MM/DD/YYYY');\r\n formatStartTime = moment(data.startDate).format('hh:mm a');\r\n // let icsDate = moment(data.startDate).format('YYYY, MM, DD, H, m');\r\n // icsStartTime = moment(data.startDate).format('H, m');\r\n setStartDate(formatStartDate);\r\n setStartTime(formatStartTime);\r\n // icsDate = icsDate.split(',')\r\n // const icsFileArray = [];\r\n // for (let i = 0; i < icsDate.length; i++) {\r\n // if (!isNaN(icsDate[i])) {\r\n // const newInt = parseInt(icsDate[i]);\r\n // icsFileArray.push(newInt);\r\n // }\r\n // }\r\n // setIcsFileDateAndTime(icsFileArray);\r\n }\r\n if (data.endDate) {\r\n formatEndDate = moment(data.endDate).format('MM/DD/YYYY');\r\n formatEndTime = moment(data.endDate).format('hh:mm a');\r\n // icsEndTime = moment(data.endDate).format('H, m');\r\n setEndDate(formatEndDate);\r\n setEndTime(formatEndTime);\r\n }\r\n if (data.startDate && data.endDate) {\r\n // const icsStartTimeSplit = icsStartTime.split(',');\r\n // const icsEndTimeSplit = icsEndTime.split(',');\r\n // let hours = 0,\r\n // minutes = 0;\r\n // hours = icsEndTimeSplit[0] - icsStartTimeSplit[0];\r\n // minutes = icsEndTimeSplit[1] - icsStartTimeSplit[1];\r\n // if (minutes < 0) {\r\n // hours--;\r\n // minutes+=60;\r\n // }\r\n // setIcsDuration({ hours: hours, minutes: minutes });\r\n const startDateWithStartTime = formatStartDate.concat(' ', formatStartTime);\r\n let startDateWithEndTime = formatStartDate.concat(' ', formatEndTime);\r\n if (moment(startDateWithStartTime).isAfter(startDateWithEndTime)) {\r\n startDateWithEndTime = moment(startDateWithEndTime, \"MM-DD-YYYY, hh:mm a\").add(1, 'd');\r\n }\r\n const convertStartDateWithEndTime = new Date(startDateWithEndTime).toISOString().replace(/-|:|\\.\\d\\d\\d/g,\"\");\r\n const convertStartTime = new Date(data.startDate).toISOString().replace(/-|:|\\.\\d\\d\\d/g,\"\");\r\n const convertEndTime = new Date(data.endDate).toISOString().replace(/-|:|\\.\\d\\d\\d/g,\"\");\r\n const outlookStartTime = new Date(data.startDate).toISOString();\r\n const outlookEndTime = new Date(data.endDate).toISOString();\r\n // setUtcTime(convertEndTime);\r\n googleCalendarLink = googleCalendarLink.concat('', `text=${tempTitle}&dates=${convertStartTime}/${convertStartDateWithEndTime}&location=${address}&details=${data[altDisplayColumn]}&recur=RRULE:FREQ=DAILY;UNTIL=${convertEndTime}`);\r\n googleCalendarLinkMobile = googleCalendarLinkMobile.concat('', `text=${tempTitle}&dates=${convertStartTime}/${convertStartDateWithEndTime}&location=${address}&details=${data[altDisplayColumn]}&recur=RRULE:FREQ=DAILY;UNTIL=${convertEndTime}`);\r\n outlookCalendarOfficeLink = outlookCalendarOfficeLink.concat('', `startdt=${outlookStartTime}&enddt=${outlookEndTime}&subject=${tempTitle}&location=${address}&body=${data[altDisplayColumn]}`);\r\n outlookCalendarLiveLink = outlookCalendarLiveLink.concat('', `startdt=${outlookStartTime}&enddt=${outlookEndTime}&subject=${tempTitle}&location=${address}&body=${data[altDisplayColumn]}`);\r\n setGoogleCalendarEvent(googleCalendarLink);\r\n setGoogleCalendarMobileEvent(googleCalendarLinkMobile);\r\n setOutlookCalendarOfficeEvent(outlookCalendarOfficeLink);\r\n setOutlookCalendarLiveEvent(outlookCalendarLiveLink);\r\n }\r\n }, [altDisplayColumn, data, mainDisplayColumns]);\r\n\r\n useEffect(() => {\r\n formatData();\r\n }, [data, formatData]);\r\n\r\n return (\r\n
\r\n {title}\r\n\r\n {\r\n (data.title || data.company) && (\r\n
\r\n {companyTitle}\r\n
\r\n )\r\n }\r\n\r\n {(data.fullAddress || data.address) && (\r\n \r\n )}\r\n\r\n {data.emailAddress && (\r\n \r\n )}\r\n\r\n {formatMobilePhoneNumber && (\r\n isMobile ?\r\n \r\n :\r\n
\r\n
\r\n {\" \"}\r\n
\r\n \r\n Mobile #: {formatMobilePhoneNumber}\r\n \r\n
\r\n )}\r\n\r\n {formatOfficePhoneNumber && (\r\n isMobile ?\r\n \r\n :\r\n
\r\n
\r\n {\" \"}\r\n
\r\n \r\n Office #: {formatOfficePhoneNumber}\r\n \r\n
\r\n )}\r\n\r\n {data.startDate && data.endDate && (\r\n
setOpenEventModal(true)} className={classes.webLink}>\r\n
\r\n
\r\n \r\n
\r\n \r\n {startDate} to {endDate}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {startTime} to {endTime}\r\n \r\n
\r\n
\r\n )}\r\n\r\n {data.seatsAvailable && (\r\n
\r\n
\r\n \r\n
\r\n \r\n {data.seatsAvailable} Seat(s)\r\n \r\n
\r\n )}\r\n\r\n {data.notes && (\r\n
\r\n
\r\n \r\n
\r\n \r\n {data.notes}\r\n \r\n
\r\n )}\r\n\r\n {data[altDisplayColumn] && altDisplayColumn !== \"company\" && (\r\n \r\n )}\r\n\r\n setOpenEventModal(false)}\r\n aria-labelledby=\"modal-modal-title\"\r\n aria-describedby=\"modal-modal-description\"\r\n >\r\n \r\n
\r\n setOpenEventModal(false)}\r\n />\r\n
\r\n Add Event:\r\n \r\n \r\n GMR Outlook Calendar\r\n \r\n \r\n \r\n Personal Outlook Calendar\r\n \r\n \r\n \r\n Google Calendar\r\n \r\n {/*
\r\n \r\n Add event to calendar by downloading ICS file.\r\n
*/}\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default ModuleList;\r\n","import React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { makeStyles } from '@material-ui/core';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputBase from '@material-ui/core/InputBase';\r\n\r\nconst BootstrapInput = withStyles((theme) => ({\r\n root: {\r\n 'label + &': {\r\n marginTop: theme.spacing(3),\r\n },\r\n },\r\n input: {\r\n borderRadius: 4,\r\n position: 'relative',\r\n border: '1px solid #ced4da',\r\n fontSize: 16,\r\n padding: theme.spacing(1),\r\n width: theme.spacing(12),\r\n transition: theme.transitions.create(['border-color', 'box-shadow']),\r\n '&:focus': {\r\n borderRadius: 4,\r\n borderColor: theme.palette.primary.main,\r\n boxShadow: '0 0 0 0.2rem rgba(0,123,255,.25)',\r\n backgroundColor: 'rgba(0,140,255, 0.1)',\r\n },\r\n },\r\n}))(InputBase);\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n paddingTop: theme.spacing(1),\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n menuPaper: {\r\n maxHeight: 200,\r\n },\r\n title: {\r\n // paddingLeft: theme.spacing(0.5),\r\n paddingTop: theme.spacing(2),\r\n paddingBottom: theme.spacing(1),\r\n }\r\n}));\r\n\r\nconst ITEM_HEIGHT = 48;\r\n\r\nconst CustomMenu = ({ title, options, handleChange, value }) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n {options && (\r\n <>\r\n \r\n {title}\r\n }\r\n MenuProps={{ classes: { paper: classes.menuPaper } }}\r\n >\r\n {options.map((option) => (\r\n {option.label}\r\n ))}\r\n \r\n \r\n \r\n )}\r\n
\r\n );\r\n}\r\n\r\nexport default CustomMenu;\r\n","import React, { useState } from 'react';\r\nimport { TextField, CircularProgress, IconButton, InputAdornment } from \"@material-ui/core\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\n\r\n//API Requests\r\nimport { CredentialsService } from '@services';\r\n\r\nconst SearchEmployee = ({ filteredData, setFilteredData, loading, setLoading, setNoResults, setEmployeeSelected }) => {\r\n const [isFocused, setIsFocused] = useState(false);\r\n const [searchValue, setSearchValue] = useState('');\r\n\r\n const onValueChange = (value) => {\r\n setSearchValue(value);\r\n setNoResults(false);\r\n };\r\n\r\n const getEmployeeData = async () => {\r\n setLoading(true);\r\n setFilteredData([]);\r\n setEmployeeSelected(false);\r\n const data = await CredentialsService.getListOfEmployeeProfiles(null, searchValue);\r\n if (data && data.length > 0) {\r\n setFilteredData(data)\r\n } else {\r\n setNoResults(true);\r\n }\r\n setLoading(false);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n onValueChange(e.target.value)\r\n }\r\n onKeyDown={(e) => {\r\n if(e.key === 'Enter') {\r\n getEmployeeData();\r\n e.preventDefault();\r\n }\r\n }}\r\n fullWidth={true}\r\n InputLabelProps={{\r\n shrink: true,\r\n }}\r\n onFocus={() => setIsFocused(true)}\r\n onBlur={() => setIsFocused(false)}\r\n InputProps={{\r\n endAdornment: (\r\n \r\n {loading ? \r\n \r\n \r\n :\r\n \r\n \r\n \r\n }\r\n \r\n ),\r\n }}\r\n value={searchValue}\r\n />\r\n \r\n )\r\n}\r\n\r\nexport default SearchEmployee;\r\n","import React from 'react';\r\nimport { Grid, Typography, Container } from \"@material-ui/core\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { EmployeeRow } from '@components/molecules';\r\nimport { CardBase } from '@components/organisms';\r\nimport { isMobile } from 'react-device-detect';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n [theme.breakpoints.up('sm')]: {\r\n overflowY: 'scroll',\r\n height: 440,\r\n },\r\n width: '100%',\r\n },\r\n itemContainer: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n paddingRight: theme.spacing(6),\r\n paddingLeft: theme.spacing(6),\r\n paddingTop: theme.spacing(2),\r\n paddingBottom: theme.spacing(1),\r\n },\r\n card: {\r\n height: '15%',\r\n backgroundColor: theme.palette.background.default,\r\n marginBottom: theme.spacing(1),\r\n },\r\n}));\r\n\r\nconst SearchResults = ({ filteredData, noResults, handleOnClick }) => {\r\n const classes = useStyles();\r\n \r\n return (\r\n <>\r\n {filteredData.length > 0 && (\r\n <>\r\n \r\n Total Results: {filteredData.length}\r\n \r\n {!isMobile && (\r\n \r\n \r\n Employee ID\r\n \r\n \r\n Employee Name\r\n \r\n \r\n Job Title\r\n \r\n \r\n BU #\r\n \r\n \r\n )}\r\n \r\n {filteredData.length > 0 && filteredData.map((data) => (\r\n handleOnClick(data)}\r\n className={classes.card}\r\n >\r\n \r\n \r\n ))}\r\n {noResults && (\r\n
No Results
\r\n )}\r\n
\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default SearchResults;\r\n","import React from 'react';\r\nimport { Typography, Container, Grid, Divider } from \"@material-ui/core\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { CardBase } from '@components/organisms';\r\nimport { isMobile } from \"react-device-detect\";\r\nimport moment from \"moment\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n marginTop: theme.spacing(2),\r\n display: 'flex',\r\n },\r\n itemContainer: {\r\n display: 'flex',\r\n paddingBottom: theme.spacing(1),\r\n },\r\n card: {\r\n backgroundColor: theme.palette.background.default,\r\n marginBottom: theme.spacing(1),\r\n },\r\n boldText: {\r\n fontWeight: 'bold',\r\n },\r\n paddingTop: {\r\n paddingTop: theme.spacing(2),\r\n },\r\n}));\r\n\r\nconst SelectedEmployee = ({ employeeData }) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n {/* \r\n \r\n \r\n Selected Employee:\r\n \r\n \r\n */}\r\n <>\r\n {!isMobile ?\r\n \r\n \r\n \r\n {employeeData.firstName} {employeeData.lastName} ({employeeData.employeeID})\r\n \r\n \r\n \r\n \r\n \r\n \r\n Work Status: {employeeData.userStatus}\r\n \r\n \r\n \r\n \r\n Email: {employeeData.workEmail}\r\n \r\n \r\n \r\n \r\n Last Log In: {moment(employeeData.lastLogin).format(\"MM-DD-YYYY h:mm A\")}\r\n \r\n \r\n \r\n \r\n \r\n #\r\n \r\n \r\n \r\n \r\n Job Description\r\n \r\n \r\n \r\n \r\n BU #\r\n \r\n \r\n \r\n \r\n BU Name\r\n \r\n \r\n \r\n \r\n Region\r\n \r\n \r\n \r\n \r\n Division\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 1\r\n \r\n \r\n \r\n \r\n {employeeData.jobTitleName}\r\n \r\n \r\n \r\n \r\n {employeeData.businessUnitID}\r\n \r\n \r\n \r\n \r\n {employeeData.businessUnitName}\r\n \r\n \r\n \r\n \r\n {employeeData.regionName}\r\n \r\n \r\n \r\n \r\n {employeeData.divisionName}\r\n \r\n \r\n \r\n \r\n :\r\n <>\r\n \r\n \r\n \r\n {employeeData.employeeID}\r\n \r\n \r\n \r\n \r\n {employeeData.firstName} {employeeData.lastName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {employeeData.jobTitleName}\r\n \r\n \r\n \r\n \r\n {employeeData.businessUnitID}\r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default SelectedEmployee;\r\n","import React from 'react';\r\nimport { Typography, Container, Grid } from \"@material-ui/core\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { isMobile } from \"react-device-detect\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n itemContainer: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n paddingBottom: theme.spacing(1),\r\n },\r\n}));\r\n\r\nconst EmployeeRow = ({ data }) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n <>\r\n {!isMobile ?\r\n \r\n \r\n \r\n {data.employeeID}\r\n \r\n \r\n \r\n \r\n {data.lastName}, {data.firstName} \r\n \r\n \r\n \r\n \r\n {data.jobTitleName}\r\n \r\n \r\n \r\n \r\n {data.businessUnitID}\r\n \r\n \r\n \r\n :\r\n <>\r\n \r\n \r\n \r\n {data.employeeID}\r\n \r\n \r\n \r\n \r\n {data.firstName} {data.lastName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {data.jobTitleName}\r\n \r\n \r\n \r\n \r\n {data.businessUnitID}\r\n \r\n \r\n \r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nexport default EmployeeRow;\r\n","\r\nconst currentBuildVersion = () => {\r\n // return authorization header with basic auth credentials\r\n let appDetails = JSON.parse(localStorage.getItem('appDetails'));\r\n\r\n if (appDetails && appDetails.buildVersion) {\r\n return appDetails.buildVersion;\r\n } else {\r\n return \"-\";\r\n }\r\n};\r\n\r\nexport default {\r\n currentBuildVersion\r\n};","import axios from 'axios';\r\nimport { store } from 'react-notifications-component';\r\n\r\n//App Settings\r\nimport { NetworkSettings } from '@utils';\r\n\r\nconst RequestApi = axios.create({\r\n baseURL: NetworkSettings.fullApiUrl,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Access-Control-Allow-Origin': '*',\r\n 'Access-Control-Allow-Methods': 'GET,PUT,POST,DELETE,PATCH,OPTIONS',\r\n },\r\n});\r\nRequestApi.interceptors.request.use(\r\n config => {\r\n const selectedLanguage = localStorage.getItem(\"i18nextLng\") || \"en\";\r\n config.headers['X-App-Language'] = `${selectedLanguage}`;\r\n\r\n const token = localStorage.getItem('token');\r\n\r\n if (token) {\r\n config.headers['Authorization'] = `Basic ${token}`;\r\n }\r\n config.auth = {\r\n 'username': NetworkSettings.username,\r\n 'password': NetworkSettings.password,\r\n }\r\n return config\r\n },\r\n error => Promise.reject(error)\r\n);\r\n\r\nRequestApi.interceptors.response.use(\r\n response => {\r\n return response.data.result;\r\n },\r\n error => {\r\n if (!error.response.config.url.toLowerCase().includes(\"/Certificate/employeeCerts?EmployeeID=\".toLowerCase()))\r\n store.addNotification({\r\n title: \"Something Went Wrong\",\r\n message: error.response.data.title,\r\n type: \"danger\",\r\n insert: \"top\",\r\n container: \"top-right\",\r\n animationIn: [\"animate__animated\", \"animate__fadeIn\"],\r\n animationOut: [\"animate__animated\", \"animate__fadeOut\"],\r\n dismiss: {\r\n duration: 3000,\r\n onScreen: true\r\n },\r\n isMobile: true\r\n });\r\n\r\n\r\n return Promise.reject(error.response.data);\r\n }\r\n);\r\n\r\nexport default RequestApi;","import axios from 'axios';\r\nimport { store } from 'react-notifications-component';\r\n\r\n//App Settings\r\nimport { NetworkSettings } from '@utils';\r\n\r\nconst RequestVersionedApi = axios.create({\r\n baseURL: NetworkSettings.fullApiUrl + NetworkSettings.apiVersion,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Access-Control-Allow-Origin': '*',\r\n 'Access-Control-Allow-Methods': 'GET,PUT,POST,DELETE,PATCH,OPTIONS',\r\n },\r\n});\r\nRequestVersionedApi.interceptors.request.use(\r\n config => {\r\n const selectedLanguage = localStorage.getItem(\"i18nextLng\") || \"en\";\r\n config.headers['X-App-Language'] = `${selectedLanguage}`;\r\n\r\n const token = localStorage.getItem('token');\r\n\r\n if (token) {\r\n config.headers['Authorization'] = `Basic ${token}`;\r\n }\r\n config.auth = {\r\n 'username': NetworkSettings.username,\r\n 'password': NetworkSettings.password,\r\n }\r\n return config\r\n },\r\n error => Promise.reject(error)\r\n);\r\n\r\nRequestVersionedApi.interceptors.response.use(\r\n response => {\r\n return response.data.result;\r\n },\r\n error => {\r\n\r\n store.addNotification({\r\n title: \"Something Went Wrong\",\r\n message: error.response.data.title,\r\n type: \"danger\",\r\n insert: \"top\",\r\n container: \"top-right\",\r\n animationIn: [\"animate__animated\", \"animate__fadeIn\"],\r\n animationOut: [\"animate__animated\", \"animate__fadeOut\"],\r\n dismiss: {\r\n duration: 3000,\r\n onScreen: true\r\n },\r\n isMobile: true\r\n });\r\n\r\n\r\n return Promise.reject(error.response.data);\r\n }\r\n);\r\n\r\nexport default RequestVersionedApi;","import axios from 'axios';\r\nimport { store } from 'react-notifications-component';\r\n\r\n//App Settings\r\nimport { NetworkSettings } from '@utils';\r\n\r\nconst RequestVersionedConnectApi = axios.create({\r\n baseURL: NetworkSettings.connectfullApiUrl + NetworkSettings.connectApiVersion,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Access-Control-Allow-Origin': '*',\r\n 'Access-Control-Allow-Methods': 'GET,PUT,POST,DELETE,PATCH,OPTIONS',\r\n },\r\n});\r\nRequestVersionedConnectApi.interceptors.request.use(\r\n config => {\r\n const selectedLanguage = localStorage.getItem(\"i18nextLng\") || \"en\";\r\n config.headers['X-App-Language'] = `${selectedLanguage}`;\r\n\r\n const token = localStorage.getItem('token');\r\n\r\n if (token) {\r\n config.headers['Authorization'] = `Token ${token}`;\r\n }\r\n config.auth = {\r\n 'username': NetworkSettings.username,\r\n 'password': NetworkSettings.password,\r\n }\r\n return config\r\n },\r\n error => Promise.reject(error)\r\n);\r\n\r\nRequestVersionedConnectApi.interceptors.response.use(\r\n response => {\r\n return response.data;\r\n },\r\n error => {\r\n\r\n store.addNotification({\r\n title: \"Something Went Wrong\",\r\n message: error.response.data.title,\r\n type: \"danger\",\r\n insert: \"top\",\r\n container: \"top-right\",\r\n animationIn: [\"animate__animated\", \"animate__fadeIn\"],\r\n animationOut: [\"animate__animated\", \"animate__fadeOut\"],\r\n dismiss: {\r\n duration: 3000,\r\n onScreen: true\r\n },\r\n isMobile: true\r\n });\r\n\r\n\r\n return Promise.reject(error.response.data);\r\n }\r\n);\r\n\r\nexport default RequestVersionedConnectApi;","import React from \"react\";\r\nimport * as Cookies from \"js-cookie\";\r\n\r\nconst setSessionCookie = (session) => {\r\n Cookies.remove(\"session\");\r\n Cookies.set(\"session\", session, { expires: 14 });\r\n};\r\n\r\nconst deleteSessionCookie = () => {\r\n Cookies.remove(\"session\");\r\n};\r\n\r\nconst getSessionCookie = () => {\r\n const sessionCookie = Cookies.get(\"session\");\r\n\r\n if (sessionCookie === undefined) {\r\n return {};\r\n } else {\r\n return JSON.parse(sessionCookie);\r\n }\r\n};\r\n\r\nconst SessionContext = React.createContext(getSessionCookie());\r\n\r\n\r\nexport default {\r\n setSessionCookie,\r\n deleteSessionCookie,\r\n getSessionCookie,\r\n SessionContext\r\n};","const appKey = process.env.REACT_APP_KEY;\r\nconst currentAppVersion = process.env.REACT_APP_VERSION;\r\nconst demoMode = process.env.REACT_APP_DEMO_MODE;\r\nconst userName = process.env.REACT_APP_USERNAME;\r\nconst password = process.env.REACT_APP_PASSWORD;\r\n\r\nexport default {\r\n appKey,\r\n currentAppVersion,\r\n demoMode,\r\n userName,\r\n password,\r\n};\r\n","const fullApiUrl = process.env.REACT_APP_API_URL;\r\nconst apiVersion = process.env.REACT_APP_API_VERSION;\r\nconst connectfullApiUrl = process.env.REACT_APP_CONNECT_API_URL;\r\nconst connectApiVersion = process.env.REACT_APP_CONNECT_API_VERSION;\r\nconst username = process.env.REACT_APP_USERNAME;\r\nconst password = process.env.REACT_APP_PASSWORD;\r\n\r\nexport default {\r\n fullApiUrl,\r\n apiVersion,\r\n connectfullApiUrl,\r\n connectApiVersion,\r\n username,\r\n password,\r\n};","export const light = {\r\n \"alternate\": {\r\n \"main\": \"rgb(247, 249, 250)\",\r\n \"dark\": \"#0076BD\",\r\n },\r\n \"cardShadow\": \"rgba(23, 70, 161, .11)\",\r\n \"boxShadowStart\": \"rgba(22,28,45,.1)\",\r\n \"boxShadowEnd\": \"rgba(22,28,45,.05)\",\r\n \"type\": \"light\",\r\n \"primary\": {\r\n \"main\": \"#0076BD\",\r\n \"light\": \"rgb(71, 145, 219)\",\r\n \"dark\": \"rgb(17, 82, 147)\",\r\n \"selectedCard\": \"#0076BD\",\r\n \"contrastText\": \"#fff\"\r\n },\r\n \"secondary\": {\r\n \"light\": \"#ffb74d\",\r\n \"main\": \"#f9b934\",\r\n \"dark\": \"#f57c00\",\r\n \"contrastText\": \"rgba(0, 0, 0, 0.87)\"\r\n },\r\n \"text\": {\r\n \"primary\": \"#2d3748\",\r\n \"secondary\": \"#718096\",\r\n },\r\n \"required\": {\r\n \"primary\": \"#b53f57\",\r\n \"secondary\": \"#b53f57\",\r\n },\r\n \"icon\": {\r\n \"primary\": \"#0076BD\",\r\n \"gray\": \"#58595B\",\r\n \"current\": \"#339900\",\r\n \"pending\": \"purple\",\r\n \"missing\": \"#ffcc00\",\r\n \"expired\": \"#cc3300\",\r\n \"expiring\": \"#7EA9EA\",\r\n\r\n },\r\n \"divider\": \"rgba(0, 0, 0, 0.12)\",\r\n \"background\": {\r\n \"header\": \"#0076BD\",\r\n \"paper\": \"#fff\",\r\n \"default\": \"#fff\",\r\n \"level2\": \"#f5f5f5\",\r\n \"level1\": \"#fff\",\r\n \"footer\": \"#0076BD\",\r\n \"dashButton\": \"#EBF2FA\",\r\n \"subHeader\": \"#EBF2FA\",\r\n \"topbar\": \"#fff\"\r\n },\r\n};\r\n\r\nexport const dark = {\r\n \"alternate\": {\r\n \"main\": \"#2D3748\",\r\n \"dark\": \"#24242b\",\r\n },\r\n \"cardShadow\": \"rgba(0, 0, 0, .11)\",\r\n \"boxShadowStart\": \"rgba(255,255,255,.1)\",\r\n \"boxShadowEnd\": \"rgba(255,255,255,.05)\",\r\n \"common\": {\r\n \"black\": \"#000\",\r\n \"white\": \"#fff\"\r\n },\r\n \"type\": \"dark\",\r\n \"primary\": {\r\n \"main\": \"#90caf9\",\r\n \"light\": \"rgb(166, 212, 250)\",\r\n \"dark\": \"rgb(100, 141, 174)\",\r\n \"selectedCard\": \"rgb(100, 141, 174)\",\r\n \"contrastText\": \"rgba(0, 0, 0, 0.87)\"\r\n },\r\n \"secondary\": {\r\n \"light\": \"#ffb74d\",\r\n \"main\": \"#f9b934\",\r\n \"dark\": \"#f57c00\",\r\n \"contrastText\": \"rgba(0, 0, 0, 0.87)\"\r\n },\r\n \"text\": {\r\n \"primary\": \"#EEEEEF\",\r\n \"secondary\": \"#f0f2f5\",\r\n },\r\n \"required\": {\r\n \"primary\": \"#b53f57\",\r\n \"secondary\": \"#b53f57\",\r\n },\r\n \"icon\": {\r\n \"primary\": \"#718096\",\r\n \"current\": \"#ffcc00\",\r\n \"expired\": \"#ff9966\",\r\n \"missing\": \"#ffcc00\",\r\n \"pending\": \"pink\",\r\n \"expiring\": \"#7EA9EA\",\r\n },\r\n \"divider\": \"rgba(255, 255, 255, 0.12)\",\r\n \"background\": {\r\n \"paper\": \"#1A202C\",\r\n \"default\": \"#121212\",\r\n \"level2\": \"#333\",\r\n \"level1\": \"#2D3748\",\r\n \"footer\": \"#18181f\",\r\n \"dashButton\": \"#606060\",\r\n \"topbar\": \"#18181f\",\r\n },\r\n};","import { createTheme, responsiveFontSizes } from '@material-ui/core';\r\nimport { light, dark } from './palette';\r\n\r\nconst getTheme = mode => responsiveFontSizes(\r\n createTheme({\r\n palette: mode === 'light' ? light : dark,\r\n layout: {\r\n contentWidth: 1236,\r\n },\r\n typography: {\r\n fontFamily: 'Lato',\r\n },\r\n zIndex: {\r\n appBar: 1200,\r\n drawer: 1100,\r\n },\r\n }),\r\n);\r\n\r\nexport default getTheme;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ThemeProvider } from '@material-ui/core/styles';\r\nimport { Paper } from '@material-ui/core';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport getTheme from './theme';\r\n\r\nimport AOS from 'aos';\r\n\r\nexport const useDarkMode = () => {\r\n const [themeMode, setTheme] = useState('light');\r\n const [mountedComponent, setMountedComponent] = useState(false);\r\n\r\n const setMode = mode => {\r\n window.localStorage.setItem('themeMode', mode);\r\n setTheme(mode);\r\n };\r\n\r\n const themeToggler = () => {\r\n themeMode === 'light' ? setMode('dark') : setMode('light');\r\n };\r\n\r\n useEffect(() => {\r\n const localTheme = window.localStorage.getItem('themeMode');\r\n localTheme ? setTheme(localTheme) : setMode('light');\r\n setMountedComponent(true);\r\n AOS.refresh();\r\n }, []);\r\n\r\n useEffect(() => {\r\n AOS.refresh();\r\n }, [themeMode]);\r\n\r\n return [themeMode, themeToggler, mountedComponent];\r\n};\r\n\r\nexport default function WithLayout({ component: Component, layout: Layout, ...rest }) {\r\n React.useEffect(() => {\r\n // Remove the server-side injected CSS.\r\n const jssStyles = document.querySelector('#jss-server-side');\r\n if (jssStyles) {\r\n jssStyles.parentElement.removeChild(jssStyles);\r\n }\r\n\r\n AOS.init({\r\n once: true,\r\n delay: 50,\r\n duration: 500,\r\n easing: 'ease-in-out',\r\n });\r\n }, []);\r\n\r\n const [themeMode, themeToggler, mountedComponent] = useDarkMode();\r\n\r\n if (!mountedComponent) return
;\r\n\r\n return (\r\n \r\n {/* CssBaseline kickstart an elegant, consistent, and simple baseline to build upon. */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","import { createSlice } from '@reduxjs/toolkit';\r\n\r\n// Slice\r\nconst slice = createSlice({\r\n name: 'route',\r\n initialState: {\r\n route: '',\r\n },\r\n reducers: {\r\n setRoute: (state, action) => {\r\n state.route = action.payload;\r\n localStorage.setItem('route', JSON.stringify(action.payload));\r\n },\r\n },\r\n});\r\n\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nconst { setRoute } = slice.actions;\r\n\r\nexport const settingRoute = (currentRoute) => async dispatch => {\r\n try {\r\n // const res = await api.post('/api/auth/login/', { username, password })\r\n dispatch(setRoute(currentRoute));\r\n } catch (e) {\r\n return console.error(e.message);\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { Redirect, Route } from \"react-router\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { settingRoute } from \"@store/route\";\r\n\r\nfunction PrivateRoute({ component: Component, ...restOfProps }) {\r\n const isAuthenticated = localStorage.getItem(\"user\");\r\n const route = localStorage.getItem(\"route\");\r\n const dispatch = useDispatch();\r\n\r\n if (!route) {\r\n dispatch(settingRoute(window.location.href));\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n isAuthenticated ? : \r\n }\r\n \r\n );\r\n}\r\n\r\nexport default PrivateRoute;","export default __webpack_public_path__ + \"static/media/main_icon_negative.bbdebd4a.png\";","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n Typography,\r\n IconButton,\r\n Grid,\r\n List,\r\n ListItem,\r\n} from '@material-ui/core';\r\nimport FacebookIcon from '@material-ui/icons/Facebook';\r\nimport TwitterIcon from '@material-ui/icons/Twitter';\r\nimport InstagramIcon from '@material-ui/icons/Instagram';\r\nimport LinkedInIcon from '@material-ui/icons/LinkedIn';\r\n\r\nimport { Image } from '@components/atoms';\r\nimport main_icon_negative from '@assets/images/main_icon_negative.png';\r\n\r\n\r\nimport { Config } from \"@utils\";\r\nimport { AppDetails } from \"@helpers\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(3, 0),\r\n [theme.breakpoints.up('md')]: {\r\n padding: theme.spacing(3, 0),\r\n },\r\n background: theme.palette.background.footer,\r\n },\r\n footerContainer: {\r\n maxWidth: theme.layout.contentWidth,\r\n width: '100%',\r\n margin: '0 auto',\r\n padding: theme.spacing(0, 2),\r\n [theme.breakpoints.up('sm')]: {\r\n padding: theme.spacing(0, 8),\r\n },\r\n },\r\n logoContainerItem: {\r\n paddingTop: 0,\r\n },\r\n logoContainer: {\r\n width: 130,\r\n height: 35,\r\n },\r\n logoImage: {\r\n width: '100%',\r\n height: '100%',\r\n },\r\n groupTitle: {\r\n textTransform: 'uppercase',\r\n color: theme.palette.primary.dark,\r\n marginBottom: theme.spacing(1),\r\n },\r\n socialIcon: {\r\n padding: 0,\r\n marginRight: theme.spacing(1),\r\n color: 'rgba(255,255,255,.6)',\r\n '&:hover': {\r\n background: 'transparent',\r\n },\r\n '&:last-child': {\r\n marginRight: 0,\r\n },\r\n },\r\n icon: {\r\n fontSize: 24,\r\n },\r\n menuListContainer: {\r\n padding: '0 !important',\r\n },\r\n menu: {\r\n display: 'flex',\r\n },\r\n menuItem: {\r\n margin: theme.spacing(2),\r\n '&:last-child': {\r\n marginBottom: 0,\r\n },\r\n },\r\n menuGroupItem: {\r\n paddingTop: 0,\r\n paddingBottom: theme.spacing(1 / 2),\r\n '&:last-child': {\r\n paddingBottom: 0,\r\n },\r\n },\r\n menuGroupTitle: {\r\n textTransform: 'uppercase',\r\n color: 'white',\r\n },\r\n divider: {\r\n width: '100%',\r\n },\r\n navLink: {\r\n color: 'rgba(255,255,255,.6)',\r\n },\r\n center: {\r\n alignItems: 'center',\r\n },\r\n}));\r\n\r\nconst Footer = props => {\r\n\r\n const { className, ...rest } = props;\r\n const classes = useStyles();\r\n\r\n return (\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\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\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\n \r\n \r\n \r\n {Config.currentAppVersion}-{AppDetails.currentBuildVersion()}\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nFooter.propTypes = {\r\n className: PropTypes.string,\r\n pages: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default Footer;","import { createSlice } from '@reduxjs/toolkit';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\n// Slice\r\nconst initialUser = localStorage.getItem('user')\r\n ? JSON.parse(localStorage.getItem('user'))\r\n : null\r\n\r\nconst slice = createSlice({\r\n name: 'user',\r\n initialState: {\r\n user: initialUser,\r\n token: null,\r\n },\r\n reducers: {\r\n loginSuccess: (state, action) => {\r\n state.user = action.payload;\r\n localStorage.setItem('user', JSON.stringify(action.payload));\r\n },\r\n logoutSuccess: (state, action) => {\r\n state.user = null;\r\n localStorage.removeItem('user');\r\n localStorage.removeItem('route');\r\n },\r\n generateToken: (state, action) => {\r\n state.token = action.payload;\r\n localStorage.setItem('token', action.payload);\r\n },\r\n removeToken: (state, action) => {\r\n state.token = null;\r\n localStorage.removeItem('token');\r\n }\r\n },\r\n});\r\n\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nconst { loginSuccess, logoutSuccess, generateToken, removeToken } = slice.actions;\r\n\r\nexport const login = (currentUser) => async dispatch => {\r\n try {\r\n // const res = await api.post('/api/auth/login/', { username, password })\r\n dispatch(loginSuccess(currentUser));\r\n } catch (e) {\r\n return console.error(e.message);\r\n }\r\n}\r\n\r\nexport const logout = () => async dispatch => {\r\n try {\r\n // const res = await api.post('/api/auth/logout/')\r\n return dispatch(logoutSuccess());\r\n } catch (e) {\r\n return console.error(e.message);\r\n }\r\n}\r\n\r\nexport const getToken = (token) => async dispatch => {\r\n try {\r\n return dispatch(generateToken(token));\r\n } catch (e) {\r\n return console.error(e.message);\r\n }\r\n}\r\n\r\nexport const deleteToken = () => async dispatch => {\r\n try {\r\n return dispatch(removeToken());\r\n } catch (e) {\r\n return console.error(e.message);\r\n }\r\n}\r\n","import React, { useState } from \"react\";\r\nimport clsx from \"clsx\";\r\nimport PropTypes from \"prop-types\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport {\r\n Toolbar,\r\n Hidden,\r\n List,\r\n ListItem,\r\n ListItemIcon,\r\n Popover,\r\n Typography,\r\n IconButton,\r\n Button,\r\n} from \"@material-ui/core\";\r\nimport AccountCircle from \"@material-ui/icons/AccountCircle\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Menu from \"@material-ui/core/Menu\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport { Image, DarkModeToggler } from \"@components/atoms\";\r\nimport { Section } from \"@components/organisms\"\r\n\r\nimport main_icon from \"@assets/images/main_icon.png\";\r\nimport main_icon_negative from '@assets/images/main_icon_negative.png';\r\n\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { useHistory, Link } from \"react-router-dom\";\r\n\r\n//redux functions\r\nimport { logout } from \"@store/user\";\r\nimport { setCountiesList } from \"@store/counties\";\r\n\r\n//API Requests\r\nimport { ConnectService, CredentialsService } from \"@services\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n flexGrow: {\r\n flexGrow: 1,\r\n },\r\n navigationContainer: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n },\r\n toolbar: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n zIndex: 999,\r\n // maxWidth: theme.layout.contentWidth,\r\n width: \"100%\",\r\n margin: \"0 auto\",\r\n padding: theme.spacing(0, 2),\r\n // [theme.breakpoints.up(\"sm\")]: {\r\n // padding: theme.spacing(0, 8),\r\n // },\r\n },\r\n navLink: {\r\n \"&:hover\": {\r\n color: theme.palette.primary.dark,\r\n },\r\n },\r\n listItem: {\r\n cursor: \"pointer\",\r\n \"&:hover > .menu-item, &:hover svg\": {\r\n color: theme.palette.primary.dark,\r\n },\r\n \"&.menu-item--no-dropdown\": {\r\n paddingRight: 0,\r\n },\r\n },\r\n listItemActive: {\r\n \"&> .menu-item\": {\r\n color: theme.palette.primary.dark,\r\n },\r\n },\r\n listItemText: {\r\n flex: \"0 0 auto\",\r\n marginRight: theme.spacing(2),\r\n whiteSpace: \"nowrap\",\r\n },\r\n listItemButton: {\r\n whiteSpace: \"nowrap\",\r\n },\r\n listItemIcon: {\r\n minWidth: \"auto\",\r\n },\r\n popover: {\r\n padding: theme.spacing(4),\r\n border: theme.spacing(2),\r\n boxShadow: \"0 0.5rem 2rem 2px rgba(116, 123, 144, 0.09)\",\r\n minWidth: 350,\r\n marginTop: theme.spacing(2),\r\n },\r\n iconButton: {\r\n // marginLeft: theme.spacing(2),\r\n // padding: 0,\r\n \"&:hover\": {\r\n background: \"transparent\",\r\n },\r\n },\r\n expandOpen: {\r\n transform: \"rotate(180deg)\",\r\n color: theme.palette.primary.dark,\r\n },\r\n logoContainer: {\r\n width: 130,\r\n height: 40,\r\n [theme.breakpoints.up(\"md\")]: {\r\n width: 160,\r\n height: 50,\r\n },\r\n },\r\n logoContainerDark: {\r\n width: 130,\r\n height: 35,\r\n [theme.breakpoints.up(\"md\")]: {\r\n width: 150,\r\n height: 40,\r\n },\r\n },\r\n logoImage: {\r\n width: \"100%\",\r\n height: \"100%\",\r\n },\r\n menu: {\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n },\r\n menuItem: {\r\n marginRight: theme.spacing(5),\r\n \"&:last-child\": {\r\n marginRight: 0,\r\n },\r\n },\r\n menuGroupItem: {\r\n paddingTop: 0,\r\n },\r\n menuGroupTitle: {\r\n textTransform: \"uppercase\",\r\n },\r\n noUnderline: {\r\n textDecoration: 'none',\r\n },\r\n groupItems: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n headerText: {\r\n fontWeight: 550,\r\n },\r\n blueStripesGradient: {\r\n height: theme.spacing(1),\r\n color: \"white\",\r\n background:\r\n //\"linear-gradient(90deg, rgba(79,154,201,1) 47%, rgba(11,82,125,1) 100%)\",\r\n \"#004987\",\r\n },\r\n}));\r\n\r\nconst Topbar = ({\r\n themeMode,\r\n themeToggler,\r\n onSidebarOpen,\r\n pages,\r\n className,\r\n ...rest\r\n}) => {\r\n //create history\r\n const history = useHistory();\r\n //redux\r\n const dispatch = useDispatch();\r\n\r\n const classes = useStyles();\r\n\r\n const { user } = useSelector((state) => state.user);\r\n const [auth, setAuth] = React.useState(true);\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const [loading, setLoading] = React.useState(false);\r\n\r\n const open = Boolean(anchorEl);\r\n\r\n //onPageLoad\r\n React.useEffect(() => {\r\n setLoading(true);\r\n //sample api GET request\r\n // new api call, will switch to this later\r\n // CredentialsService.getCountiesList()\r\n // old api call\r\n ConnectService.getCountiesList()\r\n .then((data) => {\r\n setLoading(false);\r\n dispatch(setCountiesList(data.counties))\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n });\r\n }, []);\r\n\r\n const handleChange = (event) => {\r\n setAuth(event.target.checked);\r\n };\r\n\r\n const handleMenu = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const signOut = () => {\r\n dispatch(logout());\r\n history.push(\"/\");\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {/*
*/}\r\n {/* \r\n \r\n\r\n \r\n \r\n \r\n Home\r\n \r\n \r\n */}\r\n {/* \r\n \r\n \r\n Profile\r\n \r\n \r\n */}\r\n {/* \r\n themeToggler()}\r\n />\r\n */}\r\n {/* \r\n \r\n Documentation\r\n \r\n */}\r\n {/* \r\n \r\n Buy Now\r\n \r\n */}\r\n {/* \r\n */}\r\n {/* */}\r\n {/* themeToggler()} /> */}\r\n
\r\n \r\n \r\n \r\n {/* */}\r\n {auth && (\r\n <>\r\n \r\n {/* */}\r\n \r\n \r\n \r\n Hello, {user.firstName} {user.lastName}\r\n \r\n \r\n {/* \r\n \r\n \r\n \r\n Profile\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\n \r\n \r\n );\r\n};\r\n\r\nTopbar.propTypes = {\r\n className: PropTypes.string,\r\n onSidebarOpen: PropTypes.func,\r\n pages: PropTypes.object.isRequired,\r\n themeToggler: PropTypes.func.isRequired,\r\n themeMode: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default Topbar;\r\n","import { faAddressBook, faChalkboardTeacher, faFolderOpen, faFileSignature, faFileContract, faInfoCircle } from \"@fortawesome/free-solid-svg-icons\";\r\nimport Forms_icon from \"@assets/images/Forms_icon.png\";\r\nimport Protocols_icon from \"@assets/images/Protocols_icon.png\";\r\nimport contacts_icon from \"@assets/images/contacts_icon.png\";\r\nimport ContEdu_icon from \"@assets/images/ContEdu_icon.png\";\r\nimport Credentials_icon from \"@assets/images/Credentials_icon.png\";\r\nimport Documents_icon from \"@assets/images/Documents_icon.png\";\r\nimport Selfservice_icon from \"@assets/images/Selfservice_icon.png\";\r\nimport Safety_icon from \"@assets/images/Safety_icon.png\";\r\n//import notifications_logo from \"@assets/images/notifications_logo.png\"\r\n\r\nexport const connect_modules = [\r\n {\r\n \"name\": \"Contacts\",\r\n \"logo\": contacts_icon,\r\n \"link\": \"/contacts\",\r\n \"isActive\": true\r\n },\r\n {\r\n \"name\": \"Continuing Education\",\r\n \"logo\": ContEdu_icon,\r\n \"link\": \"/continuing_education\",\r\n \"isActive\": true\r\n },\r\n {\r\n \"name\": \"Credentials\",\r\n \"logo\": Credentials_icon,\r\n \"link\": \"/credentials\",\r\n \"isActive\": true\r\n },\r\n {\r\n \"name\": \"Documents\",\r\n \"logo\": Documents_icon,\r\n \"link\": \"/documents\",\r\n \"isActive\": true\r\n },\r\n {\r\n \"name\": \"Forms\",\r\n \"logo\": Forms_icon,\r\n \"link\": \"/forms\",\r\n \"isActive\": true\r\n },\r\n {\r\n \"name\": \"Protocols\",\r\n \"logo\": Protocols_icon,\r\n \"link\": \"/protocols\",\r\n \"isActive\": true\r\n },\r\n {\r\n \"name\": \"Self Service\",\r\n \"logo\": Selfservice_icon,\r\n \"link\": \"/self_service\",\r\n \"isActive\": true\r\n },\r\n {\r\n \"name\": \"Safety\",\r\n \"logo\": Safety_icon,\r\n \"link\": \"/safety\",\r\n \"isActive\": false\r\n },\r\n\r\n // {\r\n // \"name\": \"Notifications\",\r\n // \"logo\": notifications_logo,\r\n // \"link\": \"/notifications\",\r\n // \"isActive\": true\r\n // },\r\n];","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWAAAAFgCAYAAACFYaNMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAJiFJREFUeNrsnV+QVNWdxy/tIAwRGUSM4IqtWYfEYnQUNZUYi7bWzVYpqcD6FH1wyJObF+GRJ+SJR6Cs2n1bxodknwxY6kNS1qZdk1gr0UwYyshYq+0QJSIDMwwwM4C499dzL9y53O57bve595x77+dT1dX8mZnuPtP97W9/z+/3O4scAEs4OLqz6l5VA/806F762nzLA6H/fzvmJurBv2wd2FNn1cEki1gCyEBY+wJiOuj98ybvOiy6pvDFuOFePvOumxdXqBv8FgEBBtuFthYQWd+d1gry8HxBFpc96V5G5OKK8yS/eUCAwYSjrXlCWw0427IRFGZflHHMgACDVmc76MUGg5ZEBjbjO2QR5TpOGRBgSCq4NU9wa6yIFkY8MW6KMoIMCDD4guvHCT9FcDMX5NeoxkCAoVyC2xcSXCIFs0z6YuxeDuGOEWAopuhu8UR3CytivTt+xRPjBsuBAAOiC4gxIMCA6CLGiDECDHYJb829et4T3T5WpPAccuY38IZZCgQYzIhu1b0a8oS3yoqUEtmwExHejytGgCE7t/uiQ8QAC6m7l1dwxQgw6BfdPs/tvojbBQVXvF+cMa4YAYbuhLfqia6IL9kuJEXcsMQTIywFAgzqwjsYEF6Abqm7l9103SHA0F54a+7VLoeWYEiHEc8RD7MUCDAgvGCGhueIEWIEGOFFeAEhRoAhO+GVjHcvwguWINHEDjJiBLjowlv1HO8QqwEWUnfYrEOACyi8fZ7wbmc1IAcMe0LcYCkQ4LyL73ZPfKnjhbyx273sY0YxApxH4a25VwccOtcg34j47mCjDgHOi/CK4MoGG7MaoEjUPSGmqw4BtlZ8iRug6Oxz5vNhYgkE2BrhlbIyiRsGWQ0oAQ3PDR9iKRBgk8IrTtd3vQBlQwR4G24YATYhvjWHTTaASU+EccMIcGaul5peANwwApyx+JL1AuCGEWAD4vuSQ9YLoMKwM79JhxtGgLsW3qrnemusBoAyDfeylbrh1lRYgljxlWaKPyO+AIkR4/JnrzYecMCJxVe62XjyAHQPG3QIsLLwyjv3QYeNNgCdNBwiiQUQQVwvvjVnPnJAfAH0IsZGIokhlgIBjhJfiRt+5zDHASBNDrivtQMsAxGEL7wiuJL38s4MkB0SRTxR5ly49AJM3gtglElPhEuZC5c6gvC62sh7Acwhnz5/V9ZcuLQC7P3CyXsB7BDhA16naakoZQThbbbt5XkPYB3DWwf2bEOAiyu+svs6xPMcwFrqzny9cOE350ojwFQ6AOSKUlRIlEKAPfGVvJfNNoD80HAK3jlXeAFGfAFyTaHL1AotwIgvACJsM4UtQ6PGF6Aw+LXChXstF9IBe78oanwBiueEJROu44ARXwAw44SHcMCILwCYQ4a7DyPAiC8AZE8hNuYKIcBetcOniC8AIpwncp8BB0rNEF+AcpH76ohcO2DqfAEgz044twKM+AJASIQfdEW4kac7necI4gDiCwAeYsgOesYMAU7Z/Yr4buE5BwABmpVQeRLh3AmwNzV/iOcaALQQ4dycuJyrDNjrgOE4awCIIxcna+RGgAPDdQAAVLC+Wy4XAuwdHS/iS60vACRBhvccQoA7F1/KzQCgU6yuEc7DJhzlZgDQKf6R91Z+erZagL2KB8rNAKAbxMAdtPGOWRtBuOK7xdZFM8WKJbc6a276jrNq2R3Osp7lzrLFN7MoEMmlK3PO1NwpZ+LC586pmb85p9xrcHZvHdjzEgIcL76MlvRYXFnifGfloHPnzd9FcKErQf7kzF+c/zsz0vxzibFqU846AWbT7RrfXfV9556VDzRFGMBGIX507dPup7J7mn8eP/tX57h7sdxtWzUzosfCBdpbdvGVqOHB2/+5eQ2g+xPV+lWPNj9RvffFm82YolPW3fy9q+Lr/10u8jM/cQVeBNlCmjMjRIRxwNe73yGn5J1u8oR+8PYncb2QiRs+evKdplB+c+Ub59KlK8rfe8MNFeefvvNsW5Nw4dJZ1xF/ZGvssc91wTsQ4GviW/rcV9yDiC9AlvzPR286H31+JNH3rF25ztn80HPKXy8iL2JvmRAbz4NtKkM7UGbxvXXZHYgvGOH2FesSCe/Gex53Nt79eGJz8d2+x5pO2ybN8bpsjWFFBuwuQqlzX6lukM0MABOMnVBzv7X7Njv9awY6vp3eG5Y705MXnZtvsSZe6/OM3xOldcCu+Nbcq+1lfgGQ+YIpJqa/dL44Mx77ddXV/V2JrzB3edaZOX/JOXvaqhii5jV8lU+AvZKzUm+6yUezW3vvQAnACKPHDyt93ca7f9T1bR31bktEeOb8ZZuWYZepgz1NO2AR32qZXwBSEgRggouuIx07MRr7dZL7rlr+ba1O++zpWWduxioRNmIEjQmw12pc6jkP4n7pbgNz7vdPSl/Xv+b+VJz21Ok553KC0reUGTQRRRgRYKKHeW4PFLEDZM3YF/Gbb8uXrug6+5130Xdd929SEXH65IxNlRGZRxGmHHCpS84E2XRbgwCDKfE9MepMz07Fu9+192u5PRFxEfMciHCmxjBzAfaqHko/YnLFUtqMwWT8oLb5NnDnw9puc3nvish/lxhCytPKGEVkKsBED9e4tfcfWAQwwokz481NMRXXemPPUi23KRt+7crdpDJietKa8rRdWTVoZO2Apd63ykvAcXoXL2cRwAjHFBsvBu58RONtxldbXJi2qjwtE6OYmQB74fYunv7zUP0AJpDcN6vSswXxw9IVSl8n5WmWVEbUvOFghXHAe3n6A5hFRXyFDRrdryCddEObdjg/6H8yVoxlU84SEd6b9llymQiw905S4+kPYJbR8fjNNxFIEUzdSJ4sscbPHvtFc6BPK6QiYmpi1obKiL60P7WnLsDeOwjuF8AC9yubYbHud90jqd8XaW1uV18sDnjy1KwNy7Y9zdrgLBzwdoez3QCM8/4n7yi51PUaGi98pOLiRIvqh/UxHXYX5762ZXBPagYyVQH2SjnYeAMwjIigSuNFdfW9WkvPfnPkVef1D37p1D9847r/X7X8ttifYcngnpo3OiF3DpjoAcAClKee3fO4tttsfPXx1cgjqvNuYvqk0s+Ryghxw0V0wakJMB1vAHYgwtf4aiz266T0TLVcTIVw5BH+2afOfan8syQPNlwZUU2jQy5NB0z0AGABR8dVZ/7qc7/hyCNqw031fglSESEibLgy4kXdZWmpCDBlZwB2IBGASheauNM1K9dpu91w5BHuqlMdBhTk68tXmjXCBhHx1Xp6T1oOGPcLYAHBHLat+9WY/YYjj6iuOpWKjCgkhjBcGaF1ToR2Afbcb5WnPoB5VEvPpPpBF+FoIdxVp1qR0QqpjJC5ESZF2GYHjPsFsABVoVuveepZMPKI6qpTrcho67In50weaTSkywVrFWDcL4BF7vdTtY/5OjvfjoW67cI/W7UiQwXDRxppMZoVG+8UAHTpEF2hUz1uXmfpWTB+iOqq6zT7jcJwZYQWF6xNgHG/ABa5X0Wh0znzV5xtMPIIRxvijGVTUCeGKyO6NpwVm+4MAHSPqtDpLj07Gsp2w/HDMcVhQEkxWBnRtQvWIsC4XwB7UBU63aVnwcgjKtpI0niRFIOVEV0Zz4oNdwIA9KEidBIN9GucehaOPHQ0XiR+EzBTGbGlm+64rgXYm/mA+wWwgHAO24oBjZUP4raDJ21I00U42hhTPIeuWwxURnTVHafDAeN+AWxxv4o1tjrd7+jxP7V1v3ICs0pFhg4MVUa82Ok39nTpfmVSfI2nvZ2IEzo3M8VClIS5mKPfg+Krs/Rs7Itr7jYq2tDReJEEvzJi1e3LMnPBsg+2dWDPcKYC3I3yQ7rIR8KoIdgAcSdRJH2eBSOPcLQRjieywq+MuPmWJVndpCQBiQW44wjCC56HeDrbhzzpEV+IIiqf7U6Aj4Tih4fbxhNZknFlRNXbD8tGgB3NY9lAY/RA7AAt0Nl4Ec52+yNmSoyOHzb7Wsi2MiJxItCNAD/P09lelxMe/wcgua/ezbf4mb9pNF4kJcPKiC1JGzM6yoC9A+qqPKXt5ScPPev8cewt59wsbrgMn3hUSs/61+rLfuX2gtlu1MzfrDffWiEVEVMTs84tt/U6iyqL0r65IffyUqoCjPu1H/koWLtvMwtRAt744Jdqtb+hfLYbwhtrUTN/JaKwBXHAUp620hXhlHk+iQAnjiA8i81hmwAWoFpj269x5m/T3Qay3bRm/upGTlbOYGZENckR9p1kwEM87QHsQFXodG6+jWU481c3Uhkxcz71TTnlhKCS5g8HgPQI57CtiMpndYl+1Mzfo+OHrV63s6dnm244RZQ34xIJMHMfAOxBtcGhX2PjRTjbjZr5e8xA40VSJA9OuTJCKYZI6oBxvwC2xA8KTjPt0rOsZv7qxq+MSHFmhJJWJhVgNt8ALHG/KkKnu/QsmO1mPfNXN+KAp9LblBv0ZuXoEWBv6HofT30AC9zvcbWZvzpLz8LiGt7YUx2FaRPSJSfdcqZccBIH/FOe9gDmUa2xra6+N7Xj5qNmShw9fjiX6ynzIlKqjIhNDJQE2Bu8Q/wAYAHHFIeb6zxySM6YC0YeYferegqzrUhlRAqbctW4GELVASO+ABaQpPRM58zf4JFDUTN/dR43bwqZIfz1Ze2bcs/rEGDiBwALUN3k2qCx8UIiDxtn/upm/jSNGd2VEVtwwAAFQLXGNqo1uCv3+2n4wE17Zv7qRmKI6cmLmcUQsQKcpK8ZANIjnMO2dL8aD9wMZ7tRMyWCRxIVAWlXPn9Wqwhv6cYBEz8AWIBKzhrVGqzzNk0cN2+Cc1MXdQ5y/2k3AowDBjBMOIdtxXqNU8/EbYvr9rF55m8aaBzkPthqNkQlJn6Q7ILmCwDDqAqdzvgh3FZs+8xf3Wg+4r7WiQPG/QIYRnW8Y1RrcDccjZn5q1qPnGf8I+7TiiEqnXwTAGSHaumZzpm/4bbiqJm/RSg9U8E/4j5TB+x1vw3y9AcwR5LSM53HzR+NmflbFvH10TDIvS/q2PqepIoN+UFyw4uX51iIHCMZq0rpmc624/AxR1Ezf0fHD5fudyHtyjf09Do3LrmhGxdcVxXgTTz980v9wzdK51LKioijDN7R+cYdJBw/qNYjFxHZlFv17WWuEHd0uvIm5QgCB5xfypTPgf7Ss+BzRxovwht7RZj70CldtivXlASY/BcgP+gsPQu3Fa8PHWekWo9cZLoZ5B7OgSu43+Kh+xgasJcoh9oNwbbiqI298FyIsiJdch22Ky/Q1lYZMPlvzqndt9lZu/Ku0ruVvCJCqNb5pu/IoXBbcXhjL+8zf3Uj7cqVGypO77d6knzbJhUBxgEXxB1B/lCtMog6laI7AT5y3SepBe73E9xvGDnOaPGNFadnsfLhQkoRBPkvgCEkh1WpMhjQPPM37G6l082/H1Kaxsbu9XTSrhzMgXva/ScAmIkf4og6laIbotqKRXDlIkN4iB5a47crr7p9meq3iMGtt3LAuF8AU+KrON5xQPPM33buFvGNJ2G78gPtIgg24ACMCbDagBud7pdoQQ8J2pUH2wkwDhjAAOEW4Hbiq7P0rIxtxWmheLpyWwGusowA2aM681fn5ttYaOYvdI/K6cr+Xlsl6h8BIFtUTxaOOpUiC9EHdRTblQejHDDxA4AR96t2snC/xsaLop9oYRKF05UfiBLgu1g6gOxRKT3T3WKO+00X2ZS7MH2p1X9XccAANoivYulZ/1p97lf1mCPocp0n51qdrlxDgAEsQH3z7WFtt3mUyofMaHW6spyUXAn8RUZQcgIyQIao5rD9mmf+HqP2NzNkM25qIrJduVrB/QKYQ/VkYb0Hbn5M6VnGtJghPBgU4CrLBJAdqieX6C49Y6qZGSJmCPchwACGUG0B3qB56pnKhp/OTju4hswQDmzKbQoK8AMsD0B2qLQAixBWV/frc7+KJ1roPGUZFhLYlFvggNmAA8jQ/arksBs0Tz1TmTUhgo8DTo/Aptwgm3AABlDJYaXqYb3GxgvV7Ffnhh9E42/K4YABMkY1h62uvldr6ZlUP8QRdRAnpINkwc0TMaQgmOUoFvICf3fsLcqNbPzdzKgdlKozhz2mGHmQ/WaLfyQRAlwwfnvkVQat5BgpPdOZw6p0vuk+5gjiqRA/FA8RXsQ332y8W58TlZkPWR9zBMkEmA24ArG8lx3sXP/+NOewRxVnTeB+zQkwFAj5KFm7bzMLkVf3qzGHNXXMEajhZ8CsfMGQF5Tsok9Mn2QxLOE3R16N3QiTN0/5velCddLaeo2D3iG5ABNBFNQJU1JkB5LDqlQhrNc89Uyl3VnmTPA8IYIAKCyqOazOzjfVY45ovECAAQqLqRZgE8ccQWcCXGUpANLBRAuwiWOOAAEGsArVFmDdOeyY8qD3h/klWSDAAJACqi3AOt1vktIzXRt+gAADWIeJFmD1Qz7ZfEOAAQqKag47oHnmr4ljjgABBrBMgNVyWJ3uV/WYo34aLxBggKJiqgVY9ZgjSs8QYIDCYqIF2MQxR9ClAB8c3VljGQD0odoCLDmsztIzFdHXfcwR4IABLHO/ai3AOnNYOeZIZQa0zmOOAAEGsA4TLcDHFDf8OHIIAQYorvgaaAFOUnrGzF8EGKCwqDdB6GsBVmn2EDbQeGGfAG8d2FNnGQC6RzWH7dc88/eYgvsV5yvT1gAHDFBIjikPwNHnRGXQD6VnCDBAqTHVAqwy6pLSM3vpYQmK/7EY0keOHFJBZw4rv1uVDb/1TD1DgCF7Qah/+KbSx1PIBt057KiBY45AL0QQBUREF/G1jw2ap56puG7dxxwBAgwxyFH0iK9d6M5hTRxzBOkJ8AhLURzWUHBvHTpbgFWPOZLnAMfN50OAJ1mKYvHj+59p7riDHehsAVY95oi2Y/thE66gSKnT5oeeYyFSRHLY//rDv8d+ne4WYNVjjsR1Qz4cMACkIIRNJ3q3PicqG2+qxxxRepYfASYDBkhAkhZgnTnsUcXSM068yJcAT7EUAEmc6MeZ57DifE0ccwTpCzAAJEC1BVhnDqtaeraeAzdzJ8B1lgJA1f2OZd4CrHrMkWy+UnqGAwYoLEcNtACrHnNE40U+BbjBUgDEYyqHVTnmSNw2m285FOCtA3sQYAAFTOSwqsccDTB0J7cOWKAbDqANqi3AunPYMeVB7w/zS8qxAFMLDNAGyWFVSs905rByxJFq5EHjBQ4YoLCYyGHVD/kkfsghjaAA/4X1AGgVA2Sfw5o65gjMCHCD9QBoJcBqOaxO96sivvO3SeNFThlBgAFiSJLD6iw9G1UY9iO3R+lZbpliEw4gTggN5LBjijN/+9fifnNM/aoAbx3YwyYcQAhTOayK6MuGH6VnuWYy3IpcZ00AFjpRFXTmsHLcvMQeceg85giy54WnXh4JC3CDZQEIOFEDOewxxQ0/jhzKNc3INyzAlKIBBNxv1jlsksiDmb/5F+CeqH+EYojHH8feyv3x9PIR+4f9TxrZ6TeRw6pGHhtovMg7n0U5YAS4AIjoFkF8/cdS//ANpSYInZjIYeWxqkYe1dX9PNHzTf06AfYqIRqsTb6ZmD5ZCPENcm4mWwFWLT3TmcOqHnO0galnhYkgKq3+A/LLmoK1porDXLX8tsxuT9y2nHoRh+4cVvWYo/U0XuSdxgtPvdws++2J+E/ZiNvCGuWbnzz0bDOGODeb7/NWb3IFTlxmluVWqsfN68xhJfJQiVkoPSuO+20lwJJN7GKN8u8aa/dtZiESkuS4eZ05rInIA4xxtdqMCAIg+NnQ0HHzKpGHCD6lZ4Wg3lKAvY04RBhKiYnj5lUjD2b+FoMXnnq53s4B44KhpO7XzHHzqpEHx80XggXa2kqA32adoGyYOG7+mGK3HdlvYairCHCddYIyoXrcvO4cViV+0B15gFHejhVg75j6BmsFZUH1uHmdOayJyAPy4YBxwVAaJAJQmcGg+7h5E5EHGGXEb8BQEWByYCgFctx81u5XNfLQfcwR2ON+ccAAjpnj5lUjj/UcuFkk3lYWYC8HphwNii2+Bo6bl8hDGj7i0B15gFleeOrlQ0kcMC4YCo/6gZsPa7zNPymVntF4USgitTROgF9j3aCoyLxflZm//ZqrEExEHmCc1xIL8NaBPaLanJYMheSLyXGlr9N93HzWkQdYwaFOHHBL6wyQd1SGvOs+bn5M8cBN3G+hkPm/jU4FmBgCCsnEufj4Yc3Ku/Td3vSXlJ7hfhML8CHWD8rK2j59VQjqG37EDwXjlY4F2BtPiQgDdIFqt93agh0nBc7kC0+9PNKNAxaIIUqIOLbfHnlV+ah0aLeWat12/TReFI225rUnwQ85wFqWx629/sGvrpZoydCYL858VsojjqRiYY2Gn6NSeia5L5tvhaOteVVywMQQ5SIovlcFxHXBKjWzRRTgrsVXsfSsfy3ut4Dxw6GuBZgYojzUP3yjpdBevDxXqMea1YhHE912YAXDcV+QRIBxwAVHooYy5b1ZbHa9O/aWkW47sIJXtAkwMUSxkdy3/uGbMY5xSfnW5dJsx98rzpfSs/L6mXbVD504YCVFh3zyR9epxQ2IKWN5lEqzRhQS5Yj7VYHSs3K638QC7LpgccDMhiiayLgfkeOih7VtxiLK9584M567x73qpttS+bkivkminI13c+BmARlW+aKeDn/wdta3OLz7cbxTa9WSGxQbEekf3/+M9ixTKghE4KUU7pz755uWrnB+2P9k17ezROH7p2fUqyDC5Xuq7peZv4Wj3mr2gw4BfgUBLg7zwhbvXqNacsNOT36ORBnBemERI2nmEBGVOlcRaJWP2yJmcmR7q/K3iXMnnWce/Xnq66NahhZ8nKrIG8imEtZWEz90GEF4MYQEy5yUURCOKU7nCrs02VyK+ph9LiBAIqJBUZJr+Xuc8Iqw/+oP/9G2gkB1lm+Sx9TuPrVD1kGcb1Lx/clDzzJ0p3hI7e+w6hf3dHgj+x0643KPCIbqfILw973/ye9jv0/ab8OiJH8X4Yxywe9/+ntndPyw0mkRImBZbVxNTJ9sKdbyJqFa6RDkXxQ/CUDuGE7yxZ0KsGzG7XUvfax3fjk6riYc4fz3bdehxonkvEi/08JRzl3nZut/fVPZ0fpRhg7kzSUugpmLeKxJ73PY+SK+hWV/6gIsNcEHR3eK0pMF5xQ/Y1USqUD+Oz8XorVgrbrp21dFWgVxvXEnBIvgVlf3N12oCJfOj+0qG3mSN8vt++smzl71VGPEt1Qob75164B9pUeAc4rqwZDzDnjdVfGJq229cfHSWJH2f5bkwe2+TtzphjsfuSp+aSBiKPe3HfL/8iZ06tyXzU8NncyHSLIBCeVwv10JsBxb77rguvvHGuueP/c7GhE/iNCFxSiY/0Zlutf97EvxHXWy8dc48nHLNwARK6mkyKI8S6UWWGKG1z/4ZVciL86XVuNC04gbvKPbAQu7EeBiuF//Y35YgP1IQURI5WO3yoZUu42/jfc87my8+0eZrcXalEVeZjzUKDXD/bag0s0teqcmN1j7/LtfEb6oDSVxoX5ckCbz+ehzmYqvf7tpibAIL+JbCqQ7eDhzAQ64YMgJEg9EuV9xaq3mHiStcQ07zLiP3uK8n33s34x1hOk+hULWU5pEGK5eGoZfeOrljkY0dC3ArgsexgXnA4kXojacftD/ZPP61PTJ6/5PnG+UM1bZTJKvkY2ngXWtJ33JbafRvpw0JtDlguXN5Jnv/5zNNuKHzBywwJQ0yxEHG7U5JsITLLFSFZkf3vtk7Ed7X1hl0HhY4HyXaMsYRmkJ7uZNwH+8pt9MwIj77diA9mi6E/vcy4sOjRlW4me4YYHtZBaBOLvafU/HilGwzVb+vvmh55ruW2pqpfIgzdKyTmMDuc8St6i+EQUdtI7hQJBLuopgtThgb1j7fn4XdiLONypG2HjPjxY0NcQ1OATLqeQS9fXtmg1EdGWTzTbxDT4+yaJVs1v5up899ovmRhvii/s16YBxwZY6X5lOFpX7iniEP/7LoZCtSs3ka/2s2Ec+bgcdY9Mdf+/pXOefIqQiqFIVIuVyJ8581szG5THKG87y3hXOXe4biLyJMEgH99vtD1ik894cHN35knu1i99LPI/d+a/Orb13pCq+rWbTtmoMiPqeuKYIv6VZZuuy618cZExpN80nJXG/27r9IT2a7xQu2BKSiq/v/mRjzD9GXSWrnd9k4zwzwP12QkXnPSILtse9JBXfcDxhc1YLYIH7bVgnwAEXzLlxBlm1/LbrRJZ5BAB2ud9UBNhzwXTHGURENlgWJU4W8QWwy/0KPWncQ1eE9x0c3SlZcJXflxkkRmBTDEAr2s1lJcU7iwsGgCKxX6f7TVWAvRkRdX5nAFAQ97tP9w+tpHynccEAUAR2dDrxzJgAe/OCD/G7A4AcM5LkqHmbHHDzncOhLA0Acux+0/rBqQuwnB3n0JwBAPlEys7quRVgT4RfchjaDgD5YjJN95uZAHts4/cJADlidxobb0YEmA25hUxc+JxFAGvp9AzAAiEbb/vSvpFKxg9qm8OGXJNLV+ZYBECA7SWTT+yZCjBzIq5x8tzfWASwFhlEX2L2ue53pHAC7Imw2Pp62Z/gcgR80rPHALJAnpdfnBkv68NvZGkSK4YeJFGEi5wkAWCdAn31cZkf/ra0N96MC7BXG1zqKOLGJTc4H/39fV7tYB1jJ46U9aHvS7Pm1yYHTBQhi79szvn71HFe8WANcppKSeMHI6awYvhBlzqK6FlccUZP/zeverCG9z99p6wPPdPowQoB9qKIHWV+wl+4dNY5NvEer3wwzujxw2V1v7uzjh5sccD+3OBSN2h8NPG/zqkZGjPAHHKI67tjb5XxoUvDxUumbrxiySJIFNEo8wvgvc/fdKbmTqEEkDlSdvb6B78q40OfdAyPSLBCgL0GjVLPipDOuD8c/zUiDJkiHW8iviWtSd+RVcNFKxbZtBoHR3fKR4FdZX5BLK4scR6942nn1t47UAdIFYkdSiy+MmbSuOmr2LQi3tjKOk7412zMQaq8/+nvnVff+8+yiq+4Xis2/3ssXJyt7uVT99JX5heIbMyNn/2r07/yEeeuvvtQDNBC46ux5mZbiYftNONOEyVn1kcQPgdHdw66V3/m5TLPlQtLnX9cNehUV/c7y5euYEEgESK2IrxHxw8z5WxefIdtuTOLbF0lV4S3u1d7efnMc/b0nDNz/lJTgNesXOcs7+1r/hlBhijBbV5mJpudbYjuVazIfXMhwJ4IH3CvhnjeLBRhAEiM1Ps+aNudqli+aBKUj/DcmefmW5Y4vd9azEIAJEPy3idsvGOLbF851wXLZlzpN+VwwgCdi6/pet+8OmC/SeMJnkc4YYBOPkXbKr65EGBPhGUBOVUZEQZIwm6bKh6iWJSn1aRT7npmzl92zp7maCOAENZVPORegD0RpjICEQZoh5UVD1FU8rayWwf2yLtanefYNXq/1ePcfMtSFgJgvmoqN3tGlZwu8laH8jREGGAhsmG/1ZY248IKcKAyAhFGhAF88ZVys0ae7vSiPK/4wdGdVWd+ZgQ1wgHIhKGk4ps7Q1bJ86p7Z8o94ZT4YE+cMEAzdsjlp+FK7ld+vkYYEY4Q4ZW39TqLKotYDCgy20wdqKmDwrw6vRGWv3OIIxZw+dIV5/TJGeebK9+wGFBE8R3O8wMolD1ChBFhQHwRYEQYEQZAfMsnwIgwIgyILwKMCCPCAIhvOQUYEUaEAfFFgBFha0V4amK2eQ1gMbltskCAr4lwnyfCgzyfryEOWJwwIgyIrxkqZfgtMjuixbtvZZFzy229Ts/iCosBttEouviWRoBDInyI5zYiDFYjovtg0cW3+for42+Xoe7XQxwBllB3cjZSEgHuTIS3u1d7eb4jwmANuThGCAHWJ8Jb3Ctxw1RIIMJgFjm9eF/ZHnTpR2V5ZWoH3UuV18A1EZ48NetcnPuaxYC0kahBanxLuTfDrEKHMrVWnD0958ycv8RCQFo0nBzP8kWA9Qsxm3OIMGRD3SnRZhsCrC7CIsCyOUcujAhDOux2hfcllgEBbiXC5MKIMOin1HkvApxMhMUBSySxhdVAhKFrJOfdmrdTixFg80JMvTAiDN2xzxXeHSwDAtypCA96bpgqCUQY1CFyQIC1ibBEErvcy3ZWw3EF+LIrxLMsBLSi7lDlgACnIMR0zyHC0N717i5jVxsCnK0bZoMOEYaFyEbbtjI3ViDAuGFEGExAbS8CjBtGhCFj6s78IB1cLwJs3A1LuVoVEYYSQNaLAFvphktdKYEIl4JDnuttsBQIsI1CPOi54VoZH7+MsZRxlhx7XzhEcGWTrc5SIMB5EOIhp6SDfWSguwx2R4QLgcQN+535jjbqehHgXImwiK9EErsQYcghw8581kvcgADnWoirnhsuVbUEIpxb6p7wEjcgwIUS4prnhmuIMFhIwxPeYZYCAS66EEv9cBURBguQbHcHwosAl02IhzxHXHghRoStFV422BBghLgMQiwiPDUxy7H3CC8gwAixCcQBixNGhI3QcC+vILwIMLQXYqmWeNEp6GYdImxEeNlcQ4AhoRCLAD/vXoYQYeiAujhehBcBhu6EuOo5YhHiwnTWIcKpIYK7nyllCDDoFWIRXz+eKMQZdYiw1piBfBcBhozEeNAT4i15d8WIcFcc8mIGDr9EgAFXjAhn5HaljOwQcxoQYLBHjKvOfE4sG3fVPD4Gjr1vicQKw57bJdtFgMFyMR70hHhL3sQYEV4guhItvEbEgAADYowIZxMv1BFdBBiKK8Y1T5CtzoxLJMIjzrWaXeIFBBhKIsb+Bt4mT5Stc8cFFeFJ3+XKNRtpCDCAv4kXFGQrytsKIMK+4L7tCS4uFxBgUBLkmifIg47ByCJnItzwBPcvCC4gwKBTlGueKN+VtShfmL7kTE/O2Si2I77Yyp/pRAMEGLIW5ap3Ebfcl5Ywz5y/7LrhWVNC2/BihOafOTMNEGCwWZh9UR70RPkB79r/d5tE2BfYSc/NTnrOdpIIAdLg/wUYALTfDr7fVEJVAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/Selfservice_icon.771b8a79.png\";","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/GMR_Connect_Portal.0b226787.pdf\";","/* eslint-disable react/no-multi-comp */\r\n/* eslint-disable react/display-name */\r\nimport React, { useContext, useState } from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport {\r\n List,\r\n ListItem,\r\n Typography,\r\n ListItemIcon,\r\n Divider,\r\n Button,\r\n Hidden,\r\n} from '@material-ui/core';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { useHistory, Link } from \"react-router-dom\";\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faChevronDown, faChevronUp, faEnvelope, faHeadset, faHome, faPhone, faPhoneAlt, faQuestionCircle, faSignOutAlt, faUserCircle } from \"@fortawesome/free-solid-svg-icons\";\r\nimport icon_placeholder from \"@assets/images/icon_placeholder.png\";\r\nimport { Image, DarkModeToggler } from \"@components/atoms\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { logout } from \"@store/user\";\r\nimport { isMobile } from 'react-device-detect';\r\n\r\nimport { connect_modules } from \"@assets/data/connect_modules_list.js\";\r\nimport applications_list from \"@assets/data/external_applications_list.json\";\r\nimport GMR_Connect_Portal from \"@assets/images/GMR_Connect_Portal.pdf\";\r\nimport { SafetyUserContext } from 'src/App';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n zIndex: 9999,\r\n },\r\n listItem: {\r\n flexDirection: 'column',\r\n alignItems: 'flex-start',\r\n },\r\n navLink: {\r\n '&:hover': {\r\n color: theme.palette.primary.dark,\r\n },\r\n },\r\n listItemIcon: {\r\n minWidth: 'auto',\r\n },\r\n closeIcon: {\r\n justifyContent: 'flex-end',\r\n cursor: 'pointer',\r\n },\r\n menu: {\r\n display: 'flex',\r\n },\r\n menuItem: {\r\n marginRight: theme.spacing(8),\r\n '&:last-child': {\r\n marginRight: 0,\r\n },\r\n },\r\n menuGroupItem: {\r\n paddingTop: 0,\r\n },\r\n menuGroupTitle: {\r\n textTransform: 'uppercase',\r\n },\r\n divider: {\r\n width: '100%',\r\n },\r\n noUnderline: {\r\n textDecoration: 'none',\r\n },\r\n row: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n spaceBetween: {\r\n justifyContent: 'space-between',\r\n },\r\n listItemText: {\r\n paddingLeft: theme.spacing(1),\r\n },\r\n iconColor: {\r\n color: theme.palette.primary.main,\r\n },\r\n logoImage: {\r\n width: 18,\r\n height: 18,\r\n },\r\n logoRectangle: {\r\n width: '15%',\r\n },\r\n logoContainer: {\r\n width: '75%',\r\n paddingRight: theme.spacing(1),\r\n paddingLeft: theme.spacing(1),\r\n // height: 40,\r\n // marginBottom: 20,\r\n // fontSize: \"10px\",\r\n textAlign: \"center\",\r\n borderRadius: theme.spacing(2),\r\n color: theme.palette.text.primary,\r\n \"&:hover\": {\r\n background: theme.palette.background.dashButton,\r\n },\r\n },\r\n darkMode: {\r\n cursor: \"pointer\",\r\n \"&:hover > .menu-item, &:hover svg\": {\r\n color: theme.palette.primary.dark,\r\n },\r\n \"&.menu-item--no-dropdown\": {\r\n paddingRight: 0,\r\n },\r\n },\r\n bottomPush: {\r\n position: \"fixed\",\r\n bottom: 0,\r\n textAlign: \"center\",\r\n paddingBottom: 10,\r\n },\r\n rotate: {\r\n transform: \"rotate(180deg)\",\r\n },\r\n headerText: {\r\n fontWeight: 550,\r\n },\r\n cursor: {\r\n cursor: \"pointer\",\r\n },\r\n subMenuButtons: {\r\n justifyContent: \"flex-start\",\r\n paddingLeft: theme.spacing(4),\r\n }\r\n}));\r\n\r\nconst SidebarNav = props => {\r\n const { onClose, className, themeToggler, themeMode, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const { currentCounty } = useSelector((state) => state.counties);\r\n const { user } = useSelector((state) => state.user);\r\n\r\n const [isSupportMenuOpen, setIsSupportMenuOpen] = useState(false);\r\n const { isSafetyUser } = useContext(SafetyUserContext);\r\n\r\n const signOut = () => {\r\n dispatch(logout());\r\n history.push(\"/\");\r\n };\r\n\r\n return (\r\n \r\n onClose()}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Hello, {user.firstName} {user.lastName}\r\n \r\n \r\n \r\n \r\n \r\n Menu\r\n \r\n themeToggler()} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onClose()}\r\n >\r\n Home\r\n \r\n \r\n \r\n \r\n \r\n \r\n onClose()}\r\n >\r\n Profile\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n GMR Connect\r\n \r\n \r\n \r\n \r\n \r\n {connect_modules.map((application, index) => (\r\n (application.isActive || isSafetyUser) && (\r\n \r\n \r\n {application.logo && (\r\n \r\n )}\r\n onClose()}\r\n >\r\n {application.name}\r\n \r\n \r\n \r\n )\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n GMR Applications\r\n \r\n \r\n \r\n \r\n \r\n {applications_list.map((application, index) => (\r\n \r\n \r\n {application.logo && (\r\n \r\n )}\r\n onClose()}\r\n >\r\n {application.name}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n Help\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n onClose()}\r\n >\r\n User Guide\r\n \r\n \r\n \r\n setIsSupportMenuOpen(!isSupportMenuOpen)}>\r\n
\r\n \r\n \r\n Support\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {isSupportMenuOpen && (\r\n isMobile ? \r\n \r\n \r\n \r\n \r\n IT Help Desk
(866) 267-9111\r\n \r\n
\r\n
:\r\n \r\n
\r\n \r\n \r\n IT Help Desk
(866) 267-9111\r\n \r\n
\r\n
\r\n )}\r\n {isSupportMenuOpen && (\r\n \r\n \r\n \r\n \r\n MobileSupport@gmr.net\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n onClose()}\r\n >\r\n Sign Out\r\n \r\n \r\n \r\n {/* \r\n \r\n Documentation\r\n \r\n \r\n \r\n \r\n Another Cool Button\r\n \r\n */}\r\n
\r\n );\r\n};\r\n\r\nSidebarNav.propTypes = {\r\n className: PropTypes.string,\r\n pages: PropTypes.object.isRequired,\r\n onClose: PropTypes.func,\r\n};\r\n\r\nexport default SidebarNav;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Drawer } from '@material-ui/core';\r\n\r\nimport { SidebarNav } from './components';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n drawer: {\r\n width: '100%',\r\n maxWidth: 325,\r\n },\r\n root: {\r\n height: '100%',\r\n padding: theme.spacing(1),\r\n },\r\n nav: {\r\n marginBottom: theme.spacing(1),\r\n },\r\n}));\r\n\r\nconst Sidebar = props => {\r\n const { pages, open, variant, onClose, themeMode, themeToggler, className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n onClose()}\r\n open={open}\r\n variant={variant}\r\n >\r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nSidebar.propTypes = {\r\n className: PropTypes.string,\r\n onClose: PropTypes.func,\r\n open: PropTypes.bool.isRequired,\r\n variant: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default Sidebar;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\r\nimport { useMediaQuery, Divider } from '@material-ui/core';\r\nimport { Topbar, Footer, Sidebar } from './components';\r\n\r\nconst Main = ({ children, themeToggler, themeMode }) => {\r\n const [openSidebar, setOpenSidebar] = useState(false);\r\n\r\n const useStyles = makeStyles(theme => ({\r\n root: {\r\n height: '100%',\r\n },\r\n stickyHeader: {\r\n position: 'sticky',\r\n top: 0,\r\n backgroundColor: theme.palette.background.topbar,\r\n zIndex: 9,\r\n }\r\n }));\r\n const classes = useStyles();\r\n\r\n const theme = useTheme();\r\n const isMd = useMediaQuery(theme.breakpoints.up('md'), {\r\n defaultMatches: true,\r\n });\r\n\r\n const pages = {\r\n landings: {\r\n title: 'Landings',\r\n id: 'landing-pages',\r\n children: {\r\n services: {\r\n groupTitle: 'Services',\r\n pages: [\r\n {\r\n title: 'Coworking',\r\n href: '/coworking',\r\n },\r\n {\r\n title: 'Rental',\r\n href: '/rental',\r\n },\r\n {\r\n title: 'Job Listing',\r\n href: '/job-listing',\r\n },\r\n {\r\n title: 'E-Learning',\r\n href: '/e-learning',\r\n },\r\n {\r\n title: 'E-commerce',\r\n href: '/e-commerce',\r\n },\r\n {\r\n title: 'Expo',\r\n href: '/expo',\r\n },\r\n ],\r\n },\r\n apps: {\r\n groupTitle: 'Apps',\r\n pages: [\r\n {\r\n title: 'Desktop App',\r\n href: '/desktop-app',\r\n },\r\n {\r\n title: 'Mobile App',\r\n href: '/mobile-app',\r\n },\r\n ],\r\n },\r\n web: {\r\n groupTitle: 'Web',\r\n pages: [\r\n {\r\n title: 'Marketing',\r\n href: '/',\r\n },\r\n {\r\n title: 'Overview',\r\n href: '/home',\r\n },\r\n {\r\n title: 'Basic',\r\n href: '/web-basic',\r\n },\r\n {\r\n title: 'Service',\r\n href: '/service',\r\n },\r\n {\r\n title: 'Startup',\r\n href: '/startup',\r\n },\r\n {\r\n title: 'Enterprise',\r\n href: '/enterprise',\r\n },\r\n {\r\n title: 'Cloud Hosting',\r\n href: '/cloud-hosting',\r\n },\r\n {\r\n title: 'Agency',\r\n href: '/agency',\r\n },\r\n {\r\n title: 'Design Company',\r\n href: '/design-company',\r\n },\r\n {\r\n title: 'Logistics',\r\n href: '/logistics',\r\n },\r\n ],\r\n },\r\n },\r\n },\r\n pages: {\r\n title: 'Pages',\r\n id: 'supported-pages',\r\n children: {\r\n career: {\r\n groupTitle: 'Career',\r\n pages: [\r\n {\r\n title: 'Lising',\r\n href: '/career-listing',\r\n },\r\n {\r\n title: 'Lising Minimal',\r\n href: '/career-listing-minimal',\r\n },\r\n {\r\n title: 'Opening',\r\n href: '/career-opening',\r\n },\r\n ],\r\n },\r\n helpCenter: {\r\n groupTitle: 'Help center',\r\n pages: [\r\n {\r\n title: 'Overview',\r\n href: '/help-center',\r\n },\r\n {\r\n title: 'Article',\r\n href: '/help-center-article',\r\n },\r\n ],\r\n },\r\n company: {\r\n groupTitle: 'Company',\r\n pages: [\r\n {\r\n title: 'About',\r\n href: '/about',\r\n },\r\n {\r\n title: 'About (Cover)',\r\n href: '/about-side-cover',\r\n },\r\n {\r\n title: 'Pricing',\r\n href: '/pricing',\r\n },\r\n {\r\n title: 'Terms',\r\n href: '/company-terms',\r\n },\r\n ],\r\n },\r\n contact: {\r\n groupTitle: 'Contact',\r\n pages: [\r\n {\r\n title: 'Reach View',\r\n href: '/contact-page',\r\n },\r\n {\r\n title: 'Sidebar Map',\r\n href: '/contact-sidebar-map',\r\n },\r\n {\r\n title: 'Cover',\r\n href: '/contact-page-cover',\r\n },\r\n ],\r\n },\r\n blog: {\r\n groupTitle: 'Blog',\r\n pages: [\r\n {\r\n title: 'Newsroom',\r\n href: '/blog-newsroom',\r\n },\r\n {\r\n title: 'Reach View',\r\n href: '/blog-reach-view',\r\n },\r\n {\r\n title: 'Search',\r\n href: '/blog-search',\r\n },\r\n {\r\n title: 'Article',\r\n href: '/blog-article',\r\n },\r\n ],\r\n },\r\n portfolio: {\r\n groupTitle: 'Portfolio',\r\n pages: [\r\n {\r\n title: 'Basic',\r\n href: '/portfolio-page',\r\n },\r\n {\r\n title: 'Masonry',\r\n href: '/portfolio-masonry',\r\n },\r\n {\r\n title: 'Grid View',\r\n href: '/portfolio-grid',\r\n },\r\n {\r\n title: 'Parallax Effect',\r\n href: '/agency',\r\n },\r\n ],\r\n },\r\n },\r\n },\r\n account: {\r\n title: 'Account',\r\n id: 'account',\r\n children: {\r\n settings: {\r\n groupTitle: 'Settings',\r\n pages: [\r\n {\r\n title: 'General',\r\n href: '/account/?pid=general',\r\n },\r\n {\r\n title: 'Security',\r\n href: '/account/?pid=security',\r\n },\r\n {\r\n title: 'Notifications',\r\n href: '/account/?pid=notifications',\r\n },\r\n {\r\n title: 'Billing',\r\n href: '/account/?pid=billing',\r\n },\r\n ],\r\n },\r\n signup: {\r\n groupTitle: 'Sign up',\r\n pages: [\r\n {\r\n title: 'Simple',\r\n href: '/signup-simple',\r\n },\r\n {\r\n title: 'Cover',\r\n href: '/signup-cover',\r\n },\r\n ],\r\n },\r\n signin: {\r\n groupTitle: 'Sign in',\r\n pages: [\r\n {\r\n title: 'Simple',\r\n href: '/signin-simple',\r\n },\r\n {\r\n title: 'Cover',\r\n href: '/signin-cover',\r\n },\r\n ],\r\n },\r\n password: {\r\n groupTitle: 'Password reset',\r\n pages: [\r\n {\r\n title: 'Simple',\r\n href: '/password-reset-simple',\r\n },\r\n {\r\n title: 'Cover',\r\n href: '/password-reset-cover',\r\n },\r\n ],\r\n },\r\n error: {\r\n groupTitle: 'Error',\r\n pages: [\r\n {\r\n title: 'Simple',\r\n href: '/not-found',\r\n },\r\n {\r\n title: 'Cover',\r\n href: '/not-found-cover',\r\n },\r\n ],\r\n },\r\n },\r\n },\r\n };\r\n\r\n const handleSidebarOpen = () => {\r\n setOpenSidebar(true);\r\n };\r\n\r\n const handleSidebarClose = () => {\r\n setOpenSidebar(false);\r\n };\r\n\r\n // const open = isMd ? false : openSidebar;\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {children}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nMain.propTypes = {\r\n children: PropTypes.node,\r\n themeToggler: PropTypes.func.isRequired,\r\n themeMode: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default Main;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Toolbar } from '@material-ui/core';\r\nimport { Image } from '@components/atoms';\r\nimport main_icon from '@assets/images/main_icon.png';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n toolbar: {\r\n // maxWidth: theme.layout.contentWidth,\r\n width: '100%',\r\n margin: '0 auto',\r\n padding: theme.spacing(0, 2),\r\n [theme.breakpoints.up('sm')]: {\r\n padding: theme.spacing(0, 8),\r\n },\r\n },\r\n logoContainer: {\r\n width: 130,\r\n height: 40,\r\n [theme.breakpoints.up('md')]: {\r\n width: 160,\r\n height: 50,\r\n },\r\n },\r\n logoImage: {\r\n width: '100%',\r\n height: '100%',\r\n },\r\n}));\r\n\r\nconst Topbar = ({ themeMode, className, ...rest }) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nTopbar.propTypes = {\r\n className: PropTypes.string,\r\n themeMode: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default Topbar;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Divider } from '@material-ui/core';\r\nimport { Topbar } from './components';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n },\r\n content: {\r\n height: '100%',\r\n },\r\n}));\r\n\r\nconst Minimal = ({ themeMode, children, className }) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n {children.type.name.toLowerCase() !== 'login' && children.type.name.toLowerCase() !== 'map' && }\r\n \r\n
{children}
\r\n
\r\n );\r\n};\r\n\r\nMinimal.propTypes = {\r\n children: PropTypes.node,\r\n className: PropTypes.string,\r\n themeMode: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default Minimal;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n AppBar,\r\n Box,\r\n Hidden,\r\n IconButton,\r\n Toolbar,\r\n List,\r\n ListItem,\r\n Button,\r\n makeStyles\r\n} from '@material-ui/core';\r\nimport { Image, DarkModeToggler } from '@components/atoms';\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n borderBottom: `1px solid ${theme.palette.divider}`,\r\n },\r\n logoContainer: {\r\n width: 100,\r\n height: 28,\r\n [theme.breakpoints.up('md')]: {\r\n width: 120,\r\n height: 32,\r\n },\r\n },\r\n logoImage: {\r\n width: '100%',\r\n height: '100%',\r\n },\r\n navigationContainer: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n },\r\n listItem: {\r\n paddingRight: 0,\r\n },\r\n listItemText: {\r\n flex: '0 0 auto',\r\n whiteSpace: 'nowrap',\r\n },\r\n listItemButton: {\r\n whiteSpace: 'nowrap',\r\n },\r\n iconButton: {\r\n paddingRight: 0,\r\n '&:hover': {\r\n background: 'transparent',\r\n },\r\n },\r\n}));\r\n\r\nconst TopBar = ({\r\n className,\r\n onMobileNavOpen,\r\n themeToggler,\r\n themeMode,\r\n ...rest\r\n}) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n themeToggler()} />\r\n \r\n \r\n \r\n \r\n SEE ALL PAGES\r\n \r\n \r\n \r\n \r\n Buy Now\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\n\r\nTopBar.propTypes = {\r\n className: PropTypes.string,\r\n onMobileNavOpen: PropTypes.func,\r\n themeToggler: PropTypes.func.isRequired,\r\n themeMode: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default TopBar;","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport { parse } from 'query-string';\r\nimport PropTypes from 'prop-types';\r\nimport { Typography, ListItem, makeStyles } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n item: {\r\n display: 'flex',\r\n textTransform: 'none',\r\n width: '100%',\r\n color: theme.palette.text.primary,\r\n '&:hover': {\r\n background: 'transparent',\r\n color: theme.palette.primary.main,\r\n }\r\n },\r\n itemActive: {\r\n color: theme.palette.primary.main,\r\n '& span': {\r\n fontWeight: 700,\r\n },\r\n },\r\n}));\r\n\r\nconst getComponentId = () => parse(window.location.search).component || 'introduction';\r\n\r\nconst NavItem = ({\r\n className,\r\n href,\r\n icon: Icon,\r\n title,\r\n id,\r\n ...rest\r\n}) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n {title}\r\n \r\n );\r\n};\r\n\r\nNavItem.propTypes = {\r\n className: PropTypes.string,\r\n href: PropTypes.string,\r\n title: PropTypes.string,\r\n id: PropTypes.string,\r\n};\r\n\r\nexport default NavItem;","export const components = [{\r\n id: 'get-started',\r\n title: 'Get Started',\r\n pages: [{\r\n id: 'introduction',\r\n title: 'Introduction',\r\n href: '/documentation/?component=introduction',\r\n }, {\r\n id: 'quick-start',\r\n title: 'Quick Start',\r\n href: '/documentation/?component=quick-start',\r\n }, {\r\n id: 'changelog',\r\n title: 'Changelog',\r\n href: '/documentation/?component=changelog',\r\n }],\r\n}, {\r\n id: 'atoms',\r\n title: 'Atoms',\r\n pages: [{\r\n id: 'dark-mode-toggler',\r\n title: 'Dark Mode Toggler', \r\n href: '/documentation/?component=dark-mode-toggler',\r\n }, {\r\n id: 'icon',\r\n title: 'Icon', \r\n href: '/documentation/?component=icon',\r\n }, {\r\n id: 'icon-text',\r\n title: 'Icon Text',\r\n href: '/documentation/?component=icon-text',\r\n }, {\r\n id: 'image',\r\n title: 'Image',\r\n href: '/documentation/?component=image',\r\n }, {\r\n id: 'learn-more-link',\r\n title: 'Learn More Link',\r\n href: '/documentation/?component=learn-more-link',\r\n }],\r\n}, {\r\n id: 'molecules',\r\n title: 'Molecules',\r\n pages: [{\r\n id: 'count-up-number',\r\n title: 'Count Up Number', \r\n href: '/documentation/?component=count-up-number',\r\n }, {\r\n id: 'description-with-cta',\r\n title: 'Description Text With CTA',\r\n href: '/documentation/?component=description-with-cta',\r\n }, {\r\n id: 'icon-alternate',\r\n title: 'Icon Alternate',\r\n href: '/documentation/?component=icon-alternate',\r\n }, {\r\n id: 'overlapped-images',\r\n title: 'Overlapped Images',\r\n href: '/documentation/?component=overlapped-images',\r\n }, {\r\n id: 'section-header',\r\n title: 'Section Header',\r\n href: '/documentation/?component=section-header',\r\n }, {\r\n id: 'image-swiper',\r\n title: 'Image Swiper',\r\n href: '/documentation/?component=image-swiper',\r\n }, {\r\n id: 'numbers-swiper',\r\n title: 'Numbers Swiper',\r\n href: '/documentation/?component=numbers-swiper',\r\n }, {\r\n id: 'typed-text',\r\n title: 'Typed Text',\r\n href: '/documentation/?component=typed-text',\r\n }],\r\n}, {\r\n id: 'organisms',\r\n title: 'Organisms',\r\n pages: [{\r\n id: 'accordion',\r\n title: 'Accordion', \r\n href: '/documentation/?component=accordion',\r\n }, {\r\n id: 'card-base',\r\n title: 'Card Base',\r\n href: '/documentation/?component=card-base',\r\n }, {\r\n id: 'card-category',\r\n title: 'Card Category',\r\n href: '/documentation/?component=card-category',\r\n }, {\r\n id: 'card-category-link',\r\n title: 'Card Category Link',\r\n href: '/documentation/?component=card-category-link',\r\n }, {\r\n id: 'card-job',\r\n title: 'Card Job',\r\n href: '/documentation/?component=card-job',\r\n }, {\r\n id: 'card-job-company',\r\n title: 'Card Job Company',\r\n href: '/documentation/?component=card-job-company',\r\n }, {\r\n id: 'card-job-minimal',\r\n title: 'Card Job Minimal',\r\n href: '/documentation/?component=card-job-minimal',\r\n }, {\r\n id: 'card-job-tag',\r\n title: 'Card Job Tag',\r\n href: '/documentation/?component=card-job-tag',\r\n }, {\r\n id: 'card-pricing-standard',\r\n title: 'Card Pricing Standard',\r\n href: '/documentation/?component=card-pricing-standard',\r\n }, {\r\n id: 'card-product',\r\n title: 'Card Product',\r\n href: '/documentation/?component=card-product',\r\n }, {\r\n id: 'card-promo',\r\n title: 'Card Promo',\r\n href: '/documentation/?component=card-promo',\r\n }, {\r\n id: 'card-review',\r\n title: 'Card Review',\r\n href: '/documentation/?component=card-review',\r\n }, {\r\n id: 'description-list-icon',\r\n title: 'Description List Icon',\r\n href: '/documentation/?component=description-list-icon',\r\n }, {\r\n id: 'hero-background',\r\n title: 'Hero Background',\r\n href: '/documentation/?component=hero-background',\r\n }, {\r\n id: 'hero-shaped',\r\n title: 'Hero Shaped',\r\n href: '/documentation/?component=hero-shaped',\r\n }, {\r\n id: 'hero-side-image',\r\n title: 'Hero Side Image',\r\n href: '/documentation/?component=hero-side-image',\r\n }, {\r\n id: 'hero-simple-background',\r\n title: 'Hero Simple Background',\r\n href: '/documentation/?component=hero-simple-background',\r\n }, {\r\n id: 'map',\r\n title: 'Map',\r\n href: '/documentation/?component=map',\r\n }, {\r\n id: 'parallax',\r\n title: 'Parallax',\r\n href: '/documentation/?component=parallax',\r\n }, {\r\n id: 'section',\r\n title: 'Section',\r\n href: '/documentation/?component=section',\r\n }, {\r\n id: 'section-alternate',\r\n title: 'Section Alternate',\r\n href: '/documentation/?component=section-alternate',\r\n }],\r\n}];","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Box,\r\n Button,\r\n Drawer,\r\n Hidden,\r\n List,\r\n Typography,\r\n ListItem,\r\n makeStyles\r\n} from '@material-ui/core';\r\nimport NavItem from './components/NavItem';\r\nimport { components } from './data';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n mobileDrawer: {\r\n width: 256\r\n },\r\n desktopDrawer: {\r\n width: 256,\r\n top: 64,\r\n height: 'calc(100% - 64px)'\r\n },\r\n title: {\r\n fontWeight: 700,\r\n },\r\n navGroup: {\r\n marginBottom: theme.spacing(2),\r\n '&:last-child': {\r\n marginBottom: 0,\r\n },\r\n },\r\n navGroupTitle: {\r\n paddingBottom: 0,\r\n },\r\n}));\r\n\r\nconst Navbar = ({ onMobileClose, openMobile }) => {\r\n const classes = useStyles();\r\n\r\n const content = (\r\n \r\n \r\n \r\n {components.map((item) => (\r\n
\r\n \r\n {item.title}\r\n \r\n \r\n {item.pages.map((page) => (\r\n \r\n ))}\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n SEE ALL PAGES\r\n \r\n \r\n \r\n \r\n BUY NOW\r\n \r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n {content}\r\n \r\n \r\n \r\n \r\n {content}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nNavbar.propTypes = {\r\n onMobileClose: PropTypes.func,\r\n openMobile: PropTypes.bool\r\n};\r\n\r\nNavbar.defaultProps = {\r\n onMobileClose: () => {},\r\n openMobile: false\r\n};\r\n\r\nexport default Navbar;"," \r\nimport React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core';\r\nimport { Topbar, Navbar } from './components';\r\nimport { ScrollTop } from '@components/atoms';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n height: '100%',\r\n overflow: 'hidden',\r\n width: '100%'\r\n },\r\n wrapper: {\r\n display: 'flex',\r\n flex: '1 1 auto',\r\n overflow: 'hidden',\r\n paddingTop: 64,\r\n [theme.breakpoints.up('md')]: {\r\n paddingLeft: 256\r\n }\r\n },\r\n contentContainer: {\r\n display: 'flex',\r\n flex: '1 1 auto',\r\n overflow: 'hidden'\r\n },\r\n content: {\r\n flex: '1 1 auto',\r\n height: '100%',\r\n overflow: 'auto'\r\n }\r\n}));\r\n\r\nconst DocsLayout = ({ children, themeToggler, themeMode }) => {\r\n const classes = useStyles();\r\n const [isMobileNavOpen, setMobileNavOpen] = useState(false);\r\n\r\n return (\r\n
\r\n setMobileNavOpen(true)}\r\n />\r\n setMobileNavOpen(false)}\r\n openMobile={isMobileNavOpen}\r\n />\r\n
\r\n
\r\n
\r\n {children}\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nDocsLayout.propTypes = {\r\n children: PropTypes.node,\r\n themeToggler: PropTypes.func.isRequired,\r\n themeMode: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default DocsLayout;","import React, { useState } from 'react';\r\nimport { useIdleTimer } from 'react-idle-timer';\r\nimport DialogConfirm from './DialogConfirm';\r\nimport { logout } from \"@store/user\";\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nlet countdownInterval;\r\nlet timeout;\r\n\r\n\r\nconst SessionTimeout = () => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const { user } = useSelector(state => state.user);\r\n\r\n const [state, setState] = useState({\r\n timeoutModalOpen: false,\r\n timeoutCountdown: 0,\r\n })\r\n\r\n const clearDialogTimeout = () => {\r\n clearTimeout(timeout);\r\n };\r\n\r\n const clearDialogInterval = () => {\r\n clearInterval(countdownInterval);\r\n };\r\n\r\n const onActive = () => {\r\n if (state.timeoutModalOpen) return;\r\n clearDialogTimeout();\r\n clearDialogInterval();\r\n }\r\n\r\n const onContinue = () => {\r\n setState(prevState => ({ ...prevState, timeoutModalOpen: false }));\r\n clearDialogTimeout();\r\n clearDialogInterval();\r\n }\r\n\r\n const signout = () => {\r\n try {\r\n setState(prevState => ({ ...prevState, timeoutModalOpen: false }))\r\n dispatch(logout());\r\n clearDialogTimeout();\r\n clearDialogInterval();\r\n history.push('/');\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n\r\n }\r\n\r\n const onIdle = () => {\r\n if (state.timeoutModalOpen) return;\r\n timeout = setTimeout(() => {\r\n let timeoutCountdown = 120;\r\n setState(prevState => ({ ...prevState, timeoutModalOpen: true, timeoutCountdown: timeoutCountdown }))\r\n countdownInterval = setInterval(() => {\r\n timeoutCountdown -= 1;\r\n if (timeoutCountdown > 0) setState(prevState => ({ ...prevState, timeoutCountdown }))\r\n else if (timeoutCountdown === 0) signout();\r\n }, 1000);\r\n }, 1000);\r\n }\r\n\r\n const { reset, pause } = useIdleTimer({\r\n timeout: 1000 * 60 * 28,\r\n onActive,\r\n onIdle,\r\n debounce: 250\r\n });\r\n\r\n React.useEffect(() => {\r\n if (!!user) reset();\r\n else pause();\r\n }, [user]);\r\n\r\n return 0 ? state.timeoutCountdown : 0} seconds.`,\r\n onOkClickHandler: onContinue,\r\n onCancelClickHandler: signout\r\n }}\r\n />\r\n\r\n}\r\n\r\nexport default SessionTimeout;","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Divider } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n },\r\n content: {\r\n height: '100%',\r\n },\r\n}));\r\n\r\nconst Minimal = ({ themeMode, children, className }) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n
{children}
\r\n
\r\n );\r\n};\r\n\r\nMinimal.propTypes = {\r\n children: PropTypes.node,\r\n className: PropTypes.string,\r\n themeMode: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default Minimal;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\r\nimport {\r\n useMediaQuery,\r\n Grid,\r\n Typography,\r\n TextField,\r\n Divider,\r\n} from '@material-ui/core';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n title: {\r\n fontWeight: 700,\r\n marginBottom: theme.spacing(1),\r\n },\r\n value: {\r\n fontWeight: 700,\r\n marginBottom: theme.spacing(1),\r\n color: theme.palette.text.secondary\r\n },\r\n updateContact: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n paddingTop: theme.spacing(2),\r\n },\r\n}));\r\n\r\nconst General = props => {\r\n const { className, ...rest } = props;\r\n const classes = useStyles();\r\n\r\n const theme = useTheme();\r\n const isMd = useMediaQuery(theme.breakpoints.up('md'), {\r\n defaultMatches: true,\r\n });\r\n\r\n const { user } = useSelector(state => state.user);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n Basic Information\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Full Name\r\n \r\n \r\n {user.firstName} {user.lastName}\r\n \r\n \r\n \r\n \r\n Employee Number\r\n \r\n \r\n {user.employeeNumber}\r\n \r\n \r\n \r\n \r\n E-mail\r\n \r\n \r\n {user.email}\r\n \r\n \r\n {\r\n user.county && user.state && (\r\n \r\n \r\n Work Location\r\n \r\n \r\n {`${user.county} ${user.state}`.trim()}\r\n \r\n \r\n )\r\n }\r\n {/*\r\n \r\n Phone Number\r\n \r\n \r\n {user.phone}\r\n \r\n \r\n \r\n \r\n Employer\r\n \r\n \r\n {user.employer}\r\n \r\n */}\r\n {/* \r\n \r\n */}\r\n {/* \r\n \r\n Full Address\r\n \r\n \r\n {user.address}\r\n \r\n \r\n \r\n \r\n City\r\n \r\n \r\n {user.city}\r\n \r\n \r\n \r\n \r\n State\r\n \r\n \r\n {user.state}\r\n \r\n */}\r\n\r\n\r\n \r\n
\r\n \r\n To update your contact information, go to GMR People Services and select Contact Info Update:  \r\n \r\n GMR People Services\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nGeneral.propTypes = {\r\n /**\r\n * External classes\r\n */\r\n className: PropTypes.string,\r\n};\r\n\r\nexport default General;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\r\nimport {\r\n useMediaQuery,\r\n Grid,\r\n Typography,\r\n FormControlLabel,\r\n Checkbox,\r\n Button,\r\n Divider,\r\n} from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n titleCta: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n },\r\n}));\r\n\r\nconst Settings = props => {\r\n const { className, ...rest } = props;\r\n const classes = useStyles();\r\n\r\n const theme = useTheme();\r\n const isMd = useMediaQuery(theme.breakpoints.up('md'), {\r\n defaultMatches: true,\r\n });\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n Notifications\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n System settings\r\n \r\n \r\n You will recieve emails in your compamy email address\r\n \r\n
\r\n
\r\n }\r\n label=\"E-mail Alerts\"\r\n />\r\n
\r\n
\r\n }\r\n label=\"Push Notifications\"\r\n />\r\n
\r\n
\r\n }\r\n label=\"Text Messages\"\r\n />\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nSettings.propTypes = {\r\n /**\r\n * External classes\r\n */\r\n className: PropTypes.string,\r\n};\r\n\r\nexport default Settings;\r\n","import React from \"react\";\r\nimport clsx from \"clsx\";\r\nimport { parse } from \"query-string\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Box, List, ListItem, Grid, Typography } from \"@material-ui/core\";\r\nimport { SectionAlternate, CardBase, Hero } from \"@components/organisms\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Tabs from \"@material-ui/core/Tabs\";\r\nimport Tab from \"@material-ui/core/Tab\";\r\n\r\n//components\r\nimport { Profile, Settings } from './components';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n height: \"100%\",\r\n width: \"100%\",\r\n },\r\n section: {\r\n \"& .section-alternate__content\": {\r\n paddingTop: 0,\r\n marginTop: theme.spacing(-5),\r\n position: \"relative\",\r\n zIndex: 1,\r\n },\r\n \"& .card-base__content\": {\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(\"md\")]: {\r\n padding: theme.spacing(3),\r\n },\r\n },\r\n },\r\n menu: {\r\n height: \"auto\",\r\n },\r\n list: {\r\n display: \"inline-flex\",\r\n overflow: \"auto\",\r\n flexWrap: \"nowrap\",\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n marginRight: theme.spacing(-3),\r\n marginLeft: theme.spacing(-3),\r\n },\r\n },\r\n listItem: {\r\n marginRight: theme.spacing(2),\r\n flex: 0,\r\n [theme.breakpoints.up(\"md\")]: {\r\n paddingRight: theme.spacing(3),\r\n paddingLeft: theme.spacing(3),\r\n borderLeft: \"2px solid transparent\",\r\n },\r\n },\r\n listItemActive: {\r\n [theme.breakpoints.up(\"md\")]: {\r\n borderLeft: `2px solid ${theme.palette.primary.dark}`,\r\n },\r\n \"& .menu__item\": {\r\n color: theme.palette.text.primary,\r\n },\r\n },\r\n}));\r\n\r\nconst TabPanel = (props) => {\r\n const { children, value, index, ...other } = props;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst Account = (props = {}) => {\r\n const classes = useStyles();\r\n //let pageId = parse(window.location.search).pid || 'general';\r\n\r\n const [selectedIndex, setSelectedIndex] = React.useState(0);\r\n\r\n const handleChangedIndex = (event, newValue) => {\r\n setSelectedIndex(newValue);\r\n };\r\n\r\n return (\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\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Account;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Box, List, ListItem, Grid, Typography } from \"@material-ui/core\";\r\nimport { SectionAlternate, CardBase, Hero } from \"@components/organisms\";\r\n\r\n//components\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n height: \"100%\",\r\n width: \"100%\",\r\n },\r\n section: {\r\n \"& .section-alternate__content\": {\r\n paddingTop: 0,\r\n marginTop: theme.spacing(-5),\r\n position: \"relative\",\r\n zIndex: 1,\r\n },\r\n \"& .card-base__content\": {\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(\"md\")]: {\r\n padding: theme.spacing(3),\r\n },\r\n },\r\n },\r\n menu: {\r\n height: \"auto\",\r\n },\r\n list: {\r\n display: \"inline-flex\",\r\n overflow: \"auto\",\r\n flexWrap: \"nowrap\",\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n marginRight: theme.spacing(-3),\r\n marginLeft: theme.spacing(-3),\r\n },\r\n },\r\n listItem: {\r\n marginRight: theme.spacing(2),\r\n flex: 0,\r\n [theme.breakpoints.up(\"md\")]: {\r\n paddingRight: theme.spacing(3),\r\n paddingLeft: theme.spacing(3),\r\n borderLeft: \"2px solid transparent\",\r\n },\r\n },\r\n listItemActive: {\r\n [theme.breakpoints.up(\"md\")]: {\r\n borderLeft: `2px solid ${theme.palette.primary.dark}`,\r\n },\r\n \"& .menu__item\": {\r\n color: theme.palette.text.primary,\r\n },\r\n },\r\n}));\r\n\r\nconst Communications = (props = {}) => {\r\n const classes = useStyles();\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n { /* COMPONENTS CONTENT GO HERE*/ }\r\n\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Communications;\r\n","import React from \"react\";\r\nimport _ from 'lodash';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Grid } from \"@material-ui/core\";\r\nimport {\r\n SectionAlternate,\r\n CardBase,\r\n Hero,\r\n DataListAndRowView,\r\n} from \"@components/organisms\";\r\n\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\n//API Requests\r\nimport { ConnectService } from \"@services\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n height: \"100%\",\r\n width: \"100%\",\r\n },\r\n section: {\r\n \"& .section-alternate__content\": {\r\n paddingTop: 0,\r\n marginTop: theme.spacing(-5),\r\n position: \"relative\",\r\n zIndex: 1,\r\n },\r\n \"& .card-base__content\": {\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(\"md\")]: {\r\n padding: theme.spacing(3),\r\n },\r\n },\r\n },\r\n}));\r\n\r\nconst Contacts = (props = {}) => {\r\n const classes = useStyles();\r\n\r\n //Set variable\r\n const [loading, setLoading] = React.useState(false);\r\n const [fetchedData, setFetchedData] = React.useState([]);\r\n\r\n // the query string for you.\r\n const useQuery = () => {\r\n return new URLSearchParams(useLocation().search);\r\n }\r\n\r\n let query = useQuery();\r\n\r\n //onPageLoad\r\n React.useEffect(() => {\r\n setLoading(true);\r\n\r\n let currentState = query.get(\"state\");\r\n let currentCounty = query.get(\"county\");\r\n\r\n ConnectService.getContactsList(currentState, currentCounty)\r\n .then((data) => {\r\n setLoading(false);\r\n setFetchedData(_.sortBy(data.availableContacts, ['categoryTitle', 'company']));\r\n })\r\n .catch((err) => {\r\n alert(JSON.stringify(err));\r\n setLoading(false);\r\n });\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {/* COMPONENTS CONTENT GO HERE*/}\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Contacts;\r\n","import React from \"react\";\r\nimport _ from 'lodash';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Grid } from \"@material-ui/core\";\r\nimport {\r\n SectionAlternate,\r\n CardBase,\r\n Hero,\r\n DataListAndRowView,\r\n} from \"@components/organisms\";\r\n\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\n//API Requests\r\nimport { ConnectService } from \"@services\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n height: \"100%\",\r\n width: \"100%\",\r\n },\r\n section: {\r\n \"& .section-alternate__content\": {\r\n paddingTop: 0,\r\n marginTop: theme.spacing(-5),\r\n position: \"relative\",\r\n zIndex: 1,\r\n },\r\n \"& .card-base__content\": {\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(\"md\")]: {\r\n padding: theme.spacing(3),\r\n },\r\n },\r\n },\r\n}));\r\n\r\nconst ContinuingEducation = (props = {}) => {\r\n const classes = useStyles();\r\n\r\n //Set variable\r\n const [loading, setLoading] = React.useState(false);\r\n const [fetchedData, setFetchedData] = React.useState([]);\r\n\r\n // the query string for you.\r\n const useQuery = () => {\r\n return new URLSearchParams(useLocation().search);\r\n }\r\n\r\n let query = useQuery();\r\n\r\n //onPageLoad\r\n React.useEffect(() => {\r\n setLoading(true);\r\n\r\n let currentState = query.get(\"state\");\r\n let currentCounty = query.get(\"county\");\r\n\r\n ConnectService.getContinuingEducationList(currentState, currentCounty)\r\n .then((data) => {\r\n setLoading(false);\r\n const sortedList = _.sortBy(data.availableClasses, ['courseName']).sort((d1, d2) => new Date(d1.startDate).getTime() - new Date(d2.startDate).getTime());\r\n setFetchedData(sortedList);\r\n })\r\n .catch((err) => {\r\n alert(JSON.stringify(err));\r\n setLoading(false);\r\n });\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {/* COMPONENTS CONTENT GO HERE*/}\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ContinuingEducation;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Grid } from \"@material-ui/core\";\r\nimport {\r\n SectionAlternate,\r\n CardBase,\r\n Hero,\r\n DataListAndRowView,\r\n FormComponent\r\n} from \"@components/organisms\";\r\nimport moment from \"moment\";\r\n\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\n//redux\r\nimport { useSelector } from \"react-redux\";\r\n\r\n//API Requests\r\nimport { ConnectService } from \"@services\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n height: \"100%\",\r\n width: \"100%\",\r\n },\r\n section: {\r\n \"& .section-alternate__content\": {\r\n paddingTop: 0,\r\n marginTop: theme.spacing(-5),\r\n position: \"relative\",\r\n zIndex: 1,\r\n },\r\n \"& .card-base__content\": {\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(\"md\")]: {\r\n padding: theme.spacing(3),\r\n },\r\n },\r\n },\r\n}));\r\n\r\nconst Forms = (props = {}) => {\r\n const classes = useStyles();\r\n //redux\r\n const { user } = useSelector((state) => state.user);\r\n const { currentCounty } = useSelector((state) => state.counties);\r\n\r\n //Set variable\r\n const [loading, setLoading] = React.useState(false);\r\n const [fetchedData, setFetchedData] = React.useState([]);\r\n const [currentSelectedForm, setCurrentSelectedForm] = React.useState(null);\r\n\r\n // the query string for you.\r\n const useQuery = () => {\r\n return new URLSearchParams(useLocation().search);\r\n }\r\n\r\n let query = useQuery();\r\n\r\n //onPageLoad\r\n React.useEffect(() => {\r\n setLoading(true);\r\n\r\n let currentState = query.get(\"state\");\r\n let currentCounty = query.get(\"county\");\r\n\r\n ConnectService.getFormsList(currentState,currentCounty)\r\n .then((data) => {\r\n setLoading(false);\r\n setFetchedData(data.forms);\r\n })\r\n .catch((err) => {\r\n alert(JSON.stringify(err));\r\n setLoading(false);\r\n });\r\n }, []);\r\n\r\n\r\n const onFormSelected = (selectedForm) => {\r\n setLoading(true);\r\n //sample api GET request\r\n ConnectService.getFormByKey(selectedForm.formKey)\r\n .then((data) => {\r\n setLoading(false);\r\n setCurrentSelectedForm(data.form);\r\n })\r\n .catch((err) => {\r\n alert(JSON.stringify(err));\r\n setLoading(false);\r\n });\r\n }\r\n \r\n const onSubmitFormPDF = async (formBase64String,formContents) => {\r\n setLoading(true);\r\n \r\n let dateOptions = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric' };\r\n let localTime = new Date();\r\n let localTimezone = new Date().toString().match(/\\(([A-Za-z\\s].*)\\)/)[1];\r\n\r\n\r\n const payload = {\r\n \"formKey\": currentSelectedForm.formKey,\r\n \"empNum\": user.employeeNumber,\r\n \"firstName\": user.firstName,\r\n \"lastName\": user.lastName,\r\n \"state\": currentCounty.state,\r\n \"county\": currentCounty.county,\r\n \"submittedBy\": user.employeeNumber,\r\n \"pdfBase64\": formBase64String ? formBase64String.replace(\"data:application/pdf;filename=generated.pdf;base64,\", \"\") : null,\r\n \"businessUnit\": user.businessUnit,\r\n \"documentTypeID\": currentSelectedForm.documentTypeID,\r\n \"documentType\": currentSelectedForm.documentType,\r\n \"formContents\": formContents,\r\n \"UTCDateTime\": localTime.toUTCString(),\r\n \"actionStatus\": \"Submitted\",\r\n \"countyName\": currentCounty.county,\r\n \"formStyle\": currentSelectedForm.formKey,\r\n \"localDateTime\": localTime.toLocaleDateString(\"en-US\", dateOptions),\r\n \"timeZone\": localTimezone,\r\n \"createdBy\": `${user.firstName} ${user.lastName} (${user.employeeNumber})`,\r\n };\r\n\r\n const otherFormPayloads = {\r\n \"UTCDateTime\": moment.utc(localTime).format('llll'),\r\n \"actionStatus\": \"Submitted\",\r\n \"businessUnit\": user.businessUnit,\r\n \"countyName\": currentCounty.county,\r\n \"formContents\": formContents,\r\n \"formKey\": currentSelectedForm.formKey,\r\n \"formStyle\": currentSelectedForm.formKey,\r\n \"localDateTime\": localTime,\r\n \"state\": currentCounty.state,\r\n \"submittedBy\": user.employeeNumber,\r\n \"timeZone\": localTimezone\r\n }\r\n\r\n if(currentSelectedForm.formKey.toLowerCase() === \"mdcscrndct\") {\r\n return ConnectService.submitPDFForm(currentSelectedForm.formKey,payload)\r\n .then((data) => {\r\n alert(\"Form Submitted Successfully\");\r\n setLoading(false);\r\n setCurrentSelectedForm(null);\r\n return true;\r\n })\r\n .catch((err) => {\r\n alert(\"An error occurred, Please try resubmitting..\");\r\n setLoading(false);\r\n return false;\r\n });\r\n } else {\r\n return ConnectService.submitForm(otherFormPayloads)\r\n .then((data) => {\r\n alert(\"Form Submitted Successfully\");\r\n setLoading(false);\r\n setCurrentSelectedForm(null);\r\n return true;\r\n })\r\n .catch((err) => {\r\n alert(\"An error occurred, Please try resubmitting..\");\r\n setLoading(false);\r\n return false;\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {/* COMPONENTS CONTENT GO HERE*/}\r\n\r\n { !currentSelectedForm && }\r\n\r\n { currentSelectedForm && }\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Forms;\r\n","import React from \"react\";\r\nimport _ from \"lodash\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Grid } from \"@material-ui/core\";\r\nimport {\r\n SectionAlternate,\r\n CardBase,\r\n Hero,\r\n DataListAndRowView,\r\n} from \"@components/organisms\";\r\n\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\n//API Requests\r\nimport { ConnectService } from \"@services\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n height: \"100%\",\r\n width: \"100%\",\r\n },\r\n section: {\r\n \"& .section-alternate__content\": {\r\n paddingTop: 0,\r\n marginTop: theme.spacing(-5),\r\n position: \"relative\",\r\n zIndex: 1,\r\n },\r\n \"& .card-base__content\": {\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(\"md\")]: {\r\n padding: theme.spacing(3),\r\n },\r\n },\r\n },\r\n}));\r\n\r\nconst Documents = (props = {}) => {\r\n const classes = useStyles();\r\n\r\n //Set variable\r\n const [loading, setLoading] = React.useState(false);\r\n const [fetchedData, setFetchedData] = React.useState([]);\r\n\r\n // the query string for you.\r\n const useQuery = () => {\r\n return new URLSearchParams(useLocation().search);\r\n };\r\n\r\n let query = useQuery();\r\n\r\n //onPageLoad\r\n React.useEffect(() => {\r\n setLoading(true);\r\n\r\n let currentState = query.get(\"state\");\r\n let currentCounty = query.get(\"county\");\r\n\r\n ConnectService.getDocumentsList(currentState, currentCounty)\r\n .then((data) => {\r\n setLoading(false);\r\n setFetchedData(_.sortBy(data.documents, [\"categoryTitle\", \"title\"]));\r\n })\r\n .catch((err) => {\r\n alert(JSON.stringify(err));\r\n setLoading(false);\r\n });\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {/* COMPONENTS CONTENT GO HERE*/}\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Documents;\r\n","import React from \"react\";\r\nimport _ from \"lodash\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Grid } from \"@material-ui/core\";\r\nimport {\r\n SectionAlternate,\r\n CardBase,\r\n Hero,\r\n DataListAndRowView,\r\n} from \"@components/organisms\";\r\n\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\n//API Requests\r\nimport { ConnectService } from \"@services\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n height: \"100%\",\r\n width: \"100%\",\r\n },\r\n section: {\r\n \"& .section-alternate__content\": {\r\n paddingTop: 0,\r\n marginTop: theme.spacing(-5),\r\n position: \"relative\",\r\n zIndex: 1,\r\n },\r\n \"& .card-base__content\": {\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(\"md\")]: {\r\n padding: theme.spacing(3),\r\n },\r\n },\r\n },\r\n}));\r\n\r\nconst Protocols = (props = {}) => {\r\n const classes = useStyles();\r\n\r\n //Set variable\r\n const [loading, setLoading] = React.useState(false);\r\n const [fetchedData, setFetchedData] = React.useState([]);\r\n\r\n // the query string for you.\r\n const useQuery = () => {\r\n return new URLSearchParams(useLocation().search);\r\n };\r\n\r\n let query = useQuery();\r\n\r\n //onPageLoad\r\n React.useEffect(() => {\r\n setLoading(true);\r\n\r\n let currentState = query.get(\"state\");\r\n let currentCounty = query.get(\"county\");\r\n\r\n //sample api GET request\r\n ConnectService.getProtocolsList(currentState, currentCounty)\r\n .then((data) => {\r\n setLoading(false);\r\n setFetchedData(_.sortBy(data.protocols, [\"categoryTitle\", \"title\"]));\r\n })\r\n .catch((err) => {\r\n alert(JSON.stringify(err));\r\n setLoading(false);\r\n });\r\n }, []);\r\n\r\n // const fetchPDFData = (id) => {\r\n // //sample api GET request\r\n // debugger;\r\n // setLoading(true);\r\n // return ConnectService.getProtocolPDF(\"protocol\", id)\r\n // .then((data) => {\r\n // setLoading(false);\r\n // return data;\r\n // })\r\n // .catch((err) => {\r\n // alert(JSON.stringify(err));\r\n // setLoading(false);\r\n // });\r\n // };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {/* COMPONENTS CONTENT GO HERE*/}\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Protocols;\r\n","import React from \"react\";\r\nimport _ from 'lodash';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Grid } from \"@material-ui/core\";\r\nimport {\r\n SectionAlternate,\r\n CardBase,\r\n Hero,\r\n DataListAndRowView,\r\n} from \"@components/organisms\";\r\n\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\n//API Requests\r\nimport { ConnectService } from \"@services\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n height: \"100%\",\r\n width: \"100%\",\r\n },\r\n section: {\r\n \"& .section-alternate__content\": {\r\n paddingTop: 0,\r\n marginTop: theme.spacing(-5),\r\n position: \"relative\",\r\n zIndex: 1,\r\n },\r\n \"& .card-base__content\": {\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(\"md\")]: {\r\n padding: theme.spacing(3),\r\n },\r\n },\r\n },\r\n}));\r\n\r\nconst SelfService = (props = {}) => {\r\n const classes = useStyles();\r\n\r\n //Set variable\r\n const [loading, setLoading] = React.useState(false);\r\n const [fetchedData, setFetchedData] = React.useState([]);\r\n\r\n // the query string for you.\r\n const useQuery = () => {\r\n return new URLSearchParams(useLocation().search);\r\n }\r\n\r\n let query = useQuery();\r\n\r\n //onPageLoad\r\n React.useEffect(() => {\r\n setLoading(true);\r\n\r\n let currentState = query.get(\"state\");\r\n let currentCounty = query.get(\"county\");\r\n\r\n ConnectService.getSelfServiceList(currentState, currentCounty)\r\n .then((data) => {\r\n setLoading(false);\r\n setFetchedData(_.sortBy(data.availableLinks, ['categoryTitle', 'linkTitle']));\r\n })\r\n .catch((err) => {\r\n alert(JSON.stringify(err));\r\n setLoading(false);\r\n });\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {/* COMPONENTS CONTENT GO HERE*/}\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default SelfService;\r\n","import uuid from \"react-uuid\";\r\n\r\nexport const formatAddUpdateCertificateRequestPayload = ({ values, compState, user, addCertificate, certificateDetails, selectedCertImageData }) => {\r\n const { employeeNumber: employeeID, firstName, lastName, businessUnit: businessUnitID, businessUnitName = '' } = user;\r\n const payload = {\r\n employeeID,\r\n firstName,\r\n lastName,\r\n stateCode: \"\",\r\n businessUnitID,\r\n businessUnitName,\r\n certificateID: \"245\",\r\n documentNumber: \"Test2\",\r\n lotNumber: \"\",\r\n doseNumber: \"\",\r\n isVaccineDeclined: \"\",\r\n manufacturer: \"\",\r\n countyName: \"\",\r\n agency: \"\",\r\n certificateImage: \"\",\r\n isActive: \"Active\",\r\n submitSource: \"Portal\",\r\n jobTitle: \"\",\r\n dataSource: \"\",\r\n disposition: \"\",\r\n fileIDFront: \"\",\r\n fileID: \"\",\r\n fileIDBack: \"\",\r\n employeeCertificatesID: \"\",\r\n ...values,\r\n ...((Number(values.certificateID) === 1007 || Number(values.certificateID) === 259) ? { isVaccineDeclined: values.isVaccineDeclined ? \"1\" : \"0\" } : {}),\r\n ...(Number(values.certificateID) === 1007 ? { doseNumber: values.vaccineBooster ? \"Yes\" : \"No\" } : {}),\r\n frontImage: Array.isArray(values.frontImage) ? values.frontImage[0].original : values.frontImage,\r\n backImage: Array.isArray(values.backImage) ? values.backImage[0].original : values.backImage,\r\n certificateImage: Array.isArray(values.certificateImage) ? values.certificateImage[0].original : values.certificateImage,\r\n certificateName: compState.certificateTypesOptions.find(v => Number(v.value) === Number(values.certificateID))?.label,\r\n isExpiring: compState?.selectedCertificate?.isExpCert === \"True\",\r\n submissionID: uuid(),\r\n updateSource: \"Portal\",\r\n createdBy: `${firstName} ${lastName} (${employeeID})`,\r\n };\r\n if (values.zipCode.length > 0) {\r\n payload.documentNumber = `${values.documentNumber}:${values.zipCode}`;\r\n delete payload.zipCode;\r\n }\r\n if (/* (addCertificate) || */!addCertificate && (Array.isArray(values.frontImage) || Array.isArray(values.backImage)))\r\n delete payload.certificateImage;\r\n delete payload.vaccineBooster;\r\n if (Number(values.certificateID) !== 1007) {\r\n delete payload.certStatus;\r\n delete payload.manufacturer;\r\n delete payload.lotNumber;\r\n if (Number(values.certificateID) !== 259)\r\n delete payload.isVaccineDeclined;\r\n }\r\n\r\n if (!addCertificate) {\r\n payload.issueDate = payload?.issueDate || certificateDetails.issueDate;\r\n payload.expirationDate = payload?.expirationDate || certificateDetails.expirationDate;\r\n if (!(payload.frontImage || payload.backImage))\r\n payload.certificateImage = payload.certificateImage || `data:${selectedCertImageData.certificateType};base64,` + selectedCertImageData.certificateImage;\r\n }\r\n\r\n return payload;\r\n}\r\n\r\nexport const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));","import { filter } from \"lodash\";\r\nimport moment from \"moment\";\r\nconst validate = (values, compState, filterValues, addCertificate, eCardData) => {\r\n const { certificateID, documentNumber, /* agency, */stateCode, countyName, manufacturer, lotNumber, isVaccineDeclined, issueDate, expirationDate, frontImage, backImage, certificateImage } = values;\r\n const errors = {};\r\n if (!certificateID) {\r\n errors.certificateID = \"Required\";\r\n return errors;\r\n }\r\n if (Number(certificateID) === 259 && isVaccineDeclined) return errors;\r\n if (Number(certificateID) !== 1007 && Number(certificateID) !== 259 && !documentNumber) errors.documentNumber = \"Required\";\r\n else if (Number(certificateID) === 268 && stateCode && compState?.stateDLFormat?.regexFormat && documentNumber?.length) {\r\n const regEx = new RegExp(compState.stateDLFormat.regexFormat, 'g');\r\n if (!regEx.test(documentNumber)) errors.documentNumber = \"Please enter a valid format for certificate number\";\r\n }\r\n // if (certificateID !== \"1007\" && !agency) errors.agency = \"Required\";\r\n if (Number(certificateID) !== 1007 && filterValues.certificateTypes && [1, 2].includes(Number(filterValues?.certificateTypes.find(v => Number(certificateID) === Number(v.certificateID))?.stateCounty)) && !stateCode) errors.stateCode = \"Required\";\r\n if (Number(certificateID) !== 1007 && filterValues.certificateTypes && [2].includes(Number(filterValues?.certificateTypes.find(v => Number(certificateID) === Number(v.certificateID))?.stateCounty)) && !countyName) errors.countyName = \"Required\";\r\n if (Number(certificateID) === 1007 && !isVaccineDeclined && !manufacturer) errors.manufacturer = \"Required\";\r\n // if (certificateID === \"1007\" && !isVaccineDeclined && !lotNumber) errors.lotNumber = \"Required\";\r\n if (addCertificate && !issueDate) errors.issueDate = \"Required\";\r\n else if (issueDate) {\r\n if (moment(issueDate).format('MM/DD/YYYY') === 'Invalid date') errors.issueDate = \"The issue date is invalid\";\r\n else if (moment(issueDate).isValid() && moment(issueDate).isAfter('12/31/2099')) errors.issueDate = \"Issue Date should be valid Date and cannot be beyond 99 yrs\";\r\n else if (moment(issueDate).isValid() && moment(issueDate).isBefore(moment().subtract(20, 'years'))) errors.issueDate = \"Certifications can not be older than 20 years\";\r\n else if (moment(expirationDate).isValid() && moment(issueDate).isAfter(expirationDate)) errors.issueDate = \"Issue Date cannot be after the Expiration Date.\";\r\n else if (moment(expirationDate).isValid() && moment(issueDate).isSame(expirationDate)) errors.issueDate = \"Issue Date cannot be the same as Expiration Date.\";\r\n }\r\n if (addCertificate && Number(certificateID) !== 1007 && compState?.selectedCertificate?.isExpCert === \"True\" && !expirationDate) errors.expirationDate = \"Required\";\r\n else if (Number(certificateID) !== 1007 && compState?.selectedCertificate?.isExpCert === \"True\" && expirationDate) {\r\n if (moment(expirationDate).format('MM/DD/YYYY') === 'Invalid date') errors.expirationDate = \"The expiration date is invalid\";\r\n else if (moment(expirationDate).isAfter('12/31/2099')) errors.expirationDate = \"Certifications can not have an expiration date past 12/31/2099\";\r\n else if (moment(issueDate).isValid() && moment(expirationDate).isBefore(issueDate)) errors.expirationDate = \"Expiration Date cannot be before the Issue Date\";\r\n else if (moment(expirationDate).isValid() && moment(expirationDate).isSame(issueDate)) errors.issueDate = \"Expiration Date cannot be the same as Issue Date.\";\r\n }\r\n if ((Number(certificateID) !== 1007 && (addCertificate || !addCertificate && !certificateImage) && filterValues?.certificateTypes.find(v => Number(certificateID) === Number(v.certificateID))?.isFrontImageRequired === \"True\" || Number(certificateID) === 1007 && (addCertificate || !addCertificate && !certificateImage) && !isVaccineDeclined) && !frontImage) errors.frontImage = \"Required\";\r\n if ((Number(certificateID) !== 1007 && !eCardData && (addCertificate || !addCertificate && !certificateImage) && filterValues?.certificateTypes.find(v => Number(certificateID) === Number(v.certificateID))?.isBackImageRequired === \"True\") && !backImage) errors.backImage = \"Required\";\r\n\r\n if ((Number(certificateID) !== 1007 && (addCertificate) && filterValues?.certificateTypes.find(v => Number(certificateID) === Number(v.certificateID))?.isFrontImageRequired === \"True\" || Number(certificateID) === 1007 && (addCertificate) && !isVaccineDeclined) && !frontImage) errors.frontImage = \"Required\";\r\n if ((Number(certificateID) !== 1007 && !eCardData && (addCertificate) && filterValues?.certificateTypes.find(v => Number(certificateID) === Number(v.certificateID))?.isBackImageRequired === \"True\") && !backImage) errors.backImage = \"Required\";\r\n\r\n return errors;\r\n};\r\n\r\nexport default validate;\r\n","import React, { useState } from 'react';\r\nimport { Modal, Box, Button, CircularProgress } from '@material-ui/core';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { TextField } from '@components/atoms';\r\nimport { useFormik } from 'formik';\r\nimport { CredentialsService } from '@services';\r\nimport { DialogConfirm } from '@components/molecules';\r\nimport { useSelector } from 'react-redux';\r\nimport { date } from 'yup/lib/locale';\r\n\r\nconst style = {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n height: 'auto',\r\n bgcolor: 'background.paper',\r\n border: '2px solid #000',\r\n boxShadow: 24,\r\n p: 4,\r\n};\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n container: {\r\n [theme.breakpoints.up('sm')]: {\r\n width: '30%',\r\n },\r\n width: '70%',\r\n },\r\n submitButton: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n paddingTop: theme.spacing(3),\r\n },\r\n}));\r\n\r\nconst EcardModal = ({ openModal, setOpenModal, setECardData, formik, addCertificate, eCardDataUpdatedRef, certificateTypesOptions }) => {\r\n const handleClose = () => setOpenModal(false);\r\n const [eCardNumber, setEcardNumber] = useState('');\r\n const [eCardError, setEcardError] = useState('');\r\n const [ecardAlert, setEcardAlert] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [eCardAlertData, setEcardAlertData] = useState({ title: '', content: '' });\r\n const classes = useStyles();\r\n const { user } = useSelector(state => state.user);\r\n\r\n const handleGetEcardDetails = (values) => {\r\n if (!eCardNumber || eCardError) {\r\n if (!eCardError) onHandleEcardBlur();\r\n return;\r\n }\r\n\r\n setIsLoading(true);\r\n //CredentialsService.getEcardDetails('1986211', '206504565611', '')\r\n CredentialsService.getEcardDetails(user.employeeNumber, eCardNumber)\r\n .then(data => {\r\n debugger;\r\n if (data.documentNumber !== null) {\r\n const alreadyAddedCerts = certificateTypesOptions.filter(v => Number(v.value) === Number(data.certificateID));\r\n if (!alreadyAddedCerts.length || (!addCertificate && Number(data.certificateID) !== Number(formik.values.certificateID))) {\r\n setEcardError(`The E-Card information you entered can not be verified, as it is for a different certification type. Please enter a new E-Card number or enter your certification information manually.`);\r\n setIsLoading(false);\r\n return;\r\n }\r\n // data.certificateID = certificateID;\r\n // data.frontImage = [{ original: `data:${data.frontImageType};base64,` + data.frontImage }];\r\n console.log('new ecard data: ', data);\r\n setECardData(data);\r\n setOpenModal(false);\r\n setIsLoading(false);\r\n if (!eCardDataUpdatedRef.current) eCardDataUpdatedRef.current = true;\r\n formik.setFieldValue('certificateID', (data?.certificateID || '').toString());\r\n formik.setFieldValue('documentNumber', data.documentNumber);\r\n formik.setFieldValue('agency', data.agency === 'AHA' ? 'American Heart Association' : data.agency);\r\n formik.setFieldValue('issueDate', data.issueDate);\r\n formik.setFieldValue('expirationDate', data.expirationDate);\r\n formik.setFieldValue('activeFlag', data.activeFlag);\r\n // formik.setFieldValue('employeeCertificatesID', data.employeeCertificatesID);\r\n if (addCertificate) {\r\n formik.setFieldValue('frontImage', [{ original: `data:${data.frontImageType};base64,${data.frontImage}` }]);\r\n } else {\r\n formik.setFieldValue('certificateImage', [{ original: `data:${data.frontImageType};base64,${data.frontImage}` }]);\r\n }\r\n\r\n } else {\r\n setEcardAlert(true);\r\n setIsLoading(false);\r\n }\r\n })\r\n .catch(e => {\r\n const error = e.status === 500 ?\r\n { title: 'The E-Card information you entered can not be verified.', content: 'Please enter a new E-Card number or enter your certification information manually.' } : (e.status === 404 ?\r\n { title: 'The E-Card information you entered can not be verified, as it does not match the name on file.', content: 'Please enter a new E-Card number or enter your certification information manually.' } :\r\n { title: 'We can not verify your E-Card at this time.', content: 'Please select Try Again or Cancel to enter your certification information manually.' });\r\n setEcardAlertData(error);\r\n setEcardAlert(true);\r\n setIsLoading(false);\r\n console.log(e);\r\n })\r\n }\r\n\r\n const handleAlertButtons = (openAlert, openEcard) => {\r\n setEcardAlert(openAlert);\r\n if (openEcard !== undefined) {\r\n setOpenModal(openEcard);\r\n }\r\n }\r\n\r\n const onHandleEcardChange = (event) => {\r\n setEcardNumber(event.target.value);\r\n onHandleEcardBlur();\r\n }\r\n\r\n const onHandleEcardBlur = () => setEcardError(!eCardNumber ? 'Required' : !/^[0-9]*$/.test(eCardNumber) ? 'Enter correct Ecard number' : '');\r\n\r\n return (\r\n
\r\n reason === 'backdropClick'}\r\n aria-labelledby=\"modal-modal-title\"\r\n aria-describedby=\"modal-modal-description\"\r\n >\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n handleAlertButtons(false),\r\n onCancelClickHandler: () => handleAlertButtons(false, false)\r\n }}\r\n />\r\n
\r\n )\r\n}\r\n\r\nexport default EcardModal;\r\n","import React, { useCallback, useState, useEffect, useMemo, useRef, forwardRef, useImperativeHandle } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport moment from 'moment';\r\nimport _ from 'lodash';\r\nimport { useFormik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport { bindActionCreators } from 'redux';\r\nimport { useTranslation } from \"react-i18next\";\r\nimport {\r\n makeStyles,\r\n useTheme,\r\n useMediaQuery,\r\n Typography,\r\n Grid,\r\n Hidden,\r\n} from \"@material-ui/core\";\r\nimport { CertificateFields, CovidVaccine, InfluenzaVaccine } from '@components/organisms';\r\n\r\nimport { Button, CircularLoader } from '@components/atoms';\r\nimport { DialogConfirm, Snackbar } from '@components/molecules';\r\n\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faTimesCircle } from \"@fortawesome/free-solid-svg-icons\";\r\n\r\n// import { certiticateFields, imageFields, ADD_CERTIFICATE_FORM } from './constants';\r\n\r\n//API Requests\r\nimport { CredentialsService } from \"@services\";\r\n//Actions\r\nimport { setFilterValues, setCertificateTypes } from '@store/addCertificate';\r\nimport { saveCertificateData } from '@store/certificates';\r\nimport { connect } from 'react-redux';\r\nimport { formatAddUpdateCertificateRequestPayload, sleep } from './helperFunctions';\r\nimport validate from './validate';\r\nimport EcardModal from './EcardModal';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n titleCta: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n },\r\n root: {\r\n width: '100%',\r\n },\r\n form: {\r\n width: '100%',\r\n },\r\n imageWrapper: {\r\n marginTop: theme.spacing(3),\r\n\r\n },\r\n actionButtons: {\r\n marginTop: theme.spacing(4),\r\n\r\n },\r\n label: {\r\n textTransform: 'capitalize',\r\n },\r\n topButtons: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n },\r\n closeButton: {\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n cursor: 'pointer',\r\n },\r\n closeIconColor: {\r\n color: theme.palette.icon.primary,\r\n },\r\n}));\r\n\r\nconst AddCertificates = forwardRef((props, ref) => {\r\n const { filterValues, certificateTypes, certificates, selectedCertImageData, addCertificate = true, actions: { setFilterValues, saveCertificateData, setCertificateTypes }, certificateDetails, user, handleClose } = props;\r\n const [hash, setHash] = useState('');\r\n const [state, setState] = useState({ loading: true, openSnackbar: false, submitMessage: '', selectedCertificate: null });\r\n const [openModal, setOpenModal] = useState(false);\r\n const [eCardData, setECardData] = useState(null);\r\n const [isFrontImageRequired, setIsFrontImageRequired] = useState(false);\r\n const [isBackImageRequired, setIsBackImageRequired] = useState(false);\r\n const [isChangingImage, setIsChangingImage] = useState(false);\r\n const [requiredImage, setRequiredImage] = useState(false);\r\n const [isLoadingOnSubmit, setIsLoadingOnSubmit] = useState(false);\r\n const eCardDataUpdatedRef = useRef(null);\r\n\r\n const { t } = useTranslation();\r\n const classes = useStyles();\r\n const covidCertRef = useRef(null);\r\n const theme = useTheme();\r\n const isSmUp = useMediaQuery(theme.breakpoints.up('sm'), {\r\n defaultMatches: true,\r\n });\r\n const isMdUp = useMediaQuery(theme.breakpoints.up('md'), {\r\n defaultMatches: true,\r\n });\r\n const onHashChange = useCallback(\r\n () => {\r\n const activeHash = window.location.hash ? window.location.hash.replace('#', '') : '';\r\n setHash(activeHash);\r\n },\r\n [],\r\n );\r\n\r\n const getFilterValues = async () => {\r\n const filterValues = await CredentialsService.getFilterValues(user.employeeNumber);\r\n const certificateTypes = await CredentialsService.getCertificatesTypes();\r\n setFilterValues(filterValues);\r\n setCertificateTypes(certificateTypes);\r\n const filteredCerts = removeAlreadyAddedCerts(filterValues.certificateTypes);\r\n const certificateTypesOptions = createCertificatesTypesOptions(addCertificate && certificates ? filteredCerts : certificateTypes);\r\n const agencyOptions = createAgencyOptions(filterValues.agencies);\r\n setState(prevState => ({ ...prevState, filteredCerts, certificateTypesOptions, agencyOptions, loading: false }));\r\n };\r\n\r\n const removeAlreadyAddedCerts = useCallback((certificateTypes) => {\r\n if (!certificates) {\r\n return null;\r\n }\r\n const { allowedDup, notAllowedDup } = certificateTypes.reduce((acc, cert) => {\r\n if (cert.isAllowDuplicates === \"True\") acc.allowedDup.push(cert)\r\n else acc.notAllowedDup.push(cert);\r\n return acc;\r\n }, { allowedDup: [], notAllowedDup: [] });\r\n const certificateIds = certificates.filter(cert => !['MISSING', 'REJECTED'].includes(cert.disposition)).map(addedCert => addedCert.certificateID);\r\n const removedAlreadyAddedCerts = notAllowedDup.reduce((acc, nAllowedcert) => {\r\n if (!certificateIds.includes(nAllowedcert.certificateID)) acc.push(nAllowedcert); return acc;\r\n }, []);\r\n const filteredCerts = [...allowedDup, ...removedAlreadyAddedCerts].sort((a, b) => _.toLower(a.certificateName) < _.toLower(b.certificateName) ? -1 : _.toLower(a.certificateName) > _.toLower(b.certificateName) ? 1 : 0); // _.sortBy([...allowedDup, ...removedAlreadyAddedCerts], ['certificateName']);\r\n return filteredCerts;\r\n });\r\n\r\n const createCertificatesTypesOptions = useCallback((certificateTypes) => { return certificateTypes.map(v => ({ label: v.certificateName, value: v.certificateID })) }, [filterValues]);\r\n\r\n const createAgencyOptions = useCallback(agencies => { return _.sortBy(agencies.map(v => ({ label: v.agencyDescription, value: v.agencyDescription })), ['label']); }, [filterValues]);\r\n\r\n useEffect(() => {\r\n //Event for handling browser back button or Front and back handling\r\n window.addEventListener('hashchange', onHashChange);\r\n window.addEventListener('popstate', onHashChange);\r\n onStepChange(1);\r\n try {\r\n if (!filterValues) {\r\n setState(prevState => ({ ...prevState, loading: true }));\r\n getFilterValues();\r\n } else {\r\n const agencyOptions = createAgencyOptions(filterValues.agencies);\r\n const filteredCerts = removeAlreadyAddedCerts(filterValues.certificateTypes);\r\n setState(prevState => ({ ...prevState, filteredCerts, certificateTypesOptions: createCertificatesTypesOptions(filteredCerts), agencyOptions, loading: false }));\r\n }\r\n\r\n } catch (error) {\r\n setState(prevState => ({ ...prevState, loading: false }));\r\n }\r\n return () => {\r\n window.removeEventListener('hashchange', onHashChange);\r\n window.removeEventListener('popstate', onHashChange);\r\n onStepChange('');\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (filterValues?.certificateTypes && certificates?.length) {\r\n const filteredCerts = removeAlreadyAddedCerts(filterValues.certificateTypes);\r\n setState(prevState => ({ ...prevState, filteredCerts, certificateTypesOptions: createCertificatesTypesOptions(addCertificate ? filteredCerts : certificateTypes) }));\r\n }\r\n }, [certificates]);\r\n\r\n const onStepChange = (stepNo) => window.location.hash = Number(stepNo) ? `step-${stepNo}` : '';\r\n\r\n const formikInitialValues = useMemo(() => ({\r\n certificateID: addCertificate ? '' : certificateDetails?.certificateID || '',\r\n documentNumber: addCertificate ? '' : certificateDetails?.documentNumber || '',\r\n agency: addCertificate ? '' : certificateDetails?.agency || '',\r\n stateCode: addCertificate ? '' : certificateDetails?.stateCode || '',\r\n countyName: addCertificate ? '' : certificateDetails?.countyName || '',\r\n jobTitle: addCertificate ? '' : certificateDetails?.jobTitle || '',\r\n issueDate: '', // addCertificate ? '' : certificateDetails?.issueDate || '',\r\n expirationDate: '', // addCertificate ? '' : certificateDetails?.expirationDate || '',\r\n frontImage: addCertificate ? '' : selectedCertImageData?.frontImageType ? [{ original: `data:${selectedCertImageData.frontImageType};base64,` + selectedCertImageData.frontImage }] : '',\r\n backImage: addCertificate ? '' : selectedCertImageData?.backImageType ? [{ original: `data:${selectedCertImageData.backImageType};base64,` + selectedCertImageData.backImage }] : '',\r\n certificateImage: '', //addCertificate ? '' : selectedCertImageData?.certificateType ? [{ original: `data:${selectedCertImageData.certificateType};base64,` + selectedCertImageData.certificateImage }] : '',\r\n manufacturer: addCertificate ? '' : _.toLower(certificateDetails?.manufacturer || ''),\r\n lotNumber: addCertificate ? '' : certificateDetails?.lotNumber || '',\r\n isVaccineDeclined: addCertificate ? false : certificateDetails?.isVaccineDeclined === \"1\" || false,\r\n vaccineBooster: addCertificate ? false : certificateDetails?.doseNumber === 'Yes' || false,\r\n activeFlag: addCertificate ? 'Active' : certificateDetails?.activeFlag || 'Active',\r\n // certificateDispositionID: certificateDetails?.certificateDispositionID || '',\r\n employeeCertificatesID: addCertificate ? '' : certificateDetails?.employeeCertificatesID || '',\r\n disposition: addCertificate ? '' : certificateDetails?.disposition || '',\r\n zipCode: addCertificate ? '' : certificateDetails?.zipCode || '',\r\n\r\n }), [addCertificate, certificateDetails, selectedCertImageData]);\r\n\r\n const formik = useFormik({\r\n enableReinitialize: true,\r\n initialValues: formikInitialValues,\r\n validate: (values) => validate(values, state, addCertificate ? filterValues : { certificateTypes }, addCertificate, eCardData),\r\n onSubmit: (values, rest) => {\r\n if (!values.isVaccineDeclined && values.eCardData && isChangingImage) {\r\n if (!values.frontImage && isFrontImageRequired) {\r\n return setRequiredImage(true);\r\n }\r\n if (!values.backImage && isBackImageRequired) {\r\n return setRequiredImage(true);\r\n }\r\n }\r\n if (Number(values.certificateID) === 1007) {\r\n const result = covidCertRef.current.validateAndDisplayBoosterAlert();\r\n if (!result) return;\r\n }\r\n const payload = formatAddUpdateCertificateRequestPayload({ values, compState: state, user, addCertificate, certificateDetails, selectedCertImageData });\r\n setIsLoadingOnSubmit(true);\r\n CredentialsService.addUpdateCertificates(payload).then(async (response) => {\r\n setECardData();\r\n setIsLoadingOnSubmit(false);\r\n setState(prevState => ({ ...prevState, selectedCertificate: null, openSnackbar: true, submitMessage: `Certificate ${addCertificate ? 'saved' : 'updated'} successfully!` }));\r\n if (addCertificate) {\r\n onStepChange(1);\r\n formik.resetForm({});\r\n CredentialsService.getCerts(user?.employeeNumber)\r\n .then(certs => {\r\n saveCertificateData(certs);\r\n });\r\n } else {\r\n await sleep(2000);\r\n onStepChange('');\r\n window.location.reload();\r\n handleClose();\r\n }\r\n }).catch(error => {\r\n setState(prevState => ({ ...prevState, openSnackbar: !prevState.openSnackbar, submitMessage: 'Error while saving certificate!', setIsLoadingOnSubmit: !prevState.setIsLoadingOnSubmit }));\r\n });\r\n }\r\n });\r\n\r\n const resetClickHandler = useCallback(() => {\r\n setECardData();\r\n setState(prevState => ({ ...prevState, selectedCertificate: null }));\r\n formik.resetForm({}); //this will not clear the fields instead reset the form to initial state,\r\n eCardDataUpdatedRef.current = false;\r\n }, []);\r\n\r\n const renderCertificateBasedOnName = () => {\r\n const obj = {\r\n isSmUp, hash, filterValues, state, setState, formik, setOpenModal, addCertificate,\r\n eCardData, setECardData, setIsFrontImageRequired, setIsBackImageRequired, isChangingImage, setIsChangingImage,\r\n certificates, certificateTypes, eCardDataUpdatedRef\r\n };\r\n if (Number(formik.values.certificateID) === 1007) return ;\r\n if (Number(formik.values.certificateID) === 259) return \r\n\r\n return ;\r\n };\r\n\r\n const handleCloseSnackbar = () => setState(prevState => ({ ...prevState, openSnackbar: !prevState.openSnackbar }));\r\n\r\n useImperativeHandle(\r\n ref,\r\n () => ({\r\n getFormikObject: () => formik,\r\n }), [formik]);\r\n\r\n // console.log('formik.errors', formik.errors, 'formik.values', formik.values, 'formik.touched', formik.touched);\r\n // console.table(user);\r\n if (state.loading) return
;\r\n return (\r\n <>\r\n {!addCertificate && (\r\n
\r\n \r\n
\r\n )}\r\n \r\n
\r\n {\r\n addCertificate && (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n {renderCertificateBasedOnName()}\r\n \r\n \r\n \r\n {hash.split('-').pop() > '1' && ()}\r\n \r\n {!addCertificate && (\r\n \r\n )}\r\n {hash.split('-').pop() === '1' && ()}\r\n \r\n \r\n
\r\n \r\n
\r\n {openModal && (\r\n \r\n )}\r\n setRequiredImage(false),\r\n onCancelClickHandler: () => setRequiredImage(false)\r\n }}\r\n />\r\n \r\n );\r\n});\r\n\r\nAddCertificates.propTypes = {\r\n /**\r\n * External classes\r\n */\r\n className: PropTypes.string,\r\n\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n filterValues: state.addCertificate.filterValues,\r\n certificateTypes: state.addCertificate.certificateTypes,\r\n selectedCertImageData: state.certificates.selectedCertImageData,\r\n user: state.user.user,\r\n certificates: state.certificates.certificates,\r\n }\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n dispatch,\r\n actions: bindActionCreators({ setFilterValues, saveCertificateData, setCertificateTypes }, dispatch),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps, null, { forwardRef: true })(AddCertificates);\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport moment from 'moment';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport {\r\n Grid,\r\n Typography,\r\n Container,\r\n CircularProgress,\r\n} from '@material-ui/core';\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faCheckCircle, faQuestionCircle, faClock, faTimesCircle } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { ItemDetailsBase, ListBase } from './index';\r\nimport { CredentialsService } from \"@services\";\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { formatMissingCert } from './index';\r\n\r\n// redux functions\r\nimport { saveCertificateData } from \"@store/certificates\";\r\nimport { setCertificateTypes } from '@store/addCertificate';\r\nimport { Snackbar } from '@components/molecules';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n ledgerContainer: {\r\n paddingBottom: theme.spacing(1),\r\n },\r\n CURRENT: {\r\n color: theme.palette.icon.current,\r\n },\r\n EXPIRED: {\r\n color: theme.palette.icon.expired,\r\n },\r\n MISSING: {\r\n color: theme.palette.icon.missing,\r\n },\r\n PENDING: {\r\n color: theme.palette.icon.pending,\r\n },\r\n certificateContainer: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n paddingBottom: theme.spacing(1),\r\n },\r\n ledgerTitle: {\r\n paddingLeft: theme.spacing(1),\r\n },\r\n center: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n position: 'absolute',\r\n },\r\n}));\r\n\r\nconst ViewCertificates = (props) => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const { certificates } = useSelector(state => state.certificates);\r\n const { certificateTypes } = useSelector(state => state.addCertificate);\r\n const { user } = useSelector(state => state.user);\r\n const [certificateDetails, setCertificateDetails] = useState([]);\r\n const [isViewingCert, setIsViewingCert] = useState(false);\r\n const [selectedCert, setSelectedCert] = useState();\r\n const [currentlyViewing, setCurrentlyViewing] = useState();\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [showPendingMessage, setShowPendingMessage] = useState(false);\r\n\r\n\r\n const listBaseRef = useRef(null);\r\n\r\n const handleItemDetails = (data, index) => {\r\n if (data.disposition === \"PENDING\") {\r\n setCurrentlyViewing();\r\n setIsViewingCert(false);\r\n setShowPendingMessage(true);\r\n return;\r\n }\r\n if (index === undefined) {\r\n setCurrentlyViewing(index);\r\n setIsViewingCert(true);\r\n } else if (index === currentlyViewing) {\r\n setCurrentlyViewing();\r\n setIsViewingCert(false);\r\n } else {\r\n setCurrentlyViewing(index);\r\n setIsViewingCert(true);\r\n }\r\n if (data) {\r\n setSelectedCert(data);\r\n }\r\n }\r\n\r\n const handleMobileBackButton = () => {\r\n setCurrentlyViewing();\r\n setIsViewingCert(false);\r\n setSelectedCert();\r\n }\r\n\r\n const renderItemDetails = () => {\r\n return (\r\n \r\n )\r\n }\r\n\r\n const checkCertStatus = useCallback(() => {\r\n if (!(Array.isArray(certificates) && certificates.length)) return;\r\n let temp = [];\r\n for (let i = 0; i < certificates.length; i++) {\r\n const currentStatus = certificates[i].disposition;\r\n if (currentStatus === 'CURRENT') {\r\n temp.push(Object.assign({}, certificates[i], { iconName: faCheckCircle }));\r\n } else if (currentStatus === 'EXPIRED') {\r\n temp.push(Object.assign({}, certificates[i], { iconName: faTimesCircle }));\r\n } else if (currentStatus === 'MISSING') {\r\n if (certificates[i].certificateName !== null && certificates[i].certificateName.length > 30 && certificates[i].certificateName.includes('State')) {\r\n const formatLabel = formatMissingCert(certificates[i], 'certificateName', ',');\r\n temp.push(Object.assign({}, certificates[i], { iconName: faQuestionCircle }));\r\n if (formatLabel) {\r\n temp[temp.length - 1].certificateName = formatLabel;\r\n }\r\n } else {\r\n temp.push(Object.assign({}, certificates[i], { iconName: faQuestionCircle }));\r\n }\r\n } else if (currentStatus === 'PENDING') {\r\n temp.push(Object.assign({}, certificates[i], { iconName: faClock }));\r\n }\r\n }\r\n setCertificateDetails(temp);\r\n }, [certificates]);\r\n\r\n const getCertificates = useCallback(() => {\r\n setIsLoading(true);\r\n CredentialsService.getCerts(user?.employeeNumber)\r\n .then(certs => {\r\n dispatch(saveCertificateData(certs))\r\n })\r\n .then(() => {\r\n checkCertStatus();\r\n setIsLoading(false);\r\n })\r\n .catch(e => {\r\n setIsLoading(false);\r\n console.log(e);\r\n })\r\n }, [checkCertStatus, dispatch]);\r\n\r\n useEffect(() => {\r\n getCertificates();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (history?.location?.state && Array.isArray(certificateDetails) && certificateDetails.length) {\r\n const clickedCert = history?.location?.state;\r\n //to find the clicked cert\r\n let selectedCertIndex;\r\n const selectedCert = certificateDetails.find((cert, index) => {\r\n if ((cert.disposition === clickedCert.disposition || (['EXPIRING'].includes(clickedCert.disposition) && ['PENDING', 'CURRENT'].includes(cert.disposition))) &&\r\n (cert.certificateName?.split(',').join(',') === clickedCert.certNameList?.split(' or ').join(', ') || (cert.stateCode && `${cert.stateCode}-${cert.certificateName}` === clickedCert.certNameList)) &&\r\n (cert.stateCode || null) === clickedCert.stateCode &&\r\n (cert.countyName || null) === clickedCert.countyName) {\r\n selectedCertIndex = index;\r\n if (typeof listBaseRef.current.getAllCertificateItems === 'function') {\r\n const allCertificateRefs = listBaseRef.current.getAllCertificateItems();\r\n allCertificateRefs[cert.certificateDispositionID].current.scrollIntoView({ behaviour: 'smooth', block: 'start' });\r\n }\r\n\r\n return cert;\r\n\r\n }\r\n });\r\n setSelectedCert(selectedCert);\r\n setCurrentlyViewing(selectedCertIndex);\r\n setIsViewingCert(true);\r\n }\r\n }, [certificateDetails]);\r\n\r\n useEffect(() => {\r\n checkCertStatus();\r\n }, [certificates]);\r\n\r\n const getCertificatesTypes = async () => {\r\n const certificateTypes = await CredentialsService.getCertificatesTypes();\r\n dispatch(setCertificateTypes(certificateTypes));\r\n };\r\n\r\n useEffect(() => {\r\n getCertificatesTypes();\r\n }, []);\r\n\r\n\r\n return (\r\n
\r\n {/* \r\n \r\n \r\n \r\n Current\r\n \r\n \r\n \r\n \r\n \r\n Expired\r\n \r\n \r\n \r\n \r\n \r\n Missing\r\n \r\n \r\n \r\n \r\n \r\n Pending\r\n \r\n \r\n */}\r\n\r\n \r\n
\r\n {isLoading && (\r\n \r\n )}\r\n
\r\n\r\n {certificateDetails && (\r\n \r\n )}\r\n\r\n {isViewingCert && selectedCert && (\r\n renderItemDetails()\r\n )}\r\n
\r\n\r\n setShowPendingMessage(false)}\r\n alertProps={{ severity: 'info' }}\r\n autoHideDuration={2000000}\r\n anchorOrigin={{ vertical: 'bottom', horizontal: 'center' }}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default ViewCertificates;\r\n","import React, { useRef, useImperativeHandle, forwardRef, useCallback, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\r\nimport {\r\n useMediaQuery,\r\n Grid,\r\n Typography,\r\n Container,\r\n} from '@material-ui/core';\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faSortDown, faSortUp } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { CardBase } from '@components/organisms';\r\nimport clsx from 'clsx';\r\nimport moment from 'moment';\r\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\r\nimport ArrowDropUpIcon from '@material-ui/icons/ArrowDropUp';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n fullContainer: {\r\n [theme.breakpoints.up('sm')]: {\r\n overflowY: 'scroll',\r\n height: 440,\r\n },\r\n width: '100%',\r\n },\r\n smallContainer: {\r\n [theme.breakpoints.down('xs')]: {\r\n display: 'none',\r\n },\r\n width: '50%',\r\n height: 440,\r\n marginRight: theme.spacing(1),\r\n overflowY: 'scroll',\r\n },\r\n itemContainer: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n paddingBottom: theme.spacing(1),\r\n },\r\n spaceContainer: {\r\n justifyContent: 'space-between',\r\n display: 'flex',\r\n },\r\n hidden: {\r\n [theme.breakpoints.down('xs')]: {\r\n display: 'none',\r\n },\r\n },\r\n selectedCard: {\r\n backgroundColor: theme.palette.primary.selectedCard,\r\n },\r\n nonselectedCard: {\r\n backgroundColor: theme.palette.background.default,\r\n },\r\n selectedCardText: {\r\n color: '#fff',\r\n },\r\n invisible: {\r\n color: 'transparent',\r\n },\r\n header: {\r\n paddingBottom: theme.spacing(2),\r\n boxShadow: 'none',\r\n '& .card-base__content': {\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n }\r\n },\r\n headerContainer: {\r\n paddingBottom: 0,\r\n },\r\n sideBorders: {\r\n // borderRight: \"1px groove rgba(255,255,255)\",\r\n // borderLeft: \"1px groove rgba(255,255,255)\",\r\n },\r\n center: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n },\r\n whiteSpace: {\r\n whiteSpace: \"pre-line\",\r\n },\r\n pointer: {\r\n cursor: \"pointer\"\r\n },\r\n}));\r\n\r\nconst isStateCert = cert => [\"1\"].includes(cert.stateCounty);\r\n\r\nconst isCountyCert = cert => [\"2\"].includes(cert.stateCounty);\r\n\r\nconst ListBase = forwardRef(({ isViewingItem, handleOnClick, certificateDetails, currentlyViewing, className, certificateTypes, isLoading }, ref) => {\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const isMd = useMediaQuery(theme.breakpoints.up('md'), {\r\n defaultMatches: true,\r\n });\r\n\r\n const [sortCertsBy, setSortCertsBy] = useState(\r\n {\r\n certificateName: true,\r\n issueDate: false,\r\n expirationDate: false,\r\n }\r\n );\r\n const [currentlySortedType, setCurrentlySortedType] = useState('certificateName');\r\n\r\n const allCertificateItemRefs = certificateDetails.reduce((acc, value) => {\r\n acc[value.certificateDispositionID] = React.createRef();\r\n return acc;\r\n }, {});\r\n\r\n useImperativeHandle(\r\n ref,\r\n () => ({\r\n getAllCertificateItems: () => allCertificateItemRefs,\r\n }));\r\n\r\n const printCertnameWithStateCounty = useCallback((cert) => {\r\n\r\n if (!(Array.isArray(certificateTypes) && certificateTypes.length)) return;\r\n const certInfo = certificateTypes.find(certType => certType.certificateID === cert.certificateID);\r\n const certName = cert.certificateName;\r\n let result = certName;\r\n if ([\"1\"].includes(certInfo?.stateCounty)) result = `${certName}${cert.stateCode ? ` - ${cert.stateCode}` : ``}`;\r\n else if ([\"2\"].includes(certInfo?.stateCounty)) result = `${certName}${cert.countyName ? ` - ${cert.countyName}` : ``}`;\r\n return result;\r\n }, [certificateTypes]);\r\n\r\n const handleToggleSortCerts = (column) => {\r\n const temp = {};\r\n for (let key in sortCertsBy) {\r\n if (key !== column) {\r\n temp[key] = false;\r\n } else {\r\n temp[key] = !sortCertsBy[column];\r\n setCurrentlySortedType(column);\r\n }\r\n }\r\n setSortCertsBy(temp);\r\n sortCertsByColumn(column, temp);\r\n }\r\n\r\n const sortCertsByColumn = (column, sortBy) => {\r\n certificateDetails.sort((a, b) => ((sortBy[column] ? a[column] : b[column]) > (sortBy[column] ? b[column] : a[column]) ? 1 : -1));\r\n }\r\n\r\n return (\r\n \r\n {\r\n !isViewingItem && isMd && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n handleToggleSortCerts(\"certificateName\")}\r\n className={classes.pointer}\r\n >\r\n Certificate\r\n {currentlySortedType === \"certificateName\" && (\r\n sortCertsBy[\"certificateName\"] ?\r\n \r\n :\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n handleToggleSortCerts(\"issueDate\")}\r\n className={classes.pointer}\r\n >\r\n Issue Date\r\n {currentlySortedType === \"issueDate\" && (\r\n sortCertsBy[\"issueDate\"] ?\r\n \r\n :\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n handleToggleSortCerts(\"expirationDate\")}\r\n className={classes.pointer}\r\n >\r\n Expiration Date\r\n {currentlySortedType === \"expirationDate\" && (\r\n sortCertsBy[\"expirationDate\"] ?\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\n }\r\n {certificateDetails.length === 0 && !isLoading && (\r\n \r\n You currently do not have any credentials to display\r\n \r\n )}\r\n \r\n {certificateDetails.map((data, index) => (\r\n \r\n handleOnClick(data, index)}\r\n className={currentlyViewing === index ? classes.selectedCard : classes.nonselectedCard}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {printCertnameWithStateCounty(data)}\r\n \r\n \r\n\r\n {\r\n !/MISSING/i.test(data.disposition) && !isViewingItem && isMd && (\r\n \r\n {moment(data.issueDate).format('MM/DD/YYYY')}\r\n \r\n \r\n )\r\n }\r\n\r\n {!/MISSING/i.test(data.disposition) && data.isExpiring && data.expirationDate && isMd && (!(data.certificateID === '259' && data.isVaccineDeclined === \"1\")) ? (\r\n \r\n \r\n {moment(data.expirationDate).format('MM/DD/YYYY')}\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\n});\r\n\r\nListBase.propTypes = {\r\n /**\r\n * External classes\r\n */\r\n className: PropTypes.string,\r\n /**\r\n * Flag whether user is viewing details of item\r\n */\r\n isViewingItem: PropTypes.bool,\r\n /**\r\n * Toggling flag\r\n */\r\n handleOnClick: PropTypes.func,\r\n /**\r\n * Data to be rendered\r\n */\r\n data: PropTypes.array,\r\n /**\r\n * Index of currently selected certificate\r\n */\r\n currentlyViewing: PropTypes.number,\r\n};\r\n\r\nexport default ListBase;\r\n","import React, { useCallback, useEffect, useState } from 'react';\r\nimport { CardBase } from '@components/organisms';\r\nimport {\r\n Grid,\r\n Typography,\r\n useMediaQuery,\r\n Button,\r\n CircularProgress,\r\n FormControlLabel,\r\n Checkbox,\r\n} from '@material-ui/core';\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faChevronCircleLeft, faTimesCircle } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\r\nimport { ImgGallery } from '@components/molecules';\r\nimport moment from 'moment';\r\nimport { UpdateCertificate } from './index';\r\nimport { CredentialsService } from \"@services\";\r\nimport clsx from 'clsx';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\n// redux actions\r\nimport { saveSelectedCertImageData } from \"@store/certificates\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n smallContainer: {\r\n [theme.breakpoints.down('xs')]: {\r\n width: '100%',\r\n marginLeft: 0,\r\n },\r\n [theme.breakpoints.up('sm')]: {\r\n width: '50%',\r\n height: 440,\r\n overflowY: 'scroll',\r\n marginLeft: theme.spacing(1),\r\n },\r\n },\r\n spacing: {\r\n marginBottom: theme.spacing(0.5),\r\n },\r\n iconColor: {\r\n color: theme.palette.primary.main,\r\n },\r\n // mobileButtonsContainer: {\r\n // [theme.breakpoints.down('xs')]: {\r\n // justifyContent: 'space-between',\r\n // },\r\n // display: 'flex',\r\n // justifyContent: 'center',\r\n // paddingTop: theme.spacing(1),\r\n // },\r\n label: {\r\n textTransform: 'capitalize',\r\n },\r\n hidden: {\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'none',\r\n },\r\n },\r\n hiddenSmall: {\r\n [theme.breakpoints.down('xs')]: {\r\n display: 'none',\r\n },\r\n },\r\n center: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n padding: 10,\r\n },\r\n row: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n width: '65%',\r\n justifyContent: 'space-between',\r\n },\r\n padding: {\r\n paddingTop: theme.spacing(1),\r\n paddingBottom: theme.spacing(1),\r\n },\r\n closeButton: {\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n cursor: 'pointer',\r\n },\r\n closeIconColor: {\r\n color: theme.palette.primary.main,\r\n },\r\n whiteSpace: {\r\n whiteSpace: \"pre-line\",\r\n },\r\n}));\r\n\r\nconst ItemDetailsBase = ({ certificateDetails, handleBack }) => {\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const dispatch = useDispatch();\r\n const { user } = useSelector(state => state.user);\r\n const isMd = useMediaQuery(theme.breakpoints.up('md'), {\r\n defaultMatches: true,\r\n });\r\n\r\n const [openModal, setOpenModal] = useState(false);\r\n const [showNav, setShowNav] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [images, setImages] = useState([])\r\n\r\n const loadImages = useCallback(() => {\r\n setIsLoading(true);\r\n const payload = {\r\n employeeID: user?.employeeNumber,\r\n certificateID: certificateDetails.certificateID,\r\n fileID: certificateDetails.fileID,\r\n fileIDFront: certificateDetails.fileIDFront,\r\n fileIDBack: certificateDetails.fileIDBack,\r\n disposition: certificateDetails.disposition,\r\n employeeCertificatesID: certificateDetails.employeeCertificatesID\r\n };\r\n CredentialsService.getCertificateImage(payload)\r\n .then(certImage => {\r\n dispatch(saveSelectedCertImageData(certImage));\r\n setImages([{ original: `data:${certImage.certificateType};base64,` + certImage.certificateImage }]);\r\n })\r\n .then(() => {\r\n setIsLoading(false);\r\n })\r\n .catch(e => {\r\n setIsLoading(false);\r\n console.log(e);\r\n })\r\n }, [certificateDetails]);\r\n\r\n const showImageNav = useCallback(() => {\r\n if (images.length > 1) {\r\n setShowNav(true);\r\n } else {\r\n setShowNav(false);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n loadImages();\r\n showImageNav();\r\n }, [certificateDetails, loadImages, showImageNav]);\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {/* {\r\n certificateDetails.certificateName === \"Respiratory Medical Clearance\" ||\r\n certificateDetails.certificateName === \"Respiratory Fit Test\" ||\r\n certificateDetails.certificateName === \"EVOC\" ||\r\n certificateDetails.certificateName === \"Safety Stretcher Handling\" ?\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\n\r\n
\r\n Credential Type\r\n {certificateDetails.certificateName}\r\n
\r\n {\r\n !/MISSING/i.test(certificateDetails.disposition) && (\r\n <>\r\n {certificateDetails.manufacturer && (\r\n
\r\n Manufacturer\r\n {certificateDetails.manufacturer}\r\n
\r\n )}\r\n {certificateDetails.stateCode && (\r\n
\r\n State\r\n {certificateDetails.stateCode}\r\n
\r\n )}\r\n {certificateDetails.countyName && (\r\n
\r\n County\r\n {certificateDetails.countyName}\r\n
\r\n )}\r\n {certificateDetails.certificateID === \"1007\" && certificateDetails?.lotNumber && (\r\n
\r\n Lot Number\r\n {certificateDetails.lotNumber}\r\n
\r\n )}\r\n {(certificateDetails.certificateID === \"1007\") && certificateDetails?.isVaccineDeclined === '1' && (\r\n
\r\n Unvaccinated\r\n }\r\n />\r\n
\r\n )}\r\n\r\n {(certificateDetails.certificateID === \"259\") && certificateDetails?.isVaccineDeclined === '1' && (\r\n
\r\n Declined\r\n }\r\n />\r\n
\r\n )}\r\n {certificateDetails.documentNumber && certificateDetails.documentNumber !== \"NA\" && (\r\n
\r\n Credential Number\r\n {certificateDetails.documentNumber.includes(':') ? certificateDetails.documentNumber.split(':')[0] : certificateDetails.documentNumber}\r\n
\r\n )}\r\n {certificateDetails.modelNumber && (\r\n
\r\n Model Number\r\n {certificateDetails.modelNumber}\r\n
\r\n )}\r\n {certificateDetails.respiratorType && (\r\n
\r\n Respirator Type\r\n {certificateDetails.respiratorType}\r\n
\r\n )}\r\n {certificateDetails.respiratorSize && (\r\n
\r\n Respirator Size\r\n {certificateDetails.respiratorSize}\r\n
\r\n )}\r\n {certificateDetails.testResults && (\r\n
\r\n Test Results\r\n {certificateDetails.testResults}\r\n
\r\n )}\r\n {certificateDetails.issueDate && (\r\n
\r\n Issue Date\r\n {moment(certificateDetails.issueDate).format('MM/DD/YYYY')}\r\n
\r\n )}\r\n {certificateDetails.expirationDate && (\r\n
\r\n Expiration Date\r\n {moment(certificateDetails.expirationDate).format('MM/DD/YYYY')}\r\n
\r\n )}\r\n
\r\n {images.length ?\r\n \r\n : No images available}\r\n
\r\n \r\n )\r\n }\r\n\r\n\r\n\r\n {isLoading && (\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 {openModal && (\r\n <>\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ItemDetailsBase;\r\n","import React from 'react';\r\nimport { Modal, Box } from '@material-ui/core';\r\nimport { AddCertificates } from './index';\r\n\r\nconst style = {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: '80%',\r\n bgcolor: 'background.paper',\r\n border: '2px solid #000',\r\n boxShadow: 24,\r\n padding: 20,\r\n overflowY: 'scroll',\r\n height: '90%',\r\n};\r\n\r\nconst UpdateCertificate = ({ certificateDetails, openModal, setOpenModal, ...rest }) => {\r\n const handleClose = () => setOpenModal(false);\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default UpdateCertificate;\r\n","const formatMissingCert = (data, certNameList, splitByValue) => {\r\n let missingCertList = {};\r\n let newCertString = '';\r\n const certNames = data[certNameList].split(splitByValue);\r\n certNames.forEach((cert) => {\r\n cert = cert.trim();\r\n if (missingCertList[cert.slice(3)] === undefined) {\r\n missingCertList[cert.slice(3)] = `${cert.slice(0, 2)}.`;\r\n } else {\r\n const state = cert.slice(0, 2);\r\n missingCertList[cert.slice(3)] = missingCertList[cert.slice(3)].concat(' ', `${state}.`);\r\n }\r\n })\r\n const certListString = JSON.stringify(missingCertList);\r\n for (let i = 0; i < certListString.length; i++) {\r\n const re = /{|}|\"|\"/g;\r\n const reColon = /:/g;\r\n const reComma = /,/g;\r\n if (re.test(certListString[i])) {\r\n newCertString += certListString[i].replace(certListString[i], ' ');\r\n } else if (reColon.test(certListString[i])) {\r\n newCertString += certListString[i].replace(certListString[i], ' (');\r\n } else if (reComma.test(certListString[i])) {\r\n newCertString += ')\\n';\r\n } else {\r\n newCertString += certListString[i];\r\n }\r\n }\r\n newCertString = newCertString.trim();\r\n newCertString += ' )\\n';\r\n return newCertString;\r\n}\r\n\r\nexport default formatMissingCert;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\n// Slice\r\nconst initialEmployeeProfile = localStorage.getItem('credentials')\r\n ? JSON.parse(localStorage.getItem('credentials'))\r\n : null\r\n\r\nconst slice = createSlice({\r\n name: 'credentials',\r\n initialState: {\r\n employeeProfile: initialEmployeeProfile,\r\n },\r\n reducers: {\r\n saveEmployeeProfileInfo: (state, action) => {\r\n state.employeeProfile = action.payload;\r\n if (action.payload) localStorage.setItem('credentials', JSON.stringify(action.payload));\r\n }\r\n },\r\n});\r\n\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nconst { saveEmployeeProfileInfo } = slice.actions;\r\n\r\nexport const saveEmployeeProfile = (data) => async dispatch => {\r\n try {\r\n dispatch(saveEmployeeProfileInfo(data));\r\n } catch (e) {\r\n return console.error(e.message);\r\n }\r\n}\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport _ from 'lodash';\r\nimport { Box, List, ListItem, Grid, Typography, Fab, Divider } from \"@material-ui/core\";\r\nimport { SectionAlternate, CardBase, Hero } from \"@components/organisms\";\r\nimport { DialogAlert } from '@components/molecules';\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Tabs from \"@material-ui/core/Tabs\";\r\nimport Tab from \"@material-ui/core/Tab\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faCheckCircle, faQuestionCircle, faClock, faTimesCircle, faPlusCircle, faArrowLeft } from \"@fortawesome/free-solid-svg-icons\";\r\n\r\n//components\r\nimport { ViewCertificates, AddCertificates } from './components';\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n\r\n// redux functions\r\nimport { saveEmployeeProfile } from \"@store/credentials\";\r\n//API Requests\r\nimport { CredentialsService } from \"@services\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n height: \"100%\",\r\n width: \"100%\",\r\n },\r\n section: {\r\n \"& .section-alternate__content\": {\r\n paddingTop: 0,\r\n marginTop: theme.spacing(-5),\r\n position: \"relative\",\r\n zIndex: 1,\r\n },\r\n \"& .card-base__content\": {\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(\"md\")]: {\r\n padding: theme.spacing(3),\r\n },\r\n },\r\n },\r\n menu: {\r\n height: \"auto\",\r\n },\r\n list: {\r\n display: \"inline-flex\",\r\n overflow: \"auto\",\r\n flexWrap: \"nowrap\",\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n marginRight: theme.spacing(-3),\r\n marginLeft: theme.spacing(-3),\r\n },\r\n },\r\n listItem: {\r\n marginRight: theme.spacing(2),\r\n flex: 0,\r\n [theme.breakpoints.up(\"md\")]: {\r\n paddingRight: theme.spacing(3),\r\n paddingLeft: theme.spacing(3),\r\n borderLeft: \"2px solid transparent\",\r\n },\r\n },\r\n listItemActive: {\r\n [theme.breakpoints.up(\"md\")]: {\r\n borderLeft: `2px solid ${theme.palette.primary.dark}`,\r\n },\r\n \"& .menu__item\": {\r\n color: theme.palette.text.primary,\r\n },\r\n },\r\n box: {\r\n width: '100%',\r\n },\r\n ledgerContainer: {\r\n padding: theme.spacing(2),\r\n background: theme.palette.background.subHeader,\r\n borderRadius: theme.spacing(0.5),\r\n },\r\n CURRENT: {\r\n color: theme.palette.icon.current,\r\n },\r\n EXPIRED: {\r\n color: theme.palette.icon.expired,\r\n },\r\n MISSING: {\r\n color: theme.palette.icon.missing,\r\n },\r\n PENDING: {\r\n color: theme.palette.icon.pending,\r\n },\r\n certificateContainer: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n paddingBottom: theme.spacing(1),\r\n color: '#004987'\r\n\r\n },\r\n ledgerTitle: {\r\n paddingLeft: theme.spacing(1),\r\n },\r\n flex: {\r\n display: 'flex',\r\n flexWrap: 'wrap'\r\n },\r\n flexCenter: {\r\n justifyContent: 'center',\r\n },\r\n plusIcon: {\r\n color: theme.palette.primary.main,\r\n fontSize: '1.5rem',\r\n cursor: 'pointer',\r\n },\r\n leftArrowIcon: {\r\n width: '25px',\r\n height: '25px',\r\n minHeight: '25px',\r\n }\r\n}));\r\n\r\nconst HeaderPanel = (props) => {\r\n const { value, index, classes, handleClickIndex, ...other } = props;\r\n\r\n return (\r\n \r\n {\r\n !index ? (\r\n \r\n \r\n \r\n \r\n VIEW CREDENTIALS\r\n \r\n \r\n \r\n \r\n \r\n Current\r\n \r\n \r\n \r\n \r\n \r\n Expired\r\n \r\n \r\n \r\n \r\n \r\n Missing\r\n \r\n \r\n \r\n \r\n \r\n Pending\r\n \r\n \r\n \r\n \r\n handleClickIndex(1)}\r\n />\r\n \r\n \r\n ) : (\r\n \r\n \r\n handleClickIndex(0)}\r\n />\r\n \r\n \r\n )\r\n }\r\n \r\n \r\n );\r\n};\r\n\r\nconst TabPanel = (props) => {\r\n const { children, value, index, classes, ...other } = props;\r\n // console.log('value', value, 'index', index);\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst Credentials = (props = {}) => {\r\n const { t } = useTranslation();\r\n const classes = useStyles();\r\n const { user } = useSelector(state => state.user);\r\n const dispatch = useDispatch();\r\n\r\n //Set variable\r\n const [loading, setLoading] = useState(false);\r\n const [employee, setEmployee] = useState(null);\r\n const [selectedIndex, setSelectedIndex] = useState(0);\r\n const [addCertClearDataAlert, setAddCertClearDataAlert] = useState(false);\r\n const addCertificateRef = useRef(null);\r\n\r\n useEffect(() => {\r\n //debugger;\r\n setTimeout(() =>\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth'\r\n }), 800\r\n );\r\n }, []);\r\n\r\n const handleClickIndex = (newValue) => {\r\n\r\n if (selectedIndex === 1) {\r\n const formikObj = addCertificateRef.current.getFormikObject();\r\n const values = formikObj.values;\r\n const touched = formikObj.touched;\r\n let fieldTouchAndEnterInput = false;\r\n\r\n _.keys(touched).forEach(touchField => {\r\n if (touched[touchField] && values[touchField] !== \"\") {\r\n fieldTouchAndEnterInput = true;\r\n return false;\r\n }\r\n });\r\n if (fieldTouchAndEnterInput) {\r\n setAddCertClearDataAlert(true);\r\n return;\r\n }\r\n }\r\n setSelectedIndex(newValue);\r\n };\r\n\r\n // //onPageLoad - fetch employee info - SAMPLE API Call\r\n // useEffect(() => {\r\n // setLoading(true);\r\n // // let employeeNum = \"100023\"; //Brian\tL.\tMartin's employee number\r\n // //sample api GET request\r\n // CredentialsService.getemployeeProfile(user.employeeNumber)\r\n // .then((data) => {\r\n // console.log('employee data: ', data)\r\n // setLoading(false);\r\n // dispatch(saveEmployeeProfile(data[0]));\r\n // })\r\n // .catch((err) => {\r\n // alert(JSON.stringify(err));\r\n // setLoading(false);\r\n // });\r\n // }, []);\r\n\r\n const onAddCertAlertYesClickHandler = () => {\r\n setAddCertClearDataAlert(false);\r\n setSelectedIndex(0);\r\n };\r\n\r\n const onAddCertAlertNoClickHandler = () => {\r\n setAddCertClearDataAlert(false);\r\n };\r\n\r\n return (\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\n \r\n \r\n \r\n \r\n \r\n onAddCertAlertYesClickHandler(),\r\n onNoClickHandler: () => onAddCertAlertNoClickHandler()\r\n }}\r\n />\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Credentials;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\n// Slice\r\nconst initialDashboardState = {\r\n employeeActionItems: [],\r\n};\r\n\r\nconst slice = createSlice({\r\n name: 'dashboard',\r\n initialState: initialDashboardState,\r\n reducers: {\r\n saveEmployeeActionData: (state, action) => {\r\n state.employeeActionItems = action.payload;\r\n }\r\n },\r\n});\r\n\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nconst { saveEmployeeActionData } = slice.actions;\r\n\r\nexport const saveEmployeeActionItems = (actionItems) => async dispatch => {\r\n try {\r\n dispatch(saveEmployeeActionData(actionItems));\r\n } catch (e) {\r\n return console.error(e.message);\r\n }\r\n}\r\n","import React, { useState, useEffect, useCallback, useContext } from \"react\";\r\nimport _ from \"lodash\";\r\nimport moment from 'moment';\r\nimport clsx from 'clsx';\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport { Divider } from \"@material-ui/core\";\r\nimport {\r\n useMediaQuery,\r\n Grid,\r\n Typography,\r\n Paper,\r\n Button,\r\n Box,\r\n List,\r\n ListItem,\r\n ListItemText,\r\n ListItemIcon,\r\n CircularProgress,\r\n Tooltip,\r\n} from \"@material-ui/core\";\r\nimport { formatMissingCert } from \"./Credentials/components\";\r\nimport { SafetyUserContext } from \"src/App\";\r\n\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n\r\n//components\r\nimport {\r\n Section,\r\n CategoryBase,\r\n ExternalApplicationLink,\r\n ModuleLink,\r\n EmptyStateHolder,\r\n} from \"@components/organisms\";\r\nimport { CountiesFilter } from \"@components/molecules\";\r\n\r\nimport { faUser } from \"@fortawesome/free-regular-svg-icons\";\r\nimport {\r\n faInfo,\r\n faTabletAlt,\r\n faComments,\r\n faCheckCircle,\r\n faQuestionCircle,\r\n faClock,\r\n faTimesCircle,\r\n faExclamationCircle,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n\r\nimport applications_list from \"@assets/data/external_applications_list.json\";\r\nimport { connect_modules } from \"@assets/data/connect_modules_list.js\";\r\n\r\n// import { Hero } from \"./components\";\r\n// import { Providers, Download } from \"./../LandingPage/components\";\r\n// import { AppConfigService } from \"services\";\r\nimport { DashboardService } from \"@services\";\r\n\r\n// redux functions\r\nimport { saveEmployeeActionItems } from \"@store/dashboard\";\r\n\r\n// redux functions\r\nimport { saveEmployeeProfile } from \"@store/credentials\";\r\n//API Requests\r\nimport { CredentialsService } from \"@services\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n \"& .hero-shaped\": {\r\n borderBottom: 0,\r\n },\r\n \"& .hero-shaped__wrapper\": {\r\n [theme.breakpoints.up(\"md\")]: {\r\n minHeight: `calc(100vh - ${theme.mixins.toolbar[\"@media (min-width:600px)\"].minHeight}px)`,\r\n },\r\n },\r\n },\r\n pagePaddingTop: {\r\n paddingTop: theme.spacing(3),\r\n [theme.breakpoints.up(\"md\")]: {\r\n paddingTop: theme.spacing(5),\r\n },\r\n },\r\n sectionNoPaddingTop: {\r\n paddingTop: 0,\r\n },\r\n promoSection: {\r\n background: theme.palette.alternate.main,\r\n padding: theme.spacing(2, 2),\r\n [theme.breakpoints.up(\"md\")]: {\r\n padding: theme.spacing(4, 2),\r\n },\r\n },\r\n blueStripesGradient: {\r\n color: \"white\",\r\n background:\r\n //\"linear-gradient(90deg, rgba(79,154,201,1) 47%, rgba(11,82,125,1) 100%)\",\r\n \"#004987\",\r\n },\r\n corporateLogoBox: {\r\n margin: \"28px 8px\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: \"calc(calc(100% / 3) - 16px)\",\r\n },\r\n width: \"calc(calc(100% / 2) - 16px)\",\r\n },\r\n list: {\r\n width: \"100%\",\r\n },\r\n listItemText: {\r\n \"& > span\": {\r\n fontWeight: \"bold\",\r\n },\r\n },\r\n center: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n width: \"100%\",\r\n },\r\n certIcon: {\r\n minWidth: 30,\r\n },\r\n MISSING: {\r\n color: theme.palette.icon.missing,\r\n },\r\n EXPIRED: {\r\n color: theme.palette.icon.expired,\r\n },\r\n EXPIRING: {\r\n color: theme.palette.icon.expiring,\r\n },\r\n credentailsWrapper: {\r\n \"& .MuiCardContent-root\": {\r\n display: \"flex\",\r\n },\r\n },\r\n headerText: {\r\n fontWeight: \"bold\",\r\n },\r\n row: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"flex-end\",\r\n },\r\n whiteSpace: {\r\n whiteSpace: \"pre-line\",\r\n },\r\n}));\r\n\r\nconst CERT_ICONS = {\r\n MISSING: faQuestionCircle,\r\n EXPIRED: faTimesCircle,\r\n EXPIRING: faExclamationCircle,\r\n};\r\n\r\nconst Dashboard = () => {\r\n const [displayCounties, setDisplayCounties] = React.useState(false);\r\n const [displayModule, setDisplayModule] = React.useState({\r\n credentials: true,\r\n connect: true,\r\n corporate_communications: false,\r\n corporate_applications: true,\r\n });\r\n const [isHoveringWorkLocation, setIsHoveringWorkLocation] = React.useState(false);\r\n const [isHoveringViewCredentials, setIsHoveringViewCredentials] = React.useState(false);\r\n const { user } = useSelector((state) => state.user);\r\n const { employeeActionItems } = useSelector((state) => state.dashboard);\r\n const { currentCounty } = useSelector((state) => state.counties);\r\n\r\n const { isSafetyUser, setIsSafetyUser } = useContext(SafetyUserContext);\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const theme = useTheme();\r\n const isMd = useMediaQuery(theme.breakpoints.up(\"md\"), {\r\n defaultMatches: true,\r\n });\r\n const [loading, setLoading] = useState(true);\r\n\r\n const history = useHistory();\r\n\r\n const updateEmployeeLastLogin = useCallback(() => {\r\n return new Promise((resolve, reject) => {\r\n setLoading(true);\r\n DashboardService.updateEmployeeLastLogin({ employeeID: user.employeeNumber }).then((response) => {\r\n resolve(response);\r\n }).catch((error) => {\r\n console.log(error);\r\n reject();\r\n }).finally(() => {\r\n setLoading(false);\r\n });\r\n });\r\n }, []);\r\n\r\n const getActionItems = useCallback(async () => {\r\n setLoading(true);\r\n try {\r\n const response = await DashboardService.employeeActionItems(\r\n user.employeeNumber\r\n );\r\n dispatch(saveEmployeeActionItems(response));\r\n setLoading(false);\r\n } catch (err) {\r\n setLoading(false);\r\n console.log(err);\r\n }\r\n }, []);\r\n\r\n const getEmployeeDetails = useCallback(() => {\r\n //onPageLoad - fetch employee info - SAMPLE API Call\r\n setLoading(true);\r\n // let employeeNum = \"100023\"; //Brian\tL.\tMartin's employee number\r\n //sample api GET request\r\n CredentialsService.getemployeeProfile(user?.employeeNumber)\r\n .then((data) => {\r\n setLoading(false);\r\n dispatch(saveEmployeeProfile(data[0]));\r\n })\r\n .catch((err) => {\r\n alert(JSON.stringify(err));\r\n setLoading(false);\r\n });\r\n }, []);\r\n\r\n const checkIfSafetyUser = useCallback(() => {\r\n switch (user.employeeNumber) {\r\n case \"C8102122\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"1986211\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"C8009650\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"20263152\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"25008620\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"25010202\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"26015371\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"20111133\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"25008673\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"20448817\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"25008789\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"26002860\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"26011884\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"20143650\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"25008103\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"25017229\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"20027544\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"74229\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"26011004\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"20236756\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"25009224\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"25013279\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"20317208\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"25017529\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"20563296\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"25002050\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"20285407\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"25008477\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"25002060\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"25008348\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"25010939\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"20103846\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"948037\":\r\n setIsSafetyUser(true);\r\n break;\r\n case \"2173562\":\r\n setIsSafetyUser(true);\r\n break;\r\n default:\r\n setIsSafetyUser(false);\r\n break;\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n updateEmployeeLastLogin().then(() => getEmployeeDetails());\r\n getActionItems();\r\n checkIfSafetyUser();\r\n }, []);\r\n\r\n const routeChange = (path) => {\r\n history.push(path);\r\n };\r\n\r\n const renderActionItems = () => {\r\n if (loading)\r\n return (\r\n
\r\n \r\n
\r\n );\r\n let newEmployeeActionItems = [];\r\n if (Array.isArray(employeeActionItems)) {\r\n employeeActionItems.map((v) => {\r\n let formatLabel = '';\r\n if (v.disposition === 'MISSING' && v.certNameList.length > 30 && v.certNameList.includes('State')) {\r\n formatLabel = formatMissingCert(v, 'certNameList', 'or');\r\n newEmployeeActionItems.push({\r\n employeeID: v.employeeID,\r\n expiringDaysOut: v.expiringDaysOut,\r\n disposition: v.disposition,\r\n itemCount: v.itemCount,\r\n certNameList: formatLabel,\r\n countyName: v.countyName,\r\n expirationDate: v.expirationDate,\r\n stateCode: v.stateCode,\r\n })\r\n } else {\r\n newEmployeeActionItems.push(v);\r\n }\r\n })\r\n }\r\n return (\r\n \r\n {newEmployeeActionItems.length > 0 &&\r\n newEmployeeActionItems.map((v) => {\r\n return (\r\n routeChange({ pathname: \"/credentials\", state: { ...v } })}>\r\n {CERT_ICONS[v.disposition] && (\r\n \r\n \r\n \r\n )}\r\n 0 || ['EXPIRING'].includes(v.disposition) && v.expiringDaysOut === 0 ? `on ${moment(v.expirationDate).format('MM/DD/YYYY')}` : \"\"\r\n }`}\r\n />\r\n \r\n )\r\n })}\r\n \r\n );\r\n };\r\n\r\n return (\r\n
\r\n {/* \r\n
\r\n \r\n Hello, {user.firstName} {user.lastName} ({user.employeeNumber})\r\n */}\r\n {/* \r\n {user.firstName} {user.lastName} ({user.employeeNumber}) -{\" \"}\r\n {user.county}, {user.state}\r\n */}\r\n {/*
*/}\r\n {/* */}\r\n \r\n\r\n {displayCounties && (\r\n \r\n )}\r\n\r\n
\r\n
\r\n
\r\n \r\n {displayModule.credentials && (\r\n \r\n \r\n {Array.isArray(employeeActionItems) &&\r\n employeeActionItems.length === 0 && (\r\n \r\n )}\r\n {Array.isArray(employeeActionItems) &&\r\n employeeActionItems.length > 0 &&\r\n renderActionItems()}\r\n \r\n }\r\n cta={\r\n setIsHoveringViewCredentials(true)}\r\n onMouseLeave={() => setIsHoveringViewCredentials(false)}\r\n onClick={() => routeChange(\"credentials\")}\r\n >\r\n View Credentials\r\n \r\n }\r\n />\r\n \r\n )}\r\n\r\n {displayModule.connect && (\r\n \r\n \r\n \r\n {(currentCounty === null ||\r\n currentCounty.county === undefined) && (\r\n \r\n )}\r\n {currentCounty !== null &&\r\n currentCounty.county !== undefined &&\r\n currentCounty.county.length > 0 &&\r\n connect_modules.map((application, index) => (\r\n (application.isActive || isSafetyUser) &&\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n }\r\n cta={\r\n \r\n setIsHoveringWorkLocation(true)}\r\n onMouseLeave={() => setIsHoveringWorkLocation(false)}\r\n onClick={() => setDisplayCounties(true)}\r\n >\r\n {/* */}\r\n {`Work Location: ${currentCounty?.county}${currentCounty.state ? `, ${currentCounty?.state}` : ''}` || \"Select County\"}\r\n {/* */}\r\n \r\n \r\n }\r\n />\r\n \r\n )}\r\n\r\n {displayModule.corporate_communications && (\r\n \r\n \r\n \r\n \r\n }\r\n cta={\r\n routeChange(\"communications\")}\r\n >\r\n View All\r\n \r\n }\r\n />\r\n \r\n )}\r\n\r\n {displayModule.corporate_applications && (\r\n \r\n \r\n {applications_list.map((application, index) => (\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\n\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Dashboard;\r\n","export default __webpack_public_path__ + \"static/media/GMR_Background.02768724.png\";","export default __webpack_public_path__ + \"static/media/Connect_Logo.61ed1f22.png\";","import React, { useEffect, useState, useCallback } from \"react\";\r\nimport queryString from \"query-string\";\r\nimport { useHistory } from 'react-router-dom';\r\nimport iconv from \"iconv-lite\";\r\nimport clsx from 'clsx';\r\n\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Button, Typography } from \"@material-ui/core\";\r\nimport { Section } from \"@components/organisms\";\r\n\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nimport GMR_Background from \"@assets/images/GMR_Background.png\";\r\nimport Connect_Logo from \"@assets/images/Connect_Logo.png\";\r\n\r\n//redux\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n\r\n//redux functions\r\nimport { login, getToken } from \"@store/user\";\r\nimport { setSelectedCounty } from \"@store/counties\";\r\n\r\n//network requests\r\nimport { AppConfigService } from \"@services\";\r\n\r\n//App Settings\r\nimport { NetworkSettings, Config } from '@utils';\r\nimport { Image } from \"@components/atoms\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {\r\n backgroundImage: `url(${GMR_Background})`, \r\n height: '100vh', \r\n backgroundPosition: 'center', \r\n backgroundRepeat: 'no-repeat', \r\n backgroundSize: 'cover',\r\n overflow: 'hidden',\r\n flexDirection: 'row'\r\n },\r\n formContainer: {\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n minHeight: `calc(100vh - ${theme.mixins.toolbar[\"@media (min-width:600px)\"].minHeight}px)`,\r\n maxWidth: 500,\r\n margin: `0 auto`,\r\n marginTop: -50,\r\n },\r\n section: {\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n },\r\n label: {\r\n fontWeight: \"bold\",\r\n textTransform: \"uppercase\",\r\n },\r\n disablePage: {\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n minHeight: `calc(100vh - ${theme.mixins.toolbar[\"@media (min-width:600px)\"].minHeight}px)`,\r\n maxWidth: \"95%\",\r\n margin: `0 auto`,\r\n },\r\n disablePageText: {\r\n fontWeight: 400,\r\n textShadow: \"1px 2px #c0c0c0\",\r\n textAlign: 'center'\r\n },\r\n logo: {\r\n height: 48,\r\n width: 90,\r\n objectFit: 'contain',\r\n },\r\n logoContainer: {\r\n borderTop: `70px solid ${theme.palette.background.header}`,\r\n borderRight: '90px solid transparent',\r\n display: 'flex',\r\n alignItems: 'flex-end',\r\n },\r\n imageContainer: {\r\n display: 'flex', \r\n justifyContent: 'center', \r\n alignItems: 'center',\r\n },\r\n logoContainerSize: {\r\n height: 70,\r\n width: 240,\r\n },\r\n}));\r\n\r\nconst Login = (props) => {\r\n\r\n\r\n //Set Loading States variable\r\n const [loading, setLoading] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n //on app load. check for latest version\r\n\r\n setLoading(true);\r\n\r\n AppConfigService.getLatestAppBuildDetails()\r\n .then((data) => {\r\n setLoading(false);\r\n\r\n let appDetails = JSON.parse(localStorage.getItem(\"appDetails\"));\r\n\r\n if (appDetails === null) {\r\n localStorage.setItem(\"appDetails\", JSON.stringify(data));\r\n } else {\r\n if (appDetails && appDetails.buildVersion !== data.buildVersion) {\r\n //save new app details and reload page\r\n window.location.reload();\r\n localStorage.setItem(\"appDetails\", JSON.stringify(data));\r\n } else {\r\n //save new app details\r\n localStorage.setItem(\"appDetails\", JSON.stringify(data));\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n });\r\n }, []);\r\n\r\n //create history\r\n const history = useHistory();\r\n //redux\r\n const dispatch = useDispatch();\r\n const { user } = useSelector(state => state.user);\r\n const route = localStorage.getItem(\"route\");\r\n\r\n //initial state\r\n const employeeRecordInitialState = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n phone: \"\",\r\n email: \"\",\r\n openid_email: \"\",\r\n employer: \"\",\r\n employeeNumber: \"\",\r\n address: \"\",\r\n zipCode: \"\",\r\n city: \"\",\r\n state: \"\",\r\n dob: \"\",\r\n };\r\n\r\n //variables\r\n const [employeeRecord, setEmployeeRecord] = useState(employeeRecordInitialState);\r\n const [userAuthenticated, setUserAuthenticated] = useState(false);\r\n const [disableGMRConnectWeb, setDisableGMRConnectWeb] = useState(false);\r\n\r\n //updating complex variables\r\n const updateEmployeeRecordUser = useCallback((key, value) => {\r\n setEmployeeRecord((employeeRecord) => {\r\n return {\r\n ...employeeRecord,\r\n [key]: value,\r\n };\r\n });\r\n }, []);\r\n\r\n\r\n //on page load\r\n useEffect(() => {\r\n\r\n if (user !== null) {\r\n setEmployeeRecord(user);\r\n setUserAuthenticated(true);\r\n }\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (userAuthenticated && employeeRecord?.employeeNumber?.length > 0) {\r\n // let buf = iconv.encode(`${Config.REACT_APP_USERNAME}:${Config.REACT_APP_PASSWORD}`, 'ascii'),\r\n const userInfo = `${Config.userName}:${Config.password}`;\r\n let generateToken = window.btoa(userInfo);\r\n\r\n dispatch(getToken(generateToken));\r\n dispatch(login(employeeRecord));\r\n const removeFrom = route ? route.indexOf('/', 10) : null;\r\n const previousRoute = removeFrom ? JSON.parse(route).slice(removeFrom) : null;\r\n history.replace(previousRoute ? previousRoute : '/dashboard');\r\n }\r\n }, [userAuthenticated]);\r\n\r\n\r\n useEffect(() => {\r\n const parsed = queryString.parse(props.location.search + props.location.hash);\r\n\r\n if (parsed && props.location.search.length > 0) {\r\n const doesExist = parsed.doesExist.toLowerCase() === \"true\";\r\n if (parsed.FirstName) {\r\n updateEmployeeRecordUser(\"firstName\", parsed.FirstName);\r\n }\r\n if (parsed.Firstname) {\r\n updateEmployeeRecordUser(\"firstName\", parsed.Firstname);\r\n }\r\n if (parsed.LastName) {\r\n updateEmployeeRecordUser(\"lastName\", parsed.LastName);\r\n }\r\n if (parsed.Email) {\r\n const org = parsed.Email.split(\"@\")[1];\r\n if (org === \"emsc.root01.org\" && !doesExist) {\r\n updateEmployeeRecordUser(\"openid_email\", parsed.Email);\r\n } else {\r\n updateEmployeeRecordUser(\"email\", parsed.Email);\r\n }\r\n }\r\n if (parsed.email) {\r\n const org = parsed.email.split(\"@\")[1];\r\n if (org === \"emsc.root01.org\" && !doesExist) {\r\n updateEmployeeRecordUser(\"openid_email\", parsed.email);\r\n } else {\r\n updateEmployeeRecordUser(\"email\", parsed.email);\r\n }\r\n }\r\n if (parsed.ADcompany) {\r\n updateEmployeeRecordUser(\"employer\", parsed.ADcompany);\r\n }\r\n if (parsed.EmployeeNumber) {\r\n updateEmployeeRecordUser(\"employeeNumber\", parsed.EmployeeNumber);\r\n }\r\n if (parsed.PrimaryPhone && parsed.PrimaryPhone.length > 0) {\r\n updateEmployeeRecordUser(\r\n \"phone\",\r\n parsed.PrimaryPhone.replace(/[^\\d]/g, \"\")\r\n );\r\n }\r\n if (parsed.ADBusinessUnit) {\r\n updateEmployeeRecordUser(\"businessUnit\", parsed.ADBusinessUnit);\r\n }\r\n if (parsed.ADManagerEmail) {\r\n updateEmployeeRecordUser(\"managerEmail\", parsed.ADManagerEmail);\r\n }\r\n if (parsed.ADPhysicalDeliveryOfficeName) {\r\n updateEmployeeRecordUser(\r\n \"physicalDeliveryOfficeName\",\r\n parsed.ADPhysicalDeliveryOfficeName\r\n );\r\n }\r\n if (parsed.Department) {\r\n updateEmployeeRecordUser(\"department\", parsed.Department);\r\n }\r\n\r\n if (parsed.county && parsed.state) {\r\n updateEmployeeRecordUser(\"county\", parsed.county);\r\n updateEmployeeRecordUser(\"state\", parsed.state);\r\n dispatch(setSelectedCounty({ \"county\": parsed.county, \"state\": parsed.state }));\r\n }\r\n setUserAuthenticated(true);\r\n }\r\n }, [props]);\r\n\r\n\r\n\r\n const classes = useStyles();\r\n\r\n const loginOktaSaml = () => {\r\n let smallCallBaclUrl = window.location.origin + \"/login\";\r\n window.location.href =\r\n NetworkSettings.fullApiUrl +\r\n \"saml/Login?returnUrl=\" +\r\n smallCallBaclUrl;\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {disableGMRConnectWeb ?\r\n
\r\n We're putting the final touches on the new GMR Connect Portal.\r\n We'll see you back here on Wednesday, June 8th.\r\n
:\r\n
\r\n \r\n Continue With Okta\r\n \r\n
\r\n }\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Login;\r\n","import React, { useState, lazy, Suspense } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Grid } from \"@material-ui/core\";\r\n\r\nconst SafetyForms = lazy(() => import(\"./components\").then(module => ({\r\n default: module.SafetyForms\r\n})));\r\nconst SafetyList = lazy(() => import(\"./components\").then(module => ({\r\n default: module.SafetyList\r\n})));\r\nconst Snackbar = lazy(() => import(\"@components/molecules\").then(module => ({\r\n default: module.Snackbar\r\n})));\r\nconst SectionAlternate = lazy(() => import(\"@components/organisms\").then(module => ({\r\n default: module.SectionAlternate\r\n})));\r\nconst CardBase = lazy(() => import(\"@components/organisms\").then(module => ({\r\n default: module.CardBase\r\n})));\r\nconst Hero = lazy(() => import(\"@components/organisms\").then(module => ({\r\n default: module.Hero\r\n})));\r\nconst EmployeeSearchBar = lazy(() => import(\"@components/organisms\").then(module => ({\r\n default: module.EmployeeSearchBar\r\n})));\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n height: \"100%\",\r\n width: \"100%\",\r\n },\r\n section: {\r\n \"& .section-alternate__content\": {\r\n paddingTop: 0,\r\n marginTop: theme.spacing(-5),\r\n position: \"relative\",\r\n zIndex: 1,\r\n },\r\n \"& .card-base__content\": {\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(\"md\")]: {\r\n padding: theme.spacing(3),\r\n },\r\n },\r\n },\r\n container: {\r\n [theme.breakpoints.up('sm')]: {\r\n overflowY: 'scroll',\r\n height: 520,\r\n },\r\n width: '100%',\r\n },\r\n}));\r\n\r\nconst Safety = () => {\r\n const classes = useStyles();\r\n\r\n //Set variable\r\n const [loading, setLoading] = useState(false);\r\n const [noResults, setNoResults] = useState(false);\r\n const [employeeSelected, setEmployeeSelected] = useState(false);\r\n const [openModal, setOpenModal] = useState(false);\r\n const [openSnackbar, setOpenSnackbar] = useState(false);\r\n const [submitMessage, setSubmitMessage] = useState('');\r\n const [employeeData, setEmployeeData] = useState([]);\r\n const [filteredData, setFilteredData] = useState([]);\r\n const [safetyFormSelected, setSafetyFormSelected] = useState({\r\n formID: '',\r\n formName: '',\r\n });\r\n\r\n const selectEmployee = (employee) => {\r\n setEmployeeSelected(true);\r\n setEmployeeData(employee);\r\n }\r\n\r\n return (\r\n
\r\n Loading...
}>\r\n \r\n \r\n \r\n \r\n \r\n {/* COMPONENTS CONTENT GO HERE*/}\r\n\r\n \r\n\r\n {employeeSelected && (\r\n \r\n )}\r\n\r\n \r\n\r\n setOpenSnackbar(false)}\r\n alertProps={{ severity: submitMessage?.includes('success') ? \"success\" : \"error\" }}\r\n autoHideDuration={2000}\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Safety;\r\n","import React, { useEffect, useState, useCallback } from \"react\";\r\nimport queryString from \"query-string\";\r\nimport { useHistory } from 'react-router-dom';\r\nimport iconv from \"iconv-lite\";\r\n\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Button, Typography } from \"@material-ui/core\";\r\nimport { Section } from \"@components/organisms\";\r\n\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\n//redux\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n\r\n//redux functions\r\nimport { login, getToken } from \"@store/user\";\r\nimport { setSelectedCounty } from \"@store/counties\";\r\n\r\n//network requests\r\nimport { AppConfigService } from \"@services\";\r\n\r\n//App Settings\r\nimport { NetworkSettings, Config } from '@utils';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n formContainer: {\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n minHeight: `calc(100vh - ${theme.mixins.toolbar[\"@media (min-width:600px)\"].minHeight}px)`,\r\n maxWidth: 500,\r\n margin: `0 auto`,\r\n },\r\n section: {\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n },\r\n label: {\r\n fontWeight: \"bold\",\r\n textTransform: \"uppercase\",\r\n },\r\n disablePage: {\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n minHeight: `calc(100vh - ${theme.mixins.toolbar[\"@media (min-width:600px)\"].minHeight}px)`,\r\n maxWidth: \"95%\",\r\n margin: `0 auto`,\r\n },\r\n disablePageText: {\r\n fontWeight: 400,\r\n textShadow: \"1px 2px #c0c0c0\"\r\n },\r\n}));\r\n\r\nconst LoginTest = (props) => {\r\n\r\n\r\n //Set Loading States variable\r\n const [loading, setLoading] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n //on app load. check for latest version\r\n\r\n setLoading(true);\r\n\r\n AppConfigService.getLatestAppBuildDetails()\r\n .then((data) => {\r\n setLoading(false);\r\n\r\n let appDetails = JSON.parse(localStorage.getItem(\"appDetails\"));\r\n\r\n if (appDetails === null) {\r\n localStorage.setItem(\"appDetails\", JSON.stringify(data));\r\n } else {\r\n if (appDetails && appDetails.buildVersion !== data.buildVersion) {\r\n //save new app details and reload page\r\n window.location.reload();\r\n localStorage.setItem(\"appDetails\", JSON.stringify(data));\r\n } else {\r\n //save new app details\r\n localStorage.setItem(\"appDetails\", JSON.stringify(data));\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n });\r\n }, []);\r\n\r\n //create history\r\n const history = useHistory();\r\n //redux\r\n const dispatch = useDispatch();\r\n const { user } = useSelector(state => state.user);\r\n\r\n //initial state\r\n const employeeRecordInitialState = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n phone: \"\",\r\n email: \"\",\r\n openid_email: \"\",\r\n employer: \"\",\r\n employeeNumber: \"\",\r\n address: \"\",\r\n zipCode: \"\",\r\n city: \"\",\r\n state: \"\",\r\n dob: \"\",\r\n };\r\n\r\n //variables\r\n const [employeeRecord, setEmployeeRecord] = useState(employeeRecordInitialState);\r\n const [userAuthenticated, setUserAuthenticated] = useState(false);\r\n const [disableGMRConnectWeb, setDisableGMRConnectWeb] = useState(false);\r\n\r\n //updating complex variables\r\n const updateEmployeeRecordUser = useCallback((key, value) => {\r\n setEmployeeRecord((employeeRecord) => {\r\n return {\r\n ...employeeRecord,\r\n [key]: value,\r\n };\r\n });\r\n }, []);\r\n\r\n\r\n //on page load\r\n useEffect(() => {\r\n\r\n if (user !== null) {\r\n setEmployeeRecord(user);\r\n setUserAuthenticated(true);\r\n }\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (userAuthenticated && employeeRecord?.employeeNumber?.length > 0) {\r\n // let buf = iconv.encode(`${Config.REACT_APP_USERNAME}:${Config.REACT_APP_PASSWORD}`, 'ascii'),\r\n const userInfo = `${Config.userName}:${Config.password}`;\r\n let generateToken = window.btoa(userInfo);\r\n\r\n dispatch(getToken(generateToken));\r\n dispatch(login(employeeRecord));\r\n history.replace(\"/dashboard\");\r\n }\r\n }, [userAuthenticated]);\r\n\r\n\r\n useEffect(() => {\r\n const parsed = queryString.parse(props.location.search + props.location.hash);\r\n\r\n\r\n if (parsed && props.location.search.length > 0) {\r\n const doesExist = parsed.doesExist.toLowerCase() === \"true\";\r\n if (parsed.FirstName) {\r\n updateEmployeeRecordUser(\"firstName\", parsed.FirstName);\r\n }\r\n if (parsed.Firstname) {\r\n updateEmployeeRecordUser(\"firstName\", parsed.Firstname);\r\n }\r\n if (parsed.LastName) {\r\n updateEmployeeRecordUser(\"lastName\", parsed.LastName);\r\n }\r\n if (parsed.Email) {\r\n const org = parsed.Email.split(\"@\")[1];\r\n if (org === \"emsc.root01.org\" && !doesExist) {\r\n updateEmployeeRecordUser(\"openid_email\", parsed.Email);\r\n } else {\r\n updateEmployeeRecordUser(\"email\", parsed.Email);\r\n }\r\n }\r\n if (parsed.email) {\r\n const org = parsed.email.split(\"@\")[1];\r\n if (org === \"emsc.root01.org\" && !doesExist) {\r\n updateEmployeeRecordUser(\"openid_email\", parsed.email);\r\n } else {\r\n updateEmployeeRecordUser(\"email\", parsed.email);\r\n }\r\n }\r\n if (parsed.ADcompany) {\r\n updateEmployeeRecordUser(\"employer\", parsed.ADcompany);\r\n }\r\n if (parsed.EmployeeNumber) {\r\n updateEmployeeRecordUser(\"employeeNumber\", parsed.EmployeeNumber);\r\n }\r\n if (parsed.PrimaryPhone && parsed.PrimaryPhone.length > 0) {\r\n updateEmployeeRecordUser(\r\n \"phone\",\r\n parsed.PrimaryPhone.replace(/[^\\d]/g, \"\")\r\n );\r\n }\r\n if (parsed.ADBusinessUnit) {\r\n updateEmployeeRecordUser(\"businessUnit\", parsed.ADBusinessUnit);\r\n }\r\n if (parsed.ADManagerEmail) {\r\n updateEmployeeRecordUser(\"managerEmail\", parsed.ADManagerEmail);\r\n }\r\n if (parsed.ADPhysicalDeliveryOfficeName) {\r\n updateEmployeeRecordUser(\r\n \"physicalDeliveryOfficeName\",\r\n parsed.ADPhysicalDeliveryOfficeName\r\n );\r\n }\r\n if (parsed.Department) {\r\n updateEmployeeRecordUser(\"department\", parsed.Department);\r\n }\r\n\r\n if (parsed.county && parsed.state) {\r\n updateEmployeeRecordUser(\"county\", parsed.county);\r\n updateEmployeeRecordUser(\"state\", parsed.state);\r\n dispatch(setSelectedCounty({ \"county\": parsed.county, \"state\": parsed.state }));\r\n }\r\n setUserAuthenticated(true);\r\n }\r\n }, [props]);\r\n\r\n\r\n\r\n const classes = useStyles();\r\n\r\n const loginOktaSaml = () => {\r\n let smallCallBaclUrl = window.location.origin + \"/login\";\r\n window.location.href =\r\n NetworkSettings.fullApiUrl +\r\n \"saml/Login?returnUrl=\" +\r\n smallCallBaclUrl;\r\n };\r\n\r\n return (\r\n
\r\n
\r\n {disableGMRConnectWeb ?\r\n
\r\n We're still working on this page.\r\n We'll let you know as soon as it's ready.\r\n
:\r\n
\r\n \r\n Continue With Okta\r\n \r\n
}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LoginTest;\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button } from '@material-ui/core';\r\nimport { LearnMoreLink } from '@components/atoms';\r\nimport { SectionHeader } from '@components/molecules';\r\nimport { Section } from '@components/organisms';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n formContainer: {\r\n height: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n minHeight: `calc(100vh - ${theme.mixins.toolbar['@media (min-width:600px)'].minHeight}px)`,\r\n maxWidth: 500,\r\n margin: `0 auto`,\r\n },\r\n section: {\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n },\r\n label: {\r\n fontWeight: 'bold',\r\n textTransform: 'uppercase',\r\n },\r\n}));\r\n\r\nconst NotFound = () => {\r\n const classes = useStyles();\r\n\r\n const handleClick = () => {\r\n window.history.back();\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n There’s nothing here, but if you feel this is an error please{' '}\r\n \r\n \r\n }\r\n titleProps={{\r\n variant: 'h3',\r\n }}\r\n labelProps={{\r\n color: 'secondary',\r\n className: classes.label,\r\n variant: 'h5',\r\n }}\r\n ctaGroup={[\r\n \r\n Go Back\r\n ,\r\n ]}\r\n disableGutter\r\n />\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default NotFound;","import React from 'react';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n container: {\r\n position: 'relative',\r\n width: '100%',\r\n overflow: 'hidden',\r\n paddingTop: '56.25%', /* 16:9 Aspect Ratio */\r\n },\r\n responsiveIframe: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n bottom: 0,\r\n right: 0,\r\n width: '100%',\r\n height: '100%',\r\n border: 'none',\r\n }\r\n }));\r\n\r\nconst Map = () => {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n