{"version":3,"sources":["utils/site-context.js","app/views/hooks/useDialogs.js","utils/file.js","api/lab.js","app/state/ducks/lab/sagas.js","app/components/Drawer/DrawerContent/Navigation/feature-config.js","app/state/ducks/dialog/sagas.js","app/state/ducks/sagas.js","app/views/hooks/useMainMenu.js","app/views/layouts/Header/MainMenu/index.js","app/views/themes/index.js","config.js","app/components/Header/AppBarStyled.js","app/components/Header/HeaderContent/Search.js","app/components/Transitions.js","app/components/Header/HeaderContent/Profile/ProfileTab.js","app/views/components/lists/DivisionListNav.js","app/views/layouts/Header/AuthMenu/DivisionSwitcher/index.js","app/views/themes/theme/default.js","app/views/themes/theme/theme1.js","app/views/themes/theme/theme2.js","app/views/themes/theme/theme3.js","app/views/themes/theme/theme4.js","app/views/themes/theme/theme5.js","app/views/themes/theme/theme6.js","app/views/themes/theme/theme7.js","app/views/themes/theme/theme8.js","app/views/themes/theme/index.js","app/views/themes/palette.js","app/views/themes/typography.js","app/views/themes/shadows.js","app/views/themes/overrides/Alert.js","app/views/themes/overrides/Badge.js","app/views/themes/overrides/Button.js","app/views/themes/overrides/Checkbox.js","app/views/themes/overrides/Chip.js","app/views/themes/overrides/Fab.js","app/views/themes/overrides/OutlinedInput.js","app/views/themes/overrides/PaginationItem.js","app/views/themes/overrides/Radio.js","app/views/themes/overrides/Slider.js","app/views/themes/overrides/Switch.js","app/views/themes/overrides/index.js","app/views/themes/overrides/Accordion.js","app/views/themes/overrides/AppBar.js","app/views/themes/overrides/AccordionDetails.js","app/views/themes/overrides/AccordionSummary.js","app/views/themes/overrides/AlertTitle.js","app/views/themes/overrides/Autocomplete.js","app/views/themes/overrides/ButtonBase.js","app/views/themes/overrides/ButtonGroup.js","app/views/themes/overrides/CardContent.js","app/views/themes/overrides/Dialog.js","app/views/themes/overrides/DialogContentText.js","app/views/themes/overrides/DialogTitle.js","app/views/themes/overrides/DataGrid.js","app/views/themes/overrides/IconButton.js","app/views/themes/overrides/InputBase.js","app/views/themes/overrides/InputLabel.js","app/views/themes/overrides/LinearProgress.js","app/views/themes/overrides/Link.js","app/views/themes/overrides/ListItemButton.js","app/views/themes/overrides/ListItemIcon.js","app/views/themes/overrides/LoadingButton.js","app/views/themes/overrides/Pagination.js","app/views/themes/overrides/Popover.js","app/views/themes/overrides/Tab.js","app/views/themes/overrides/TableBody.js","app/views/themes/overrides/TableCell.js","app/views/themes/overrides/TableFooter.js","app/views/themes/overrides/TableHead.js","app/views/themes/overrides/TablePagination.js","app/views/themes/overrides/TableRow.js","app/views/themes/overrides/Tabs.js","app/views/themes/overrides/TextField.js","app/views/themes/overrides/Select.js","app/views/themes/overrides/StepLabel.js","app/views/themes/overrides/List.js","app/views/themes/overrides/ToggleButton.js","app/views/themes/overrides/TreeItem.js","utils/theme.js","app/views/layouts/Header/AuthMenu/UIPalette/ThemeForm.js","app/views/layouts/Header/AuthMenu/UIPalette/index.js","app/components/Header/HeaderContent/Profile/EditProfile.js","app/components/Header/HeaderContent/Profile/index.js","app/components/Header/HeaderContent/index.js","app/components/Header/NavHeader.js","app/components/Header/index.js","app/routes/configs.js","app/routes/index.js","app/views/components/QRCodeScanner.js","app/views/enhancers/withQRScanClick.js","app/views/layouts/BottomNav/index.js","app/views/layouts/MaintenanceMode.js","app/views/layouts/DivisionDisabled.js","app/components/Drawer/DrawerHeader/DrawerHeaderStyled.js","app/components/Drawer/DrawerHeader/index.js","app/components/Drawer/DrawerContent/Navigation/NavItem.js","app/components/Drawer/DrawerContent/Navigation/NavGroup.js","app/components/Drawer/DrawerContent/Navigation/index.js","app/components/Drawer/DrawerContent/index.js","app/components/Drawer/MiniDrawerStyled.js","app/components/Drawer/index.js","app/views/layouts/AppContent.js","app/views/components/buttons/AppUpdateButton/index.js","app/views/hooks/useNotifier.js","app/views/components/dialogs/Loading.js","app/views/components/dialogs/Alert.js","app/views/components/dialogs/Confirm.js","app/views/components/dialogs/Details.js","app/views/components/Notifications/index.js","app/index.js","serviceWorkerRegistration.js","index.js","app/views/components/SceneLoadingProgress.js","api/user.js","utils/form.js","utils/error-handling.js","api/client.js","utils/internationalization.js","utils/browser.js","api/general.js","app/views/hooks/useTranslateDictionary.js","app/state/ducks/actionPhases.js","app/state/ducks/user/actions.js","app/state/ducks/appinit/actions.js","app/state/ducks/menu/actions.js","app/state/ducks/dialog/actions.js","app/state/ducks/lab/actions.js","app/state/ducks/actions.js","app/views/contexts/ThemeConfigContext.js","utils/string.js","utils/aws.js","utils/saga.js","utils/redux.js","app/state/ducks/menu/selectors.js","app/views/hooks/useTranslateValue.js","app/views/hooks/useTranslateMapValues.js","app/state/ducks/lab/selectors.js","app/views/hooks/useUserRoles.js","app/views/hooks/useUserActions.js","utils/getShadow.js","app/state/ducks/appinit/selectors.js","utils/http.js","app/state/ducks/user/sagas.js","app/state/store.js","app/state/ducks/appinit/index.js","app/state/ducks/appinit/reducers.js","app/state/ducks/user/index.js","app/state/ducks/user/reducers.js","app/state/ducks/menu/index.js","app/state/ducks/menu/reducers.js","app/state/ducks/dialog/reducers.js","app/state/ducks/dialog/index.js","app/state/ducks/lab/index.js","app/state/ducks/lab/reducers.js","app/state/ducks/dialog/noticeReducers.js","utils/intake-form.js","utils/image.js","utils/formik.js","app/views/components/form/mui-formik/TextField.js","app/views/components/progress/CircularProgressStyled.js","schemas/commonSchemas.js","app/views/hooks/useAppInit.js","utils/address.js","app/views/components/layout/CenteredContentContainer.js","app/views/hooks/useThemeConfig.js","app/state/ducks/router/selectors.js","app/views/components/CdnImg.js","utils/org.js","app/state/ducks/dialog/selectors.js","utils/logger.js","utils/local-storage.js","utils/env.js","app/views/components/form/HelperText.js","app/state/ducks/appinit/sagas.js","app/config/health-data/constants.js","app/views/components/AvatarStyled.js","api/gatekeeper.js","app/views/layouts/Scene/SceneBackButton.js","app/views/layouts/Scene/SceneTitle.js","app/views/layouts/Scene/SceneHeader.js","app/views/layouts/Scene/SceneScrollableContent.js","app/views/layouts/Scene/SceneContent.js","app/views/layouts/Scene/index.js","app/views/components/buttons/DeluxeButton/index.js","app/views/components/form/mui-formik/SelectField.js","app/views/components/form/FormikDebug.js","app/views/components/form/mui-formik/FormikDebugControl.js","app/views/components/form/mui-formik/SubmitButton.js","app/views/components/form/formHelpers.js","app/state/ducks/user/selectors.js","api/admin.js","app/views/components/icons/TestTubeIcon.js","app/views/components/MarkDownContainer.js","app/views/components/buttons/IconAndText.js","app/views/components/icons/ReloadIcon.js","app/views/scenes/personal/IntakeForms/Form/steps/common/SelectField.js","app/views/scenes/personal/IntakeForms/Form/steps/common/AnswerMessages.js","app/views/components/progress/LinearProgress.js","app/state/ducks/auth/index.js","app/state/ducks/gatekeeper/index.js","app/state/ducks/auth/selectors.js","app/state/ducks/gatekeeper/selectors.js","app/components/MainCard.js","app/views/components/icons/SyringeIcon.js","utils/temporal/index.js","api/auth.js","app/views/components/buttons/DeluxeButton/Loader.js","app/views/themes/overrides/Typography.js","utils/routing.js","app/views/components/SuspenseAndLoader.js","app/views/components/icons/QRCodeIcon.js","app/views/hooks/useAdminMenu.js","app/views/components/buttons/BoxedIconAndText.js","app/views/components/buttons/HugeIconAndTextButton.js","utils/getColors.js","app/state/ducks/selectors.js"],"names":["SITE_CONTEXT_PATH","setSiteContext","_ref","location","invitationId","setLandingPage","siteContext","getSiteContext","urlDivision","getSiteDivisionFromLocation","division","store","set","get","_ref2","getAndStoreConstants","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref4","_ref4$noOrgCache","noOrgCache","_ref4$noLocCache","noLocCache","_getSiteContext","queryString","url","response","_args","arguments","wrap","_context","prev","next","length","undefined","qs","stringify","_","pickBy","v","concat","client","sent","abrupt","setConstants","data","stop","apply","constants","getAndStoreCustomRoles","_ref6","_callee2","_ref5","oldConstants","newConstants","roles","_context2","clone","map","role","org","CUSTOM_USER_ROLES","_x","matches","pathname","toLowerCase","match","getPwaMode","result","browser","getBrowserName","window","navigator","standAlone","fullScreen","screenTop","screenY","inMaintenanceMode","_actions$dialog","actions","dialog","notice","alert","confirm","details","loading","alertState","useSelector","getAlert","dispatch","useDispatch","params","add","removeNotice","removeNotification","open","Promise","resolve","callback","ask","close","getFileNameExt","name","isString","split","pop","hasImageFileExt","test","getMimeTypeAcceptsStr","_ref$imagesOnly","imagesOnly","mimeTypesByExt","arr","chain","values","filter","startsWith","value","uniq","join","getMimeTypeFromFileName","fileName","getFileExtFromMimeType","mimeType","isFileInputVal","val","isPlainObject","isNewFile","isUploadedFile","isNewFileUpload","file","File","isPreviousFileUpload","getReducedFileUploadBlob","blob","getReducedImageBlob","getZipFileContent","_callee3","fileInfo","progressCallback","urls","totalFiles","fileNum","blobsByFileKey","zip","_context3","files","flatten","keyBy","mapValues","size","async","mapValuesLimit","asyncify","getAwsFileForZip","t0","_x2","_x3","JSZip","forEach","_ref7","folderName","otherBlobsByFileName","isEmpty","_ref8","Blob","base64","_x4","generateAsync","type","_ref9","_callee4","imageDataUri","cleanedBase64","res","_context4","getBase64ImageFromAWS","replace","base64ToBlob","getFileFromAwsS3","responseType","_x5","getBlob","_ref10","blobOrData","bom","getBlobUrl","URL","createObjectURL","webkitURL","downloadFile","_ref11","msSaveBlob","blobURL","tempLink","document","createElement","style","display","href","setAttribute","download","body","appendChild","click","setTimeout","removeChild","revokeObjectURL","previewFile","_ref12","_browser$getPlatform","getPlatform","vendor","isTouchEnabled","msSaveOrOpenBlob","previewUrl","target","getPatient","_response","_response$data","patientId","divisionId","_ref$isMedStaff","isMedStaff","_ref$canViewPHI","canViewPHI","_ref$selfTest","selfTest","_ref$visitType","visitType","path","getLabPath","getLabAccounts","divId","createTest","_ref5$selfTest","agreements","_ref5$reuseIntakeForm","reuseIntakeForm","fd","createFormData","objectWithoutNonInfoValues","tz","getLocalZoneName","multiPartClient","post","updateTest","_ref7$selfTest","put","deleteTest","id","delete","submitSelfTestImages","_callee5","_context5","errorMessage","getTest","_callee6","testId","_context6","_x6","createVacc","_callee7","vacc","_ref11$reuseIntakeFor","_context7","_x7","updateVacc","_ref14","_callee8","_ref13","_context8","mapStringValsToBooleans","timeout","getFormCompatibleVaccData","_x8","deleteVacc","getVacc","_ref15","_callee9","vaccId","_context9","_x9","mapBooleanValsToStrings","getActionItems","_ref16","_callee10","_context10","getFilteredQueryString","_x10","getImageDataUriFromApi","_ref17","_callee11","_context11","blobToDataURL","_x11","initialHomelessDocs","_ref18","_callee12","formId","_context12","_x12","getScheduledVisitStats","_ref20","_callee13","_ref19","startDate","endDate","filters","_ref19$asCSV","asCSV","_getTimePeriodRange","startTime","endTime","_context13","getTimePeriodRange","unit","_x13","getIntakeFormSummary","_ref22","_callee14","_ref21","_context14","_x14","changeTestResult","_ref24","_callee15","_ref23","_context15","_x15","getVisitCardVisits","_ref26","_callee16","_ref25","_context16","_x16","_ref27","_ref27$isMedStaff","_ref27$canViewPHI","_ref27$selfTest","getInsuranceEligibility","_ref29","_callee17","_ref28","patientInfo","insuranceInfo","_context17","_x17","getClaimInformation","_ref31","_callee18","_ref30","_context18","_x18","submitInsuranceClaim","_ref32","_callee19","_context19","_x19","getInsurerGroups","_ref33","_callee20","_context20","getInsurers","_ref35","_callee21","_ref34","key","_context21","_x20","watchLoadPatient","_marked2","watchSaveTest","_marked3","submitSelfTest","_marked4","watchSubmitSelfTest","_marked5","watchLoadTest","_marked6","watchSaveVacc","_marked7","watchLoadVacc","_marked8","watchLoadActionItems","_marked9","watchInsuranceEligibility","_marked10","watchClaimInfoFetch","_marked11","watchSubmitClaim","_marked12","populateInsurerGroups","_marked13","watchGetInsurerGroups","_marked14","watchGetInsurers","_actions$lab","lab","loadInsuranceEligibility","loadInsuranceClaimInfo","setInsuranceClaim","fetchInsurers","fetchInsurerGroups","loadPatient","_ref$payload","payload","currentVisitType","patientAndIntakeForm","getDivisionId","select","getIsMedStaff","getCanViewPHI","call","success","cancel","handleError","e","alertCfg","title","alertOnly","sentryCfg","tags","section","func","extra","cancelled","failure","push","finish","takeEvery","start","_marked","saveTest","_ref2$payload","submittedTest","_objectWithoutProperties","_excluded","_ref2$meta","meta","resetForm","cleanTest","isNew","newResult","actionPhrase","errorConfigs","resData","getReuseIntakeForm","omit","recordUserScanningUser","scanneeId","locId","toLower","_objectSpread","fork","loadActionItems","Error","testData","_testData$payload","_yield$call","resultImg","_iterator","_step","img","testInfo","_createForOfIteratorHelper","s","n","done","err","f","flowTestImg","loadTest","testAndPatientAndIntakeForm","saveVacc","submittedVacc","_ref4$meta","cleanVacc","recordingReaction","hadReaction","message","loadVacc","vaccAndPatientAndIntakeForm","urgency","currentLocId","getCurrentLocId","checkInsuranceEligibility","_yield$call2","getInsuranceClaimInfo","claim","submitClaim","submitResponse","_yield$call3","_context22","populateInsurers","_yield$call4","_context23","_context24","systemFeatures","systemRoles","watchAsk","watchNotice","notificationTypes","actionType","icon","info","warning","error","dialogConfig","_yield$race","yes","race","take","no","createNotificationAction","config","notification","parseInt","Math","random","toString","addNotification","removeNotificationAction","addNotice","_ref2$payload$urgency","_ref2$payload$duratio","duration","_actions$map","_actions$map2","acceptBtn","denyBtn","action","_jsx","className","canDismiss","Array","isArray","label","handler","_slicedToArray","remove","rootSaga","all","watchInitApp","watchHandleError","watchLogin","watchLogout","watchSavePass","items","getMainMenuItems","trans","useTranslateDictionary","nameSpace","rest","camelCase","isOpen","getIsOpen","onToggle","menu","toggle","useStyles","makeStyles","spacing","palette","itemRoot","height","fontSize","color","primary","contrastText","borderBottom","light","backgroundColor","main","divider","_useMainMenu","useMainMenu","useHistory","classes","Drawer","onClose","anchor","children","List","item","i","Divider","ListItem","button","onClick","menuItemName","root","ThemeLoader","props","themeState","setThemeState","ThemeContext","Provider","StyledEngineProvider","injectFirst","_jsxs","ThemeProvider","theme","createTheme","CssBaseline","drawerWidth","AppBarStyled","styled","AppBar","shouldForwardProp","prop","matchDownMD","useMediaQuery","breakpoints","down","zIndex","drawer","maxHeight","transition","transitions","create","easing","sharp","leavingScreen","marginLeft","width","enteringScreen","Search","Box","sx","ml","xs","md","FormControl","Transitions","forwardRef","ref","position","others","positionSX","transformOrigin","Grow","Fade","appear","enter","exit","defaultProps","PROFILE_MENUS","ProfileTab","handleLogout","onSwitchDivision","onUIPalette","onEditProfile","useTheme","getRole","user","getUser","_useState","useState","_useState2","languageSwitchOpen","setLanguageSwitchOpen","i18n","useTranslation","logout","useUserActions","subs","appTitle","_useDialogs","useDialogs","languages","_useState3","_useState4","selectedIndex","setSelectedIndex","deleteMyAccount","okayToDelete","deleteAccountWarning","question","deleteAccountWarningText","deleteInProgress","deleteUserAccount","accountDeletedAlert","accountDeletedAlertText","handleListItemClick","event","index","languageList","lang","ListItemButton","pl","changeLanguage","selectLanguage","ListItemText","_Fragment","component","p","minWidth","grey","selected","ListItemIcon","SwapOutlined","TranslationOutlined","ExpandLess","ExpandMore","Collapse","in","overflowY","unmountOnExit","disablePadding","includes","FormatPainterOutlined","EditOutlined","UserDeleteOutlined","LogoutOutlined","useMemo","getOrgProperty","marginTop","marginBottom","_ref2$isOpen","handleClose","ModalProps","Typography","variant","align","DivisionListNav","Default","colors","blue","red","gold","cyan","green","greyColors","A50","A100","A200","A400","A700","A800","lighter","dark","darker","secondary","A300","propTypes","PropTypes","object","Theme1","mode","primaryColors","errorColors","warningColors","infoColors","successColors","Theme2","Theme4","Theme5","Theme6","Theme7","Theme8","Theme","presetColor","Theme3","any","Palette","presetDarkPalettes","presetPalettes","greyPrimary","greyAscent","greyConstant","_toConsumableArray","paletteColor","ThemeOption","common","black","white","text","alpha","disabled","background","paper","default","fontFamily","htmlFontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","h1","fontWeight","lineHeight","h2","h3","h4","h5","h6","caption","body1","body2","subtitle1","subtitle2","overline","textTransform","CustomShadows","z1","primaryButton","secondaryButton","errorButton","warningButton","infoButton","successButton","greyButton","getColorStyle","getColors","borderColor","buttonShadow","shadows","getShadow","commonShadow","boxShadow","outline","outlineOffset","checkboxStyle","sizes","getSizeStyle","iconSize","top","left","getColor","borderRadius","border","focusStyle","radioStyle","dotSize","switchStyle","base","thumb","trackRadius","padding","transform","ComponentsOverrides","merge","MuiAccordion","disableGutters","square","elevation","styleOverrides","Accordion","MuiAppBar","MuiAccordionDetails","borderTop","AccordionDetails","MuiAccordionSummary","expandIcon","RightOutlined","flexDirection","minHeight","expandIconWrapper","content","AccordionSummary","primaryDashed","MuiAlert","filled","marginRight","Alert","MuiAlertTitle","MuiAutocomplete","popupIndicator","clearIndicator","defaultLightBadge","MuiBadge","standard","Badge","primaryShadow","disabledStyle","iconStyle","MuiButton","disableElevation","opacity","contained","outlined","endIcon","startIcon","dashed","shadow","containedPrimary","containedSecondary","containedError","containedSuccess","containedInfo","containedWarning","outlinedPrimary","outlinedSecondary","outlinedError","outlinedSuccess","outlinedInfo","outlinedWarning","textPrimary","textSecondary","textError","textSuccess","textInfo","textWarning","sizeExtraSmall","Button","MuiButtonBase","disableRipple","MuiButtonGroup","MuiCardContent","paddingBottom","MuiCheckbox","checkedIcon","CheckSquareFilled","indeterminateIcon","MinusSquareFilled","colorPrimary","colorSecondary","colorSuccess","colorWarning","colorInfo","colorError","Checkbox","defaultLightChip","MuiChip","sizeLarge","combined","Chip","MuiDialog","MuiDialogContentText","DialogContentText","MuiDialogTitle","separatorColor","MuiDataGrid","borderBottomColor","DataGrid","MuiFab","Fab","MuiIconButton","sizeMedium","sizeSmall","IconButton","MuiInputBase","MuiInputLabel","InputLabel","MuiLinearProgress","bar","MuiLink","underline","MuiListItemButton","MuiListItemIcon","MuiLoadingButton","textShadow","MuiOutlinedInput","input","notchedOutline","inputSizeSmall","inputMultiline","OutlinedInput","MuiPagination","shape","MuiPaginationItem","PaginationItem","MuiPopover","customShadows","Popover","MuiRadio","Radio","MuiSlider","track","borderWidth","rail","valueLabel","Slider","MuiSwitch","boxSizing","switchBase","margin","Switch","MuiTab","Tab","hoverStyle","MuiTableBody","TableBody","commonCell","right","MuiTableCell","head","footer","TableCell","MuiTableFooter","TableFooter","MuiTableHead","TableHead","MuiTablePagination","selectLabel","displayedRows","MuiTableRow","paddingRight","paddingLeft","MuiTabs","vertical","overflow","MuiTextField","MuiSelect","MuiStepLabel","anticon","MuiToggleButton","ToggleButton","MuiTreeItem","iconContainer","getTheme","themeDirection","themeTypography","themeCustomShadows","themeOptions","sm","lg","xl","direction","mixins","toolbar","paddingTop","typography","themes","components","componentsOverride","themeItem","alignItems","themeSquare","borderStyle","cursor","themeSelected","handleSubmit","setFieldValue","fontFamilies","setFontFamilies","themesSet","setThemesSet","_useThemeConfig","useThemeConfig","_useState5","_useState6","selectedTheme","setSelectedTheme","useEffect","fontsList","themesSetObject","_i","_themes","onSubmit","Grid","container","mt","_themesSet$key$palett","clsx","_defineProperty","Field","TextField","fullWidth","hintText","onChange","SelectField","itemData","multiple","required","SubmitButton","stacked","FormikDebugControl","form","string","schemas","array","schema","aSchema","of","min","_ref$isOpen","_useContext","useContext","setTheme","t","appTheme","getAppTheme","save","useCallback","updateTheme","then","catch","resolveErrorMessage","Scene","Formik","initialValues","validationSchema","validateOnMount","formikProps","ThemeForm","isEdited","setEdited","setLoading","masterPass","getMasterPass","emailFromPass","email","setEmail","saveProfile","validEmail","userData","isValidSync","setUserProperty","Dialog","maxWidth","DialogTitle","DialogContent","m","autoComplete","evt","DialogActions","CircularProgressStyled","autoFocus","Profile","userId","first","last","divisionName","getDivisionProperty","anchorRef","useRef","setOpen","divSwitcherOpen","setDivSwitcherOpen","uiPaletteOpen","setUiPaletteOpen","_useState7","_useState8","editProfileOpen","setEditProfileOpen","current","contains","handleSwitchDivision","handleUIPalette","handleEditProfile","flexShrink","ButtonBase","bgcolor","prevOpen","Stack","Avatar","alt","PersonIconStyled","Popper","placement","anchorEl","disablePortal","popperOptions","modifiers","options","offset","TransitionProps","Paper","ClickAwayListener","onClickAway","MainCard","CardContent","px","pt","justifyContent","DivisionSwitcher","UIPalette","EditProfile","HeaderContent","matchesXs","getOrg","homeLink","src","_ref$open","Header","handleDrawerToggle","mainHeader","Toolbar","edge","MenuFoldOutlined","MenuUnfoldOutlined","appBar","NavHeader","exact","enabled","personalDashBoardPath","authRequired","userRoles","features","forGuardian","getRoutesFromConfigs","routeConfigs","instructions","TextBlock","gutterBottom","_useTranslateDictiona","mb","CdnImg","transforms","crop","DrawerHeader","getThisAppVersion","bool","NavItem","level","state","activeItem","drawerOpen","itemTarget","listItemProps","Link","to","external","itemHandler","Icon","itemIcon","isSelected","findIndex","textColor","iconSelectedColor","py","borderRight","chip","avatar","NavGroup","_item$children","navCollapse","menuItem","subheader","Navigation","support","admin","nav","supportMenus","adminMenus","navMenus","labMenus","adminMenuSet","useAdminMenu","isAdminMenu","navItem","menuSet","menuItems","navGroups","DrawerContent","flexGrow","openedMixin","overflowX","closedMixin","MiniDrawerStyled","whiteSpace","MainDrawer","drawCloseWidth","drawerContent","drawerHeader","keepMounted","backgroundImage","bottomNav","Pages","getUserId","routes","AppBarControls","onHomePage","useLocation","hasAnyRoles","useUserRoles","inFullAreaPage","inAdminArea","classList","MaintenanceMode","df","DivisionDisabled","updateApp","useAppInit","CenteredContentContainer","HugeIconAndTextButton","ReloadIcon","displayed","useNotifier","notifications","getNotifications","enqueueSnackbar","useSnackbar","onExit","removeDisplayed","storeDisplayed","styler","withStyles","progress","Loading","_React$Component","_classCallCheck","_callSuper","_inherits","_createClass","_this$props","this","circleSize","typographyProps","isNumber","alignContent","LinearProgress","CircularProgress","React","Component","compose","connect","_ref$buttonLabel","buttonLabel","afterClose","_ref$signOutAfterClos","signOutAfterClose","dialogContentText","ariaDescription","isValidElement","isNonEmptyArray","txt","debugMessage","afterCloseFunc","isEnv","Confirm","_this","autoBindReact","how","respond","decide","yesButtonLabel","noButtonLabel","cancelButtonLabel","forceYes","cancelable","_actions$dialog$confi","respondedYes","isBoolean","flex","Transition","Slide","DetailDialog","scroll","TransitionComponent","CloseIcon","connector","Details","LicenseInfo","setLicenseKey","env","_useAppInit","initApp","initializing","initialized","appUpdateBegun","__appTheme","presetAppFontFamily","__appFontFamily","themeInit","SnackbarProvider","anchorOrigin","horizontal","Sentry","fallback","AppUpdateButton","LocalizationProvider","dateAdapter","AdapterLuxon","Notifications","SceneLoadingProgress","themeBg","AppContent","MainMenu","Boolean","hostname","appVersion","console","getBrowser","launch","reduxStore","configureStore","sagaMiddleware","run","initializeErrorReporting","ReactDOM","render","ReduxProvider","ConfigProvider","ConnectedRouter","history","Route","App","getElementById","loadScript","attrs","crossorigin","serviceWorker","ready","registration","unregister","_useTheme","upsertPass","_pass$vitals","pass","savedPass","existingPass","latestIntakeForm","vitals","birthDate","getAnniversaryDateISO","getCommonSchemas","isValid","mapAwsS3UrlsToFileInputVals","obj","getFamilyVisits","getIntakeForms","getIntakeForm","getFormCompatibleIntakeFormData","getIntakeFormGuardian","_yield$client$get","getLatestIntakeFormOfUser","upsertIntakeForm","intakeForm","recordScheduledVisit","cosignIntakeForm","submitSymptomSurvey","survey","submitSMART","_yield$client$post","generateNewQRSecret","_yield$client$post2","_yield$client$post3","_yield$client$post4","getUserStatus","calculateDRI","userPhysicalAttributes","getDRIStatus","getFoodPreferences","preferences","isHealthHistoryInit","healthHistoryStatus","status","HEALTH_HISTORY_STATUS","uninitialized","initHealthHistory","_callee22","healthHistoryInit","fail","refreshHealthHistory","_callee23","healthHistoryRefresh","getHealthHistory","_callee24","healthRecords","healthParam","searchFood","_callee25","search","_context25","getDiarySummary","_callee26","_context26","getDiaryDetail","_callee27","date","_context27","saveDiaryDetail","_callee28","diaryEntry","_context28","_x21","getAlternateFoods","_ref37","_callee29","_ref36","category","_context29","_x22","searchForFoodByUpcaId","_ref39","_callee30","_ref38","_context30","_x23","setRecipe","_ref40","_callee31","recipe","_context31","_x24","getRecipes","_ref41","_callee32","_context32","_x25","searchFoodScore","_ref43","_callee33","_ref42","fdcId","_context33","_x26","searchUpcCodeFoodScore","_ref45","_callee34","_ref44","gtinUpc","_context34","_x27","getDiabetesProfiles","_ref46","_callee35","_context35","getDiabetesFoodGuide","_ref47","_callee36","_context36","disease","getFoodAttributes","_ref48","_callee37","_context37","getFoodConstants","_ref49","_callee38","_context38","getFoodCategories","_ref50","_callee39","_context39","submitFoodAttributes","_ref51","_callee40","_context40","_x28","submitFoodConstants","_ref52","_callee41","_context41","_x29","submitFoodCategories","_ref53","_callee42","_context42","_x30","personNameDefault","middleInitial","suffix","emptyPass","photoUrl","phoneNumber","gender","Date","govtIdCardFront","selfiePhoto","govtIdExists","getCheckBoxDefsFromTextList","lines","getLinesFromTextBlock","snakeStartCase","arr2keyValPairs","arr2LabelValuePairs","obj2LabelValuePairs","getCheckBoxDefsFromIdsLabels","idLabelPairs","_ref$sorted","sorted","thru","sortBy","quoteObjectPaths","paths","has","sentryCapturingEnabled","integrations","TracingIntegrations","BrowserTracing","tracingOrigins","beforeSend","hint","originalException","stringRegexTest","code","isAppOutOfDateError","ignoreErrorNames","ignoreErrorsInBrowserNames","stateTransformer","secretStatePaths","unset","ignoreErrors","denyUrls","dsn","release","environment","normalizeDepth","tracesSampleRate","attachStacktrace","isPerseusReachable","getAppMeta","unknownErrorT","isError","isAxiosError","instance","multiPartInstance","source","axios","CancelToken","requestInterceptor","cancelToken","token","baseURL","clientApiURL","headers","withCredentials","addAxiosRetry","interceptors","request","use","Accept","formDataObj","formData","definedPairs","_yield$getBlobifiedFo","formDataWithBlobRefs","blobs","combinedPairs","isObjectLike","FormData","objectWithoutUndefinedValues","getBlobifiedFormData","mapValuesToJSON","s3CustomerKey","append","iter","recursionTest","blobKey","goodStuff","dataUri","mapValuesDeepAsync","i18init","Backend","LanguageDetector","initReactI18next","init","debug","ns","defaultNS","supportedLngs","fallbackLng","interpolation","escapeValue","transVal","getNameSpaces","collection","getVisitTypeInterpolation","getDynamicQuestionTransNameSpace","orgId","nameSpaceScope","getNameSpaceScope","getAgreementTransNameSpace","Browser","IsTouchEnabled","Bowser","getParser","userAgent","maxTouchPoints","msMaxTouchPoints","nanoid","checkForAppUpdate","_meta$data","thisVersion","latestVersion","version","semComp","envVer","storeVer","isNonEmptyString","_ref$path","keys","_ref$formatter","formatter","_ref$asValuesLabels","asValuesLabels","_ref$sort","sort","_useTranslation","currentLng","language","bundle","getResourceBundle","keysArray","getKeysArray","getFullPath","invert","fromPairs","toPairs","_ref3$path","basic","START","SUCCESS","FAILURE","fluxStandard","promise","formik","createActions","USER","LOGIN","phases","LOGOUT","UPDATE","EDIT_PASS","SAVE_PASS","GET_QR","SET_LINKED_SMART","SET_USER_ETHNICITY","APPINIT","BACKGROUND_SYNC","STOP","HANDLE_ERROR","BEGIN_APP_UPDATE","THEME","MENU","TOGGLE","ACTIVE_ITEM","DRAWER_OPEN","DIALOG","NOTICE","ADD_NOTIFICATION","REMOVE_NOTIFICATION","ADD","REMOVE","LOADING","OPEN","CLOSE","ALERT","CONFIRM","ASK","YES","NO","CANCEL","DETAILS","LAB","LOAD_PATIENT","SAVE_TEST","SUBMIT_SELF_TEST","LOAD_TEST","NEW_TEST","EDIT_TEST","CANCEL_EDIT","SAVE_VACC","LOAD_VACC","NEW_VACC","EDIT_VACC","CANCEL_EDIT_VACC","LOAD_ACTION_ITEMS","SET_CURRENT_VISIT_TYPE","LOAD_INSURANCE_ELIGIBILITY","LOAD_INSURANCE_CLAIM_INFO","SET_INSURANCE_CLAIM","FETCH_INSURER_GROUPS","FETCH_INSURERS","UPDATE_STEP_STATUS","appinit","initialState","onChangeContainer","onChangeLocalization","onChangeMode","onChangePresetColor","onChangeDirection","onChangeMiniDrawer","onChangeFontFamily","createLocalStorageStateHook","createContext","_useContext2","setConfig","miniDrawer","getFullName","o","trim","getGenderLabel","find","str","rgx","getVisitTypeName","visitTypes","getPassLabel","commaListWithAnd","list","_ref$quoted","quoted","formatted","snakeCase","startCase","axiosInstance","downloadInstance","_ref$metaOnly","metaOnly","_iter","_yield$getBlobAndMeta","metaData","_getAwsS3MetaDataDeSt","inline","otherMetaData","isAwsBucketUrl","getBlobAndMeta","getAwsS3MetaDataDeStringified","getImageDataUri","parallel","cb","apiClient","boolified","mapValuesDeep","num","toNumber","isFinite","bigData","getClient","Pragma","Expires","_ref8$mimeType","_ref8$metaOnly","_yield$getFileFromAws","downloadFileFromAwsS3","encoding","_ref10$open","_require","require","triggerBase64Download","indexOf","isAwsImageUrl","getIntervalChannel","seconds","eventChannel","emitter","iv","setInterval","pollCount","clearInterval","log","getSagaCall","actionCreator","formikBag","waiting","WAIT_FOR_ACTION","ERROR_ACTION","standardFluxThunk","icons","DashboardOutlined","SafetyCertificateOutlined","SafetyOutlined","DownloadOutlined","LayoutOutlined","IdcardOutlined","PhoneOutlined","MedicineBoxOutlined","FormOutlined","UnorderedListOutlined","SnippetsOutlined","CopyOutlined","DiffOutlined","HighlightOutlined","EnvironmentOutlined","FileAddOutlined","FileDoneOutlined","ContainerOutlined","UserAddOutlined","OneToOneOutlined","TeamOutlined","ScheduleOutlined","ReconciliationOutlined","UserSwitchOutlined","ExperimentOutlined","VaccinesOutlinedIcon","CookieOutlinedIcon","SecurityOutlinedIcon","CorporateFareOutlinedIcon","DesignServicesOutlinedIcon","WarehouseOutlinedIcon","MedicalInformationOutlinedIcon","ContactEmergencyOutlinedIcon","CoronavirusOutlinedIcon","BallotOutlinedIcon","FactCheckOutlinedIcon","MapsHomeWorkOutlinedIcon","ManageAccountsOutlinedIcon","MoneyCollectOutlined","MonitorHeartOutlinedIcon","AreaChartOutlined","NodeIndexOutlined","CalculateOutlinedIcon","ExploreOutlinedIcon","FastfoodOutlinedIcon","HeartOutlined","DinnerDiningOutlinedIcon","LocalHospitalIcon","HistoryOutlinedIcon","MedicationLiquidOutlinedIcon","createSelector","getCanUseAdmin","getUserPermissions","canUseAdmin","permissions","buildItemsArray","intakeFormEnabled","symptomSurveyEnabled","getOrgDivisionProperty","patientCallItem","printTestLabels","medStaffItems","reportingItems","pathPattern","everyone","byRole","byFeature","feature","bottom","getAllMainItems","getAdminMenuItems","allItems","addItems","roleItems","allowedFeatures","perm","view","featureName","compact","uniqBy","newItems","castArray","mapped","getLab","getCurrentDivId","currentDivId","getCurrentVisitType","patient","getIsEditingTest","isEditingTest","getIsEditingVacc","isEditingVacc","getIsInsuranceClaimExists","insuranceClaim","getTestingLoadingMessage","loadingPatient","getLoadingPatient","getLoadingTest","getLoadingVacc","getLastTestDate","lastTestDate","getTestDefaults","testDefaults","getTestInfo","loadingTest","getTestsToCallAbout","testsToCallAbout","getTotalTestsToCallAbout","getPendingTests","pendingTests","getTotalPendingTests","getVaccDefaults","vaccDefaults","getVaccInfo","vaccInfo","loadingVacc","getPendingVaccs","pendingVaccs","getTotalPendingVaccs","insurance","hasClaimSubmitted","getClaimInfo","getFormStepStatus","formStepStatus","someRoles","isAdmin","isAccountOwner","isSalesManager","isProspectAO","isSystemFeature","isSystemRole","userRole","_actions$user","login","update","savePass","editPass","orgStatus","updateUser","getAppInit","defaults","raxConfig","attach","postLoginPath","masterPassComplete","getDivision","loggingIn","isSiteOrgStaff","backgroundSync","scope","setTag","setUser","pick","getPostLoginPath","isMasterPassComplete","t1","delegateYield","logOut","_ref$meta","passId","masterUserId","isMasterPass","masterPassWasComplete","isNewCompanionPass","isNewPass","reducer","handleActions","produce","draft","assign","divIds","locIds","passes","currentPassId","ethnicity","loggingOut","editingPass","newOrPassId","_ref5$payload","qrSecret","_ref6$payload","linkedSMART","dataSourceType","_action$payload","_action$payload2","confirmationChoiceReducer","_ref2$payload$lastTes","_ref2$payload$intakeF","_ref2$payload$pending","pendingTestInfo","_ref2$payload$pending2","pendingVaccInfo","_testInfo$test","_testInfo$test2","_testInfo$test3","_testInfo$test4","_testInfo$location","phase","labAccountId","specimenSource","specimenSourceRequired","paid","_ref4$payload","_vaccInfo$vacc","_vaccInfo$vacc2","_vaccInfo$location","_excluded2","lotNumber","_draft$testDefaults","_draft$vaccDefaults","actionItems","insurerGroups","reduce","group","insurers","insurer","doseNumber","bodySite","route","createBrowserHistory","reducers","combineReducers","ducksReducers","notifyReducer","router","connectRouter","createSagaMiddleware","sentryReduxEnhancer","middlewares","routerMiddleware","thunk","waitForAction","reduxLogger","createLogger","predicate","getState","collapsed","timestamp","composeEnhancer","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","createStore","applyMiddleware","getIntakeFormStringAnswer","a","k","description","dateStart","dateEnd","fullAddressStr","getFullAddressString","getPrettyDate","dateTime","isValidISO","getPrettyDateFromISO","getFamilyIntakeFormVisitTypes","forms","flatMap","purpose","getAgreementConfigs","fullOrg","orgAgreements","divAgreements","orgLevels","divLevels","div","cfg","getStepConfigs","steps","getAgreementConfigsForPurposes","agreementConfigs","purposes","stepPurposes","arrayHasAnyValues","getCurrentAgreementsRequirements","configs","agreementKeys","lowestAgreementAge","dataCleaningConfig","forceString","omitBy","travelsLast10Days","isValidAddressObject","addresses","omitIfFalse","hadRespiratoryIllness","hadContactWithCovidPositive","isEssentialWorker","hadFeverLast30","omitNone","omitEmpty","getCleanedIntakeForm","_result$vitals","agreementTranslatedData","keysToOmit","boolKey","without","getIntakeFormConfigProperty","getStepIncludesExtraField","stepName","fieldName","_formData$addresses","hasNoSSN","str2bool","isVisiting","bool2str","visiting","getStepProp","intakeFormConfig","divSteps","fieldsProps","stepIsForCurrentPurposes","stepIsForCurrentPatientTypes","patientType","stepPatientTypes","setIntakeFormInProgress","snapshot","intakeFormsInProgress","getIntakeFormInProgress","removeIntakeFormInProgress","getPatientTypes","getFilteredDefaultValues","topKeys","defaultValues","getAllDefaultValues","agreementKey","patientTypes","iAgree","initials","signature","agreementPurposes","vals","getAgreementDefaultValues","getInitialValuesFromHealthIDs","getInitialValues","prefillData","dynamicQuestionNames","topKey","addNoneIfEmpty","hadSymptomsRecently","dynamicQuestions","answer","other","agreement","getDynamicQuestionInitialValues","getDynamicQuestionAgreementForAnswer","answerArray","answers","intersection","idConfigs","driversLicenseUS","numberValidator","isValidDriversLicenseUS","issuerType","preferred","stateIdUS","passport","workStudentId","idDefault","photo","photoBack","number","issuer","identificationDefaults","addressDefault","country","destinationDefault","address","insuranceAddressDefault","insuranceDefault","otherName","subscriberNumber","subscriberName","subscriberAddress","subscriberVitals","eligibility","secondaryInsuranceDefault","socialSecurityDefault","emptyFieldList","emptyFields","ksSchoolsDefaults","affiliated","patientTypeOther","studentGrade","teacherGrades","familyRelationship","familyRelationshipOther","specialQuestions","specialQuestionsDefault","nka","allergies","symptomsStarted","feverLast30Date","cosigner","home","guardianInfo","typeOf","otherType","socialSecurity","education","schoolGrade","identification","ksSchools","insuranceCarriers","previousTestInfo","testResult","last3to6days","over90daysAgo","previousVaccInfo","dosagePhase","manufacturer","symptoms","riskFactors","destination1","destination2","destination3","respiratoryIllness","sawProvider","symptomsDate","diagnosis","wasTreated","testedForFluOrStrep","fluOrStrepResult","contactWithCovidPositiveDetails","awaitingResults","where","when","travelHistory","workHistory","quarantined","essentialWorkerDetails","organization","departments","fullTime","contactWithPatients","ppeSelections","ppeOther","job","duties","emergencyContact","employer","cachedJpegDecoder","Jimp","decoders","maxMemoryUsageInMB","sentryConfig","buffer","image","isFunction","arrayBuffer","step","read","scaleToFit","quality","getBufferAsync","t2","Uint8Array","t3","getBlobFromImageDataUri","uri","dataURLToBlob","retrieveImageDataUri","isImageDataUri","noFormikProps","_ref$type","_ref$margin","_ref$variant","mask","labelT","useTranslateValue","field","InputMask","innerProps","MiuTextField","errorsEn","numberNaN2Undefined","mixed","arrayOfStringOrEmpty","ensure","errMsg","neo4jIdSchema","personFullNameSchema","enterFirstName","tooShort","max","tooLong","notRequired","enterLastName","genderRegEx","RegExp","genderSchema","selectOne","birthDateSchema","nullable","vitalsSchema","physicalAddressSchema","street1","street2","street3","city","boolean","is","otherwise","optional","notRequiredSchema","namePartSchema","companyNameSchema","companyNameCharsAllowed","nonFutureDate","getNow","noFutureDate","typeError","ssnSchema","phoneSchema","invalidPhone","yesNoSchema","selectYesNo","oneOf","atLeastOneCheckedSchema","selectAtLeastOne","atLeastOneCheckedOrNoneSchema","noneAbove","singleChoiceRequiredSchema","choices","fileInputSchema","fileInputSchemaOptional","personalAddressesSchema","vitalsSchemas","bodyTemp","o2","pulse","getDateRangeSchema","startDateName","endDateName","maxDays","noFutureMessage","nowISO","toISO","endISO","getLuxonDateTime","endOf","minISO","minus","days","minPrettyDate","dateStartAfterEnd","startISO","startOf","dateEndBeforeStart","emptyCache","_window$caches","cache","cachedRequests","_iterator2","_step2","cachedRequest","caches","reload","allSelectors","debounced","useDebouncedCallback","updateAvailable","beginAppUpdate","useCurrentEffect","isCurrent","addressObjectToString","option","getLocation","getRouter","getBasePathName","getPathName","transformComponents","Transformation","Image","cloudName","publicId","_getOrg","divisions","orgDivision","getCurrentDivisionId","getDivisions","divisionIds","eventAttribs","_ref3$withLocations","withLocations","_ref3$forReporting","forReporting","reject","locations","eventFilter","getEventFilter","some","events","getDivisionNamesById","objArray2KeyValuePairs","getAllDivisionLocations","locTypes","getSomeOrgLocations","filterLocationsByTypes","getSomeDivisionLocations","getDivisionSchedulers","slug","getDivisionSchedulersVisitTypes","schedulers","getOrgDivisionInsuranceAbility","locationIds","loc","types","getOrgLocationNamesByLocId","getOrgLocation","getOrgLocationName","getDivisionOrOrgVisitFormConfig","mergeOrgDivisionDynamicQuestions","orgDynamicQuestions","stepValue","stepKey","dynamicQuestion","getStateSelectors","_objectDestructuringEmpty","stateArray","stateShort","stateName","stateLong","getDivisionsByStates","divArray","uniqStates","groupBy","isCurrentDivInState","getDialogStates","msg","inspect","getKeySub","_path$split","_path$split2","_toArray","subPath","slice","_getKeySub","rootVal","_getKeySub2","clearAll","process","envName","helperText","_useFormikContext","useFormikContext","errors","dirty","every","FormHelperText","sync","_qs$parse","bgTask","parse","channel","_ref$payload2","_ref$payload2$alertCf","_ref$payload2$alertOn","redirect","_ref$payload2$logging","_e$response","resStatus","_alertCfg","subTitleLines","substring","isOnline","networkErrorAlert","subtitle","successMessage","_ref2$alertCfg","completed","processing","HEALTH_RECORDS_CELL_TYPES","custom","coverageOrder","HEALTH_RECORDS_INSURANCE_COVERAGE_ORDER","PersonIcon","getGateKeeperScan","leftElement","backLabel","BackButton","back","_useStyles","clickFunc","goBack","ArrowBackIcon","titleElement","SceneTitle","_ref$title","center","sub","titles","useTranslateMapValues","textAlign","getContrastText","basePadding","getPadding","headerNormal","headerCompact","dividerNormal","dividerCompact","rightElement","SceneHeader","header","_header$divider","scrollableContentOuterWrapper","scrollableContentInnerWrapper","WebkitOverflowScrolling","nonScrollableContent","flexBasis","SceneScrollableContent","preScrollableContent","scrollableContent","scrollableContentLoading","postScrollableContent","AutoSizer","parentSize","SceneContent","rootNormal","rootCompact","defaultFlexProps","_ref2$style","_ref2$flexProps","flexProps","fatButton","fatButtonLabel","loadingLabel","_ref2$loading","_ref2$stacked","_ref2$fat","fat","_ref2$gutterBottom","_ref2$variant","_ref2$disabled","buttonProps","Loader","chips","flexWrap","renderValue","otherChoiceName","_ref$otherChoiceLabel","otherChoiceLabel","_ref$multiple","_ref$inputVariant","inputVariant","_ref$formControlProps","formControlProps","_ref$required","_ref$disabled","_ref$inputProps","inputProps","placeholder","labels","getMenuItems","Select","displayEmpty","HelperText","borderTopLeftRadius","borderTopRightRadius","letterSpacing","FormikConsumer","validate","JSON","setDebug","FormControlLabel","control","checked","FormikDebug","_ref$label","_ref$stacked","op","confirmConfig","otherProps","submitForm","isSubmitting","submit","DeluxeButton","itemPropSets","getItemStyles","unshift","menuItemProps","MenuItem","selectedValues","addAllSelectionItem","withAll","ALL","getOrgDivisionSelectionItemData","getOrgLocationSelectionItemData","_ref5$withAll","getLoggedIn","getLoggingIn","getPasses","getPass","getCurrentPassId","getEditingPass","canAddPasses","Object","getEthnicity","getCanViewCoreAdmin","_getUser","getAdminFilters","_getUser2","landing","getDashBoardPath","getIsCurrentMasterHealthId","getIsSalesManager","adminSalesMgrDashBoardPath","getVisitSchedulerHrefGetter","saveDivision","json","getOrgEventTypes","getLabs","saveLabAccount","deleteLabAccounts","ids","getAllOrgMap","SvgIcon","x","y","viewBox","d","markdown","markdownT","ReactMarkdown","directionConfig","marginType","up","iconMarginSizes","small","large","huge","iconSmall","textSmall","iconLarge","textLarge","iconHuge","textHuge","_ref3$size","themeColor","styleColor","iconClassName","_ref3$direction","textT","classSuffix","capitalize","iconClass","textClass","getIconStyle","enableBackground","AnswerMessages","messages","answerMessages","MarkDownContainer","auth","createSlice","cookieConsent","Cookies","consentToCookies","gatekeeper","setDivId","setLocId","getCookieConsent","getAuth","getGatekeeper","getDivId","getLocId","headerSX","alignSelf","_ref$border","_ref$content","_ref$contentSX","contentSX","darkTitle","_ref$divider","_ref$sx","codeHighlight","Card","CardHeader","titleTypographyProps","dt","opts","_opts$utc","utc","_opts$iso","iso","_opts$isoDate","isoDate","DateTime","fromJSDate","fromObject","fromISO","fromMillis","local","setZone","toUTC","toISODate","now","getDateDiff","from","units","dFrom","dTo","floor","diff","getAgeFromBirthDate","invalid","_ref$withTZ","withTZ","_ref$localized","localized","toLocaleString","DATE_SHORT","toFormat","getPrettyDateTime","_ref2$withTZ","_ref2$localized","timeFormat","TIME_WITH_SHORT_OFFSET","TIME_SIMPLE","getPrettyTime","_ref3$withTZ","timeSimple","getDateISOString","_ref4$withTZ","convertToStandardDate","getDateRangeString","d1","d2","sep","getLocalTimeAgo","_ref6$compact","prettyMs","timeZoneNameFormats","acronym","IANA","full","format","_isoDate$substr$split","substr","_isoDate$substr$split2","trimStart","getStrippedDateFromISO","hour","minutes","startLogin","verifyLogin","_ref2$text","MuiTypography","withAuthenticationRequired","connectedRouterRedirect","redirectPath","redirectAction","routerActions","authenticatedSelector","AuthenticatingComponent","wrapperDisplayName","withUserRolesRequired","_$intersection","checkRouteAccess","getRouteFromConfig","_ref4$routeConfig","routeConfig","routeSpecificProps","baseRoutePath","routeKey","enhancers","_ref3$authRequired","_ref3$userRoles","_ref3$features","_ref3$commonProps","commonProps","_ref3$routeSpecificPr","extraRouteProps","withProps","getRouteEnhancers","EnhancedSuspenseAndLoader","SuspenseAndLoader","routerProps","lazy","getComponent","_excluded3","Suspense","points","box","_ref2$size","_ref2$direction","iconTextProps","IconAndText","hrefTarget","_ref2$fullWidth","allClasses","classNames","BoxedIconAndText"],"mappings":"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","file":"static/js/main.cb13e47c.chunk.js","sourcesContent":["import store from 'utils/local-storage'\nimport { browser } from 'utils/browser'\nimport { client } from 'api/client'\nimport qs from 'query-string'\nimport _ from 'lodash'\n\nconst SITE_CONTEXT_PATH = 'site-context'\n\nconst landingPages = [\n /^\\/personal\\/my-status/,\n /^\\/personal\\/symptoms/,\n /^\\/myact/,\n /^\\/i-c/,\n /^\\/payment/,\n]\n/*\nFunctions using local storage are async in case storage engine is switched to an async one in the future.\n */\n\nexport const setSiteContext = ({ location, invitationId }) => {\n setLandingPage({ location })\n const siteContext = getSiteContext()\n // Set division if any:\n const urlDivision = getSiteDivisionFromLocation(location)\n if (urlDivision) siteContext.division = urlDivision\n if (invitationId) {\n siteContext.invitationId = invitationId\n } else {\n delete siteContext.invitationId\n }\n store.set(SITE_CONTEXT_PATH, siteContext)\n}\n\nexport const getSiteContext = () => store.get(SITE_CONTEXT_PATH, {})\n\n/**\n * If valid landing url, record in local storage so user can be redirected to it after login. (see login saga in user duck)\n *\n * @param {string} location\n */\nconst setLandingPage = ({ location }) => {\n const landing = store.get('landing')\n // Set any location to the store, not just the defined landing pages.\n // This can be retrieved and traversed to on successful login.\n if (!landing) store.set('landing', location)\n\n}\n\n// get constants from server based on user role and designated org, if any:\n/**\n *\n * @param {boolean} noOrgCache\n * @param {boolean} noLocCache\n * @return {Promise<*>}\n */\nexport const getAndStoreConstants = async ({\n noOrgCache = false,\n noLocCache = false,\n} = {}) => {\n const { division, invitationId } = getSiteContext()\n const queryString = qs.stringify(_.pickBy({ invitationId, noOrgCache, noLocCache }, v => !!v))\n const url = `/constants${division ? `/${division}` : ''}?${queryString}`\n const response = await client().get(url)\n return setConstants(response?.data || {})\n}\n\nexport const setConstants = constants => store.set('constants', constants)\n\nexport const getAndStoreCustomRoles = async ({ data }) => {\n const oldConstants = store.get('constants')\n const newConstants = _.clone(oldConstants)\n\n const roles = _.map(data?.role, 'name')\n newConstants.org.CUSTOM_USER_ROLES = roles\n return setConstants(newConstants)\n}\n\nconst getSiteDivisionFromLocation = location => {\n const matches = (location?.pathname || '').toLowerCase().match(/\\/div\\/([a-z-]+)/)\n return matches && matches[1] && matches[1]\n}\n\nexport const getPwaMode = () => {\n let result\n const browserName = browser.getBrowserName()\n switch (browserName) {\n case 'Safari':\n result = window.navigator.standAlone ? 'stand-alone' : 'in-browser'\n break\n case 'FireFox':\n result = window.fullScreen ? 'full-screen' : 'NOT full-screen'\n break\n case 'Chrome':\n result = (!window.screenTop && !window.screenY) ? 'full-screen' : 'NOT full-screen'\n break\n default:\n result = 'unknown'\n }\n return result\n}\n\nexport const inMaintenanceMode = () => store.get('constants.inMaintenanceMode')","import {\n useDispatch,\n useSelector,\n} from 'react-redux'\nimport { getAlert } from 'app/state/ducks/dialog/selectors'\nimport actions from 'app/state/ducks/actions'\n\nconst { notice, alert, confirm, details, loading } = actions.dialog\n\nexport default () => {\n const alertState = useSelector(getAlert)\n const dispatch = useDispatch()\n return {\n notice: params => {\n return dispatch(notice.add(params))\n },\n removeNotice: params => dispatch(notice.removeNotification(params)),\n alert: params => dispatch(alert.open(params)),\n alertState,\n confirm: params => {\n return new Promise((resolve) => {\n params.callback = resolve\n dispatch(confirm.ask(params))\n })\n },\n details: {\n open: params => dispatch(details.open(params)),\n close: params => dispatch(details.close(params)),\n },\n loading: params => dispatch(loading[params ? 'open' : 'close'](params)), // calling with no params closes it\n }\n}","import _ from 'lodash'\nimport store from 'utils/local-storage'\nimport { getBase64ImageFromAWS, getFileFromAwsS3 } from './aws'\nimport JSZip from 'jszip'\nimport * as base64ToBlob from 'b64-to-blob'\nimport { browser, isTouchEnabled } from 'utils/browser'\nimport async from 'async'\nimport { getReducedImageBlob } from './image'\n\nexport const getFileBaseNameAndExt = file => {\n // Try the file name first:\n const parts = file.name.split('.')\n const ext = parts.pop()\n const baseName = parts.join('.')\n if (baseName && ext) {\n return { baseName, ext }\n }\n // Fallback to the file type:\n const [, flavor] = (file.type || []).split('/')\n return {\n baseName: file.name,\n ext: flavor,\n }\n}\n\nexport const getFileNameExt = name => {\n if (!_.isString(name)) return\n const parts = name.split('.')\n return parts.pop()\n}\n\nexport const hasImageFileExt = v => /\\.(png|jpe?g)$/i.test(v)\n\nexport const getMimeTypeAcceptsStr = ({ imagesOnly = false }) => {\n const mimeTypesByExt = store.get('constants.UPLOADABLE_MIME_TYPES')\n const arr = imagesOnly\n ? _.chain(mimeTypesByExt).values().filter(v => _.startsWith(v, 'image')).value()\n : _.values(mimeTypesByExt)\n return _.uniq(arr).join(',')\n}\n\nexport const getMimeTypeFromFileName = fileName => {\n const ext = getFileNameExt(fileName)\n if (!ext) return\n const mimeTypesByExt = store.get('constants.UPLOADABLE_MIME_TYPES')\n return mimeTypesByExt[getFileNameExt(fileName)]\n}\n\nexport const getFileExtFromMimeType = mimeType => mimeType.split('/')[1]\n\nexport const isFileInputVal = val => _.isPlainObject(val) && (val.isNewFile || val.isUploadedFile)\n\n// eslint-disable-next-line no-undef\nexport const isNewFileUpload = val => !!val?.isNewFile && val?.file instanceof File\n\n// eslint-disable-next-line no-undef\nexport const isPreviousFileUpload = val => !!val?.isUploadedFile\n\nexport const getReducedFileUploadBlob = blob => {\n const type = _.get(blob, 'type', '')\n if (type.split('/')[0] === 'image') return getReducedImageBlob(blob)\n return blob\n}\n/**\n * Return blob representation of zip file.\n *\n * @param {object[]} fileInfo\n * @param {string} fileInfo[].folderName - name of folder to create in zip\n * @param {object[]} fileInfo[].files\n * @param {string} fileInfo[].files[].url - AWS URL\n * @param {string} fileInfo[].files[].fileName - file name for individual upload\n * @param {object} fileInfo[].otherBlobsByFileName - any other blobs to add to the folder\n * @param {function} progressCallback\n */\nexport const getZipFileContent = async ({\n fileInfo,\n progressCallback,\n}) => {\n // Download all blobs and index by url:\n const urls = _.chain(fileInfo).map(({ files }) => _.map(files, 'url')).flatten().uniq().keyBy()\n .mapValues(() => 'nada')\n .value()\n const totalFiles = _.size(urls)\n // Download the files, 5 at a time to avoid timeouts on individual files, which can result in empty files:\n let fileNum = 0\n const blobsByFileKey = await async.mapValuesLimit(\n urls,\n 5,\n async.asyncify(async (val, url) => {\n try {\n const blob = await getAwsFileForZip(url)\n progressCallback && progressCallback(100 * ++fileNum / totalFiles)\n return blob\n } catch (e) {\n }\n }),\n )\n const zip = new JSZip() // see docs at https://stuk.github.io/jszip/\n _.forEach(fileInfo, async ({ folderName, files, otherBlobsByFileName }) => {\n if (!_.isEmpty(otherBlobsByFileName)) {\n _.forEach(otherBlobsByFileName, (blob, fileName) => zip.file(`${folderName}/${fileName}`, blob))\n }\n _.forEach(files, ({ url, fileName }) => {\n const blob = blobsByFileKey[url]\n if (!blob instanceof Blob) return\n zip.file(`${folderName}/${fileName}`, blob, { base64: hasImageFileExt(fileName) })\n })\n })\n return zip.generateAsync({ type: 'blob' })\n}\n\nconst getAwsFileForZip = async url => {\n if (hasImageFileExt(url)) {\n const mimeType = getMimeTypeFromFileName(url)\n const imageDataUri = await getBase64ImageFromAWS({ url, mimeType })\n const cleanedBase64 = imageDataUri.replace(`data:${mimeType};base64,`, '')\n return base64ToBlob(cleanedBase64, mimeType)\n }\n const res = await getFileFromAwsS3({\n url,\n responseType: 'blob',\n })\n return res?.data\n}\n\nexport const getBlob = ({ blobOrData, bom, mimeType }) => {\n if (blobOrData instanceof Blob) return blobOrData\n const blobData = (typeof bom !== 'undefined') ? [bom, blobOrData] : [blobOrData]\n return new Blob(blobData, { type: mimeType || 'application/octet-stream' })\n}\n\nconst getBlobUrl = blob => (window.URL && window.URL.createObjectURL) ? window.URL.createObjectURL(blob) : window.webkitURL.createObjectURL(blob)\n\nexport const downloadFile = ({\n data,\n fileName,\n mimeType,\n bom,\n}) => {\n mimeType = mimeType || getMimeTypeFromFileName(fileName)\n const blob = getBlob({ blobOrData: data, mimeType, bom })\n if (typeof window.navigator.msSaveBlob !== 'undefined') {\n // IE workaround for \"HTML7007: One or more blob URLs were\n // revoked by closing the blob for which they were created.\n // These URLs will no longer resolve as the data backing\n // the URL has been freed.\"\n window.navigator.msSaveBlob(blob, fileName)\n return\n }\n const blobURL = getBlobUrl(blob)\n const tempLink = document.createElement('a')\n tempLink.style.display = 'none'\n tempLink.href = blobURL\n tempLink.setAttribute('download', fileName)\n // Safari thinks _blank anchor are pop ups. We only want to set _blank\n // target if the browser does not support the HTML5 download attribute.\n // This allows you to download files in desktop safari if pop up blocking\n // is enabled.\n if (typeof tempLink.download === 'undefined') {\n tempLink.setAttribute('target', '_blank')\n }\n document.body.appendChild(tempLink)\n tempLink.click()\n // Fixes \"webkit blob resource error 1\"\n setTimeout(function () {\n document.body.removeChild(tempLink)\n window.URL.revokeObjectURL(blobURL)\n }, 60000)\n}\n\nexport const previewFile = ({\n data,\n fileName,\n mimeType,\n bom,\n}) => {\n // Depending on platform and browser, previewing with a _blank target link may not work:\n const { type, vendor } = browser.getPlatform()\n if ((type === 'mobile' || isTouchEnabled()) && vendor === 'Apple') {\n return downloadFile({ data, fileName, mimeType })\n }\n mimeType = mimeType || getMimeTypeFromFileName(fileName)\n const blob = getBlob({ blobOrData: data, mimeType, bom })\n if (typeof window.navigator.msSaveOrOpenBlob !== 'undefined') {\n // IE workaround for \"HTML7007: One or more blob URLs were\n // revoked by closing the blob for which they were created.\n // These URLs will no longer resolve as the data backing\n // the URL has been freed.\"\n window.navigator.msSaveOrOpenBlob(blob, fileName)\n }\n const blobURL = getBlobUrl(blob)\n previewUrl(blobURL)\n // Fixes \"webkit blob resource error 1\"\n setTimeout(function () {\n window.URL.revokeObjectURL(blobURL)\n }, 3000)\n}\n\nexport const previewUrl = url => {\n const tempLink = document.createElement('a')\n tempLink.style.display = 'none'\n tempLink.href = url\n tempLink.target = '_blank'\n document.body.appendChild(tempLink)\n tempLink.click()\n // Fixes \"webkit blob resource error 1\"\n setTimeout(function () {\n document.body.removeChild(tempLink)\n }, 3000)\n}\n","import { client, createFormData, multiPartClient } from './client'\nimport {\n mapBooleanValsToStrings,\n mapStringValsToBooleans,\n objectWithoutNonInfoValues,\n} from '@sustainhawaii/object-utils'\nimport { getLocalZoneName, getTimePeriodRange } from 'utils/temporal'\nimport { blobToDataURL } from 'blob-util'\nimport { getFilteredQueryString } from '@sustainhawaii/heal-common/lib/util/url'\n\n/**\n *\n * @param {string} patientId\n * @param {string} divisionId - current division ID\n * @param {boolean=} isMedStaff\n * @param {boolean=} canViewPHI\n * @param {boolean=} selfTest\n * @return {Promise<*>}\n */\nexport const getPatient = async ({\n patientId,\n divisionId,\n isMedStaff = false,\n canViewPHI = false,\n selfTest = false,\n visitType = 'test',\n}) => {\n const path = getLabPath({ isMedStaff, canViewPHI, selfTest })\n let response\n if(selfTest) {\n response = await client().get(`${path}/patient/${visitType}/${patientId}`)\n } else {\n response = await client().get(`${path}/patient/${visitType}/${patientId}/${divisionId}`)\n }\n // response.data.data object should contain patient, intakeForm objs\n return response?.data?.data\n}\n\nexport const getLabAccounts = async ({ divId }) => {\n const response = await client().get(`/lab/lab-accounts/${divId}`)\n return response?.data\n}\n\n/**\n * @param {CovidTest} test\n * @param {boolean=} selfTest\n * @param {object=} agreements - photos of hard-copies of agreements not signed in PERSEUS intake form\n * @param {boolean=} reuseIntakeForm\n * @return {Promise}\n */\nexport const createTest = async ({\n test,\n selfTest = false,\n agreements,\n reuseIntakeForm = false,\n}) => {\n const path = selfTest ? '/user/lab' : '/lab'\n const fd = await createFormData({\n test: objectWithoutNonInfoValues(test),\n agreements,\n reuseIntakeForm,\n tz: getLocalZoneName(),\n })\n const response = await multiPartClient().post(`${path}/test`, fd)\n return response?.data\n}\n\n/**\n * @param {CovidTest} test\n * @param {boolean=} selfTest\n * @return {Promise}\n */\nexport const updateTest = async ({\n test,\n selfTest = false,\n}) => {\n const path = getLabPath({\n isMedStaff: true,\n selfTest,\n })\n const response = await client().put(`${path}/test`, objectWithoutNonInfoValues(test))\n return response?.data\n}\n\n/**\n * @param {CovidTest} test\n * @return {Promise}\n */\nexport const deleteTest = id => client().delete(`/lab/hcp/test/${id}`)\n\nexport const submitSelfTestImages = async (data) => {\n const fd = await createFormData({\n data,\n })\n try {\n const response = await multiPartClient().post(`/user/lab/test/image`, fd)\n return {\n result: response.data.result.toLowerCase(),\n }\n } catch (e) {\n return {\n errorMessage: 'Kit image analysis failed. Please retry.',\n }\n }\n}\n/**\n * @return {Promise}\n */\nexport const getTest = async (testId) => {\n const response = await client().get(`/lab/hcp/test/${testId}`)\n return response?.data\n}\n\n/**\n * @param {CovidVacc} test\n * @param {boolean=} selfTest\n * @param {object=} agreements - photos of hard-copies of agreements not signed in PERSEUS intake form\n * @param {boolean=} reuseIntakeForm\n * @return {Promise}\n */\nexport const createVacc = async ({\n vacc,\n agreements,\n reuseIntakeForm = false,\n}) => {\n const path = '/lab'\n const fd = await createFormData({\n vacc: objectWithoutNonInfoValues(vacc),\n agreements,\n reuseIntakeForm,\n tz: getLocalZoneName(),\n })\n const response = await multiPartClient().post(`${path}/vacc`, fd)\n return response?.data\n}\n\n/**\n * @param {CovidVacc} vacc\n * @return {Promise}\n */\nexport const updateVacc = async ({ vacc }) => {\n const response = await client().put('/lab/hcp/vacc', mapStringValsToBooleans(vacc), {\n timeout: 30000,\n })\n return getFormCompatibleVaccData(response?.data)\n}\n\n/**\n * @param {CovidVacc} vacc\n * @return {Promise}\n */\nexport const deleteVacc = id => client().delete(`/lab/hcp/vacc/${id}`)\n\n/**\n * @return {Promise}\n */\nexport const getVacc = async (vaccId) => {\n const response = await client().get(`/lab/hcp/vacc/${vaccId}`)\n return getFormCompatibleVaccData(response?.data)\n}\n\nconst getFormCompatibleVaccData = data => data ? mapBooleanValsToStrings(data) : undefined\n\nexport const getActionItems = async (params) => {\n const response = await client().get(`/lab/hcp/action-items?${getFilteredQueryString(params)}`)\n return response?.data\n}\n\n/**\n * @return {Promise}\n */\nexport const getImageDataUriFromApi = async (fileName) => {\n const response = await client().get(`/lab/hcp/images/${fileName}`, {\n responseType: 'blob',\n })\n if(response?.data) {\n return blobToDataURL(response.data)\n }\n}\n\nexport const initialHomelessDocs = async (formId) => client().post(`/lab/hcp/initial-intake-form-homeless-docs/${formId}`)\n\nexport const getScheduledVisitStats = async ({\n startDate,\n endDate,\n filters,\n asCSV = false,\n}) => {\n const { startTime, endTime } = getTimePeriodRange({ startDate, endDate, unit: 'day' })\n return client().post('/lab/hcp/scheduled-visit-stats', {\n startDate: startTime,\n endDate: endTime,\n tz: getLocalZoneName(),\n filters,\n asCSV,\n })\n}\n\nexport const getIntakeFormSummary = async ({ formId }) => {\n const response = await client().get(`/lab/hcp/intake-form-summary/${formId}`)\n return response?.data\n}\n\n/**\n * Post test id and new result to endpoint.\n *\n * @param {string} id\n * @param {string} result\n * @return {Promise>}\n */\nexport const changeTestResult = async ({ id, result }) => client().post('/lab/hcp/change-test-result', {\n id,\n result,\n})\n\n/**\n * Retrieve all visits of a certain type for userId.\n *\n * @param {object} params\n * @param {string} params.patientId - any user id\n * @param {string} params.visitType\n * @return {Promise<*>}\n */\nexport const getVisitCardVisits = async ({ patientId, visitType }) => {\n const response = await client().get(`/lab/hcp/visit-card-visits/${patientId}/${visitType}`)\n return response?.data\n}\n\n/**\n *\n * @param {boolean=} isMedStaff\n * @param {boolean=} canViewPHI\n * @param {boolean=} selfTest\n * @return {string}\n */\nconst getLabPath = ({\n isMedStaff = false,\n canViewPHI = false,\n selfTest = false,\n}) => {\n if(selfTest) return '/user/lab'\n return isMedStaff || canViewPHI ? '/lab/hcp' : '/lab'\n}\n\n// Insurance and claims\n/**\n * Get insurance eligibility of the patient for the specified division\n * Format: `{ success: true/false, insurance: {hasInsurance: true/false, eligible: true/false}}`\n * If `success: false`, there is error in the request\n * If `hasInsurance: false`, no insurance applicable for the paramters passed\n * If `hasInsurance: true, eligible: false`, has insurance, but not eligible for the current scenario\n * @param patientId Id of the patient whose insurance status is being verified\n * @param divisionId Id of the division in which the patient is getting treated and insurance is applicable\n * @returns {Promise>}\n */\nexport const getInsuranceEligibility = async ({ patientId, divisionId, patientInfo, insuranceInfo }) =>\n client().post(`/insurance/check-eligibility`, { patientId, divisionId, patientInfo, insuranceInfo }, {\n timeout: 60000,\n })\n\nexport const getClaimInformation = async ({ visitType, id }) =>\n client().get(`/insurance/get-claim?visitType=${visitType}&id=${id}`)\n\nexport const submitInsuranceClaim = async (data) => client().post('/insurance/submit-claim', data, {\n timeout: 120000,\n})\n\nexport const getInsurerGroups = async () => client().get('/insurance/get-insurergroups')\nexport const getInsurers = async ({ key, data }) => client().get(`/insurance/get-insurers?${key}=${data}`)","import { call, cancel, cancelled, fork, put, select, takeEvery } from 'redux-saga/effects'\nimport { push } from 'connected-react-router'\nimport actions from 'app/state/ducks/actions'\nimport _ from 'lodash'\nimport { objectWithoutNonInfoValues } from '@sustainhawaii/object-utils'\nimport {\n createTest,\n createVacc,\n getActionItems,\n getClaimInformation,\n getInsuranceEligibility,\n getInsurerGroups,\n getInsurers,\n getPatient,\n getTest,\n getVacc,\n submitInsuranceClaim,\n submitSelfTestImages,\n updateTest,\n updateVacc,\n} from 'api/lab'\nimport { getCanViewPHI, getCurrentLocId, getIsMedStaff, getReuseIntakeForm } from 'app/state/ducks/selectors'\nimport { recordUserScanningUser } from '../../../../api/gatekeeper'\nimport { getDivisionId } from 'utils/org'\n\nconst { loading, alert, notice } = actions.dialog\nconst {\n loadInsuranceEligibility,\n loadInsuranceClaimInfo,\n setInsuranceClaim,\n fetchInsurers,\n fetchInsurerGroups,\n} = actions.lab\n\nexport function * loadPatient ({ payload: { patientId, selfTest, currentVisitType } }) {\n const { loadPatient } = actions.lab\n const divisionId = getDivisionId()\n const isMedStaff = yield select(getIsMedStaff)\n const canViewPHI = yield select(getCanViewPHI)\n try {\n const patientAndIntakeForm = yield call(getPatient, {\n patientId,\n divisionId,\n isMedStaff,\n canViewPHI,\n selfTest,\n visitType: currentVisitType,\n })\n if(_.isPlainObject(patientAndIntakeForm)) {\n yield put(loadPatient.success(patientAndIntakeForm))\n } else {\n yield cancel()\n }\n } catch (e) {\n yield put(actions.handleError({\n e,\n alertCfg: {\n title: 'Could not retrieve the patient.',\n },\n alertOnly: true,\n sentryCfg: {\n tags: {\n section: 'lab',\n func: 'getPatient',\n },\n extra: {\n patientId,\n divisionId,\n },\n },\n }))\n yield cancel()\n } finally {\n if(yield cancelled()) {\n yield put(loadPatient.failure())\n yield put(push('/lab/pending-tests'))\n }\n }\n}\n\nexport function * watchLoadPatient () {\n yield takeEvery(actions.lab.loadPatient.start, loadPatient)\n}\n\nexport function * saveTest ({ payload: { agreements, selfTest, ...submittedTest }, meta: { resetForm } = {} }) {\n const { saveTest } = actions.lab\n const reuseIntakeForm = yield select(getReuseIntakeForm)\n const cleanTest = objectWithoutNonInfoValues(_.omit(submittedTest, ['specimenSourceRequired']))\n const isNew = !cleanTest.id\n const canViewPHI = yield select(getCanViewPHI)\n const newResult = !!cleanTest.result\n const actionPhrase = newResult ? 'Recording Result' : (isNew ? 'Creating Test' : 'Updating Test')\n if(isNew && !selfTest) {\n yield call(recordUserScanningUser, {\n scanneeId: submittedTest.patientId,\n locId: submittedTest.location,\n })\n }\n const errorConfigs = {\n alertCfg: {\n title: `Error ${_.toLower(actionPhrase)}.`,\n },\n sentryCfg: {\n tags: {\n section: 'lab',\n func: isNew ? 'createTest' : 'updateTest',\n },\n extra: {\n testId: cleanTest.id,\n },\n },\n }\n try {\n const resData = yield call(isNew ? createTest : updateTest, {\n test: cleanTest,\n selfTest,\n agreements,\n reuseIntakeForm,\n })\n if(_.isPlainObject(resData)) {\n if(resData.test) {\n yield put(saveTest.success({\n ...resData,\n division: submittedTest.division,\n isNew,\n }))\n if(canViewPHI) {\n yield fork(loadActionItems)\n }\n } else if(resData.alertCfg) {\n yield put(alert.open(resData.alertCfg))\n yield cancel()\n } else {\n yield put(actions.handleError({\n e: new Error('no test id returned'),\n ...errorConfigs,\n }))\n yield cancel()\n }\n } else {\n yield cancel()\n }\n } catch (e) {\n yield put(actions.handleError({\n e,\n ...errorConfigs,\n }))\n yield cancel()\n } finally {\n yield put(loading.close())\n if(yield cancelled()) {\n yield put(saveTest.failure())\n if(resetForm) {\n yield call(resetForm)\n }\n }\n }\n}\n\nexport function * watchSaveTest () {\n yield takeEvery(actions.lab.saveTest.start, saveTest)\n}\n\nexport function * submitSelfTest (testData) {\n const {\n data,\n test,\n } = testData.payload\n const testId = test.test.id\n const { result, errorMessage } = yield call(submitSelfTestImages, data)\n if(errorMessage) {\n const errorConfigs = {\n alertCfg: {\n title: `Error in Image analysis`,\n },\n sentryCfg: {\n tags: {\n section: 'lab',\n func: 'submitSelfTest',\n },\n extra: {\n testId: testId,\n },\n },\n }\n yield put(actions.handleError({\n e: new Error(errorMessage),\n ...errorConfigs,\n }))\n return yield cancel()\n }\n let resultImg\n for (const img of data) {\n // Pick up the result image of the kit and save with test\n if(img.id === 'result') resultImg = img\n }\n const testInfo = {\n id: testId,\n result,\n flowTestImg: resultImg.data,\n }\n yield saveTest({\n payload: {\n selfTest: true,\n ...testInfo,\n },\n })\n}\n\nexport function * watchSubmitSelfTest () {\n yield takeEvery(actions.lab.submitSelfTest.start, submitSelfTest)\n}\n\nexport function * loadTest ({ payload: testId }) {\n const { loadTest } = actions.lab\n try {\n const testAndPatientAndIntakeForm = yield call(getTest, testId)\n if(_.isPlainObject(testAndPatientAndIntakeForm)) {\n yield put(loadTest.success(testAndPatientAndIntakeForm))\n } else {\n yield cancel()\n }\n } catch (e) {\n yield put(actions.handleError({\n e,\n alertCfg: {\n title: 'Error retrieving test.',\n },\n alertOnly: true,\n sentryCfg: {\n tags: {\n section: 'lab',\n func: 'getTest',\n },\n extra: {\n testId,\n },\n },\n }))\n yield cancel()\n } finally {\n if(yield cancelled()) {\n yield put(loadTest.failure())\n yield put(push('/lab/pending-tests'))\n }\n }\n}\n\nexport function * watchLoadTest () {\n yield takeEvery(actions.lab.loadTest.start, loadTest)\n}\n\nexport function * saveVacc ({ payload: submittedVacc, meta: { resetForm } = {} }) {\n const { saveVacc } = actions.lab\n const reuseIntakeForm = select(getReuseIntakeForm)\n const cleanVacc = objectWithoutNonInfoValues(submittedVacc)\n const isNew = !cleanVacc.id\n const isMedStaff = yield select(getIsMedStaff)\n const recordingReaction = !!cleanVacc.hadReaction\n const actionPhrase = recordingReaction ? 'Updating' : (isNew ? 'Creating Vacc Record' : 'Recording Vacc Completion')\n yield put(loading.open({ message: actionPhrase }))\n try {\n const resData = yield call(isNew ? createVacc : updateVacc, { vacc: cleanVacc, reuseIntakeForm })\n if(_.isPlainObject(resData)) {\n yield put(saveVacc.success({\n division: submittedVacc.division,\n ...resData,\n isNew,\n }))\n if(isMedStaff) {\n yield fork(loadActionItems)\n }\n if(isNew) {\n yield call(recordUserScanningUser, {\n scanneeId: submittedVacc.patientId,\n locId: submittedVacc.location,\n })\n }\n } else {\n yield cancel()\n }\n } catch (e) {\n yield put(actions.handleError({\n e,\n alertCfg: {\n title: `Error ${_.toLower(actionPhrase)}.`,\n },\n sentryCfg: {\n tags: {\n section: 'lab',\n func: isNew ? 'createVacc' : 'updateVacc',\n },\n extra: {\n vaccId: cleanVacc.id,\n },\n },\n }))\n yield cancel()\n } finally {\n yield put(loading.close())\n if(yield cancelled()) {\n yield put(saveVacc.failure())\n if(resetForm) {\n yield call(resetForm)\n }\n }\n }\n}\n\nexport function * watchSaveVacc () {\n yield takeEvery(actions.lab.saveVacc.start, saveVacc)\n}\n\nexport function * loadVacc ({ payload: vaccId }) {\n const { loadVacc } = actions.lab\n try {\n const vaccAndPatientAndIntakeForm = yield call(getVacc, vaccId)\n if(_.isPlainObject(vaccAndPatientAndIntakeForm)) {\n yield put(loadVacc.success(vaccAndPatientAndIntakeForm))\n } else {\n yield cancel()\n }\n } catch (e) {\n yield put(actions.handleError({\n e,\n alertCfg: {\n title: 'Error retrieving vaccination.',\n },\n alertOnly: true,\n sentryCfg: {\n tags: {\n section: 'lab',\n func: 'getVacc',\n },\n extra: {\n vaccId,\n },\n },\n }))\n yield cancel()\n } finally {\n if(yield cancelled()) {\n yield put(notice.add({\n message: 'Could not retrieve vaccination record.',\n urgency: 'error',\n }))\n yield put(loadVacc.failure())\n yield put(push('/lab/pending-vaccs'))\n }\n }\n}\n\nexport function * watchLoadVacc () {\n yield takeEvery(actions.lab.loadVacc.start, loadVacc)\n}\n\nexport function * loadActionItems ({ payload } = {}) {\n const { loadActionItems } = actions.lab\n const currentLocId = yield select(getCurrentLocId)\n const locId = payload?.locId || currentLocId\n if(!locId) return\n try {\n const data = yield call(getActionItems, { locId })\n yield put(loadActionItems.success(data))\n } catch (e) {\n yield put(loadActionItems.failure())\n yield put(actions.handleError({\n e,\n alertCfg: {\n title: 'Error loading action items.',\n },\n sentryCfg: {\n tags: {\n section: 'lab',\n func: 'getActionItems',\n },\n extra: {\n locId,\n },\n },\n }))\n }\n}\n\nexport function * watchLoadActionItems () {\n yield takeEvery(actions.lab.loadActionItems.start, loadActionItems)\n}\n\n// Insurance & claims\nexport function * checkInsuranceEligibility ({ payload }) {\n try {\n const { data } = yield call(getInsuranceEligibility, payload)\n yield put(loadInsuranceEligibility.success({\n ...data,\n ...payload,\n }))\n } catch (e) {\n }\n}\n\nexport function * watchInsuranceEligibility () {\n yield takeEvery(loadInsuranceEligibility.start, checkInsuranceEligibility)\n}\n\nexport function * getInsuranceClaimInfo ({ payload }) {\n try {\n const claim = yield call(getClaimInformation, payload)\n yield put(loadInsuranceClaimInfo.success({\n ...claim,\n ...payload,\n }))\n } catch (e) {\n }\n}\n\nexport function * watchClaimInfoFetch () {\n yield takeEvery(loadInsuranceClaimInfo.start, getInsuranceClaimInfo)\n}\n\nexport function * submitClaim ({ payload }) {\n try {\n const submitResponse = yield call(submitInsuranceClaim, payload)\n yield put(setInsuranceClaim.success(submitResponse))\n } catch (e) {\n }\n}\n\nexport function * watchSubmitClaim () {\n yield takeEvery(setInsuranceClaim.start, submitClaim)\n}\n\nexport function * populateInsurerGroups () {\n try {\n const { data } = yield call(getInsurerGroups)\n yield put(fetchInsurerGroups.success(data))\n } catch (e) {\n }\n}\n\nexport function * watchGetInsurerGroups () {\n yield takeEvery(fetchInsurerGroups.start, populateInsurerGroups)\n}\n\nexport function * populateInsurers ({ payload }) {\n try {\n const { data } = yield call(getInsurers, payload)\n yield put(fetchInsurers.success(data))\n } catch (e) {\n }\n}\n\nexport function * watchGetInsurers () {\n yield takeEvery(fetchInsurers.start, populateInsurers)\n}","export const systemFeatures = ['Administration of Organization', 'CRM', 'Gatekeeper', 'Inventory',\n 'Lab Functions', 'Org Management', 'Reporting', 'PCRM Admin', 'FC Admin']\n\nexport const systemRoles = ['Account Owner', 'Admin', 'HCP',\n 'Lab Tech', 'Gatekeeper', 'Analyst R', 'Analyst X', 'Sales Manager', 'Prospect AO']\n\n","import React from 'react'\nimport {\n put,\n race,\n take,\n takeEvery,\n} from 'redux-saga/effects'\nimport actions from 'app/state/ducks/actions'\nimport { push } from 'connected-react-router'\n\nconst NOTIFICATION_TYPE_ERROR = 'ERROR',\n NOTIFICATION_TYPE_INFO = 'INFO',\n NOTIFICATION_TYPE_SUCCESS = 'SUCCESS',\n NOTIFICATION_TYPE_WARNING = 'WARNING'\nconst notificationTypes = {\n success: {\n actionType: NOTIFICATION_TYPE_SUCCESS,\n icon: 'check', // appended to font-awesome class string 'fa fa-'\n },\n info: {\n actionType: NOTIFICATION_TYPE_INFO,\n icon: 'info',\n },\n warning: {\n actionType: NOTIFICATION_TYPE_WARNING,\n icon: 'exclamation-triangle',\n },\n error: {\n actionType: NOTIFICATION_TYPE_ERROR,\n icon: 'exclamation',\n },\n}\n\n/**\n * Open confirmation dialog with configuration.\n *\n * @param {object} payload\n * @param {string} payload.title\n * @param {string} payload.question\n * @param {string=} payload.yesButtonLabel\n * @param {string=} payload.noButtonLabel\n * @param {boolean=} payload.forceYes - if true, hide the No button\n * @param {boolean=} payload.cancelable - if true, display Cancel button\n * @param {func=} payload.callback - optional callback called with boolean result\n * @return {boolean|void}\n */\nexport function * ask ({ payload: dialogConfig }) {\n const { confirm } = actions.dialog\n yield put(confirm.open(dialogConfig))\n const { yes, cancel } = yield race({\n yes: take(confirm.yes),\n no: take(confirm.no),\n cancel: take(confirm.cancel),\n })\n if(!!cancel) return\n return !!yes\n}\n\nexport function * watchAsk () {\n yield takeEvery(actions.dialog.confirm.ask, ask)\n}\n\nfunction createNotificationAction (config) {\n const notification = { id: parseInt(Math.random().toString().split('.')[1], 10), ...config }\n const { notice } = actions.dialog\n return notice.addNotification(notification)\n}\n\nfunction removeNotificationAction (id) {\n const { notice } = actions.dialog\n return notice.removeNotification(id)\n}\n\n/**\n * Display notification.\n *\n * @param {object} config\n * @param {object} config.payload\n * @param {string=} config.payload.title - short title\n * @param {string} config.payload.message - body of message\n * @param {number} config.payload.duration - milliseconds until notification is dismissed, or 0 for never; defaults to 5000\n * @param {string=} config.payload.urgency - 'info' (default), 'success', 'warn', 'error'\n * @param {object[]=} config.payload.actions - array of action objects representing button(s) to display on alert or notice; alerts only display the first button; notices display both, but first one must be the affirmative button and second must be the negative button.\n * @param {string=} config.payload.actions[].label - label for alert and notice action buttons\n * @param {string=} config.payload.actions[].path - path of PWA route to navigate to when button clicked\n * @return {string} - notification id\n */\nfunction * addNotice (\n {\n payload: {\n title,\n message,\n urgency = 'info',\n actions,\n duration = 10000,\n },\n },\n) {\n const { actionType, icon } = notificationTypes[urgency] || notificationTypes.info\n const config = {\n message: `${title ? title + ': ' : ''}${message}`,\n type: actionType,\n icon: ,\n canDismiss: true,\n duration,\n }\n // action buttons:\n if(Array.isArray(actions)) {\n const [acceptBtn, denyBtn] = actions.map(action => ({\n title: action.label,\n handler: action.path ? () => push(action.path) : null,\n }))\n config.acceptBtn = acceptBtn\n config.denyBtn = denyBtn\n }\n const action = createNotificationAction(config)\n yield put(action)\n}\n\nfunction * removeNotice ({\n payload: { id },\n}) {\n const action = removeNotificationAction(id)\n yield put(action)\n}\n\nexport function * watchNotice () {\n yield takeEvery(actions.dialog.notice.add, addNotice)\n}\n\nexport function * removeNotification () {\n yield takeEvery(actions.dialog.notice.remove, removeNotice)\n}","import { all } from 'redux-saga/effects'\n\nimport { watchHandleError, watchInitApp } from './appinit/sagas'\n\nimport { watchLogin, watchLogout, watchSavePass } from './user/sagas'\n\nimport { removeNotification, watchAsk, watchNotice } from './dialog/sagas'\n\nimport {\n watchClaimInfoFetch,\n watchGetInsurerGroups,\n watchGetInsurers,\n watchInsuranceEligibility,\n watchLoadActionItems,\n watchLoadPatient,\n watchLoadTest,\n watchLoadVacc,\n watchSaveTest,\n watchSaveVacc,\n watchSubmitClaim,\n watchSubmitSelfTest,\n} from './lab/sagas'\n\nexport function * rootSaga () {\n yield all([\n watchInitApp(),\n watchHandleError(),\n watchLogin(),\n watchLogout(),\n watchSavePass(),\n watchAsk(),\n watchNotice(),\n removeNotification(),\n watchLoadPatient(),\n watchLoadTest(),\n watchSaveTest(),\n watchSubmitSelfTest(),\n watchLoadVacc(),\n watchSaveVacc(),\n watchLoadActionItems(),\n watchInsuranceEligibility(),\n watchClaimInfoFetch(),\n watchSubmitClaim(),\n watchGetInsurerGroups(),\n watchGetInsurers(),\n ])\n}","import actions from 'app/state/ducks/actions'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { getIsOpen, getMainMenuItems } from 'app/state/ducks/menu/selectors'\nimport useTranslateDictionary from './useTranslateDictionary'\n\nexport default () => {\n const items = useSelector(getMainMenuItems)\n const trans = useTranslateDictionary({\n nameSpace: 'scenes',\n path: 'mainMenu',\n })\n const dispatch = useDispatch()\n return {\n items: items.map(({ name, path, ...rest }) => ({\n name: /\\badmin\\b/.test(path) ? name : trans[_.camelCase(name)],\n path,\n ...rest,\n })),\n isOpen: useSelector(getIsOpen),\n onToggle: params => dispatch(actions.menu.toggle(params)),\n }\n}\n","import React from 'react'\nimport Drawer from '@mui/material/Drawer'\nimport List from '@mui/material/List'\nimport ListItem from '@mui/material/ListItem'\nimport Divider from '@mui/material/Divider'\nimport makeStyles from '@mui/styles/makeStyles'\nimport useMainMenu from 'app/views/hooks/useMainMenu'\nimport { useHistory } from 'react-router-dom'\n\nconst useStyles = makeStyles(({ spacing, palette }) => ({\n itemRoot: {\n height: spacing(8),\n fontSize: '1.25em',\n color: palette.primary.contrastText,\n borderBottom: `1px solid ${palette.primary.light}`,\n backgroundColor: palette.primary.main,\n '&:hover': {\n backgroundColor: palette.primary.light,\n },\n },\n divider: {\n height: 2,\n },\n}))\n\nexport default () => {\n const { items, isOpen, onToggle } = useMainMenu()\n const { push } = useHistory()\n const classes = useStyles()\n return (\n \n \n {items.map((item, i) => item?.divider\n ? (\n \n )\n : (\n {\n push(`/${item.path}`)\n onToggle({ menuItemName: item.name })\n }}\n classes={{\n root: classes.itemRoot,\n }}\n >\n {item.name}\n \n ))}\n \n \n )\n}\n","import PropTypes from 'prop-types'\n\n// material-ui\nimport {\n CssBaseline,\n StyledEngineProvider,\n} from '@mui/material'\nimport {\n createTheme,\n ThemeProvider,\n} from '@mui/material/styles'\nimport { ThemeContext } from 'app/views/contexts/ThemeConfigContext'\n\n// ==============================|| DEFAULT THEME - MAIN ||============================== //\n\n\nexport const ThemeLoader = (props) => {\n const { themeState, setThemeState } = props\n return (\n \n \n \n \n {props.children}\n \n \n \n )\n}\n","// ==============================|| THEME CONFIG ||============================== //\n\nconst config = {\n defaultPath: '/dashboard/default',\n fontFamily: `'Poppins', sans-serif`,\n i18n: 'en',\n miniDrawer: false,\n container: true,\n mode: 'light',\n presetColor: 'default',\n themeDirection: 'ltr'\n}\n\nexport default config\nexport const drawerWidth = 260\nexport const drawerClosedWidth = 70\n\nexport const twitterColor = '#1DA1F2'\nexport const facebookColor = '#3b5998'\nexport const linkedInColor = '#0e76a8'","// material-ui\nimport { styled } from '@mui/material/styles'\nimport AppBar from '@mui/material/AppBar'\n\n// project import\nimport { drawerClosedWidth, drawerWidth } from 'config'\nimport { useMediaQuery } from '@mui/material'\n\n// ==============================|| HEADER - APP BAR STYLED ||============================== //\n\nconst AppBarStyled = styled(AppBar, { shouldForwardProp: (prop) => prop !== 'open' })(({ theme, open }) => {\n const matchDownMD = useMediaQuery(theme.breakpoints.down('lg'))\n return ({\n zIndex: theme.zIndex.drawer + 1,\n maxHeight : '140px',\n transition: theme.transitions.create(['width', 'margin'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n ...(open && {\n marginLeft: drawerWidth,\n width: `calc(100% - ${drawerWidth}px)`,\n transition: theme.transitions.create(['width', 'margin'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n }), ...(!open && {\n width: `calc(100% - ${!matchDownMD ? drawerClosedWidth : 0}px)`,\n }),\n })\n },\n)\n\nexport default AppBarStyled","// material-ui\nimport { Box, FormControl } from '@mui/material'\n\n// ==============================|| HEADER CONTENT - SEARCH ||============================== //\n\nconst Search = () => (\n \n \n\n \n \n)\n\nexport default Search","import PropTypes from 'prop-types'\nimport { forwardRef } from 'react'\n\n// material-ui\nimport { Fade, Box, Grow } from '@mui/material'\n\n// ==============================|| TRANSITIONS ||============================== //\n\nconst Transitions = forwardRef(({ children, position, type, ...others }, ref) => {\n let positionSX = {\n transformOrigin: '0 0 0',\n }\n\n switch (position) {\n case 'top-right':\n case 'top':\n case 'bottom-left':\n case 'bottom-right':\n case 'bottom':\n case 'top-left':\n default:\n positionSX = {\n transformOrigin: '0 0 0',\n }\n break\n }\n\n return (\n \n {type === 'grow' && (\n \n {children}\n \n )}\n {type === 'fade' && (\n \n {children}\n \n )}\n \n )\n})\n\nTransitions.propTypes = {\n children: PropTypes.node,\n type: PropTypes.oneOf(['grow', 'fade', 'collapse', 'slide', 'zoom']),\n position: PropTypes.oneOf(['top-left', 'top-right', 'top', 'bottom-left', 'bottom-right', 'bottom']),\n}\n\nTransitions.defaultProps = {\n type: 'grow',\n position: 'top-left',\n}\n\nexport default Transitions","import PropTypes from 'prop-types'\nimport React, { useState } from 'react'\n\n// material-ui\nimport { useTheme } from '@mui/material/styles'\nimport { Collapse, List, ListItemButton, ListItemIcon, ListItemText } from '@mui/material'\n\n// assets\nimport {\n FormatPainterOutlined,\n LogoutOutlined,\n SwapOutlined,\n TranslationOutlined,\n UserDeleteOutlined,\n EditOutlined,\n} from '@ant-design/icons'\nimport ExpandLess from '@mui/icons-material/ExpandLess'\nimport ExpandMore from '@mui/icons-material/ExpandMore'\nimport store from '../../../../../utils/local-storage'\nimport { useTranslation } from 'react-i18next'\nimport { useSelector } from 'react-redux'\nimport { getRole, getUser } from '../../../../state/ducks/user/selectors'\nimport useTranslateDictionary from '../../../../views/hooks/useTranslateDictionary'\nimport useDialogs from '../../../../views/hooks/useDialogs'\nimport { deleteUserAccount } from '../../../../../api/user'\nimport useUserActions from '../../../../views/hooks/useUserActions'\n\n// ==============================|| HEADER PROFILE - PROFILE TAB ||============================== //\nconst PROFILE_MENUS = {\n SWITCH_DIVISION: 0,\n LANGUAGE_SWITCH: 1,\n UI_PALETTE: 2,\n DELETE_PROFILE: 3,\n LOGOUT: 4,\n EDIT_PROFILE: 5,\n}\nconst ProfileTab = ({\n handleLogout,\n onSwitchDivision,\n onUIPalette,\n onEditProfile,\n}) => {\n const theme = useTheme()\n const role = useSelector(getRole)\n const user = useSelector(getUser)\n const [languageSwitchOpen, setLanguageSwitchOpen] = useState(false)\n const { i18n } = useTranslation()\n const { logout } = useUserActions()\n const subs = {\n appTitle,\n }\n const trans = useTranslateDictionary({\n nameSpace: 'scenes',\n path: 'personal.delete',\n subs,\n })\n const { alert, confirm, notice, loading } = useDialogs()\n\n const languages = store.get('constants.LANGUAGES')\n\n const [selectedIndex, setSelectedIndex] = useState(PROFILE_MENUS.LOGOUT)\n\n const deleteMyAccount = async () => {\n let okayToDelete = await confirm({\n title: trans.deleteAccountWarning,\n question: trans.deleteAccountWarningText,\n })\n let result = false\n if(okayToDelete) {\n loading({ message: trans.deleteInProgress })\n result = await deleteUserAccount(user) // trigger account deletion flow\n if(result.notice) { // operation successful\n loading()\n notice(result.notice)\n alert({\n title: trans.accountDeletedAlert,\n message: trans.accountDeletedAlertText,\n })\n setTimeout(async () => {\n try {\n logout()\n } catch (err) {\n }\n }, 5000)\n } else if(result.error) { // operation failed\n loading()\n notice(result.error)\n }\n } else {\n // operation cancelled\n }\n }\n\n const handleListItemClick = (event, index) => {\n setSelectedIndex(index)\n switch (index) {\n case PROFILE_MENUS.SWITCH_DIVISION:\n onSwitchDivision()\n break\n case PROFILE_MENUS.LANGUAGE_SWITCH:\n setLanguageSwitchOpen(!languageSwitchOpen)\n break\n case PROFILE_MENUS.UI_PALETTE:\n onUIPalette()\n break\n case PROFILE_MENUS.DELETE_PROFILE:\n // Delete user profile\n deleteMyAccount()\n break\n case PROFILE_MENUS.EDIT_PROFILE:\n // Delete user profile\n onEditProfile()\n break\n case PROFILE_MENUS.LOGOUT:\n handleLogout()\n break\n }\n if(index !== PROFILE_MENUS.LANGUAGE_SWITCH) setLanguageSwitchOpen(false)\n }\n const selectLanguage = lang => {\n i18n.changeLanguage(lang)\n setLanguageSwitchOpen(false)\n }\n const languageList = _.map(languages, (name, lang) => (\n selectLanguage(lang)}>\n \n ))\n return (<>\n \n handleListItemClick(event, PROFILE_MENUS.SWITCH_DIVISION)}>\n \n \n \n \n \n handleListItemClick(event, PROFILE_MENUS.LANGUAGE_SWITCH)}>\n \n \n \n \n {languageSwitchOpen ? : }\n \n \n \n {languageList}\n \n \n {role && ['Admin', 'Account Owner'].includes(role) &&\n ( handleListItemClick(event, PROFILE_MENUS.UI_PALETTE)}>\n \n \n \n \n )}\n handleListItemClick(event, PROFILE_MENUS.EDIT_PROFILE)}>\n \n \n \n \n \n handleListItemClick(event, PROFILE_MENUS.DELETE_PROFILE)}>\n \n \n \n \n \n handleListItemClick(event, PROFILE_MENUS.LOGOUT)}>\n \n \n \n \n \n \n \n\n )\n}\n\nProfileTab.propTypes = {\n handleLogout: PropTypes.func,\n}\n\nexport default ProfileTab","import React, { useMemo } from 'react'\nimport List from '@mui/material/List'\nimport ListItem from '@mui/material/ListItem'\nimport { getOrgProperty } from 'utils/org'\nimport _ from 'lodash'\n\nexport default props => {\n const items = useMemo(() => getOrgProperty('divisionSwitcherItems'), [])\n if (!items) return null\n return (\n \n {_.map(items, (name, id) => (\n {\n window.location.href = `/div/${id}`\n }}\n >\n {name}\n \n ))}\n \n )\n}\n","import React from 'react'\nimport Drawer from '@mui/material/Drawer'\nimport Typography from '@mui/material/Typography'\nimport DivisionListNav from 'app/views/components/lists/DivisionListNav'\nimport makeStyles from '@mui/styles/makeStyles'\n\nconst useStyles = makeStyles(({ spacing }) => ({\n title: {\n marginTop: spacing(3),\n marginBottom: spacing(2),\n },\n}))\n\nexport default ({\n isOpen = false,\n handleClose,\n}) => {\n const classes = useStyles()\n return (\n \n \n Select Division\n \n \n \n )\n}","import PropTypes from 'prop-types'\n\n// ==============================|| PRESET THEME - DEFAULT ||============================== //\n\nconst Default = (colors) => {\n const { blue, red, gold, cyan, green, grey } = colors\n const greyColors = {\n 0: grey[0],\n 50: grey[1],\n 100: grey[2],\n 200: grey[3],\n 300: grey[4],\n 400: grey[5],\n 500: grey[6],\n 600: grey[7],\n 700: grey[8],\n 800: grey[9],\n 900: grey[10],\n A50: grey[15],\n A100: grey[11],\n A200: grey[12],\n A400: grey[13],\n A700: grey[14],\n A800: grey[16]\n }\n const contrastText = '#fff'\n\n return {\n primary: {\n lighter: blue[0],\n 100: blue[1],\n 200: blue[2],\n light: blue[3],\n 400: blue[4],\n main: blue[5],\n dark: blue[6],\n 700: blue[7],\n darker: blue[8],\n 900: blue[9],\n contrastText\n },\n secondary: {\n lighter: greyColors[100],\n 100: greyColors[100],\n 200: greyColors[200],\n light: greyColors[300],\n 400: greyColors[400],\n main: greyColors[500],\n 600: greyColors[600],\n dark: greyColors[700],\n 800: greyColors[800],\n darker: greyColors[900],\n A100: greyColors[0],\n A200: greyColors.A400,\n A300: greyColors.A700,\n contrastText: greyColors[0]\n },\n error: {\n lighter: red[0],\n light: red[2],\n main: red[4],\n dark: red[7],\n darker: red[9],\n contrastText\n },\n warning: {\n lighter: gold[0],\n light: gold[3],\n main: gold[5],\n dark: gold[7],\n darker: gold[9],\n contrastText: greyColors[100]\n },\n info: {\n lighter: cyan[0],\n light: cyan[3],\n main: cyan[5],\n dark: cyan[7],\n darker: cyan[9],\n contrastText\n },\n success: {\n lighter: green[0],\n light: green[3],\n main: green[5],\n dark: green[7],\n darker: green[9],\n contrastText\n },\n grey: greyColors\n }\n}\n\nDefault.propTypes = {\n colors: PropTypes.object\n}\n\nexport default Default\n","// ==============================|| PRESET THEME - Eva Design ||============================== //\n\nconst Theme1 = (colors, mode) => {\n const { grey } = colors\n const greyColors = {\n 0: grey[0],\n 50: grey[1],\n 100: grey[2],\n 200: grey[3],\n 300: grey[4],\n 400: grey[5],\n 500: grey[6],\n 600: grey[7],\n 700: grey[8],\n 800: grey[9],\n 900: grey[10],\n A50: grey[15],\n A100: grey[11],\n A200: grey[12],\n A400: grey[13],\n A700: grey[14],\n A800: grey[16]\n }\n const contrastText = '#fff'\n\n let primaryColors = ['#D6E4FF', '#D6E4FF', '#ADC8FF', '#84A9FF', '#6690FF', '#3366FF', '#254EDB', '#1939B7', '#102693', '#102693']\n let errorColors = ['#FFE7D3', '#FF805D', '#FF4528', '#DB271D', '#930C1A']\n let warningColors = ['#FFF6D0', '#FFCF4E', '#FFB814', '#DB970E', '#935B06']\n let infoColors = ['#DCF0FF', '#7EB9FF', '#549BFF', '#3D78DB', '#1A3D93']\n let successColors = ['#EAFCD4', '#8AE65B', '#58D62A', '#3DB81E', '#137C0D']\n\n if (mode === 'dark') {\n primaryColors = ['#1c2134', '#1f294d', '#243462', '#273e83', '#2c4db0', '#305bdd', '#567fe9', '#80a4f4', '#a9c5f8', '#d2e2fb']\n errorColors = ['#341d1b', '#b03725', '#dd3f27', '#e9664d', '#fbd6c9']\n warningColors = ['#342a1a', '#83631a', '#dda116', '#e9ba3a', '#fbefb5']\n infoColors = ['#202734', '#416fb0', '#4c88dd', '#74a8e9', '#ecf4fb']\n successColors = ['#1f2e1c', '#449626', '#4fba28', '#74cf4d', '#e3fbd2']\n }\n\n return {\n primary: {\n lighter: primaryColors[0],\n 100: primaryColors[1],\n 200: primaryColors[2],\n light: primaryColors[3],\n 400: primaryColors[4],\n main: primaryColors[5],\n dark: primaryColors[6],\n 700: primaryColors[7],\n darker: primaryColors[8],\n 900: primaryColors[9],\n contrastText\n },\n secondary: {\n lighter: greyColors[100],\n 100: greyColors[100],\n 200: greyColors[200],\n light: greyColors[300],\n 400: greyColors[400],\n main: greyColors[500],\n 600: greyColors[600],\n dark: greyColors[700],\n 800: greyColors[800],\n darker: greyColors[900],\n A100: greyColors[0],\n A200: greyColors.A400,\n A300: greyColors.A700,\n contrastText: greyColors[0]\n },\n error: {\n lighter: errorColors[0],\n light: errorColors[1],\n main: errorColors[2],\n dark: errorColors[3],\n darker: errorColors[4],\n contrastText\n },\n warning: {\n lighter: warningColors[0],\n light: warningColors[1],\n main: warningColors[2],\n dark: warningColors[3],\n darker: warningColors[4],\n contrastText: greyColors[100]\n },\n info: {\n lighter: infoColors[0],\n light: infoColors[1],\n main: infoColors[2],\n dark: infoColors[3],\n darker: infoColors[4],\n contrastText\n },\n success: {\n lighter: successColors[0],\n light: successColors[1],\n main: successColors[2],\n dark: successColors[3],\n darker: successColors[4],\n contrastText\n },\n grey: greyColors\n }\n}\n\nexport default Theme1\n","// ==============================|| PRESET THEME - DEFAULT ||============================== //\n\nconst Theme2 = (colors, mode) => {\n const { grey } = colors\n const greyColors = {\n 0: grey[0],\n 50: grey[1],\n 100: grey[2],\n 200: grey[3],\n 300: grey[4],\n 400: grey[5],\n 500: grey[6],\n 600: grey[7],\n 700: grey[8],\n 800: grey[9],\n 900: grey[10],\n A50: grey[15],\n A100: grey[11],\n A200: grey[12],\n A400: grey[13],\n A700: grey[14],\n A800: grey[16]\n }\n const contrastText = '#fff'\n\n let primaryColors = ['#EEEDFC', '#D5D1F8', '#B9B2F3', '#9C93EE', '#877CEA', '#7265E6', '#6A5DE3', '#5F53DF', '#5549DB', '#4237D5']\n let errorColors = ['#FDE8E7', '#F25E52', '#F04134', '#EE3B2F', '#E92A21']\n let warningColors = ['#FFF7E0', '#FFC926', '#FFBF00', '#FFB900', '#FFA900']\n let infoColors = ['#E0F4F5', '#26B0BA', '#00A2AE', '#009AA7', '#008694']\n let successColors = ['#E0F5EA', '#26B56E', '#00A854', '#00A04D', '#008D3A']\n\n if (mode === 'dark') {\n primaryColors = ['#222130', '#2b2946', '#37335a', '#443e78', '#554ca0', '#655ac8', '#9186dd', '#5F53DF', '#c3baf4', '#efecfb']\n errorColors = ['#321d1d', '#7d2e28', '#d13c31', '#e66859', '#f8baaf']\n warningColors = ['#342c1a', '#836611', '#dda705', '#e9bf28', '#f8e577']\n infoColors = ['#1a2628', '#11595f', '#058e98', '#1ea6aa', '#64cfcb']\n successColors = ['#1a2721', '#115c36', '#05934c', '#1da65d', '#61ca8b']\n }\n\n return {\n primary: {\n lighter: primaryColors[0],\n 100: primaryColors[1],\n 200: primaryColors[2],\n light: primaryColors[3],\n 400: primaryColors[4],\n main: primaryColors[5],\n dark: primaryColors[6],\n 700: primaryColors[7],\n darker: primaryColors[8],\n 900: primaryColors[9],\n contrastText\n },\n secondary: {\n lighter: greyColors[100],\n 100: greyColors[100],\n 200: greyColors[200],\n light: greyColors[300],\n 400: greyColors[400],\n main: greyColors[500],\n 600: greyColors[600],\n dark: greyColors[700],\n 800: greyColors[800],\n darker: greyColors[900],\n A100: greyColors[0],\n A200: greyColors.A400,\n A300: greyColors.A700,\n contrastText: greyColors[0]\n },\n error: {\n lighter: errorColors[0],\n light: errorColors[1],\n main: errorColors[2],\n dark: errorColors[3],\n darker: errorColors[4],\n contrastText\n },\n warning: {\n lighter: warningColors[0],\n light: warningColors[1],\n main: warningColors[2],\n dark: warningColors[3],\n darker: warningColors[4],\n contrastText: greyColors[100]\n },\n info: {\n lighter: infoColors[0],\n light: infoColors[1],\n main: infoColors[2],\n dark: infoColors[3],\n darker: infoColors[4],\n contrastText\n },\n success: {\n lighter: successColors[0],\n light: successColors[1],\n main: successColors[2],\n dark: successColors[3],\n darker: successColors[4],\n contrastText\n },\n grey: greyColors\n }\n}\n\nexport default Theme2\n","// ==============================|| PRESET THEME - Dark Green ||============================== //\n\nconst Theme4 = (colors, mode) => {\n const { grey } = colors\n const greyColors = {\n 0: grey[0],\n 50: grey[1],\n 100: grey[2],\n 200: grey[3],\n 300: grey[4],\n 400: grey[5],\n 500: grey[6],\n 600: grey[7],\n 700: grey[8],\n 800: grey[9],\n 900: grey[10],\n A50: grey[15],\n A100: grey[11],\n A200: grey[12],\n A400: grey[13],\n A700: grey[14],\n A800: grey[16]\n }\n const contrastText = '#fff'\n\n let primaryColors = ['#E6F3EC', '#84c297', '#5eb57d', '#3da866', '#1f9c53', '#068e44', '#006933', '#004222', '#001c0f', '#000000']\n let errorColors = ['#FDE8E7', '#F25E52', '#F04134', '#EE3B2F', '#E92A21']\n let warningColors = ['#FFF7E0', '#FFC926', '#FFBF00', '#FFB900', '#FFA900']\n let infoColors = ['#E0F4F5', '#26B0BA', '#00A2AE', '#009AA7', '#008694']\n let successColors = ['#E0F5EA', '#26B56E', '#00A854', '#00A04D', '#008D3A']\n\n if (mode === 'dark') {\n primaryColors = ['#1a231f', '#173123', '#174029', '#13502f', '#0e6737', '#0a7d3e', '#1f8f4e', '#3ba162', '#5cb07a', '#82bf95']\n errorColors = ['#321d1d', '#7d2e28', '#d13c31', '#e66859', '#f8baaf']\n warningColors = ['#342c1a', '#836611', '#dda705', '#e9bf28', '#f8e577']\n infoColors = ['#1a2628', '#11595f', '#058e98', '#1ea6aa', '#64cfcb']\n successColors = ['#1a2721', '#115c36', '#05934c', '#1da65d', '#61ca8b']\n }\n\n return {\n primary: {\n lighter: primaryColors[0],\n 100: primaryColors[1],\n 200: primaryColors[2],\n light: primaryColors[3],\n 400: primaryColors[4],\n main: primaryColors[5],\n dark: primaryColors[6],\n 700: primaryColors[7],\n darker: primaryColors[8],\n 900: primaryColors[9],\n contrastText\n },\n secondary: {\n lighter: greyColors[100],\n 100: greyColors[100],\n 200: greyColors[200],\n light: greyColors[300],\n 400: greyColors[400],\n main: greyColors[500],\n 600: greyColors[600],\n dark: greyColors[700],\n 800: greyColors[800],\n darker: greyColors[900],\n A100: greyColors[0],\n A200: greyColors.A400,\n A300: greyColors.A700,\n contrastText: greyColors[0]\n },\n error: {\n lighter: errorColors[0],\n light: errorColors[1],\n main: errorColors[2],\n dark: errorColors[3],\n darker: errorColors[4],\n contrastText\n },\n warning: {\n lighter: warningColors[0],\n light: warningColors[1],\n main: warningColors[2],\n dark: warningColors[3],\n darker: warningColors[4],\n contrastText: greyColors[100]\n },\n info: {\n lighter: infoColors[0],\n light: infoColors[1],\n main: infoColors[2],\n dark: infoColors[3],\n darker: infoColors[4],\n contrastText\n },\n success: {\n lighter: successColors[0],\n light: successColors[1],\n main: successColors[2],\n dark: successColors[3],\n darker: successColors[4],\n contrastText\n },\n grey: greyColors\n }\n}\n\nexport default Theme4\n","// ==============================|| PRESET THEME - Theme4 Blue ||============================== //\n\nconst Theme4 = (colors, mode) => {\n const { grey } = colors\n const greyColors = {\n 0: grey[0],\n 50: grey[1],\n 100: grey[2],\n 200: grey[3],\n 300: grey[4],\n 400: grey[5],\n 500: grey[6],\n 600: grey[7],\n 700: grey[8],\n 800: grey[9],\n 900: grey[10],\n A50: grey[15],\n A100: grey[11],\n A200: grey[12],\n A400: grey[13],\n A700: grey[14],\n A800: grey[16]\n }\n const contrastText = '#fff'\n\n let primaryColors = ['#f0f6ff', '#edf4ff', '#bed3f7', '#8faeeb', '#6488de', '#3c64d0', '#2947ab', '#192f85', '#0d1b5e', '#070e38']\n let errorColors = ['#FDE8E7', '#F25E52', '#F04134', '#EE3B2F', '#E92A21']\n let warningColors = ['#FFF7E0', '#FFC926', '#FFBF00', '#FFB900', '#FFA900']\n let infoColors = ['#E0F4F5', '#26B0BA', '#00A2AE', '#009AA7', '#008694']\n let successColors = ['#E0F5EA', '#26B56E', '#00A854', '#00A04D', '#008D3A']\n\n if (mode === 'dark') {\n primaryColors = ['#1d212d', '#212841', '#273353', '#2c3e6e', '#324c92', '#385ab5', '#5d7dcb', '#89a7e1', '#b9cef0', '#e9f0fb']\n errorColors = ['#321d1d', '#7d2e28', '#d13c31', '#e66859', '#f8baaf']\n warningColors = ['#342c1a', '#836611', '#dda705', '#e9bf28', '#f8e577']\n infoColors = ['#1a2628', '#11595f', '#058e98', '#1ea6aa', '#64cfcb']\n successColors = ['#1a2721', '#115c36', '#05934c', '#1da65d', '#61ca8b']\n }\n\n return {\n primary: {\n lighter: primaryColors[0],\n 100: primaryColors[1],\n 200: primaryColors[2],\n light: primaryColors[3],\n 400: primaryColors[4],\n main: primaryColors[5],\n dark: primaryColors[6],\n 700: primaryColors[7],\n darker: primaryColors[8],\n 900: primaryColors[9],\n contrastText\n },\n secondary: {\n lighter: greyColors[100],\n 100: greyColors[100],\n 200: greyColors[200],\n light: greyColors[300],\n 400: greyColors[400],\n main: greyColors[500],\n 600: greyColors[600],\n dark: greyColors[700],\n 800: greyColors[800],\n darker: greyColors[900],\n A100: greyColors[0],\n A200: greyColors.A400,\n A300: greyColors.A700,\n contrastText: greyColors[0]\n },\n error: {\n lighter: errorColors[0],\n light: errorColors[1],\n main: errorColors[2],\n dark: errorColors[3],\n darker: errorColors[4],\n contrastText\n },\n warning: {\n lighter: warningColors[0],\n light: warningColors[1],\n main: warningColors[2],\n dark: warningColors[3],\n darker: warningColors[4],\n contrastText: greyColors[100]\n },\n info: {\n lighter: infoColors[0],\n light: infoColors[1],\n main: infoColors[2],\n dark: infoColors[3],\n darker: infoColors[4],\n contrastText\n },\n success: {\n lighter: successColors[0],\n light: successColors[1],\n main: successColors[2],\n dark: successColors[3],\n darker: successColors[4],\n contrastText\n },\n grey: greyColors\n }\n}\n\nexport default Theme4\n","// ==============================|| PRESET THEME - Theme4 Blue ||============================== //\n\nconst Theme5 = (colors, mode) => {\n const { grey } = colors\n const greyColors = {\n 0: grey[0],\n 50: grey[1],\n 100: grey[2],\n 200: grey[3],\n 300: grey[4],\n 400: grey[5],\n 500: grey[6],\n 600: grey[7],\n 700: grey[8],\n 800: grey[9],\n 900: grey[10],\n A50: grey[15],\n A100: grey[11],\n A200: grey[12],\n A400: grey[13],\n A700: grey[14],\n A800: grey[16]\n }\n const contrastText = '#fff'\n\n let primaryColors = ['#fff4e6', '#ffdfb8', '#ffc98f', '#ffb066', '#ff943d', '#f27013', '#cc5206', '#a63a00', '#802800', '#591900']\n let errorColors = ['#FDE8E7', '#F25E52', '#F04134', '#EE3B2F', '#E92A21']\n let warningColors = ['#FFF7E0', '#FFC926', '#FFBF00', '#FFB900', '#FFA900']\n let infoColors = ['#E0F4F5', '#26B0BA', '#00A2AE', '#009AA7', '#008694']\n let successColors = ['#E0F5EA', '#26B56E', '#00A854', '#00A04D', '#008D3A']\n\n if (mode === 'dark') {\n primaryColors = ['#32221a', '#4a2b18', '#5e371b', '#7d4319', '#a85317', '#d26415', '#e9883a', '#f4a962', '#f8c48c', '#fbdbb5']\n errorColors = ['#321d1d', '#7d2e28', '#d13c31', '#e66859', '#f8baaf']\n warningColors = ['#342c1a', '#836611', '#dda705', '#e9bf28', '#f8e577']\n infoColors = ['#1a2628', '#11595f', '#058e98', '#1ea6aa', '#64cfcb']\n successColors = ['#1a2721', '#115c36', '#05934c', '#1da65d', '#61ca8b']\n }\n\n return {\n primary: {\n lighter: primaryColors[0],\n 100: primaryColors[1],\n 200: primaryColors[2],\n light: primaryColors[3],\n 400: primaryColors[4],\n main: primaryColors[5],\n dark: primaryColors[6],\n 700: primaryColors[7],\n darker: primaryColors[8],\n 900: primaryColors[9],\n contrastText\n },\n secondary: {\n lighter: greyColors[100],\n 100: greyColors[100],\n 200: greyColors[200],\n light: greyColors[300],\n 400: greyColors[400],\n main: greyColors[500],\n 600: greyColors[600],\n dark: greyColors[700],\n 800: greyColors[800],\n darker: greyColors[900],\n A100: greyColors[0],\n A200: greyColors.A400,\n A300: greyColors.A700,\n contrastText: greyColors[0]\n },\n error: {\n lighter: errorColors[0],\n light: errorColors[1],\n main: errorColors[2],\n dark: errorColors[3],\n darker: errorColors[4],\n contrastText\n },\n warning: {\n lighter: warningColors[0],\n light: warningColors[1],\n main: warningColors[2],\n dark: warningColors[3],\n darker: warningColors[4],\n contrastText: greyColors[100]\n },\n info: {\n lighter: infoColors[0],\n light: infoColors[1],\n main: infoColors[2],\n dark: infoColors[3],\n darker: infoColors[4],\n contrastText\n },\n success: {\n lighter: successColors[0],\n light: successColors[1],\n main: successColors[2],\n dark: successColors[3],\n darker: successColors[4],\n contrastText\n },\n grey: greyColors\n }\n}\n\nexport default Theme5\n","// ==============================|| PRESET THEME - Theme4 Blue ||============================== //\n\nconst Theme6 = (colors, mode) => {\n const { grey } = colors\n const greyColors = {\n 0: grey[0],\n 50: grey[1],\n 100: grey[2],\n 200: grey[3],\n 300: grey[4],\n 400: grey[5],\n 500: grey[6],\n 600: grey[7],\n 700: grey[8],\n 800: grey[9],\n 900: grey[10],\n A50: grey[15],\n A100: grey[11],\n A200: grey[12],\n A400: grey[13],\n A700: grey[14],\n A800: grey[16]\n }\n const contrastText = '#fff'\n\n let primaryColors = ['#e1f0ef', '#c8e3e2', '#9ad6d6', '#71c6c9', '#4bb5bd', '#41afbf', '#1a7b8a', '#0e5563', '#06323d', '#021217']\n let errorColors = ['#FDE8E7', '#F25E52', '#F04134', '#EE3B2F', '#E92A21']\n let warningColors = ['#FFF7E0', '#FFC926', '#FFBF00', '#FFB900', '#FFA900']\n let infoColors = ['#E0F4F5', '#26B0BA', '#00A2AE', '#009AA7', '#008694']\n let successColors = ['#E0F5EA', '#26B56E', '#00A854', '#00A04D', '#008D3A']\n\n if (mode === 'dark') {\n primaryColors = ['#1c2628', '#1d3539', '#22454a', '#23595f', '#26737c', '#288d99', '#47a6ad', '#6dbec0', '#96d0d0', '#c5dfde']\n errorColors = ['#321d1d', '#7d2e28', '#d13c31', '#e66859', '#f8baaf']\n warningColors = ['#342c1a', '#836611', '#dda705', '#e9bf28', '#f8e577']\n infoColors = ['#1a2628', '#11595f', '#058e98', '#1ea6aa', '#64cfcb']\n successColors = ['#1a2721', '#115c36', '#05934c', '#1da65d', '#61ca8b']\n }\n\n return {\n primary: {\n lighter: primaryColors[0],\n 100: primaryColors[1],\n 200: primaryColors[2],\n light: primaryColors[3],\n 400: primaryColors[4],\n main: primaryColors[5],\n dark: primaryColors[6],\n 700: primaryColors[7],\n darker: primaryColors[8],\n 900: primaryColors[9],\n contrastText\n },\n secondary: {\n lighter: greyColors[100],\n 100: greyColors[100],\n 200: greyColors[200],\n light: greyColors[300],\n 400: greyColors[400],\n main: greyColors[500],\n 600: greyColors[600],\n dark: greyColors[700],\n 800: greyColors[800],\n darker: greyColors[900],\n A100: greyColors[0],\n A200: greyColors.A400,\n A300: greyColors.A700,\n contrastText: greyColors[0]\n },\n error: {\n lighter: errorColors[0],\n light: errorColors[1],\n main: errorColors[2],\n dark: errorColors[3],\n darker: errorColors[4],\n contrastText\n },\n warning: {\n lighter: warningColors[0],\n light: warningColors[1],\n main: warningColors[2],\n dark: warningColors[3],\n darker: warningColors[4],\n contrastText: greyColors[100]\n },\n info: {\n lighter: infoColors[0],\n light: infoColors[1],\n main: infoColors[2],\n dark: infoColors[3],\n darker: infoColors[4],\n contrastText\n },\n success: {\n lighter: successColors[0],\n light: successColors[1],\n main: successColors[2],\n dark: successColors[3],\n darker: successColors[4],\n contrastText\n },\n grey: greyColors\n }\n}\n\nexport default Theme6\n","// ==============================|| PRESET THEME - Theme7 Green ||============================== //\n\nconst Theme7 = (colors, mode) => {\n const { grey } = colors\n const greyColors = {\n 0: grey[0],\n 50: grey[1],\n 100: grey[2],\n 200: grey[3],\n 300: grey[4],\n 400: grey[5],\n 500: grey[6],\n 600: grey[7],\n 700: grey[8],\n 800: grey[9],\n 900: grey[10],\n A50: grey[15],\n A100: grey[11],\n A200: grey[12],\n A400: grey[13],\n A700: grey[14],\n A800: grey[16]\n }\n const contrastText = '#fff'\n\n let primaryColors = ['#d1e8d99c', '#8cdba9', '#63cf8e', '#3ec277', '#1db564', '#00a854', '#008245', '#005c34', '#003620', '#000f0a']\n let errorColors = ['#FDE8E7', '#F25E52', '#F04134', '#EE3B2F', '#E92A21']\n let warningColors = ['#FFF7E0', '#FFC926', '#FFBF00', '#FFB900', '#FFA900']\n let infoColors = ['#E0F4F5', '#26B0BA', '#00A2AE', '#009AA7', '#008694']\n let successColors = ['#E0F5EA', '#26B56E', '#00A854', '#00A04D', '#008D3A']\n\n if (mode === 'dark') {\n primaryColors = ['#1a2721', '#173728', '#15472e', '#115c36', '#0b7841', '#05934c', '#1da65d', '#3cba73', '#61ca8b', '#8ad7a6']\n errorColors = ['#321d1d', '#7d2e28', '#d13c31', '#e66859', '#f8baaf']\n warningColors = ['#342c1a', '#836611', '#dda705', '#e9bf28', '#f8e577']\n infoColors = ['#1a2628', '#11595f', '#058e98', '#1ea6aa', '#64cfcb']\n successColors = ['#1a2721', '#115c36', '#05934c', '#1da65d', '#61ca8b']\n }\n\n return {\n primary: {\n lighter: primaryColors[0],\n 100: primaryColors[1],\n 200: primaryColors[2],\n light: primaryColors[3],\n 400: primaryColors[4],\n main: primaryColors[5],\n dark: primaryColors[6],\n 700: primaryColors[7],\n darker: primaryColors[8],\n 900: primaryColors[9],\n contrastText\n },\n secondary: {\n lighter: greyColors[100],\n 100: greyColors[100],\n 200: greyColors[200],\n light: greyColors[300],\n 400: greyColors[400],\n main: greyColors[500],\n 600: greyColors[600],\n dark: greyColors[700],\n 800: greyColors[800],\n darker: greyColors[900],\n A100: greyColors[0],\n A200: greyColors.A400,\n A300: greyColors.A700,\n contrastText: greyColors[0]\n },\n error: {\n lighter: errorColors[0],\n light: errorColors[1],\n main: errorColors[2],\n dark: errorColors[3],\n darker: errorColors[4],\n contrastText\n },\n warning: {\n lighter: warningColors[0],\n light: warningColors[1],\n main: warningColors[2],\n dark: warningColors[3],\n darker: warningColors[4],\n contrastText: greyColors[100]\n },\n info: {\n lighter: infoColors[0],\n light: infoColors[1],\n main: infoColors[2],\n dark: infoColors[3],\n darker: infoColors[4],\n contrastText\n },\n success: {\n lighter: successColors[0],\n light: successColors[1],\n main: successColors[2],\n dark: successColors[3],\n darker: successColors[4],\n contrastText\n },\n grey: greyColors\n }\n}\n\nexport default Theme7\n","// ==============================|| PRESET THEME - Theme8 ||============================== //\n\nconst Theme8 = (colors, mode) => {\n const { grey } = colors\n const greyColors = {\n 0: grey[0],\n 50: grey[1],\n 100: grey[2],\n 200: grey[3],\n 300: grey[4],\n 400: grey[5],\n 500: grey[6],\n 600: grey[7],\n 700: grey[8],\n 800: grey[9],\n 900: grey[10],\n A50: grey[15],\n A100: grey[11],\n A200: grey[12],\n A400: grey[13],\n A700: grey[14],\n A800: grey[16]\n }\n const contrastText = '#fff'\n\n let primaryColors = ['#c1d6d066', '#81c9b9', '#5bbda9', '#38b09c', '#1aa391', '#009688', '#007069', '#004a47', '#002424', '#000000']\n let errorColors = ['#FDE8E7', '#F25E52', '#F04134', '#EE3B2F', '#E92A21']\n let warningColors = ['#FFF7E0', '#FFC926', '#FFBF00', '#FFB900', '#FFA900']\n let infoColors = ['#E0F4F5', '#26B0BA', '#00A2AE', '#009AA7', '#008694']\n let successColors = ['#E0F5EA', '#26B56E', '#00A854', '#00A04D', '#008D3A']\n\n if (mode === 'dark') {\n primaryColors = ['#1a2524', '#173331', '#15423e', '#11544e', '#0b6c63', '#058478', '#1a9686', '#37a996', '#59b8a5', '#7fc6b6']\n errorColors = ['#321d1d', '#7d2e28', '#d13c31', '#e66859', '#f8baaf']\n warningColors = ['#342c1a', '#836611', '#dda705', '#e9bf28', '#f8e577']\n infoColors = ['#1a2628', '#11595f', '#058e98', '#1ea6aa', '#64cfcb']\n successColors = ['#1a2721', '#115c36', '#05934c', '#1da65d', '#61ca8b']\n }\n\n return {\n primary: {\n lighter: primaryColors[0],\n 100: primaryColors[1],\n 200: primaryColors[2],\n light: primaryColors[3],\n 400: primaryColors[4],\n main: primaryColors[5],\n dark: primaryColors[6],\n 700: primaryColors[7],\n darker: primaryColors[8],\n 900: primaryColors[9],\n contrastText\n },\n secondary: {\n lighter: greyColors[100],\n 100: greyColors[100],\n 200: greyColors[200],\n light: greyColors[300],\n 400: greyColors[400],\n main: greyColors[500],\n 600: greyColors[600],\n dark: greyColors[700],\n 800: greyColors[800],\n darker: greyColors[900],\n A100: greyColors[0],\n A200: greyColors.A400,\n A300: greyColors.A700,\n contrastText: greyColors[0]\n },\n error: {\n lighter: errorColors[0],\n light: errorColors[1],\n main: errorColors[2],\n dark: errorColors[3],\n darker: errorColors[4],\n contrastText\n },\n warning: {\n lighter: warningColors[0],\n light: warningColors[1],\n main: warningColors[2],\n dark: warningColors[3],\n darker: warningColors[4],\n contrastText: greyColors[100]\n },\n info: {\n lighter: infoColors[0],\n light: infoColors[1],\n main: infoColors[2],\n dark: infoColors[3],\n darker: infoColors[4],\n contrastText\n },\n success: {\n lighter: successColors[0],\n light: successColors[1],\n main: successColors[2],\n dark: successColors[3],\n darker: successColors[4],\n contrastText\n },\n grey: greyColors\n }\n}\n\nexport default Theme8\n","import PropTypes from 'prop-types'\n\n// project import\nimport Default from 'app/views/themes/theme/default'\nimport Theme1 from 'app/views/themes/theme/theme1'\nimport Theme2 from 'app/views/themes/theme/theme2'\nimport Theme3 from 'app/views/themes/theme/theme3'\nimport Theme4 from 'app/views/themes/theme/theme4'\nimport Theme5 from 'app/views/themes/theme/theme5'\nimport Theme6 from 'app/views/themes/theme/theme6'\nimport Theme7 from 'app/views/themes/theme/theme7'\nimport Theme8 from 'app/views/themes/theme/theme8'\n\n// ==============================|| PRESET THEME - THEME SELECTOR ||============================== //\n\nconst Theme = (colors, presetColor, mode) => {\n switch (presetColor) {\n case 'theme1':\n return Theme1(colors, mode)\n case 'theme2':\n return Theme2(colors, mode)\n case 'theme3':\n return Theme3(colors, mode)\n case 'theme4':\n return Theme4(colors, mode)\n case 'theme5':\n return Theme5(colors, mode)\n case 'theme6':\n return Theme6(colors, mode)\n case 'theme7':\n return Theme7(colors, mode)\n case 'theme8':\n return Theme8(colors, mode)\n default:\n return Default(colors)\n }\n}\n\nTheme.propTypes = {\n colors: PropTypes.object,\n presetColor: PropTypes.any\n}\n\nexport default Theme\n","// material-ui\nimport { alpha, createTheme } from '@mui/material/styles'\n\n// third-party\nimport { presetDarkPalettes, presetPalettes } from '@ant-design/colors'\n\n// project import\nimport ThemeOption from 'app/views/themes/theme'\n\n// ==============================|| DEFAULT THEME - PALETTE ||============================== //\n\nconst Palette = (mode, presetColor) => {\n const colors = mode === 'dark' ? presetDarkPalettes : presetPalettes\n\n let greyPrimary = [\n '#ffffff',\n '#fafafa',\n '#f5f5f5',\n '#f0f0f0',\n '#d9d9d9',\n '#bfbfbf',\n '#8c8c8c',\n '#595959',\n '#262626',\n '#141414',\n '#000000'\n ]\n let greyAscent = ['#fafafa', '#bfbfbf', '#434343', '#1f1f1f']\n let greyConstant = ['#fafafb', '#e6ebf1']\n\n if (mode === 'dark') {\n greyPrimary = ['#000000', '#141414', '#1e1e1e', '#595959', '#8c8c8c', '#bfbfbf', '#d9d9d9', '#f0f0f0', '#f5f5f5', '#fafafa', '#ffffff']\n // greyPrimary.reverse();\n greyAscent = ['#fafafa', '#bfbfbf', '#434343', '#1f1f1f']\n greyConstant = ['#121212', '#d3d8db']\n }\n colors.grey = [...greyPrimary, ...greyAscent, ...greyConstant]\n\n const paletteColor = ThemeOption(colors, presetColor, mode)\n\n return createTheme({\n palette: {\n mode,\n common: {\n black: '#000',\n white: '#fff'\n },\n ...paletteColor,\n text: {\n primary: mode === 'dark' ? alpha(paletteColor.grey[900], 0.87) : paletteColor.grey[700],\n secondary: mode === 'dark' ? alpha(paletteColor.grey[900], 0.45) : paletteColor.grey[500],\n disabled: mode === 'dark' ? alpha(paletteColor.grey[900], 0.1) : paletteColor.grey[400]\n },\n action: {\n disabled: paletteColor.grey[300]\n },\n divider: mode === 'dark' ? alpha(paletteColor.grey[900], 0.05) : paletteColor.grey[200],\n background: {\n paper: mode === 'dark' ? paletteColor.grey[100] : paletteColor.grey[0],\n default: paletteColor.grey.A50\n }\n }\n })\n}\n\nexport default Palette\n","// ==============================|| DEFAULT THEME - TYPOGRAPHY ||============================== //\n\nconst Typography = (fontFamily) => ({\n htmlFontSize: 16,\n fontFamily,\n fontWeightLight: 300,\n fontWeightRegular: 400,\n fontWeightMedium: 500,\n fontWeightBold: 600,\n h1: {\n fontWeight: 600,\n fontSize: '2.375rem',\n lineHeight: 1.21,\n },\n h2: {\n fontWeight: 600,\n fontSize: '1.875rem',\n lineHeight: 1.27,\n },\n h3: {\n fontWeight: 600,\n fontSize: '1.5rem',\n lineHeight: 1.33,\n },\n h4: {\n fontWeight: 500,\n fontSize: '1.25rem',\n lineHeight: 1.4,\n },\n h5: {\n fontWeight: 500,\n fontSize: '1.2rem',\n lineHeight: 1.5,\n },\n h6: {\n fontWeight: 400,\n fontSize: '1.15rem',\n lineHeight: 1.57,\n },\n caption: {\n fontWeight: 400,\n fontSize: '0.75rem',\n lineHeight: 1.66,\n },\n body1: {\n fontSize: '0.875rem',\n lineHeight: 1.57,\n },\n body2: {\n fontSize: '0.75rem',\n lineHeight: 1.66,\n },\n subtitle1: {\n fontSize: '0.875rem',\n fontWeight: 600,\n lineHeight: 1.57,\n },\n subtitle2: {\n fontSize: '0.75rem',\n fontWeight: 500,\n lineHeight: 1.66,\n },\n overline: {\n lineHeight: 1.66,\n },\n button: {\n textTransform: 'capitalize',\n },\n})\n\nexport default Typography","// material-ui\nimport { alpha } from '@mui/material/styles'\n\n// ==============================|| DEFAULT THEME - CUSTOM SHADOWS ||============================== //\n\nconst CustomShadows = (theme) => ({\n // z1: `0px 2px 8px rgba(0, 0, 0, 0.15)`,\n button: theme.palette.mode === 'dark' ? `0 2px 0 rgb(0 0 0 / 5%)` : `0 2px #0000000b`,\n text: `0 -1px 0 rgb(0 0 0 / 12%)`,\n z1:\n theme.palette.mode === 'dark'\n ? `0px 1px 1px rgb(0 0 0 / 14%), 0px 2px 1px rgb(0 0 0 / 12%), 0px 1px 3px rgb(0 0 0 / 20%)`\n : `0px 1px 4px ${alpha(theme.palette.grey[900], 0.08)}`,\n primary: `0 0 0 2px ${alpha(theme.palette.primary.main, 0.2)}`,\n secondary: `0 0 0 2px ${alpha(theme.palette.secondary.main, 0.2)}`,\n error: `0 0 0 2px ${alpha(theme.palette.error.main, 0.2)}`,\n warning: `0 0 0 2px ${alpha(theme.palette.warning.main, 0.2)}`,\n info: `0 0 0 2px ${alpha(theme.palette.info.main, 0.2)}`,\n success: `0 0 0 2px ${alpha(theme.palette.success.main, 0.2)}`,\n grey: `0 0 0 2px ${alpha(theme.palette.grey[500], 0.2)}`,\n primaryButton: `0 14px 12px ${alpha(theme.palette.primary.main, 0.2)}`,\n secondaryButton: `0 14px 12px ${alpha(theme.palette.secondary.main, 0.2)}`,\n errorButton: `0 14px 12px ${alpha(theme.palette.error.main, 0.2)}`,\n warningButton: `0 14px 12px ${alpha(theme.palette.warning.main, 0.2)}`,\n infoButton: `0 14px 12px ${alpha(theme.palette.info.main, 0.2)}`,\n successButton: `0 14px 12px ${alpha(theme.palette.success.main, 0.2)}`,\n greyButton: `0 14px 12px ${alpha(theme.palette.grey[500], 0.2)}`\n})\n\nexport default CustomShadows\n","// material-ui\nimport { alpha } from '@mui/material/styles'\n\n// project import\nimport getColors from '../../../../utils/getColors'\n\n// ==============================|| ALERT - COLORS ||============================== //\n\nfunction getColorStyle({ color, theme }) {\n const colors = getColors(theme, color)\n const { lighter, light, main } = colors\n\n return {\n borderColor: alpha(light, 0.5),\n backgroundColor: lighter,\n '& .MuiAlert-icon': {\n color: main\n }\n }\n}\n\n// ==============================|| OVERRIDES - ALERT ||============================== //\n\nexport default function Alert(theme) {\n const primaryDashed = getColorStyle({ color: 'primary', theme })\n\n return {\n MuiAlert: {\n styleOverrides: {\n root: {\n color: theme.palette.text.primary,\n fontSize: '0.875rem'\n },\n icon: {\n fontSize: '1rem'\n },\n message: {\n padding: 0,\n marginTop: 3\n },\n filled: {\n color: theme.palette.grey[0]\n },\n border: {\n padding: '10px 16px',\n border: '1px solid',\n ...primaryDashed,\n '&.MuiAlert-borderPrimary': getColorStyle({ color: 'primary', theme }),\n '&.MuiAlert-borderSecondary': getColorStyle({ color: 'secondary', theme }),\n '&.MuiAlert-borderError': getColorStyle({ color: 'error', theme }),\n '&.MuiAlert-borderSuccess': getColorStyle({ color: 'success', theme }),\n '&.MuiAlert-borderInfo': getColorStyle({ color: 'info', theme }),\n '&.MuiAlert-borderWarning': getColorStyle({ color: 'warning', theme })\n },\n action: {\n '& .MuiButton-root': {\n padding: 2,\n height: 'auto',\n fontSize: '0.75rem',\n marginTop: -2\n },\n '& .MuiIconButton-root': {\n width: 'auto',\n height: 'auto',\n padding: 2,\n marginRight: 6,\n '& .MuiSvgIcon-root': {\n fontSize: '1rem'\n }\n }\n }\n }\n }\n }\n}\n","// project import\nimport getColors from '../../../../utils/getColors'\n\n// ==============================|| BADGE - COLORS ||============================== //\n\nfunction getColorStyle({ color, theme }) {\n const colors = getColors(theme, color)\n const { lighter, main } = colors\n\n return {\n color: main,\n backgroundColor: lighter\n }\n}\n\n// ==============================|| OVERRIDES - BADGE ||============================== //\n\nexport default function Badge(theme) {\n const defaultLightBadge = getColorStyle({ color: 'primary', theme })\n\n return {\n MuiBadge: {\n styleOverrides: {\n standard: {\n minWidth: theme.spacing(2),\n height: theme.spacing(2),\n padding: theme.spacing(0.5)\n },\n light: {\n ...defaultLightBadge,\n '&.MuiBadge-colorPrimary': getColorStyle({ color: 'primary', theme }),\n '&.MuiBadge-colorSecondary': getColorStyle({ color: 'secondary', theme }),\n '&.MuiBadge-colorError': getColorStyle({ color: 'error', theme }),\n '&.MuiBadge-colorInfo': getColorStyle({ color: 'info', theme }),\n '&.MuiBadge-colorSuccess': getColorStyle({ color: 'success', theme }),\n '&.MuiBadge-colorWarning': getColorStyle({ color: 'warning', theme })\n }\n }\n }\n }\n}\n","// material-ui\nimport { alpha } from '@mui/material/styles'\n\n// project import\nimport getColors from '../../../../utils/getColors'\nimport getShadow from '../../../../utils/getShadow'\n\n// ==============================|| BUTTON - COLORS ||============================== //\n\nfunction getColorStyle({ variant, color, theme }) {\n const colors = getColors(theme, color)\n const { lighter, main, dark, contrastText } = colors\n\n const buttonShadow = `${color}Button`\n const shadows = getShadow(theme, buttonShadow)\n\n const commonShadow = {\n '&::after': {\n boxShadow: `0 0 5px 5px ${alpha(main, 0.9)}`\n },\n '&:active::after': {\n boxShadow: `0 0 0 0 ${alpha(main, 0.9)}`\n },\n '&:focus-visible': {\n outline: `2px solid ${dark}`,\n outlineOffset: 2\n }\n }\n\n switch (variant) {\n case 'contained':\n return {\n '&:hover': {\n backgroundColor: dark\n },\n ...commonShadow\n }\n case 'shadow':\n return {\n color: contrastText,\n backgroundColor: main,\n boxShadow: shadows,\n '&:hover': {\n boxShadow: 'none',\n backgroundColor: dark\n },\n ...commonShadow\n }\n case 'outlined':\n return {\n borderColor: main,\n '&:hover': {\n color: dark,\n backgroundColor: 'transparent',\n borderColor: dark\n },\n ...commonShadow\n }\n case 'dashed':\n return {\n color: main,\n borderColor: main,\n backgroundColor: lighter,\n '&:hover': {\n color: dark,\n borderColor: dark\n },\n ...commonShadow\n }\n case 'text':\n default:\n return {\n '&:hover': {\n color: dark,\n backgroundColor: lighter\n },\n ...commonShadow\n }\n }\n}\n\n// ==============================|| OVERRIDES - BUTTON ||============================== //\n\nexport default function Button(theme) {\n const primaryDashed = getColorStyle({ variant: 'dashed', color: 'primary', theme })\n const primaryShadow = getColorStyle({ variant: 'shadow', color: 'primary', theme })\n\n const disabledStyle = {\n '&.Mui-disabled': {\n backgroundColor: theme.palette.grey[200]\n }\n }\n const iconStyle = {\n '&>*:nth-of-type(1)': {\n fontSize: 'inherit'\n }\n }\n\n return {\n MuiButton: {\n defaultProps: {\n disableElevation: true\n },\n styleOverrides: {\n root: {\n fontWeight: 400,\n minHeight: '48px',\n '&::after': {\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n borderRadius: 4,\n opacity: 0,\n transition: 'all 0.5s'\n },\n\n '&:active::after': {\n position: 'absolute',\n borderRadius: 4,\n left: 0,\n top: 0,\n opacity: 1,\n transition: '0s'\n }\n },\n contained: {\n \n backgroundColor: '#41b0c0',\n fontSize: 'large',\n ...disabledStyle\n },\n outlined: {\n ...disabledStyle\n },\n text: {\n boxShadow: 'none',\n '&:hover': {\n boxShadow: 'none'\n }\n },\n endIcon: {\n ...iconStyle\n },\n startIcon: {\n ...iconStyle\n },\n dashed: {\n border: '1px dashed',\n ...primaryDashed,\n '&.MuiButton-dashedPrimary': getColorStyle({ variant: 'dashed', color: 'primary', theme }),\n '&.MuiButton-dashedSecondary': getColorStyle({ variant: 'dashed', color: 'secondary', theme }),\n '&.MuiButton-dashedError': getColorStyle({ variant: 'dashed', color: 'error', theme }),\n '&.MuiButton-dashedSuccess': getColorStyle({ variant: 'dashed', color: 'success', theme }),\n '&.MuiButton-dashedInfo': getColorStyle({ variant: 'dashed', color: 'info', theme }),\n '&.MuiButton-dashedWarning': getColorStyle({ variant: 'dashed', color: 'warning', theme }),\n '&.Mui-disabled': {\n color: `${theme.palette.grey[300]} !important`,\n borderColor: `${theme.palette.grey[400]} !important`,\n backgroundColor: `${theme.palette.grey[200]} !important`\n }\n },\n shadow: {\n ...primaryShadow,\n '&.MuiButton-shadowPrimary': getColorStyle({ variant: 'shadow', color: 'primary', theme }),\n '&.MuiButton-shadowSecondary': getColorStyle({ variant: 'shadow', color: 'secondary', theme }),\n '&.MuiButton-shadowError': getColorStyle({ variant: 'shadow', color: 'error', theme }),\n '&.MuiButton-shadowSuccess': getColorStyle({ variant: 'shadow', color: 'success', theme }),\n '&.MuiButton-shadowInfo': getColorStyle({ variant: 'shadow', color: 'info', theme }),\n '&.MuiButton-shadowWarning': getColorStyle({ variant: 'shadow', color: 'warning', theme }),\n '&.Mui-disabled': {\n color: `${theme.palette.grey[300]} !important`,\n borderColor: `${theme.palette.grey[400]} !important`,\n backgroundColor: `${theme.palette.grey[200]} !important`\n }\n },\n containedPrimary: getColorStyle({ variant: 'contained', color: 'primary', theme }),\n containedSecondary: getColorStyle({ variant: 'contained', color: 'secondary', theme }),\n containedError: getColorStyle({ variant: 'contained', color: 'error', theme }),\n containedSuccess: getColorStyle({ variant: 'contained', color: 'success', theme }),\n containedInfo: getColorStyle({ variant: 'contained', color: 'info', theme }),\n containedWarning: getColorStyle({ variant: 'contained', color: 'warning', theme }),\n outlinedPrimary: getColorStyle({ variant: 'outlined', color: 'primary', theme }),\n outlinedSecondary: getColorStyle({ variant: 'outlined', color: 'secondary', theme }),\n outlinedError: getColorStyle({ variant: 'outlined', color: 'error', theme }),\n outlinedSuccess: getColorStyle({ variant: 'outlined', color: 'success', theme }),\n outlinedInfo: getColorStyle({ variant: 'outlined', color: 'info', theme }),\n outlinedWarning: getColorStyle({ variant: 'outlined', color: 'warning', theme }),\n textPrimary: getColorStyle({ variant: 'text', color: 'primary', theme }),\n textSecondary: getColorStyle({ variant: 'text', color: 'secondary', theme }),\n textError: getColorStyle({ variant: 'text', color: 'error', theme }),\n textSuccess: getColorStyle({ variant: 'text', color: 'success', theme }),\n textInfo: getColorStyle({ variant: 'text', color: 'info', theme }),\n textWarning: getColorStyle({ variant: 'text', color: 'warning', theme }),\n sizeExtraSmall: {\n minWidth: 56,\n fontSize: '0.625rem',\n padding: '2px 8px'\n }\n }\n }\n }\n}\n","// material-ui\nimport { Box } from '@mui/material'\n\n// project import\nimport getColors from '../../../../utils/getColors'\n\n// assets\nimport { CheckSquareFilled, MinusSquareFilled } from '@ant-design/icons'\n\n// ==============================|| RADIO - COLORS ||============================== //\n\nfunction getColorStyle({ color, theme }) {\n const colors = getColors(theme, color)\n const { lighter, main, dark } = colors\n\n return {\n '&:hover': {\n backgroundColor: lighter,\n '& .icon': {\n borderColor: main\n }\n },\n '&.Mui-focusVisible': {\n outline: `2px solid ${dark}`,\n outlineOffset: -4\n }\n }\n}\n\n// ==============================|| CHECKBOX - SIZE STYLE ||============================== //\n\nfunction getSizeStyle(size) {\n switch (size) {\n case 'small':\n return { size: 15, fontSize: 1, position: 1 }\n case 'large':\n return { size: 24, fontSize: 1.6, position: 2 }\n case 'medium':\n default:\n return { size: 20, fontSize: 1.35, position: 2 }\n }\n}\n\n// ==============================|| CHECKBOX - STYLE ||============================== //\n\nfunction checkboxStyle (size) {\n const sizes = getSizeStyle(size)\n const iconSize = `${sizes.fontSize}rem`\n return {\n '& .icon': {\n width: iconSize,\n height: iconSize,\n '& .filled': {\n top: -sizes.position,\n left: -sizes.position,\n fontSize: '1.8rem',\n },\n },\n }\n}\n\n// ==============================|| OVERRIDES - CHECKBOX ||============================== //\n\nexport default function Checkbox(theme) {\n const { palette } = theme\n\n return {\n MuiCheckbox: {\n defaultProps: {\n className: 'size-large',\n icon: ,\n checkedIcon: (\n \n \n \n ),\n indeterminateIcon: (\n \n \n \n )\n },\n styleOverrides: {\n root: {\n borderRadius: 0,\n color: palette.secondary[300],\n '&.size-small': {\n ...checkboxStyle('small')\n },\n '&.size-medium': {\n ...checkboxStyle('medium')\n },\n '&.size-large': {\n ...checkboxStyle('large')\n }\n },\n colorPrimary: getColorStyle({ color: 'primary', theme }),\n colorSecondary: getColorStyle({ color: 'secondary', theme }),\n colorSuccess: getColorStyle({ color: 'success', theme }),\n colorWarning: getColorStyle({ color: 'warning', theme }),\n colorInfo: getColorStyle({ color: 'info', theme }),\n colorError: getColorStyle({ color: 'error', theme })\n }\n }\n }\n}","// project import\nimport getColors from '../../../../utils/getColors'\n\n// ==============================|| CHIP - COLORS ||============================== //\n\nfunction getColor({ color, theme }) {\n const colors = getColors(theme, color)\n const { dark } = colors\n\n return {\n '&.Mui-focusVisible': {\n outline: `2px solid ${dark}`,\n outlineOffset: 2\n }\n }\n}\n\nfunction getColorStyle({ color, theme }) {\n const colors = getColors(theme, color)\n const { light, lighter, main } = colors\n\n return {\n color: main,\n backgroundColor: lighter,\n borderColor: light,\n '& .MuiChip-deleteIcon': {\n color: main,\n '&:hover': {\n color: light\n }\n }\n }\n}\n\n// ==============================|| OVERRIDES - CHIP ||============================== //\n\nexport default function Chip(theme) {\n const defaultLightChip = getColorStyle({ color: 'secondary', theme })\n return {\n MuiChip: {\n styleOverrides: {\n root: {\n borderRadius: 4,\n '&:active': {\n boxShadow: 'none'\n },\n '&.MuiChip-colorPrimary': getColor({ color: 'primary', theme }),\n '&.MuiChip-colorSecondary': getColor({ color: 'secondary', theme }),\n '&.MuiChip-colorError': getColor({ color: 'error', theme }),\n '&.MuiChip-colorInfo': getColor({ color: 'info', theme }),\n '&.MuiChip-colorSuccess': getColor({ color: 'success', theme }),\n '&.MuiChip-colorWarning': getColor({ color: 'warning', theme })\n },\n sizeLarge: {\n fontSize: '1rem',\n height: 40\n },\n light: {\n ...defaultLightChip,\n '&.MuiChip-lightPrimary': getColorStyle({ color: 'primary', theme }),\n '&.MuiChip-lightSecondary': getColorStyle({ color: 'secondary', theme }),\n '&.MuiChip-lightError': getColorStyle({ color: 'error', theme }),\n '&.MuiChip-lightInfo': getColorStyle({ color: 'info', theme }),\n '&.MuiChip-lightSuccess': getColorStyle({ color: 'success', theme }),\n '&.MuiChip-lightWarning': getColorStyle({ color: 'warning', theme })\n },\n combined: {\n border: '1px solid',\n ...defaultLightChip,\n '&.MuiChip-combinedPrimary': getColorStyle({ color: 'primary', theme }),\n '&.MuiChip-combinedSecondary': getColorStyle({ color: 'secondary', theme }),\n '&.MuiChip-combinedError': getColorStyle({ color: 'error', theme }),\n '&.MuiChip-combinedInfo': getColorStyle({ color: 'info', theme }),\n '&.MuiChip-combinedSuccess': getColorStyle({ color: 'success', theme }),\n '&.MuiChip-combinedWarning': getColorStyle({ color: 'warning', theme })\n }\n }\n }\n }\n}\n","// material-ui\nimport { alpha } from '@mui/material/styles'\n\n// project import\nimport getColors from '../../../../utils/getColors'\nimport getShadow from '../../../../utils/getShadow'\n\n// ==============================|| FAB BUTTON - COLORS ||============================== //\n\nfunction getColorStyle({ color, theme }) {\n const colors = getColors(theme, color)\n const { main, dark, contrastText } = colors\n\n const buttonShadow = `${color}Button`\n const shadows = getShadow(theme, buttonShadow)\n\n return {\n color: contrastText,\n backgroundColor: main,\n boxShadow: shadows,\n '&:hover': {\n boxShadow: 'none',\n backgroundColor: dark\n },\n '&:focus-visible': {\n outline: `2px solid ${dark}`,\n outlineOffset: 2\n },\n '&::after': {\n borderRadius: '50px',\n boxShadow: `0 0 5px 5px ${alpha(main, 0.9)}`\n },\n '&:active::after': {\n borderRadius: '50px',\n boxShadow: `0 0 0 0 ${alpha(main, 0.9)}`\n }\n }\n}\n\n// ==============================|| OVERRIDES - FAB BUTTON ||============================== //\n\nexport default function Button(theme) {\n return {\n MuiFab: {\n styleOverrides: {\n root: {\n fontWeight: 400,\n '&.Mui-disabled': {\n backgroundColor: theme.palette.grey[200]\n },\n '&.MuiFab-primary': getColorStyle({ color: 'primary', theme }),\n '&.MuiFab-secondary': getColorStyle({ color: 'secondary', theme }),\n '&.Mui-error': getColorStyle({ color: 'error', theme }),\n '&.MuiFab-success': getColorStyle({ color: 'success', theme }),\n '&.MuiFab-info': getColorStyle({ color: 'info', theme }),\n '&.MuiFab-warning': getColorStyle({ color: 'warning', theme }),\n '&::after': {\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n borderRadius: 4,\n opacity: 0,\n transition: 'all 0.5s'\n },\n\n '&:active::after': {\n position: 'absolute',\n borderRadius: 4,\n left: 0,\n top: 0,\n opacity: 1,\n transition: '0s'\n }\n }\n }\n }\n }\n}\n","// project import\nimport getColors from '../../../../utils/getColors'\nimport getShadow from '../../../../utils/getShadow'\n\n// ==============================|| OVERRIDES - INPUT BORDER & SHADOWS ||============================== //\n\nfunction getColor({ variant, theme }) {\n const colors = getColors(theme, variant)\n const { light } = colors\n\n const shadows = getShadow(theme, `${variant}`)\n\n return {\n '&:hover .MuiOutlinedInput-notchedOutline': {\n borderColor: light\n },\n '&.Mui-focused': {\n boxShadow: shadows,\n '& .MuiOutlinedInput-notchedOutline': {\n border: `1px solid ${light}`\n }\n }\n }\n}\n\n// ==============================|| OVERRIDES - OUTLINED INPUT ||============================== //\n\nexport default function OutlinedInput(theme) {\n return {\n MuiOutlinedInput: {\n styleOverrides: {\n input: {\n padding: '10.5px 14px 10.5px 12px'\n },\n notchedOutline: {\n borderColor: theme.palette.mode === 'dark' ? theme.palette.grey[200] : theme.palette.grey[300]\n },\n root: {\n height : '50px',\n ...getColor({ variant: 'primary', theme }),\n '&.Mui-error': {\n ...getColor({ variant: 'error', theme })\n }\n },\n inputSizeSmall: {\n padding: '7.5px 8px 7.5px 12px'\n },\n inputMultiline: {\n padding: 0\n },\n colorSecondary: getColor({ variant: 'secondary', theme }),\n colorError: getColor({ variant: 'error', theme }),\n colorWarning: getColor({ variant: 'warning', theme }),\n colorInfo: getColor({ variant: 'info', theme }),\n colorSuccess: getColor({ variant: 'success', theme })\n }\n }\n }\n}\n","// project import\nimport getColors from '../../../../utils/getColors'\n\n// ==============================|| PAGINATION ITEM - COLORS ||============================== //\n\nfunction getColorStyle({ variant, color, theme }) {\n const colors = getColors(theme, color)\n const { lighter, light, dark, main, contrastText } = colors\n\n const focusStyle = {\n '&:focus-visible': {\n outline: `2px solid ${dark}`,\n outlineOffset: 2,\n ...(variant === 'text' && {\n backgroundColor: theme.palette.background.paper\n })\n }\n }\n\n switch (variant) {\n case 'combined':\n case 'contained':\n return {\n color: contrastText,\n backgroundColor: main,\n '&:hover': {\n backgroundColor: light\n },\n ...focusStyle\n }\n case 'outlined':\n return {\n borderColor: main,\n '&:hover': {\n backgroundColor: lighter,\n borderColor: light\n },\n ...focusStyle\n }\n case 'text':\n default:\n return {\n color: main,\n '&:hover': {\n backgroundColor: main,\n color: lighter\n },\n ...focusStyle\n }\n }\n}\n\n// ==============================|| OVERRIDES - PAGINATION ITEM ||============================== //\n\nexport default function PaginationItem(theme) {\n return {\n MuiPaginationItem: {\n styleOverrides: {\n root: {\n '&:focus-visible': {\n outline: `2px solid ${theme.palette.secondary.dark}`,\n outlineOffset: 2\n }\n },\n text: {\n '&.Mui-selected': {\n backgroundColor: 'transparent',\n fontSize: '1rem',\n fontWeight: 500,\n '&.MuiPaginationItem-textPrimary': getColorStyle({ variant: 'text', color: 'primary', theme }),\n '&.MuiPaginationItem-textSecondary': getColorStyle({ variant: 'text', color: 'secondary', theme }),\n '&.MuiPaginationItem-textError': getColorStyle({ variant: 'text', color: 'error', theme }),\n '&.MuiPaginationItem-textSuccess': getColorStyle({ variant: 'text', color: 'success', theme }),\n '&.MuiPaginationItem-textInfo': getColorStyle({ variant: 'text', color: 'info', theme }),\n '&.MuiPaginationItem-textWarning': getColorStyle({ variant: 'text', color: 'warning', theme })\n }\n },\n contained: {\n '&.Mui-selected': {\n '&.MuiPaginationItem-containedPrimary': getColorStyle({ variant: 'contained', color: 'primary', theme }),\n '&.MuiPaginationItem-containedSecondary': getColorStyle({ variant: 'contained', color: 'secondary', theme }),\n '&.MuiPaginationItem-containedError': getColorStyle({ variant: 'contained', color: 'error', theme }),\n '&.MuiPaginationItem-containedSuccess': getColorStyle({ variant: 'contained', color: 'success', theme }),\n '&.MuiPaginationItem-containedInfo': getColorStyle({ variant: 'contained', color: 'info', theme }),\n '&.MuiPaginationItem-containedWarning': getColorStyle({ variant: 'contained', color: 'warning', theme })\n }\n },\n combined: {\n border: '1px solid',\n borderColor: theme.palette.divider,\n '&.MuiPaginationItem-ellipsis': {\n border: 'none'\n },\n '&.Mui-selected': {\n '&.MuiPaginationItem-combinedPrimary': getColorStyle({ variant: 'combined', color: 'primary', theme }),\n '&.MuiPaginationItem-combinedSecondary': getColorStyle({ variant: 'combined', color: 'secondary', theme }),\n '&.MuiPaginationItem-combinedError': getColorStyle({ variant: 'combined', color: 'error', theme }),\n '&.MuiPaginationItem-combinedSuccess': getColorStyle({ variant: 'combined', color: 'success', theme }),\n '&.MuiPaginationItem-combinedInfo': getColorStyle({ variant: 'combined', color: 'info', theme }),\n '&.MuiPaginationItem-combinedWarning': getColorStyle({ variant: 'combined', color: 'warning', theme })\n }\n },\n outlined: {\n borderColor: theme.palette.divider,\n '&.Mui-selected': {\n backgroundColor: 'transparent',\n '&.MuiPaginationItem-outlinedPrimary': getColorStyle({ variant: 'outlined', color: 'primary', theme }),\n '&.MuiPaginationItem-outlinedSecondary': getColorStyle({ variant: 'outlined', color: 'secondary', theme }),\n '&.MuiPaginationItem-outlinedError': getColorStyle({ variant: 'outlined', color: 'error', theme }),\n '&.MuiPaginationItem-outlinedSuccess': getColorStyle({ variant: 'outlined', color: 'success', theme }),\n '&.MuiPaginationItem-outlinedInfo': getColorStyle({ variant: 'outlined', color: 'info', theme }),\n '&.MuiPaginationItem-outlinedWarning': getColorStyle({ variant: 'outlined', color: 'warning', theme })\n }\n }\n }\n }\n }\n}\n","// material-ui\nimport { Box } from '@mui/material'\n\n// project import\nimport getColors from '../../../../utils/getColors'\n\n// ==============================|| RADIO - COLORS ||============================== //\n\nfunction getColorStyle({ color, theme }) {\n const colors = getColors(theme, color)\n const { lighter, main, dark } = colors\n\n return {\n '& .dot': {\n backgroundColor: main\n },\n '&:hover': {\n backgroundColor: lighter\n },\n '&.Mui-focusVisible': {\n outline: `2px solid ${dark}`,\n outlineOffset: -4\n }\n }\n}\n\n// ==============================|| CHECKBOX - SIZE STYLE ||============================== //\n\nfunction getSizeStyle(size) {\n switch (size) {\n case 'small':\n return { size: 16, dotSize: 8, position: 3 }\n case 'large':\n return { size: 24, dotSize: 12, position: 5 }\n case 'medium':\n default:\n return { size: 20, dotSize: 10, position: 4 }\n }\n}\n\n// ==============================|| CHECKBOX - STYLE ||============================== //\n\nfunction radioStyle(size) {\n const sizes = getSizeStyle(size)\n\n return {\n '& .icon': {\n width: sizes.size,\n height: sizes.size,\n '& .dot': {\n width: sizes.dotSize,\n height: sizes.dotSize,\n top: sizes.position,\n left: sizes.position\n }\n }\n }\n}\n\n// ==============================|| OVERRIDES - CHECKBOX ||============================== //\n\nexport default function Radio(theme) {\n const { palette } = theme\n\n return {\n MuiRadio: {\n defaultProps: {\n className: 'size-small',\n icon: ,\n checkedIcon: (\n \n \n \n )\n },\n styleOverrides: {\n root: {\n color: palette.secondary[300],\n '&.size-small': {\n ...radioStyle('small')\n },\n '&.size-medium': {\n ...radioStyle('medium')\n },\n '&.size-large': {\n ...radioStyle('large')\n }\n },\n colorPrimary: getColorStyle({ color: 'primary', theme }),\n colorSecondary: getColorStyle({ color: 'secondary', theme }),\n colorSuccess: getColorStyle({ color: 'success', theme }),\n colorWarning: getColorStyle({ color: 'warning', theme }),\n colorInfo: getColorStyle({ color: 'info', theme }),\n colorError: getColorStyle({ color: 'error', theme })\n }\n }\n }\n}\n","// project import\nimport getColors from '../../../../utils/getColors'\n\n// ==============================|| OVERRIDES - SLIDER ||============================== //\n\nfunction getColorStyle({ color, theme }) {\n const colors = getColors(theme, color)\n const { main } = colors\n\n return {\n border: `2px solid ${main}`\n }\n}\n\nexport default function Slider(theme) {\n return {\n MuiSlider: {\n styleOverrides: {\n track: {\n height: '1px'\n },\n thumb: {\n width: 14,\n height: 14,\n border: `2px solid ${theme.palette.primary.main}`,\n backgroundColor: theme.palette.background.paper,\n '&.MuiSlider-thumbColorPrimary': getColorStyle({ color: 'primary', theme }),\n '&.MuiSlider-thumbColorSecondary': getColorStyle({ color: 'secondary', theme }),\n '&.MuiSlider-thumbColorSuccess': getColorStyle({ color: 'success', theme }),\n '&.MuiSlider-thumbColorWarning': getColorStyle({ color: 'warning', theme }),\n '&.MuiSlider-thumbColorInfo': getColorStyle({ color: 'info', theme }),\n '&.MuiSlider-thumbColorError': getColorStyle({ color: 'error', theme })\n },\n mark: {\n width: 4,\n height: 4,\n borderRadius: '50%',\n border: `1px solid ${theme.palette.secondary.light}`,\n backgroundColor: theme.palette.background.paper,\n '&.MuiSlider-markActive': {\n opacity: 1,\n borderColor: 'inherit',\n borderWidth: 2\n }\n },\n rail: {\n color: theme.palette.secondary.light\n },\n root: {\n '&.Mui-disabled': {\n '.MuiSlider-rail': {\n opacity: 0.25\n },\n '.MuiSlider-track': {\n color: theme.palette.secondary.lighter\n },\n '.MuiSlider-thumb': {\n border: `2px solid ${theme.palette.secondary.lighter}`\n }\n }\n },\n valueLabel: {\n backgroundColor: theme.palette.grey[600],\n color: theme.palette.grey[0]\n }\n }\n }\n }\n}\n","// ==============================|| SWITCH - SIZE STYLE ||============================== //\n\nfunction getSizeStyle(size) {\n switch (size) {\n case 'small':\n return { width: 28, height: 16, base: 12, thumb: 10, trackRadius: 8 }\n case 'large':\n return { width: 60, height: 28, base: 32, thumb: 22, trackRadius: 24 }\n case 'medium':\n default:\n return { width: 44, height: 22, base: 22, thumb: 16, trackRadius: 16 }\n }\n}\n\nfunction switchStyle(theme, size) {\n const sizes = getSizeStyle(size)\n\n return {\n width: sizes.width,\n height: sizes.height,\n '& .MuiSwitch-switchBase': {\n padding: 3,\n '&.Mui-checked': {\n transform: `translateX(${sizes.base}px)`\n }\n },\n '& .MuiSwitch-thumb': {\n width: sizes.thumb,\n height: sizes.thumb\n },\n '& .MuiSwitch-track': {\n borderRadius: sizes.trackRadius\n }\n }\n}\n\n// ==============================|| OVERRIDES - TAB ||============================== //\n\nexport default function Switch(theme) {\n return {\n MuiSwitch: {\n styleOverrides: {\n track: {\n opacity: 1,\n backgroundColor: theme.palette.secondary[400],\n boxSizing: 'border-box'\n },\n thumb: {\n borderRadius: '50%',\n transition: theme.transitions.create(['width'], {\n duration: 200\n })\n },\n switchBase: {\n '&.Mui-checked': {\n color: '#fff',\n '& + .MuiSwitch-track': {\n opacity: 1\n },\n '&.Mui-disabled': {\n color: theme.palette.background.paper\n }\n },\n '&.Mui-disabled': {\n color: theme.palette.background.paper,\n '+.MuiSwitch-track': {\n opacity: 0.3\n }\n }\n },\n root: {\n color: theme.palette.text.primary,\n padding: 0,\n margin: 8,\n display: 'flex',\n '& ~ .MuiFormControlLabel-label': {\n margin: 6\n },\n ...switchStyle(theme, 'medium')\n },\n sizeLarge: { ...switchStyle(theme, 'large') },\n sizeSmall: {\n ...switchStyle(theme, 'small')\n }\n }\n }\n }\n}\n","// third-party\nimport { merge } from 'lodash'\n\n// project import\nimport Accordion from 'app/views/themes/overrides/Accordion'\nimport AccordionDetails from 'app/views/themes/overrides/AccordionDetails'\nimport AccordionSummary from 'app/views/themes/overrides/AccordionSummary'\nimport Alert from 'app/views/themes/overrides/Alert'\nimport AlertTitle from 'app/views/themes/overrides/AlertTitle'\nimport Autocomplete from 'app/views/themes/overrides/Autocomplete'\nimport Badge from 'app/views/themes/overrides/Badge'\nimport Button from 'app/views/themes/overrides/Button'\nimport ButtonBase from 'app/views/themes/overrides/ButtonBase'\nimport ButtonGroup from 'app/views/themes/overrides/ButtonGroup'\nimport CardContent from 'app/views/themes/overrides/CardContent'\nimport Checkbox from 'app/views/themes/overrides/Checkbox'\nimport Chip from 'app/views/themes/overrides/Chip'\nimport Dialog from 'app/views/themes/overrides/Dialog'\nimport DialogContentText from 'app/views/themes/overrides/DialogContentText'\nimport DialogTitle from 'app/views/themes/overrides/DialogTitle'\nimport DataGrid from 'app/views/themes/overrides/DataGrid'\nimport Fab from 'app/views/themes/overrides/Fab'\nimport IconButton from 'app/views/themes/overrides/IconButton'\nimport InputBase from 'app/views/themes/overrides/InputBase'\nimport InputLabel from 'app/views/themes/overrides/InputLabel'\nimport LinearProgress from 'app/views/themes/overrides/LinearProgress'\nimport Link from 'app/views/themes/overrides/Link'\nimport ListItemButton from 'app/views/themes/overrides/ListItemButton'\nimport ListItemIcon from 'app/views/themes/overrides/ListItemIcon'\nimport LoadingButton from 'app/views/themes/overrides/LoadingButton'\nimport OutlinedInput from 'app/views/themes/overrides/OutlinedInput'\nimport Pagination from 'app/views/themes/overrides/Pagination'\nimport PaginationItem from 'app/views/themes/overrides/PaginationItem'\nimport Popover from 'app/views/themes/overrides/Popover'\nimport Radio from 'app/views/themes/overrides/Radio'\nimport Slider from 'app/views/themes/overrides/Slider'\nimport Switch from 'app/views/themes/overrides/Switch'\nimport Tab from 'app/views/themes/overrides/Tab'\nimport TableBody from 'app/views/themes/overrides/TableBody'\nimport TableCell from 'app/views/themes/overrides/TableCell'\nimport TableFooter from 'app/views/themes/overrides/TableFooter'\nimport TableHead from 'app/views/themes/overrides/TableHead'\nimport TablePagination from 'app/views/themes/overrides/TablePagination'\nimport TableRow from 'app/views/themes/overrides/TableRow'\nimport Tabs from 'app/views/themes/overrides/Tabs'\nimport ToggleButton from 'app/views/themes/overrides/ToggleButton'\nimport TreeItem from 'app/views/themes/overrides/TreeItem'\nimport Typography from 'app/views/themes/overrides/Typography'\nimport AppBar from './AppBar'\nimport TextField from 'app/views/themes/overrides/TextField'\nimport Select from './Select'\nimport StepLabel from './StepLabel'\nimport List from './List'\n\n// ==============================|| OVERRIDES - MAIN ||============================== //\n\nexport default function ComponentsOverrides (theme) {\n return merge(\n Accordion(theme),\n AppBar(theme),\n AccordionDetails(theme),\n AccordionSummary(theme),\n Alert(theme),\n AlertTitle(),\n Autocomplete(),\n Badge(theme),\n Button(theme),\n ButtonBase(),\n ButtonGroup(),\n CardContent(),\n Checkbox(theme),\n Chip(theme),\n Dialog(),\n DialogContentText(theme),\n DialogTitle(),\n DataGrid(theme),\n Fab(theme),\n IconButton(theme),\n InputBase(),\n InputLabel(theme),\n LinearProgress(),\n Link(),\n ListItemButton(theme),\n ListItemIcon(theme),\n LoadingButton(),\n OutlinedInput(theme),\n Pagination(),\n PaginationItem(theme),\n Popover(theme),\n Radio(theme),\n Slider(theme),\n Switch(theme),\n Tab(theme),\n TableBody(theme),\n TableCell(theme),\n TableFooter(theme),\n TableHead(theme),\n TablePagination(),\n TableRow(),\n Tabs(),\n TextField(theme),\n Select(theme),\n StepLabel(theme),\n List(theme),\n ToggleButton(theme),\n TreeItem(),\n Typography(),\n )\n}","// ==============================|| OVERRIDES - ALERT TITLE ||============================== //\n\nexport default function Accordion(theme) {\n return {\n MuiAccordion: {\n defaultProps: {\n disableGutters: true,\n square: true,\n elevation: 0\n },\n styleOverrides: {\n root: {\n border: `1px solid ${theme.palette.secondary.light}`,\n '&:not(:last-child)': {\n borderBottom: 0\n },\n '&:before': {\n display: 'none'\n },\n '&.Mui-disabled': {\n backgroundColor: theme.palette.secondary.lighter\n }\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - ALERT TITLE ||============================== //\n\nexport default function AppBar(theme) {\n return {\n MuiAppBar: {\n styleOverrides: {\n root: {\n backgroundColor: 'white',\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - ALERT TITLE ||============================== //\n\nexport default function AccordionDetails(theme) {\n return {\n MuiAccordionDetails: {\n styleOverrides: {\n root: {\n padding: theme.spacing(2),\n borderTop: `1px solid ${theme.palette.secondary.light}`\n }\n }\n }\n }\n}\n","// assets\nimport { RightOutlined } from '@ant-design/icons'\n\n// ==============================|| OVERRIDES - ALERT TITLE ||============================== //\n\nexport default function AccordionSummary(theme) {\n const { palette, spacing } = theme\n\n return {\n MuiAccordionSummary: {\n defaultProps: {\n expandIcon: \n },\n styleOverrides: {\n root: {\n backgroundColor: palette.secondary.lighter,\n flexDirection: 'row-reverse',\n minHeight: 46\n },\n expandIconWrapper: {\n '&.Mui-expanded': {\n transform: 'rotate(90deg)'\n }\n },\n content: {\n marginTop: spacing(1.25),\n marginBottom: spacing(1.25),\n marginLeft: spacing(1)\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - ALERT TITLE ||============================== //\n\nexport default function AlertTitle() {\n return {\n MuiAlertTitle: {\n styleOverrides: {\n root: {\n marginBottom: 4,\n marginTop: 0,\n fontWeight: 400\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - AUTOCOMPLETE ||============================== //\n\nexport default function Autocomplete() {\n return {\n MuiAutocomplete: {\n styleOverrides: {\n root: {\n '& .MuiOutlinedInput-root': {\n padding: '3px 9px'\n }\n },\n popupIndicator: {\n width: 'auto',\n height: 'auto'\n },\n clearIndicator: {\n width: 'auto',\n height: 'auto'\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - BUTTON ||============================== //\n\nexport default function ButtonBase() {\n return {\n MuiButtonBase: {\n defaultProps: {\n disableRipple: true\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - BUTTON GROUP ||============================== //\n\nexport default function ButtonGroup() {\n return {\n MuiButtonGroup: {\n defaultProps: {\n disableRipple: true\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - CARD CONTENT ||============================== //\n\nexport default function CardContent() {\n return {\n MuiCardContent: {\n styleOverrides: {\n root: {\n padding: 20,\n '&:last-child': {\n paddingBottom: 20\n }\n }\n }\n }\n }\n}\n","// material-ui\nimport { alpha } from '@mui/material/styles'\n\n// ==============================|| OVERRIDES - DIALOG ||============================== //\n\nexport default function Dialog() {\n return {\n MuiDialog: {\n styleOverrides: {\n root: {\n '& .MuiBackdrop-root': {\n backgroundColor: alpha('#000', 0.7)\n }\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - DIALOG CONTENT TEXT ||============================== //\n\nexport default function DialogContentText(theme) {\n return {\n MuiDialogContentText: {\n styleOverrides: {\n root: {\n fontSize: '0.875rem',\n color: theme.palette.text.primary\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - DIALOG TITLE ||============================== //\n\nexport default function DialogTitle() {\n return {\n MuiDialogTitle: {\n styleOverrides: {\n root: {\n fontSize: '1rem',\n fontWeight: 500\n }\n }\n }\n }\n}\n","export default function DataGrid (theme) {\n const separatorColor = theme.palette.secondary.light\n return {\n MuiDataGrid: {\n styleOverrides: {\n root: {\n '& .MuiDataGrid-cell': {\n borderBottomColor: separatorColor,\n }, '& .MuiDataGrid-columnSeparator': {\n color: separatorColor,\n },\n },\n },\n },\n }\n}","// ==============================|| OVERRIDES - ICON BUTTON ||============================== //\n\nexport default function IconButton(theme) {\n return {\n MuiIconButton: {\n styleOverrides: {\n root: {\n borderRadius: 4\n },\n sizeLarge: {\n height: theme.spacing(5.5),\n fontSize: '1.25rem'\n },\n sizeMedium: {\n height: theme.spacing(4.5),\n fontSize: '1rem'\n },\n sizeSmall: {\n height: theme.spacing(3.75),\n fontSize: '0.75rem'\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - INPUT BASE ||============================== //\n\nexport default function InputBase() {\n return {\n MuiInputBase: {\n styleOverrides: {\n sizeSmall: {\n fontSize: '0.75rem'\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - INPUT LABEL ||============================== //\n\nexport default function InputLabel (theme) {\n return {\n MuiInputLabel: {\n styleOverrides: {\n root: {\n color: theme.palette.grey[600],\n padding: '1px',\n },\n outlined: {\n lineHeight: '0.8em',\n '&.MuiInputLabel-sizeSmall': {\n lineHeight: '1em',\n },\n '&.MuiInputLabel-shrink': {\n background: theme.palette.background.paper,\n padding: '0 8px',\n marginLeft: -6,\n lineHeight: '1.4375em',\n },\n },\n },\n },\n }\n}\n","// ==============================|| OVERRIDES - LINER PROGRESS ||============================== //\n\nexport default function LinearProgress() {\n return {\n MuiLinearProgress: {\n styleOverrides: {\n root: {\n height: 6,\n borderRadius: 100\n },\n bar: {\n borderRadius: 100\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - LINK ||============================== //\n\nexport default function Link() {\n return {\n MuiLink: {\n defaultProps: {\n underline: 'hover'\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - LIST ITEM ICON ||============================== //\n\nexport default function ListItemButton(theme) {\n return {\n MuiListItemButton: {\n styleOverrides: {\n root: {\n '&.Mui-selected': {\n color: theme.palette.primary.main,\n '& .MuiListItemIcon-root': {\n color: theme.palette.primary.main\n }\n }\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - LIST ITEM ICON ||============================== //\n\nexport default function ListItemIcon(theme) {\n return {\n MuiListItemIcon: {\n styleOverrides: {\n root: {\n minWidth: 24,\n color: theme.palette.text.primary\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - LOADING BUTTON ||============================== //\n\nexport default function LoadingButton() {\n return {\n MuiLoadingButton: {\n styleOverrides: {\n root: {\n padding: '6px 16px',\n '&.MuiLoadingButton-loading': {\n opacity: 0.6,\n textShadow: 'none'\n }\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - PAGINATION ||============================== //\n\nexport default function Pagination() {\n return {\n MuiPagination: {\n defaultProps: {\n shape: 'rounded'\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - DIALOG CONTENT TEXT ||============================== //\n\nexport default function Popover(theme) {\n return {\n MuiPopover: {\n styleOverrides: {\n paper: {\n boxShadow: theme.customShadows.z1\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - TAB ||============================== //\n\nexport default function Tab(theme) {\n return {\n MuiTab: {\n styleOverrides: {\n root: {\n minHeight: 46,\n color: theme.palette.text.primary,\n borderRadius: 4,\n '&:hover': {\n backgroundColor: theme.palette.primary.lighter + 60,\n color: theme.palette.primary.main\n },\n '&:focus-visible': {\n borderRadius: 4,\n outline: `2px solid ${theme.palette.secondary.dark}`,\n outlineOffset: -3\n }\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - TABLE ROW ||============================== //\n\nexport default function TableBody(theme) {\n const hoverStyle = {\n '&:hover': {\n backgroundColor: theme.palette.secondary.lighter\n }\n }\n\n return {\n MuiTableBody: {\n styleOverrides: {\n root: {\n '&.striped .MuiTableRow-root': {\n '&:nth-of-type(even)': {\n backgroundColor: theme.palette.grey[50]\n },\n ...hoverStyle\n },\n '& .MuiTableRow-root': {\n ...hoverStyle\n }\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - TABLE CELL ||============================== //\n\nexport default function TableCell(theme) {\n const commonCell = {\n '&:not(:last-of-type)': {\n position: 'relative',\n '&:after': {\n position: 'absolute',\n content: '\"\"',\n backgroundColor: theme.palette.divider,\n width: 1,\n height: 'calc(100% - 30px)',\n right: 0,\n top: 16\n }\n }\n }\n\n return {\n MuiTableCell: {\n styleOverrides: {\n root: {\n fontSize: '0.875rem',\n padding: 12,\n borderColor: theme.palette.divider\n },\n sizeSmall: {\n padding: 8\n },\n head: {\n fontSize: '0.75rem',\n textTransform: 'uppercase',\n ...commonCell\n },\n footer: {\n fontSize: '0.75rem',\n textTransform: 'uppercase',\n ...commonCell\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - TABLE CELL ||============================== //\n\nexport default function TableFooter(theme) {\n return {\n MuiTableFooter: {\n styleOverrides: {\n root: {\n backgroundColor: theme.palette.grey[50],\n borderTop: `2px solid ${theme.palette.divider}`,\n borderBottom: `1px solid ${theme.palette.divider}`\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - TABLE CELL ||============================== //\n\nexport default function TableHead(theme) {\n return {\n MuiTableHead: {\n styleOverrides: {\n root: {\n backgroundColor: theme.palette.grey[50],\n borderTop: `1px solid ${theme.palette.divider}`,\n borderBottom: `2px solid ${theme.palette.divider}`\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - TABLE PAGINATION ||============================== //\n\nexport default function TablePagination() {\n return {\n MuiTablePagination: {\n styleOverrides: {\n selectLabel: {\n fontSize: '0.875rem'\n },\n displayedRows: {\n fontSize: '0.875rem'\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - TABLE ROW ||============================== //\n\nexport default function TableRow() {\n return {\n MuiTableRow: {\n styleOverrides: {\n root: {\n '&:last-of-type': {\n '& .MuiTableCell-root': {\n borderBottom: 'none'\n }\n },\n '& .MuiTableCell-root': {\n '&:last-of-type': {\n paddingRight: 24\n },\n '&:first-of-type': {\n paddingLeft: 24\n }\n }\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - TABS ||============================== //\n\nexport default function Tabs() {\n return {\n MuiTabs: {\n styleOverrides: {\n vertical: {\n overflow: 'visible'\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - TABS ||============================== //\n\nexport default function TextField() {\n return {\n MuiTextField: {\n styleOverrides: {\n root: {\n '& .MuiOutlinedInput-input': {\n height : '2.4375em'\n },\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - TABS ||============================== //\n\nexport default function Select() {\n return {\n MuiSelect: {\n styleOverrides: {\n root: {\n height : '55px'\n },\n '& .select.MuiInputBase-input.MuiOutlinedInput-input': {\n height : '55px'\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - TAB ||============================== //\n\nexport default function StepLabel(theme) {\n return {\n MuiStepLabel: {\n styleOverrides: {\n label: {\n fontSize: '0.98rem'\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - LINK ||============================== //\n\nexport default function List() {\n return {\n anticon: {\n width : '50px',\n height : '50px',\n }\n }\n}\n","// ==============================|| OVERRIDES - TOGGLE BUTTON ||============================== //\n\nexport default function ToggleButton(theme) {\n return {\n MuiToggleButton: {\n styleOverrides: {\n root: {\n '&.Mui-disabled': {\n borderColor: theme.palette.divider,\n color: theme.palette.text.disabled\n },\n '&:focus-visible': {\n outline: `2px solid ${theme.palette.secondary.dark}`,\n outlineOffset: 2\n }\n }\n }\n }\n }\n}\n","// ==============================|| OVERRIDES - TREE ITEM ||============================== //\n\nexport default function TreeItem() {\n return {\n MuiTreeItem: {\n styleOverrides: {\n content: {\n padding: 8\n },\n iconContainer: {\n '& svg': {\n fontSize: '0.625rem'\n }\n }\n }\n }\n }\n}\n","import themeTemplate from 'config/theme.json'\nimport { useMemo } from 'react'\nimport Palette from 'app/views/themes/palette'\nimport Typography from 'app/views/themes/typography'\nimport CustomShadows from 'app/views/themes/shadows'\nimport { createTheme } from '@mui/material/styles'\nimport componentsOverride from 'app/views/themes/overrides'\n\nexport const getTheme = ({ themeDirection, mode, presetColor, fontFamily }) => {\n const theme = Palette(mode, presetColor)\n const themeTypography = Typography(fontFamily)\n const themeCustomShadows = CustomShadows(theme)\n\n const themeOptions = {\n breakpoints: {\n values: {\n xs: 0,\n sm: 768,\n md: 1024,\n lg: 1266,\n xl: 1536,\n },\n },\n direction: themeDirection,\n mixins: {\n toolbar: {\n minHeight: 60,\n paddingTop: 8,\n paddingBottom: 8,\n },\n },\n palette: theme.palette,\n customShadows: themeCustomShadows,\n typography: themeTypography,\n }\n\n\n const themes = createTheme(themeOptions)\n themes.components = componentsOverride(themes)\n return themes\n}\n","import Grid from '@mui/material/Grid'\nimport FormikDebugControl from '../../../../components/form/mui-formik/FormikDebugControl'\nimport React, { useEffect, useState } from 'react'\nimport SubmitButton from '../../../../components/form/mui-formik/SubmitButton'\nimport makeStyles from '@mui/styles/makeStyles'\nimport { Field } from 'formik'\nimport SelectField from 'app/views/scenes/personal/IntakeForms/Form/steps/common/SelectField'\nimport Typography from '@mui/material/Typography'\nimport { Box } from '@mui/material'\nimport _ from 'lodash'\nimport clsx from 'clsx'\nimport TextField from '../../../../components/form/mui-formik/TextField'\nimport useThemeConfig from '../../../../hooks/useThemeConfig'\nimport { getTheme } from '../../../../../../utils/theme'\nimport fontsList from './fontsList.json'\n\nconst useStyles = makeStyles(({ palette }) => ({\n themeItem: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n themeSquare: {\n width: '1.5rem',\n height: '1.5rem',\n borderStyle: 'solid',\n borderWidth: '.25rem',\n cursor: 'pointer',\n },\n themeSelected: {\n backgroundColor: palette.primary.main,\n color: palette.text.primary,\n },\n}))\nconst themes = [{\n label: 'Theme 1',\n key: 'theme1',\n}, {\n label: 'Theme 2',\n key: 'theme2',\n}, {\n label: 'Theme 3',\n key: 'theme3',\n}, {\n label: 'Theme 4',\n key: 'theme4',\n}, {\n label: 'Theme 5',\n key: 'theme5',\n}, {\n label: 'Theme 6',\n key: 'theme6',\n}, {\n label: 'Theme 7',\n key: 'theme7',\n}, {\n label: 'Theme 8',\n key: 'theme8',\n},\n]\nexport default ({\n values,\n handleSubmit,\n setFieldValue,\n}) => {\n const classes = useStyles()\n const [fontFamilies, setFontFamilies] = useState([])\n const [themesSet, setThemesSet] = useState(null)\n const { themeDirection, mode, fontFamily } = useThemeConfig()\n const [selectedTheme, setSelectedTheme] = useState(values.theme)\n useEffect(() => {\n\n const fonts = fontsList\n setFontFamilies(fonts)\n\n const themesSetObject = {}\n for (const themeItem of themes) {\n themesSetObject[themeItem.key] = getTheme({ themeDirection, mode, presetColor: themeItem.key, fontFamily })\n }\n setThemesSet(themesSetObject)\n }, [])\n const setTheme = (theme) => {\n setSelectedTheme(theme)\n setFieldValue('theme', theme)\n }\n const generateThemeList = () => {\n if(!themesSet) return null\n return _.map(themes, ({ key, label }) => {\n const { palette: { primary, text } } = themesSet[key]\n return (\n \n setTheme(key)} />\n {label}\n \n )\n })\n }\n return (\n \n \n {generateThemeList()}\n \n {((color) ? setFieldValue('theme', color) : '')}}>\n \n \n \n \n \n \n \n \n \n \n \n )\n}","import React, { useCallback, useContext } from 'react'\nimport { Formik } from 'formik'\nimport makeStyles from '@mui/styles/makeStyles'\nimport { aSchema, schemas } from '@sustainhawaii/heal-schemas'\nimport Scene from '../../../../layouts/Scene'\nimport ThemeForm from './ThemeForm'\nimport useDialogs from '../../../../hooks/useDialogs'\nimport { useTranslation } from 'react-i18next'\nimport { ThemeContext } from 'app/views/contexts/ThemeConfigContext'\nimport { Drawer } from '@mui/material'\nimport { getTheme } from 'utils/theme'\nimport { updateTheme } from 'api/admin'\nimport { resolveErrorMessage } from 'utils/error-handling'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { getAppTheme } from '../../../../../state/ducks/appinit/selectors'\n\nconst useStyles = makeStyles(() => ({\n form: {\n width: '60%',\n background: 'transparent',\n },\n}))\n\nconst { string, array } = schemas\n\nconst schema = aSchema({\n theme: string().required('Required'),\n fontFamily: array().of(string().min(1)).min(1),\n})\n\nexport default ({\n isOpen = false,\n handleClose,\n}) => {\n const classes = useStyles()\n const [, setTheme] = useContext(ThemeContext)\n const { notice } = useDialogs()\n const { t } = useTranslation(['error'])\n const appTheme = useSelector(getAppTheme)\n const dispatch = useDispatch()\n const save = useCallback(values => {\n\n updateTheme(values)\n .then(() => {\n const theme = getTheme({ presetColor: values.theme, ...values })\n setTheme(theme)\n dispatch({\n type: 'THEME',\n theme: {\n theme: values.theme,\n fontFamily: values.fontFamily,\n },\n })\n handleClose()\n })\n .catch(e => notice({\n message: `Error ${resolveErrorMessage(e, t)}`,\n urgency: 'error',\n }))\n }, [])\n return (\n \n \n \n {formikProps => (\n \n )}\n \n \n \n )\n}","import React, { useState } from 'react'\nimport DialogTitle from '@mui/material/DialogTitle'\nimport DialogContent from '@mui/material/DialogContent'\nimport DialogActions from '@mui/material/DialogActions'\nimport Button from '@mui/material/Button'\nimport Dialog from '@mui/material/Dialog'\nimport { useSelector } from 'react-redux'\nimport { getMasterPass, getUser } from '../../../../state/ducks/user/selectors'\nimport { Box, TextField } from '@mui/material'\nimport { useTranslation } from 'react-i18next'\nimport { setUserProperty } from '../../../../../api/user'\nimport {\n schemas,\n} from '@sustainhawaii/heal-schemas'\nimport _ from 'lodash'\nimport CircularProgressStyled from '../../../../views/components/progress/CircularProgressStyled'\n\nconst { string } = schemas\n\nexport default ({ open, close }) => {\n const { t } = useTranslation()\n const [isEdited, setEdited] = useState(false)\n const [loading, setLoading] = useState(false)\n const masterPass = useSelector(getMasterPass)\n const emailFromPass = _.get(masterPass, 'email')\n const [email, setEmail] = useState(emailFromPass || '')\n const title = 'Edit Profile'\n\n const saveProfile = async () => {\n // Save the new email id\n const validEmail = string().email().isValidSync(email)\n if(!_.isEmpty(email) && validEmail) {\n setLoading(true)\n setEdited(false)\n const userData = { email }\n await setUserProperty(userData)\n }\n setLoading(false)\n await close()\n }\n const handleEmailChange = (evt) => {\n // check user email equal to evt.target.value\n const validEmail = string().email().isValidSync(evt.target.value)\n setEmail(evt.target.value)\n if(validEmail) {\n setEdited(true)\n } else {\n setEdited(false)\n }\n\n }\n return (\n \n {{title}}\n \n \n \n \n \n \n \n {\n await close()\n }}\n autoFocus\n >\n Cancel\n \n {\n await saveProfile()\n }}\n >\n Save\n \n \n \n )\n}","import PropTypes from 'prop-types'\nimport React, {\n useMemo,\n useRef,\n useState,\n} from 'react'\n\n// material-ui\nimport { useTheme } from '@mui/material/styles'\nimport {\n Avatar,\n Box,\n ButtonBase,\n CardContent,\n ClickAwayListener,\n Grid,\n Paper,\n Popper,\n Stack,\n Typography,\n} from '@mui/material'\n\n// project import\nimport MainCard from 'app/components/MainCard'\nimport Transitions from 'app/components/Transitions'\nimport ProfileTab from './ProfileTab'\nimport PersonIconStyled from 'app/views/components/AvatarStyled'\n\nimport { getDivisionProperty } from '../../../../../utils/org'\nimport useUserActions from '../../../../views/hooks/useUserActions'\nimport { useSelector } from 'react-redux'\nimport { getUser } from '../../../../state/ducks/user/selectors'\nimport DivisionSwitcher from '../../../../views/layouts/Header/AuthMenu/DivisionSwitcher'\nimport useMediaQuery from '@mui/material/useMediaQuery'\nimport UIPalette from '../../../../views/layouts/Header/AuthMenu/UIPalette'\nimport EditProfile from './EditProfile'\n\n// tab panel wrapper\nfunction TabPanel ({ children, value, index, ...other }) {\n return (\n \n )\n}\n\nTabPanel.propTypes = {\n children: PropTypes.node,\n index: PropTypes.any.isRequired,\n value: PropTypes.any.isRequired,\n}\n\n// ==============================|| HEADER CONTENT - PROFILE ||============================== //\n\nconst Profile = () => {\n const theme = useTheme()\n const matchDownMD = useMediaQuery(theme.breakpoints.down('lg'))\n const user = useSelector(getUser)\n const {\n userId,\n } = user ? user : {}\n let first = ''\n let last = ''\n let gender = ''\n if(user && user['passes'] && user['passes'][userId]) {\n first = user['passes'][userId]['name']['first'] ? user['passes'][userId]['name']['first'] : ''\n last = user['passes'][userId]['name']['last'] ? user['passes'][userId]['name']['last'] : ''\n gender = user['passes'][userId]['vitals'] ? user['passes'][userId]['vitals']['gender'] : ''\n }\n const divisionName = useMemo(() => getDivisionProperty({ key: 'name' }))\n const { logout } = useUserActions()\n\n const handleLogout = async () => {\n // logout\n logout()\n }\n\n const anchorRef = useRef(null)\n const [open, setOpen] = useState(false)\n const [divSwitcherOpen, setDivSwitcherOpen] = useState(false)\n const [uiPaletteOpen, setUiPaletteOpen] = useState(false)\n const [editProfileOpen, setEditProfileOpen] = useState(false)\n\n const handleToggle = () => {\n setOpen((prevOpen) => !prevOpen)\n }\n\n const handleClose = (event) => {\n if(anchorRef.current && anchorRef.current.contains(event.target)) {\n return\n }\n setOpen(false)\n }\n\n const handleSwitchDivision = () => {\n setDivSwitcherOpen(true)\n setOpen(false)\n }\n\n const handleUIPalette = () => {\n setUiPaletteOpen(true)\n setOpen(false)\n }\n\n const handleEditProfile = () => {\n setEditProfileOpen(true)\n setOpen(false)\n }\n\n const iconBackColorOpen = 'grey.300'\n\n return user ? (\n \n \n \n \n \n \n {`${first} ${last}`}\n \n \n \n {({ TransitionProps }) => (\n \n {open && (\n \n \n \n \n \n \n \n \n \n \n \n {`${first} ${last}`}\n \n {divisionName}\n \n \n \n \n \n \n {open && (\n <>\n \n \n )}\n \n \n \n )}\n \n )}\n \n setDivSwitcherOpen(false)}\n />\n setUiPaletteOpen(false)}\n />\n setEditProfileOpen(false)} />\n \n ) : <>\n}\n\nexport default Profile","// material-ui\nimport { Box, useMediaQuery } from '@mui/material'\n\n// project import\nimport Search from './Search'\nimport Profile from './Profile'\nimport { useSelector } from 'react-redux'\nimport { getOrg } from '../../../../utils/org'\n\n// ==============================|| HEADER - CONTENT ||============================== //\n\nconst HeaderContent = () => {\n const matchesXs = useMediaQuery((theme) => theme.breakpoints.down('md'))\n const org = getOrg()\n const homeLink = () => {\n window.location.href = '/'\n }\n \n return (\n <>\n {org.id === 'truewellth' && }\n {org.id === 'medea' && }\n {!matchesXs && }\n {matchesXs && }\n \n {}\n \n )\n}\n\nexport default HeaderContent","export default ({open = false}) => {\n return (
\n \n
\n )\n}","import PropTypes from 'prop-types'\n\n// material-ui\nimport { useTheme } from '@mui/material/styles'\nimport { IconButton, Toolbar } from '@mui/material'\n\n// project import\nimport AppBarStyled from './AppBarStyled'\nimport HeaderContent from './HeaderContent'\n\n// assets\nimport { MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons'\nimport NavHeader from './NavHeader'\nimport { getOrg } from '../../../utils/org'\n\n// ==============================|| MAIN LAYOUT - HEADER ||============================== //\n\nconst Header = ({ open, handleDrawerToggle }) => {\n const theme = useTheme()\n const org = getOrg()\n const iconBackColor = 'grey.100'\n const iconBackColorOpen = 'grey.200'\n\n // common header\n const mainHeader = (\n \n \n {!open ? : }\n \n \n \n )\n\n // app-bar params\n const appBar = {\n position: 'fixed',\n color: 'primary',\n elevation: 0,\n sx: {\n borderBottom: `1px solid ${theme.palette.divider}`,\n },\n }\n\n return (\n <>\n \n {org.id === 'truewellth' && }\n {mainHeader}\n \n\n \n )\n}\n\nHeader.propTypes = {\n open: PropTypes.bool,\n handleDrawerToggle: PropTypes.func,\n}\n\nexport default Header","import { personalDashBoardPath } from '../../config/const'\n\nexport default [\n {\n path: ['/', '/div/:division?', '/staff*'],\n component: () => import(/* webpackChunkName: \"home\" */ 'app/views/scenes/Home'),\n exact: true,\n enabled: true,\n },\n {\n path: personalDashBoardPath,\n component: () => import(/* webpackChunkName: \"personal-dashboard\" */ 'app/views/scenes/personal/Dashboard'),\n exact: true,\n authRequired: true,\n enabled: true,\n },\n {\n path: '/personal/passes',\n component: () => import(/* webpackChunkName: \"personal-passes\" */ 'app/views/scenes/personal/Passes'),\n exact: true,\n authRequired: true,\n enabled: true,\n },\n {\n path: '/personal/my-health',\n component: () => import(/* webpackChunkName: \"personal-health\" */ 'app/views/scenes/personal/Health'),\n exact: true,\n authRequired: true,\n enabled: true,\n },\n {\n path: '/personal/proctoredtest',\n component: () => import(/* webpackChunkName: \"personal-webinar\" */ 'app/views/scenes/personal/ProctoredTest'),\n exact: true,\n authRequired: true,\n enabled: true,\n },\n {\n path: '/gate-keeper',\n component: () => import(/* webpackChunkName: \"gatekeeper\" */ 'app/views/scenes/GateKeeper'),\n exact: true,\n userRoles: ['Account Owner', 'Admin', 'HCP', 'Lab Tech', 'Gatekeeper', 'Analyst R', 'Analyst X'],\n features: ['Gatekeeper', 'Administration of Organization'],\n enabled: true,\n },\n {\n path: '/Scheduling/visit-type',\n component: () => import(/* webpackChunkName: \"scheduling-visit-type-selection\" */ 'app/views/scenes/personal/Scheduling/VisitTypeSelection'),\n exact: true,\n authRequired: true,\n enabled: true,\n },\n {\n path: '/Scheduling/select-scheduling-type',\n component: () => import(/* webpackChunkName: \"scheduling-visit-location-selection\" */ 'app/views/scenes/personal/Scheduling/SchedulingTypeSelection'),\n exact: true,\n authRequired: true,\n enabled: true,\n },\n {\n path: '/Scheduling/select-location',\n component: () => import(/* webpackChunkName: \"scheduling-visit-location-selection\" */ 'app/views/scenes/personal/Scheduling/LocationSelection'),\n exact: true,\n authRequired: true,\n enabled: true,\n },\n {\n path: '/Scheduling/select-user',\n component: () => import(/* webpackChunkName: \"scheduling-visit-user-selection\" */ 'app/views/scenes/personal/Scheduling/UserSelection'),\n exact: true,\n authRequired: true,\n enabled: true,\n },\n {\n path: '/Scheduling/select-slot',\n component: () => import(/* webpackChunkName: \"scheduling-visit-calendly\" */'app/views/scenes/personal/Scheduling/Calendly'),\n authRequired: true,\n enabled: true,\n },\n {\n path: '/Scheduling/paid-pcr',\n component: () => import(/* webpackChunkName: \"scheduling-visit-paid-pcr\" */ 'app/views/scenes/personal/Scheduling/PaidPCR'),\n userRoles: ['Account Owner', 'Admin', 'HCP', 'Lab Tech'],\n features: ['Administration of Organization', 'Lab Functions'],\n enabled: true,\n },\n {\n path: '/personal/intake-forms',\n component: () => import(/* webpackChunkName: \"personal-intake-forms\" */ 'app/views/scenes/personal/IntakeForms'),\n authRequired: true,\n enabled: true,\n },\n {\n path: '/personal/dri',\n component: () => import(/* webpackChunkName: \"dri\" */ 'app/views/scenes/personal/DRI'),\n authRequired: true,\n enabled: true,\n },\n {\n path: '/personal/food-compass',\n component: () => import(/* webpackChunkName: \"food-explorer\" */ 'app/views/scenes/personal/FoodExplorer'),\n authRequired: true,\n enabled: true,\n },\n {\n path: '/personal/diabetes',\n component: () => import(/* webpackChunkName: \"diabetes\" */ 'app/views/scenes/personal/Diabetes'),\n authRequired: true,\n enabled: true,\n },\n\n {\n path: '/personal/food-preferences',\n component: () => import('app/views/scenes/personal/FoodPreferences'),\n authRequired: true,\n enabled: true,\n },\n {\n path: '/personal/scan-upca',\n component: () => import( 'app/views/scenes/personal/ScanUpca'),\n authRequired: true,\n enabled: true,\n },\n {\n path: '/personal/food-diary',\n component: () => import( 'app/views/scenes/personal/FoodDiary'),\n authRequired: true,\n enabled: true,\n },\n /*\n {\n path: '/personal/medical-chat',\n component: () => import(/!* webpackChunkName: \"personal-intake-forms\" *!/ 'app/views/scenes/personal/MedicalChat'),\n authRequired: true,\n enabled: true,\n },*/\n {\n path: '/personal/intake-form',\n component: () => import(/* webpackChunkName: \"personal-intake-form\" */ 'app/views/scenes/personal/IntakeForms/Form'),\n authRequired: true,\n enabled: true,\n },\n {\n path: '/i-c/:formId',\n component: () => import(/* webpackChunkName: \"personal-intake-form\" */ 'app/views/scenes/personal/IntakeForms/Form'),\n enabled: true,\n forGuardian: true,\n },\n {\n path: '/intake-cosign-done',\n component: () => import(/* webpackChunkName: \"personal-intake-form\" */ 'app/views/scenes/personal/IntakeForms/CosignThanks'),\n enabled: true,\n },\n {\n path: '/personal/symptoms',\n component: () => import(/* webpackChunkName: \"symptom-survey\" */ 'app/views/scenes/personal/SymptomSurvey'),\n exact: true,\n authRequired: true,\n enabled: true,\n },\n {\n path: '/payment/success',\n component: () => import(/* webpackChunkName: \"payment-success\" */ 'app/views/scenes/personal/Payment/success'),\n exact: true,\n authRequired: true,\n enabled: true,\n },\n {\n path: '/lab/pending-tests',\n component: () => import(/* webpackChunkName: \"lab-pending-tests\" */ 'app/views/scenes/lab/PendingTests'),\n exact: true,\n userRoles: ['HCP', 'Account Owner', 'Admin'],\n features: ['Administration of Organization', 'Lab Functions'],\n enabled: true,\n },\n {\n path: '/lab/pending-vaccs',\n component: () => import(/* webpackChunkName: \"lab-pending-vaccs\" */ 'app/views/scenes/lab/PendingVaccs'),\n exact: true,\n userRoles: ['HCP', 'Account Owner', 'Admin'],\n features: ['Administration of Organization', 'Lab Functions'],\n enabled: false,\n },\n {\n path: '/lab/calls',\n component: () => import(/* webpackChunkName: \"account-owner-tests-to-call-about\" */ 'app/views/scenes/lab/TestsToCallAbout'),\n exact: true,\n userRoles: ['HCP', 'Account Owner', 'Admin', 'Analyst X'],\n features: ['Administration of Organization', 'Lab Functions'],\n enabled: true,\n },\n {\n path: '/lab/create-patient',\n component: () => import(/* webpackChunkName: \"account-owner-tests-to-call-about\" */ 'app/views/scenes/lab/CreatePatient'),\n exact: true,\n userRoles: ['HCP', 'Account Owner', 'Admin'],\n features: ['Administration of Organization', 'Lab Functions'],\n enabled: true,\n },\n {\n path: '/lab/printing-test',\n component: () => import(/* webpackChunkName: \"lab-printing-test\" */ 'app/views/scenes/lab/PrintTestLabel'),\n exact: true,\n userRoles: ['Account Owner', 'Admin', 'HCP', 'Lab Tech'],\n features: ['Administration of Organization', 'Lab Functions'],\n enabled: true,\n },\n {\n path: '/lab/visit',\n component: () => import(/* webpackChunkName: \"lab-visit\" */ 'app/views/scenes/lab/Visit'),\n enabled: true,\n },\n {\n path: ['/personal/my-status', '/myact/div/:division'],\n component: () => import(/* webpackChunkName: \"personal-my-status\" */ 'app/views/scenes/personal/Status'),\n exact: true,\n authRequired: true,\n enabled: true,\n },\n {\n path: '/privacy-policy',\n component: () => import(/* webpackChunkName: \"privacy-policy\" */ 'app/views/scenes/site-info-pages/PrivacyPolicy.js'),\n exact: true,\n enabled: true,\n },\n {\n path: '/cookie-policy',\n component: () => import(/* webpackChunkName: \"cookie-policy\" */ 'app/views/scenes/site-info-pages/CookiePolicy.js'),\n exact: true,\n enabled: true,\n },\n {\n path: '/supported-browsers',\n component: () => import(/* webpackChunkName: \"supported-browsers\" */ 'app/views/scenes/site-info-pages/SupportedBrowsers.js'),\n exact: true,\n enabled: true,\n },\n {\n path: '/admin',\n component: () => import(/* webpackChunkName: \"admin\" */ 'app/views/scenes/admin'),\n userRoles: ['Analyst R', 'Analyst X', 'HCP', 'Account Owner', 'Admin', 'Sales Manager', 'Prospect AO'],\n features: ['Administration of Organization', 'Lab Functions', 'CRM', 'Gatekeeper',\n 'Inventory', 'Org Management', 'Reporting', 'PCRM Admin', 'FC Admin'],\n enabled: true,\n },\n {\n path: '/personal/schedule',\n component: () => import(/* webpackChunkName: \"personal-passes\" */ 'app/views/scenes/personal/Scheduler'),\n exact: true,\n authRequired: true,\n enabled: true,\n },\n {\n component: () => import(/* webpackChunkName: \"not-found\" */ 'app/views/scenes/NotFound'),\n enabled: true,\n },\n]","import routeConfigs from './configs'\nimport { getRoutesFromConfigs } from 'utils/routing'\n\nexport default getRoutesFromConfigs({ routeConfigs })\n","import React from 'react'\nimport QrReader from 'react-qr-reader'\nimport makeStyles from '@mui/styles/makeStyles'\n\nconst useStyles = makeStyles(() => ({\n container: {\n width: '80vw',\n maxWidth: '100%',\n },\n}))\n\nexport default ({\n onResult,\n onErr,\n}) => {\n const classes = useStyles()\n return (\n {\n if (data) {\n onResult(data)\n }\n }}\n showViewFinder={false}\n className={classes.container}\n />\n )\n}\n","import React from 'react'\nimport QRCodeScanner from 'app/views/components/QRCodeScanner'\nimport _ from 'lodash'\nimport Typography from '@mui/material/Typography'\nimport makeStyles from '@mui/styles/makeStyles'\nimport useDialogs from 'app/views/hooks/useDialogs'\nimport * as Sentry from '@sentry/react'\n\n/*\nAdds an onClick handler to a component that launches QR code scanner\nand calls a callback with resulting data object.\n */\n\nconst useStyles = makeStyles(({ spacing }) => ({\n instructions: {\n marginTop: spacing(1),\n },\n}))\n\nconst getErrorAlert = e => ({\n title: 'Camera Access',\n message: 'We had trouble reading the code. Please make sure another browser window or tab, or another app, is not using the camera.',\n error: e,\n})\n\nexport default ({\n title,\n instructions,\n callback,\n ...props\n}) => Component => {\n const { alert, details } = useDialogs()\n const classes = useStyles()\n return (\n details.open({\n title,\n fullScreen: false,\n content: (\n <>\n {\n alert(getErrorAlert(e))\n if(!['NotAllowedError'].includes(e?.name)) {\n Sentry.captureException(e, {\n tags: {\n component: 'QRCodeScanner',\n },\n extra: {\n title,\n },\n })\n }\n details.close()\n }}\n onResult={res => {\n if(!_.isString(res)) {\n alert(getErrorAlert({ message: 'Result is not a string.' }))\n return\n }\n try {\n const resObj = JSON.parse(res)\n if(_.isPlainObject(resObj)) {\n callback(resObj)\n } else {\n alert(getErrorAlert({ message: 'Could not parse object from result.' }))\n }\n } catch (e) {\n alert(getErrorAlert(e))\n }\n details.close()\n }}\n />\n {instructions && (\n \n {instructions}\n \n )}\n \n ),\n })}\n />\n )\n}\n","import React from 'react'\nimport BottomNavigation from '@mui/material/BottomNavigation'\nimport BottomNavigationAction from '@mui/material/BottomNavigationAction'\nimport LabScannerButton from './LabScannerButton'\nimport PhoneIcon from 'app/views/components/icons/PhoneIcon'\nimport _ from 'lodash'\nimport { useHistory, useLocation } from 'react-router-dom'\nimport { useSelector } from 'react-redux'\nimport { getTotalPendingTests, getTotalPendingVaccs, getTotalTestsToCallAbout } from 'app/state/ducks/lab/selectors'\nimport makeStyles from '@mui/styles/makeStyles'\nimport useUserRoles from 'app/views/hooks/useUserRoles'\nimport ActionItemsButton from 'app/views/layouts/BottomNav/ActionItemsButton'\nimport TestTubeIcon from 'app/views/components/icons/TestTubeIcon'\nimport SyringeIcon from 'app/views/components/icons/SyringeIcon'\nimport GateKeeperButton from './GateKeeperButton'\nimport { getRole, getUserPermissions } from 'app/state/ducks/user/selectors'\nimport { systemRoles } from 'app/components/Drawer/DrawerContent/Navigation/feature-config'\n\nconst useStyles = makeStyles(({ palette }) => ({\n root: {\n backgroundColor: palette.primary.main,\n },\n}))\n\n/**\n * A simple example of `BottomNavigation`, with three labels and icons\n * provided. The selected `BottomNavigationItem` is determined by application\n * state (for instance, by the URL).\n */\nexport default () => {\n const classes = useStyles()\n const location = useLocation()\n const { hasAnyRoles, isMedStaff } = useUserRoles()\n const totalPendingTests = useSelector(getTotalPendingTests)\n const totalTestsToCallAbout = useSelector(getTotalTestsToCallAbout)\n const totalPendingVaccs = useSelector(getTotalPendingVaccs)\n const role = useSelector(getRole)\n const permissions = useSelector(getUserPermissions)\n const { push } = useHistory()\n if(location.pathname === '/') {\n return null\n }\n const labScanItem = {\n component: LabScannerButton,\n enabled: true,\n }\n const gateKeeperItem = {\n component: GateKeeperButton,\n enabled: true,\n }\n const pendingTestsItem = {\n icon: (\n \n ),\n path: '/lab/pending-tests',\n pattern: /\\/lab\\/pending-tests/,\n enabled: true,\n }\n const pendingVaccsItem = {\n icon: (\n \n ),\n path: '/lab/pending-vaccs',\n pattern: /\\/lab\\/pending-vaccs/,\n enabled: false,\n }\n const callForTests = {\n icon: (\n \n ),\n path: '/lab/calls',\n pattern: /\\/lab\\/calls/,\n enabled: true,\n }\n\n // ==============================|| BOTTOM NAVIGATION MENU BAR CONFIG BASED ON FEATURE ACCESS ||============================== //\n const bottomMenuConfig = [\n {\n feature: 'Administration of Organization',\n items: [labScanItem, gateKeeperItem, pendingTestsItem, pendingVaccsItem, callForTests],\n },\n {\n feature: 'CRM',\n items: [],\n },\n {\n feature: 'Gatekeeper',\n items: [gateKeeperItem],\n },\n {\n feature: 'Inventory',\n items: [],\n },\n {\n feature: 'Lab Functions',\n items: [labScanItem, pendingTestsItem, pendingVaccsItem, callForTests],\n },\n {\n feature: 'Org Management',\n items: [],\n },\n {\n feature: 'Reporting',\n items: [],\n },\n ]\n\n let items = []\n\n if(systemRoles.includes(role)) {\n if(hasAnyRoles(['Account Owner', 'Admin', 'HCP', 'Lab Tech'])) items.push(labScanItem)\n if(hasAnyRoles(['Account Owner', 'Admin', 'HCP', 'Lab Tech', 'Gatekeeper', 'Analyst R', 'Analyst X'])) items.push(gateKeeperItem)\n if(isMedStaff) items.push(pendingTestsItem, pendingVaccsItem)\n if(isMedStaff || hasAnyRoles(['Analyst X'])) items.push(callForTests)\n } else {\n\n const allowedFeatures = _.chain(permissions).map(perm => {\n if(perm.view) {\n return perm.featureName\n }\n }).compact().value()\n items = _.chain(bottomMenuConfig).filter((features) => allowedFeatures.includes(features.feature)).map('items').flatten().uniq().value()\n }\n\n if(_.isEmpty(items)) {\n return null\n }\n\n const selectedIndex = _.findIndex(items, ({ pattern }) => pattern && pattern.test(location.pathname))\n return (\n \n {\n _.chain(items).filter('enabled').map((item, i) => {\n const { icon, path } = item\n if(item.component) {\n return (\n \n )\n }\n return (\n push(path)}\n />\n )\n }).value()\n }\n \n )\n}","import React from 'react'\nimport { useTheme } from '@mui/material/styles'\nimport makeStyles from '@mui/styles/makeStyles'\nimport { Box } from '@mui/material'\nimport CdnImg from '../components/CdnImg'\nimport Typography from '@mui/material/Typography'\nimport useTranslateDictionary from '../hooks/useTranslateDictionary'\n\nconst useStyles = makeStyles(({ palette }) => ({\n text: {\n color: palette.common.white,\n },\n}))\n\nconst TextBlock = ({\n text,\n variant,\n}) => {\n const classes = useStyles()\n return (\n \n {text}\n \n )\n}\n\nexport default () => {\n const { title, message } = useTranslateDictionary({\n nameSpace: 'scenes',\n path: 'maintenance',\n })\n const { palette } = useTheme()\n return (\n \n \n \n
\n \n \n \n )\n}\n","import React from 'react'\nimport { useTheme } from '@mui/material/styles'\nimport makeStyles from '@mui/styles/makeStyles'\nimport { Box } from '@mui/material'\nimport CdnImg from '../components/CdnImg'\nimport Typography from '@mui/material/Typography'\nimport useTranslateDictionary from '../hooks/useTranslateDictionary'\n\nconst useStyles = makeStyles(({ palette }) => ({\n text: {\n color: palette.common.white,\n },\n}))\n\nconst TextBlock = ({\n text,\n variant,\n}) => {\n const classes = useStyles()\n return (\n \n {text}\n \n )\n}\n\nexport default () => {\n const { title, message } = useTranslateDictionary({\n nameSpace: 'scenes',\n path: 'divDisabled',\n })\n const { palette } = useTheme()\n return (\n \n \n \n \n \n \n \n )\n}\n","// material-ui\nimport { styled } from '@mui/material/styles'\nimport { Box } from '@mui/material'\n\n// ==============================|| DRAWER HEADER - STYLED ||============================== //\n\nconst DrawerHeaderStyled = styled(Box, { shouldForwardProp: (prop) => prop !== 'open' })(({ theme, open }) => ({\n ...theme.mixins.toolbar,\n display: 'flex',\n alignItems: 'center',\n justifyContent: open ? 'flex-start' : 'center',\n paddingLeft: theme.spacing(open ? 3 : 0),\n}))\n\nexport default DrawerHeaderStyled","import PropTypes from 'prop-types'\n\n// material-ui\nimport { useTheme } from '@mui/material/styles'\nimport { Chip, Stack } from '@mui/material'\n\n// project import\nimport DrawerHeaderStyled from './DrawerHeaderStyled'\nimport { getThisAppVersion } from '../../../../api/general'\nimport { getOrg } from '../../../../utils/org'\n\n// ==============================|| DRAWER HEADER ||============================== //\n\nconst DrawerHeader = ({ open }) => {\n const theme = useTheme()\n const orgId = getOrg().id\n const appVersion = getThisAppVersion()\n\n return (\n // only available in paid version\n <>\n )\n}\n\nDrawerHeader.propTypes = {\n open: PropTypes.bool,\n}\n\nexport default DrawerHeader","import PropTypes from 'prop-types'\nimport { forwardRef, useEffect } from 'react'\nimport { Link } from 'react-router-dom'\nimport { useDispatch, useSelector } from 'react-redux'\n\n// material-ui\nimport { useTheme } from '@mui/material/styles'\nimport { Avatar, Chip, ListItemButton, ListItemIcon, ListItemText, Typography } from '@mui/material'\n\nconst NavItem = ({ item, level }) => {\n const theme = useTheme()\n const dispatch = useDispatch()\n const menu = useSelector((state) => state.menu)\n const { activeItem, drawerOpen } = menu\n let itemTarget = '_self'\n if(item.target) {\n itemTarget = '_blank'\n }\n\n let listItemProps = {\n component: forwardRef((props, ref) => ),\n }\n if(item?.external) {\n listItemProps = { component: 'a', href: item.url, target: itemTarget }\n }\n\n const itemHandler = (id) => {\n dispatch({ type: 'MENU/ACTIVE_ITEM', activeItem: [id] })\n }\n\n const Icon = item.icon\n const itemIcon = item.icon ? : false\n\n const isSelected = activeItem.findIndex((id) => id === item.id) > -1\n\n // active menu item on page load\n useEffect(() => {\n const currentIndex = document.location.pathname\n .toString()\n .split('/')\n .findIndex((id) => id === item.id)\n if(currentIndex > -1) {\n itemHandler(item.id)\n }\n // eslint-disable-next-line\n }, [])\n\n const textColor = 'text.primary'\n const iconSelectedColor = 'primary.main'\n\n return (\n {\n dispatch({ type: 'MENU/DRAWER_OPEN', drawerOpen: !drawerOpen })\n itemHandler(item.id)\n }}\n selected={isSelected}\n sx={{\n zIndex: 1201,\n pl: drawerOpen ? `${level * 28}px` : 1.5,\n py: !drawerOpen && level === 1 ? 1.25 : 1,\n ...(drawerOpen && {\n '&:hover': {\n bgcolor: 'primary.lighter',\n },\n '&.Mui-selected': {\n bgcolor: 'primary.lighter',\n borderRight: `2px solid ${theme.palette.primary.main}`,\n color: iconSelectedColor,\n '&:hover': {\n color: iconSelectedColor,\n bgcolor: 'primary.lighter',\n },\n },\n }),\n ...(!drawerOpen && {\n '&:hover': {\n bgcolor: 'transparent',\n },\n '&.Mui-selected': {\n '&:hover': {\n bgcolor: 'transparent',\n },\n bgcolor: 'transparent',\n },\n }),\n }}\n >\n {itemIcon && (\n \n {itemIcon}\n \n )}\n {(drawerOpen || (!drawerOpen && level !== 1)) && (\n \n {item.title}\n \n }\n />\n )}\n {(drawerOpen || (!drawerOpen && level !== 1)) && item.chip && (\n {item.chip.avatar}}\n />\n )}\n \n )\n}\n\nNavItem.propTypes = {\n item: PropTypes.object,\n level: PropTypes.number,\n}\n\nexport default NavItem","import PropTypes from 'prop-types'\nimport { useSelector } from 'react-redux'\n\n// material-ui\nimport { Box, List, Typography } from '@mui/material'\n\n// project import\nimport NavItem from './NavItem'\n\n// ==============================|| NAVIGATION - LIST GROUP ||============================== //\n\nconst NavGroup = ({ item }) => {\n const menu = useSelector((state) => state.menu)\n const { drawerOpen } = menu\n const navCollapse = item.children?.map((menuItem) => {\n switch (menuItem.type) {\n case 'collapse':\n return (\n \n collapse - only available in paid version\n \n )\n case 'item':\n return \n default:\n return (\n \n Fix - Group Collapse or Items\n \n )\n }\n })\n\n return (\n \n \n {item.title}\n \n \n )\n }\n sx={{ mb: drawerOpen ? 1.5 : 0, py: 0, zIndex: 0 }}\n >\n {navCollapse}\n \n )\n}\n\nNavGroup.propTypes = {\n item: PropTypes.object,\n}\n\nexport default NavGroup","// material-ui\nimport { Box, Typography } from '@mui/material'\n\n// project import\nimport NavGroup from './NavGroup'\nimport useMainMenu from '../../../../views/hooks/useMainMenu'\nimport useAdminMenu from '../../../../views/hooks/useAdminMenu'\n\n// ==============================|| DRAWER CONTENT - NAVIGATION ||============================== //\n\nconst Navigation = () => {\n const { items } = useMainMenu()\n const { items: adminItems } = useAdminMenu()\n\n // Group menus into 4 sections\n const support = ['privacy-policy', 'cookie-policy', 'supported-browsers']\n const admin = ['admin/tests-list']\n const nav = [\n 'personal/dashboard',\n 'personal/passes',\n 'personal/intake-forms',\n 'personal/my-status',\n 'personal/my-health',\n 'personal/dri',\n 'personal/schedule',\n 'personal/food-compass',\n 'personal/diabetes',\n 'personal/food-preferences',\n 'personal/scan-upca',\n 'personal/food-diary'\n ]\n const lab = ['lab/printing-test', 'lab/pending-tests', 'lab/pending-vaccs', 'lab/calls', 'lab/create-patient']\n\n const supportMenus = {\n id: 'support',\n title: 'Support',\n type: 'group',\n children: [],\n }\n const adminMenus = {\n id: 'admin',\n title: 'Administration',\n type: 'group',\n children: [],\n }\n const navMenus = {\n id: 'navigation',\n title: 'Navigation',\n type: 'group',\n children: [],\n }\n const labMenus = {\n id: 'labs',\n title: 'Lab',\n type: 'group',\n children: [],\n }\n const adminMenuSet = adminItems.map(item => ({\n id: item.path,\n title: item.name,\n url: `/admin/${item.path}`,\n type: 'item',\n icon: item.icon,\n }))\n let isAdminMenu = false\n for (const navItem of items) {\n let menuSet\n if(nav.includes(navItem.path)) menuSet = navMenus\n else if(support.includes(navItem.path)) menuSet = supportMenus\n else if(admin.includes(navItem.path)) {\n isAdminMenu = true\n continue\n } else if(lab.includes(navItem.path)) menuSet = labMenus\n else continue\n\n menuSet.children.push({\n id: navItem.path,\n title: navItem.name,\n url: `/${navItem.path}`,\n icon: navItem.icon,\n type: 'item',\n })\n\n }\n if(isAdminMenu) adminMenus.children = adminMenuSet\n else if(adminMenuSet) adminMenus.children = adminMenuSet\n const menuItems = []\n navMenus.children.length && menuItems.push(navMenus)\n labMenus.children.length && menuItems.push(labMenus)\n adminMenus.children.length && menuItems.push(adminMenus)\n supportMenus.children.length && menuItems.push(supportMenus)\n\n const navGroups = menuItems.map((item) => {\n switch (item.type) {\n case 'group':\n return \n default:\n return (\n \n Fix - Navigation Group\n \n )\n }\n })\n\n return {navGroups}\n}\n\nexport default Navigation","// project import\nimport Navigation from './Navigation'\nimport { Box } from '@mui/material'\n// ==============================|| DRAWER CONTENT ||============================== //\n\nconst DrawerContent = () => (\n \n \n \n \n \n\n)\n\nexport default DrawerContent","// material-ui\nimport { styled } from '@mui/material/styles'\nimport Drawer from '@mui/material/Drawer'\n\n// project import\nimport { drawerClosedWidth, drawerWidth } from 'config'\n\nconst openedMixin = (theme) => ({\n width: drawerWidth,\n borderRight: `1px solid ${theme.palette.divider}`,\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n overflowX: 'hidden',\n boxShadow: 'none',\n})\n\nconst closedMixin = (theme) => ({\n transition: theme.transitions.create('width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n overflowX: 'hidden',\n width: drawerClosedWidth,\n borderRight: 'none',\n boxShadow: theme.customShadows.z1,\n})\n\n// ==============================|| DRAWER - MINI STYLED ||============================== //\n\nconst MiniDrawerStyled = styled(Drawer, { shouldForwardProp: (prop) => prop !== 'open' })(({ theme, open }) => ({\n width: drawerWidth,\n flexShrink: 0,\n whiteSpace: 'nowrap',\n boxSizing: 'border-box',\n ...(open && {\n ...openedMixin(theme),\n '& .MuiDrawer-paper': openedMixin(theme),\n }),\n ...(!open && {\n ...closedMixin(theme),\n '& .MuiDrawer-paper': closedMixin(theme),\n }),\n}))\n\nexport default MiniDrawerStyled","import PropTypes from 'prop-types'\nimport { useMemo } from 'react'\n\n// material-ui\nimport { useTheme } from '@mui/material/styles'\nimport { Box, Drawer, useMediaQuery } from '@mui/material'\n\n// project import\nimport DrawerHeader from './DrawerHeader'\nimport DrawerContent from './DrawerContent'\nimport MiniDrawerStyled from './MiniDrawerStyled'\nimport { drawerClosedWidth, drawerWidth } from 'config'\n\n// ==============================|| MAIN LAYOUT - DRAWER ||============================== //\n\nconst MainDrawer = ({ open, handleDrawerToggle, window }) => {\n const theme = useTheme()\n const matchDownMD = useMediaQuery(theme.breakpoints.down('lg'))\n const drawCloseWidth = !matchDownMD ? drawerClosedWidth : 0\n // responsive drawer container\n const container = window !== undefined ? () => window().document.body : undefined\n\n // header content\n const drawerContent = useMemo(() => , [])\n const drawerHeader = useMemo(() => , [open])\n\n return (\n \n {!matchDownMD ? (\n \n {drawerHeader}\n {drawerContent}\n \n ) : (\n \n {open && drawerHeader}\n {open && drawerContent}\n \n )}\n \n )\n}\n\nMainDrawer.propTypes = {\n open: PropTypes.bool,\n handleDrawerToggle: PropTypes.func,\n window: PropTypes.object,\n}\n\nexport default MainDrawer","import React, { useEffect, useState } from 'react'\nimport Header from 'app/components/Header'\nimport { Switch, useLocation } from 'react-router-dom'\nimport routes from 'app/routes'\nimport BottomNav from 'app/views/layouts/BottomNav'\nimport { Box, Toolbar } from '@mui/material'\nimport makeStyles from '@mui/styles/makeStyles'\nimport MaintenanceMode from './MaintenanceMode'\nimport { inMaintenanceMode } from '../../../utils/site-context'\nimport { getDivisionProperty, getOrg } from 'utils/org'\nimport DivisionDisabled from 'app/views/layouts/DivisionDisabled'\nimport useUserRoles from 'app/views/hooks/useUserRoles'\nimport Drawer from '../../components/Drawer'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { getUserId } from '../../state/ducks/user/selectors'\nimport NavHeader from '../../components/Header/NavHeader'\n\nconst useStyles = makeStyles(() => ({\n container: {\n height: '100%',\n margin: '0 auto',\n backgroundColor: '#FFFFFF',\n overflowY : 'auto',\n },\n bottomNav: {\n width: '100%',\n },\n}))\nconst Pages = () => {\n const classes = useStyles()\n const userId = useSelector(getUserId)\n return (\n \n \n \n {routes}\n \n {/* */}\n \n )\n}\nconst AppBarControls = ({ onHomePage }) => {\n const [open, setOpen] = useState(false)\n const { drawerOpen } = useSelector((state) => state.menu)\n const dispatch = useDispatch()\n useEffect(() => {\n if(open !== drawerOpen) setOpen(drawerOpen)\n }, [drawerOpen])\n const handleDrawerToggle = () => {\n setOpen(!open)\n dispatch({ type: 'MENU/DRAWER_OPEN', drawerOpen: !open })\n }\n return (<>\n {!onHomePage &&
}\n {!onHomePage && }\n )\n}\nexport default () => {\n const userId = useSelector(getUserId)\n const classes = useStyles()\n const org = getOrg()\n const location = useLocation()\n const { hasAnyRoles } = useUserRoles()\n const onHomePage = /^\\/(div\\/[a-z]+)?$/.test(location.pathname)\n const inFullAreaPage = /my-health/.test(location.pathname) || /food-compass/.test(location.pathname)\n || /diabetes/.test(location.pathname)\n || /food-preferences/.test(location.pathname)\n || /medical-chat/.test(location.pathname)\n\t|| /scan-upca/.test(location.pathname)\n const inAdminArea = /^\\/admin/.test(location.pathname) || /dashboard/.test(location.pathname)\n useEffect(() => {\n document.body.classList[inAdminArea || inFullAreaPage ? 'add' : 'remove']('admin')\n }, [inAdminArea, inFullAreaPage])\n if(inMaintenanceMode()) return \n\n const isDivisionDisabled = () => {\n if(getDivisionProperty({ key: 'disabled', df: false })) {\n if(!hasAnyRoles(['Account Owner', 'Admin']))\n return true\n }\n return false\n }\n if(isDivisionDisabled()) return \n return (\n <>\n {!userId && org.id === 'truewellth' && }\n \n \n \n \n\n \n \n )\n}","import React from 'react'\nimport CenteredContentContainer from 'app/views/components/layout/CenteredContentContainer'\nimport HugeIconAndTextButton from 'app/views/components/buttons/HugeIconAndTextButton'\nimport ReloadIcon from 'app/views/components/icons/ReloadIcon'\nimport useAppInit from '../../../hooks/useAppInit'\n\nexport default ({ label }) => {\n const { updateApp } = useAppInit()\n return (\n \n \n \n )\n}\n","import { useEffect } from 'react'\nimport { useSnackbar } from 'notistack'\nimport { useSelector } from 'react-redux'\n\nimport useDialogs from 'app/views/hooks/useDialogs'\nimport { getNotifications } from 'app/state/ducks/user/selectors'\n\nlet displayed = []\nconst useNotifier = () => {\n const notifications = useSelector(getNotifications)\n const { removeNotice } = useDialogs()\n const { enqueueSnackbar } = useSnackbar()\n\n const storeDisplayed = (id) => {\n displayed = [...displayed, id]\n }\n const removeDisplayed = (id) => {\n displayed = [...displayed.filter(key => id !== key)]\n }\n\n useEffect(() => {\n notifications.forEach(({ id, message, type }) => {\n if(displayed.includes(id)) return\n enqueueSnackbar(message, {\n variant: `${type.toLowerCase()}`,\n key: id,\n onExit: (event, key) => {\n removeNotice({ id: key })\n removeDisplayed(key)\n },\n })\n storeDisplayed(id)\n })\n }, [notifications])\n}\n\nexport default useNotifier","import React from 'react'\nimport PropTypes from 'prop-types'\nimport Box from '@mui/material/Box'\nimport Dialog from '@mui/material/Dialog'\nimport Typography from '@mui/material/Typography'\nimport CircularProgress from '@mui/material/CircularProgress'\nimport withStyles from '@mui/styles/withStyles'\nimport { connect } from 'react-redux'\nimport { compose } from 'recompose'\nimport _ from 'lodash'\nimport LinearProgress from '../progress/LinearProgress'\n\nconst styler = withStyles(theme => ({\n root: {\n height: 100,\n padding: theme.spacing(3),\n },\n progress: {\n width: '100%',\n },\n}))\n\nclass Loading extends React.Component {\n\n static propTypes = {\n open: PropTypes.bool,\n message: PropTypes.string,\n circleSize: PropTypes.number,\n typographyProps: PropTypes.object,\n classes: PropTypes.object.isRequired,\n }\n\n static defaultProps = {\n open: false,\n message: '',\n circleSize: 36,\n typographyProps: {\n variant: 'h6',\n },\n }\n\n render () {\n const {\n open,\n message,\n progress,\n circleSize,\n typographyProps,\n classes,\n } = this.props\n return (\n \n \n {message}\n {_.isNumber(progress) && (\n
\n \n
\n )}\n {!_.isNumber(progress) && (\n \n )}\n \n \n )\n }\n}\n\nconst mapStateToProps = state => state.dialog.loading\n\nexport default compose(connect(mapStateToProps), styler)(Loading)\n","import React from 'react'\nimport Dialog from '@mui/material/Dialog'\nimport DialogTitle from '@mui/material/DialogTitle'\nimport DialogActions from '@mui/material/DialogActions'\nimport DialogContent from '@mui/material/DialogContent'\nimport DialogContentText from '@mui/material/DialogContentText'\nimport Typography from '@mui/material/Typography'\nimport Button from '@mui/material/Button'\nimport { isEnv } from 'utils/env'\nimport actions from 'app/state/ducks/actions'\nimport { useDispatch } from 'react-redux'\nimport useUserActions from '../../hooks/useUserActions'\nimport useDialogs from '../../hooks/useDialogs'\nimport { resolveErrorMessage } from '../../../../utils/error-handling'\nimport { isNonEmptyArray } from '@sustainhawaii/object-utils'\n\nconst { alert } = actions.dialog\n\nexport default () => {\n const { alertState } = useDialogs()\n const {\n open,\n title,\n message,\n error,\n buttonLabel = 'OK',\n afterClose,\n signOutAfterClose = false,\n } = alertState || {}\n const { logout } = useUserActions()\n const dispatch = useDispatch()\n const close = () => dispatch(alert.close())\n let dialogContentText = ''\n let ariaDescription = ''\n if (typeof message === 'string' || React.isValidElement(message)) {\n dialogContentText = message\n ariaDescription = message\n } else if (isNonEmptyArray(message)) {\n dialogContentText = (\n <>\n {message.map((txt, i) => (\n \n {txt}\n \n ))}\n \n )\n ariaDescription = message.join(': ')\n }\n const debugMessage = resolveErrorMessage(error)\n const afterCloseFunc = signOutAfterClose\n ? () => {\n if (afterClose) afterClose()\n return logout()\n }\n : afterClose\n return (\n
\n \n {title && {title}}\n \n {dialogContentText && (\n {dialogContentText}\n )}\n {debugMessage && !isEnv('production') && (\n Debug Message: {debugMessage}\n )}\n \n \n {\n await close()\n if (afterCloseFunc) return afterCloseFunc()\n }}\n autoFocus\n >\n {buttonLabel}\n \n \n \n
\n )\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport Dialog from '@mui/material/Dialog'\nimport DialogTitle from '@mui/material/DialogTitle'\nimport DialogActions from '@mui/material/DialogActions'\nimport DialogContent from '@mui/material/DialogContent'\nimport DialogContentText from '@mui/material/DialogContentText'\nimport Button from '@mui/material/Button'\nimport actions from 'app/state/ducks/actions'\nimport autoBindReact from 'auto-bind/react'\nimport { connect } from 'react-redux'\nimport Typography from '@mui/material/Typography'\nimport { isNonEmptyArray } from '@sustainhawaii/object-utils'\n\nclass Confirm extends React.Component {\n\n static propTypes = {\n title: PropTypes.string,\n question: PropTypes.oneOfType([\n PropTypes.string, // Single message string to display in dialog content text.\n PropTypes.arrayOf(PropTypes.string), // Multiple lines of text to display in dialog content text.\n ]),\n yesButtonLabel: PropTypes.string,\n noButtonLabel: PropTypes.string,\n cancelButtonLabel: PropTypes.string,\n forceYes: PropTypes.bool,\n cancelable: PropTypes.bool,\n respond: PropTypes.func.isRequired,\n callback: PropTypes.func, // optional callback for use outside of sagas\n open: PropTypes.bool,\n }\n\n static defaultProps = {\n question: 'Are you sure?',\n yesButtonLabel: 'Yes',\n noButtonLabel: 'No',\n cancelButtonLabel: 'Cancel',\n forceYes: false,\n cancelable: false,\n open: false,\n }\n\n constructor () {\n super()\n autoBindReact(this)\n }\n\n decide (how) {\n const { respond, callback } = this.props\n respond(how)\n callback && callback(how)\n }\n\n render () {\n const { props, decide } = this\n const {\n title,\n question,\n yesButtonLabel,\n noButtonLabel,\n cancelButtonLabel,\n forceYes,\n cancelable,\n open,\n } = props\n let dialogContentText = ''\n let ariaDescription = ''\n if (typeof question === 'string') {\n dialogContentText = question\n ariaDescription = question\n } else if (isNonEmptyArray(question)) {\n dialogContentText = (\n <>\n {question.map((txt, i) => (\n \n {txt}\n \n ))}\n \n )\n ariaDescription = question.join(': ')\n }\n return (\n
\n \n {title && {title}}\n {!_.isEmpty(dialogContentText) && (\n \n {dialogContentText}\n \n )}\n \n {!forceYes && (\n decide(false)}\n >\n {noButtonLabel}\n \n )}\n decide(true)}\n color='primary'\n >\n {yesButtonLabel}\n \n {cancelable && (\n decide()}\n >\n {cancelButtonLabel}\n \n )}\n \n \n
\n )\n }\n}\n\nconst mapStateToProps = state => state.dialog.confirm\n\nconst mapDispatchToProps = dispatch => {\n const { yes, no, cancel } = actions.dialog.confirm\n return {\n respond: respondedYes => {\n let func = cancel\n if(_.isBoolean(respondedYes)) func = respondedYes ? yes : no\n dispatch(func())\n },\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Confirm)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport withStyles from '@mui/styles/withStyles'\nimport Dialog from '@mui/material/Dialog'\nimport DialogContent from '@mui/material/DialogContent'\nimport AppBar from '@mui/material/AppBar'\nimport Toolbar from '@mui/material/Toolbar'\nimport IconButton from '@mui/material/IconButton'\nimport Typography from '@mui/material/Typography'\nimport CloseIcon from '@mui/icons-material/Close'\nimport Slide from '@mui/material/Slide'\nimport actions from 'app/state/ducks/actions'\nimport { connect } from 'react-redux'\nimport { compose } from 'recompose'\n\nconst styler = withStyles(({ spacing }) => ({\n appBar: {\n position: 'relative',\n },\n flex: {\n flex: 1,\n },\n content: {\n padding: spacing(1),\n },\n}))\n\nconst Transition = React.forwardRef((props, ref) => )\n\nclass DetailDialog extends React.Component {\n\n static propTypes = {\n open: PropTypes.bool,\n title: PropTypes.string,\n content: PropTypes.node.isRequired,\n close: PropTypes.func.isRequired,\n fullScreen: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n }\n\n static defaultProps = {\n open: false,\n title: 'Details',\n content: '',\n fullScreen: true,\n }\n\n render () {\n const {\n title,\n content,\n open,\n close,\n classes,\n ...rest\n } = this.props\n return (\n \n \n \n \n \n \n \n {title}\n \n \n \n \n {content}\n \n \n )\n }\n}\n\nconst mapStateToProps = state => state.dialog.details\n\nconst mapDispatchToProps = dispatch => ({\n close: () => dispatch(actions.dialog.details.close()),\n})\n\nconst connector = connect(mapStateToProps, mapDispatchToProps)\n\nexport default compose(connector, styler)(DetailDialog)\n","import useNotifier from 'app/views/hooks/useNotifier'\nimport Loading from 'app/views/components/dialogs/Loading'\nimport Alert from 'app/views/components/dialogs/Alert'\nimport Confirm from 'app/views/components/dialogs/Confirm'\nimport Details from 'app/views/components/dialogs/Details'\nimport React from 'react'\n\nexport default () => {\n\n useNotifier()\n\n return (<>\n \n \n \n
\n )\n\n}","import React, { useEffect, useState } from 'react'\nimport * as Sentry from '@sentry/react'\nimport { LocalizationProvider } from '@mui/x-date-pickers'\nimport { AdapterLuxon } from '@mui/x-date-pickers/AdapterLuxon'\nimport SceneLoadingProgress from 'app/views/components/SceneLoadingProgress'\nimport MainMenu from 'app/views/layouts/Header/MainMenu'\nimport 'font-awesome/css/font-awesome.min.css'\nimport { ThemeLoader } from './views/themes'\nimport useAppInit from 'app/views/hooks/useAppInit'\nimport AppContent from 'app/views/layouts/AppContent'\nimport AppUpdateButton from 'app/views/components/buttons/AppUpdateButton'\nimport { LicenseInfo } from '@mui/x-data-grid-pro'\nimport { env } from 'utils/env'\nimport Notifications from 'app/views/components/Notifications'\nimport { SnackbarProvider } from 'notistack'\nimport { getTheme } from '../utils/theme'\nimport useThemeConfig from 'app/views/hooks/useThemeConfig'\n\nLicenseInfo.setLicenseKey(env('MUI_X_PRO_LICENSE_KEY'))\n\nexport default () => {\n const { themeDirection, mode, fontFamily } = useThemeConfig()\n const { initApp, initializing, initialized, appUpdateBegun } = useAppInit()\n const presetColor = __appTheme || 'theme6'\n const presetAppFontFamily = __appFontFamily || fontFamily\n const theme = getTheme({ themeDirection, mode, presetColor, fontFamily: presetAppFontFamily })\n\n const [themeState, setThemeState] = useState(theme)\n useEffect(() => {\n if(!initialized) {\n initApp()\n } else {\n const themeInit = getTheme({ themeDirection, mode, presetColor, fontFamily: presetAppFontFamily })\n setThemeState(themeInit)\n }\n // return cleanUpInstallPrompts\n }, [initialized])\n return (\n \n \n }\n >\n \n <>\n \n {initializing && (\n \n )}\n {initialized && (\n <>\n {\n appUpdateBegun\n ? \n : (\n <>\n \n \n \n )\n }\n \n )}\n \n \n \n \n \n )\n}","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://cra.link/PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n)\n\nexport function register (config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href)\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config)\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://cra.link/PWA'\n )\n })\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config)\n }\n })\n }\n}\n\nfunction registerValidSW (swUrl, config) {\n navigator.serviceWorker.register(swUrl).then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing\n if (installingWorker == null) {\n return\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://cra.link/PWA.'\n )\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration)\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.')\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration)\n }\n }\n }\n }\n }\n }).catch((error) => {\n console.error('Error during service worker registration:', error)\n })\n}\n\nfunction checkValidServiceWorker (swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n // eslint-disable-next-line no-undef\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n }).then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type')\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload()\n })\n })\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config)\n }\n }).catch(() => {\n console.log('No internet connection found. App is running in offline mode.')\n })\n}\n\nexport function unregister () {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister()\n }).catch((error) => {\n console.error(error.message)\n })\n }\n}\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport { Provider as ReduxProvider } from 'react-redux'\nimport { configureStore, history, sagaMiddleware } from 'app/state/store'\nimport { rootSaga } from 'app/state/ducks/sagas'\nimport App from './app'\nimport { Route } from 'react-router-dom'\nimport { ConnectedRouter } from 'connected-react-router'\nimport { getPwaMode } from 'utils/site-context'\nimport * as serviceWorkerRegistration from './serviceWorkerRegistration'\nimport loadScript from 'load-script'\nimport { browser } from 'utils/browser'\nimport { getThisAppVersion } from './api/general'\nimport { initializeErrorReporting } from './utils/error-handling'\nimport { ConfigProvider } from 'app/views/contexts/ThemeConfigContext'\n\nconst appVersion = getThisAppVersion()\nconsole.info(`${appTitle} PWA version ${appVersion}`)\nconsole.info('Browser:', browser.getBrowser())\nconsole.info('Display Mode:', getPwaMode())\n\nconst launch = async () => {\n const reduxStore = configureStore()\n sagaMiddleware.run(rootSaga)\n initializeErrorReporting()\n ReactDOM.render(\n \n \n \n \n \n \n ,\n document.getElementById('root'),\n )\n loadScript('https://cdn.jsdelivr.net/npm/pwacompat', {\n attrs: {\n crossorigin: 'anonymous',\n },\n })\n\n // If you want your app to work offline and load faster, you can change\n // unregister() to register() below. Note this comes with some pitfalls.\n // Learn more about service workers: https://cra.link/PWA\n serviceWorkerRegistration.unregister()\n\n // If you want to start measuring performance in your app, pass a function\n // to log results (for example: reportWebVitals(console.log))\n // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\n // reportWebVitals()\n}\n\nlaunch()\n\n/*\nTest your React application with the axe-core accessibility testing library.\nResults will show in the Chrome DevTools console.\nif (isEnv('development')) {\n axe(React, ReactDOM, 1000)\n}\n */\nexport { getOrgLocationName } from './utils/org'\n","import React from 'react'\nimport CenteredContentContainer from 'app/views/components/layout/CenteredContentContainer'\nimport CircularProgressStyled from 'app/views/components/progress/CircularProgressStyled'\nimport Typography from '@mui/material/Typography'\nimport _ from 'lodash'\nimport { useTheme } from '@mui/material/styles'\n\nexport default ({\n message,\n themeBg,\n}) => {\n const { spacing, palette, typography } = useTheme()\n const color = themeBg ? palette.primary.dark : _.get(palette, themeBg)\n return (\n \n {\n typeof message === 'string' &&\n message.length && (\n \n {message}\n \n )\n }\n \n \n )\n}\n","import { isValid } from '@sustainhawaii/heal-schemas'\nimport { client, createFormData, multiPartClient } from './client'\nimport getCommonSchemas from 'schemas/commonSchemas'\nimport { mapAwsS3UrlsToFileInputVals } from 'utils/aws'\nimport { getAnniversaryDateISO, getLocalZoneName } from 'utils/temporal'\nimport { getSiteContext } from 'utils/site-context'\nimport { objectWithoutNonInfoValues } from '@sustainhawaii/object-utils'\nimport { getFormCompatibleIntakeFormData } from 'utils/intake-form'\nimport { HEALTH_HISTORY_STATUS } from '../app/config/health-data/constants'\n\n/**\n * Get passes and other stuff needed after login.\n *\n * @return {Promise}\n */\nexport const getUser = async () => {\n const { invitationId } = getSiteContext()\n const response = await client().get(`/user${invitationId ? `?invitationId=${invitationId}` : ''}`)\n return response?.data\n}\n\n/**\n * @param {object} pass\n *\n * @return {Promise}\n */\nexport const upsertPass = async ({ pass }) => {\n // fix: PRS-1501 - use dob without timezone conversion\n if(!_.isEmpty(pass?.vitals?.birthDate)) pass.vitals.birthDate = getAnniversaryDateISO(pass.vitals.birthDate)\n const result = {}\n const fd = await createFormData(objectWithoutNonInfoValues(pass))\n // Post new or updated pass:\n const res = await multiPartClient().post('/passes', fd)\n /*\n Validate saved pass and log errors to console.\n Return submitted values if saved pass invalid (probably because of server error).\n */\n const schema = getCommonSchemas().pass\n const { savedPass, existingPass, latestIntakeForm } = res?.data || {}\n result.existingPass = existingPass\n result.latestIntakeForm = latestIntakeForm\n if(isValid(schema, savedPass)) result.savedPass = await mapAwsS3UrlsToFileInputVals({ obj: savedPass })\n return result\n}\n\n/**\n * Retrieve all visits of userId and their companions.\n *\n * @param {string} userId - account holder id\n * @return {Promise<*>}\n */\nexport const getFamilyVisits = async userId => {\n const response = await client().get(`/user/visits/${userId}`)\n return response?.data\n}\n\nexport const getIntakeForms = async () => {\n const response = await client().get('/user/intake-forms')\n return response?.data || []\n}\n\nexport const getIntakeForm = async formId => {\n const response = await client().get(`/user/intake-form/${formId}`)\n return getFormCompatibleIntakeFormData(response)\n}\n\nexport const getIntakeFormGuardian = async formId => {\n const { data } = await client().get(`/user-guardian/intake-form/${formId}`)\n return data\n}\n\nexport const getLatestIntakeFormOfUser = async userId => {\n const response = await client().get(`/user/latest-intake-form/${userId}`)\n return getFormCompatibleIntakeFormData(response)\n}\n\n/**\n * @param {IntakeForm} intakeForm\n *\n * @return {Promise}\n */\nexport const upsertIntakeForm = async intakeForm => {\n const fd = await createFormData(intakeForm)\n // Post new or updated intake form:\n const res = await multiPartClient().post('/user/intake-form', fd)\n return res?.data || {}\n}\n\nexport const recordScheduledVisit = data => client().post('/user/record-scheduled-visit', data)\n\n/**\n * @param {IntakeForm} intakeForm\n * @return {Promise}\n */\nexport const cosignIntakeForm = async intakeForm => {\n const fd = await createFormData(intakeForm)\n // Cosign intake form:\n const res = await multiPartClient().post('/user-guardian/intake-form', fd)\n return res?.data || {}\n}\n\nexport const submitSymptomSurvey = async survey => {\n const fd = await createFormData(survey)\n // Post new symptom survey:\n return client().post('/user/symptom-survey', fd)\n}\n\nexport const submitSMART = async params => {\n const { data } = await client().post('/user/update-vaccination-access', params)\n return data\n}\n\nexport const generateNewQRSecret = async ({ userId }) => {\n const { data } = await client().post('/user/secret', { userId })\n return data\n}\n\n/**\n * Retrieve all visits of userId and their companions.\n *\n * @param {string} userId - account holder id\n * @return {Promise<*>}\n */\nexport const deleteUserAccount = async ({ userId }) => {\n const { data } = await client().post('/user/deleteAccount', { userId }, {\n timeout: 300000,\n })\n return data || {}\n}\n\n/**\n * Set specific user property of user\n * @param userData\n * @returns {Promise}\n */\nexport const setUserProperty = async (userData) => {\n const { data } = await client().post('/user/set-user-property', { userData }, {\n timeout: 30000,\n })\n return data || {}\n}\n\nexport const getUserStatus = async ({ userId }) => {\n const response = await client().post('/user/get-user-status', { userId, tz: getLocalZoneName() }, { timeout: 300000 })\n let data = response?.data\n if(!data) return\n return data\n}\nexport const calculateDRI = async (userPhysicalAttributes) => {\n const response = await client().post('/user/calculate-dri', { ...userPhysicalAttributes })\n let data = response?.data\n if(!data) return\n return data\n}\nexport const getDRIStatus = async () => {\n const response = await client().get('/user/dri-results')\n let data = response?.data\n if(!data) return\n return data\n}\n\n\nexport const getFoodPreferences = async (preferences) => {\n const response = await client().post('/fcs/food-match-nutrients', preferences , {\n timeout: 300000,\n })\n const data = response?.data\n return data\n}\n\nexport const getFoodFromGtinUpc = async (preferences) => {\n const response = await client().post('/fcs/food-match-nutrients', preferences , {\n timeout: 300000,\n })\n const data = response?.data\n return data\n}\n\nexport const setFoodPreferences = async (preferences) => {\n const response = await client().post('/user/set-food-preferences', { preferences })\n const data = response?.data\n return data\n}\n\n// Health Gorilla backend API calls - Start\n\nexport const isHealthHistoryInit = async () => {\n try {\n const healthHistoryStatus = await client().get(`/health-history/status`)\n return healthHistoryStatus.data\n } catch (err) {\n // Status fetch will fail and return with 404 in case the user data was not found\n return { status: HEALTH_HISTORY_STATUS.uninitialized, err }\n }\n}\nexport const initHealthHistory = async () => {\n try {\n const healthHistoryInit = await client().post('/health-history/initialize', undefined, { timeout: 90000 })\n return healthHistoryInit.data\n } catch (err) {\n return { status: HEALTH_HISTORY_STATUS.fail, err }\n }\n\n}\n\nexport const refreshHealthHistory = async () => {\n const healthHistoryRefresh = await client().post('/health-history/refresh', undefined, { timeout: 120000 })\n return healthHistoryRefresh.data\n}\nexport const getHealthHistory = async ({ healthParam: { value } }) => {\n const healthRecords = await client().get(`/health-history/${value}`)\n return healthRecords.data\n}\n// Health Gorilla backend API calls - End\n\n// Food Compass backend API calls - Start\nexport const searchFood = async ({ search }) => {\n const response = await client().get(`/fcs/get-food-details/?query=${search}&type=all`)\n return response?.data\n}\n\nexport const getDiarySummary = async () => {\n const response = await client().get(`/fcs/get-food-diary-summary`)\n return response?.data\n}\n\nexport const getDiaryDetail = async (date) => {\n const response = await client().post(`/fcs/get-food-diary-entry` , { date })\n return response?.data\n}\n\nexport const saveDiaryDetail = async (diaryEntry) => {\n const response = await client().post(`/fcs/set-food-diary-entry` , { diaryEntry })\n return response?.data\n}\n\n\nexport const getAlternateFoods = async ({ category }) => {\n const response = await client().get(`/fcs/get-alternate-foods/?category=${category}`)\n return response?.data\n}\n\n// Get food based on upcaid\nexport const searchForFoodByUpcaId = async ({ search }) => {\n const response = await client().get(`/fcs/get-food-by-upcaid/?query=${search}`)\n return response?.data\n}\n//store recipes\nexport const setRecipe = async (recipe) => {\n const response = await client().post('/fcs/set-recipe', { recipe })\n const data = response?.data\n return data\n}\n//store recipes\nexport const getRecipes = async (recipe) => {\n const response = await client().get('/fcs/get-recipes')\n const data = response?.data\n return data\n}\n\nexport const searchFoodScore = async ({ fdcId }) => {\n const response = await client().get(`/fcs/get-fcs-score-by-fdcid/?fdcId=${fdcId}`, { timeout: 60000 })\n return response?.data\n}\nexport const searchUpcCodeFoodScore = async ({ gtinUpc }) => {\n const response = await client().get(`/fcs/get-fcs-score-by-gtinUpc/?gtinUpc=${gtinUpc}`, { timeout: 60000 })\n return response?.data\n}\n// Food Compass backend API calls - End\n\n// Diabetes profile API calls - Start\nexport const getDiabetesProfiles = async () => {\n const response = await client().get('/health-profile/diabetesProfile')\n return response.data\n}\n\nexport const getDiabetesFoodGuide = async () => {\n const response = await client().post('/fcs/food-guide' , {disease : 'Diabetes-2'})\n return response.data\n}\n// Diabetes profile API calls - End\n\nexport const getFoodAttributes = async () => {\n const response = await client().get(`/fcs/food-attributes`)\n return response?.data\n}\n\nexport const getFoodConstants = async () => {\n const response = await client().get(`/fcs/food-constants`)\n return response?.data\n}\n\nexport const getFoodCategories = async () => {\n const response = await client().get(`/fcs/food-categories`)\n return response?.data\n}\n\nexport const submitFoodAttributes = async (data) => client().post('/fcs/food-attributes', data)\n\nexport const submitFoodConstants = async (data) => client().post('/fcs/food-constants', data)\n\nexport const submitFoodCategories = async (data) => client().post('/fcs/food-categories', data)","import _ from 'lodash'\nimport { snakeStartCase } from 'utils/string'\n\nexport const personNameDefault = {\n first: '',\n middleInitial: '',\n last: '',\n suffix: '',\n}\n\nexport const emptyPass = {\n name: personNameDefault,\n photoUrl: '',\n phoneNumber: '',\n email: '',\n vitals: {\n gender: '',\n birthDate: new Date(),\n },\n govtIdCardFront: '',\n selfiePhoto: '',\n govtIdExists: true,\n}\n\nexport const getCheckBoxDefsFromTextList = txt => {\n const lines = getLinesFromTextBlock(txt)\n return _.map(lines, label => ({ value: snakeStartCase(label), label }))\n}\n\nexport const arr2keyValPairs = arr => _.chain(arr).keyBy().mapValues().value()\n\nexport const arr2LabelValuePairs = arr => _.map(arr, value => ({ value, label: value }))\n\nexport const obj2LabelValuePairs = obj => _.map(obj, (label, value) => ({ label, value }))\n\nexport const getCheckBoxDefsFromIdsLabels = ({ idLabelPairs, sorted = false }) => _.chain(idLabelPairs)\n .map(({ id, label }) => ({ value: id, label }))\n .thru(val => sorted ? _.sortBy(val, 'label') : val)\n .value()\n\nconst getLinesFromTextBlock = txt => _.split(txt, '\\n')\n\nexport const quoteObjectPaths = (obj, paths) => {\n _.forEach(paths, path => {\n if (_.has(obj, path)) _.set(obj, path, `\"${_.get(obj, path)}\"`)\n })\n}\n","// noinspection HttpUrlsUsage\n\nimport * as Sentry from '@sentry/react'\nimport { env, isEnv } from './env'\nimport { Integrations as TracingIntegrations } from '@sentry/tracing'\nimport { stringRegexTest } from './string'\nimport { getAppMeta, getThisAppVersion } from '../api/general'\nimport { browser } from 'utils/browser'\nimport { ignoreErrorNames, ignoreErrorsInBrowserNames } from '../config/const.json'\nimport _ from 'lodash'\nimport { inMaintenanceMode } from './site-context'\n\nlet sentryCapturingEnabled = true\n\nconst integrations = [\n new TracingIntegrations.BrowserTracing({\n tracingOrigins: [\n env('API_URL'),\n 'maps.googleapis.com',\n 's3-us-west-2.amazonaws.com',\n ],\n }),\n]\n\nconst isAppOutOfDateError = error => error?.name === 'ChunkLoadError' ||\n stringRegexTest(error?.code, /chunk/i) ||\n stringRegexTest(error?.message, /chunk/i)\n\nconst beforeSend = (event, hint) => {\n if (!sentryCapturingEnabled) return\n const error = hint.originalException\n if (isAppOutOfDateError(error) || inMaintenanceMode()) {\n sentryCapturingEnabled = false\n return\n }\n if (ignoreErrorNames.includes(error?.name)) return\n if (ignoreErrorsInBrowserNames.includes(browser.getBrowserName(true))) return\n return event\n}\n\nconst stateTransformer = state => {\n const result = { ...state }\n _.forEach(secretStatePaths, path => _.unset(result, path))\n return result\n}\n\nconst secretStatePaths = [\n 'auth',\n 'user.passes',\n 'lab.patient',\n 'lab.pendingTests',\n 'lab.pendingVaccs',\n 'lab.testDefaults',\n 'lab.testInfo',\n 'lab.testsToCallAbout',\n 'lab.vaccDefaults',\n 'lab.vaccInfo',\n]\n\nconst ignoreErrors = [\n /timeout/,\n 'RangeError: Array size is not a small enough positive integer',\n 'Request failed with status code 401',\n // Random plugins/extensions\n 'top.GLOBALS',\n // See: http://blog.errorception.com/2012/03/tale-of-unfindable-js-error.html\n 'originalCreateNotification',\n 'canvas.contentDocument',\n 'MyApp_RemoveAllHighlights',\n 'http://tt.epicplay.com',\n 'Can\\'t find variable: ZiteReader',\n 'jigsaw is not defined',\n 'ComboSearch is not defined',\n 'http://loading.retry.widdit.com/',\n 'atomicFindClose',\n // Facebook borked\n 'fb_xd_fragment',\n // ISP \"optimizing\" proxy - `Cache-Control: no-transform` seems to\n // reduce this. (thanks @acdha)\n // See http://stackoverflow.com/questions/4113268\n 'bmi_SafeAddOnload',\n 'EBCallBackMessageReceived',\n // See http://toolbar.conduit.com/Developer/HtmlAndGadget/Methods/JSInjection.aspx\n 'conduitPage',\n // Input devices out of our control:\n 'Requested device not found',\n 'play() can only be initiated',\n // App updates:\n 'Cannot read property \\'default\\' of null',\n 'null is not an object (evaluating \\'t.default\\')',\n 'Unexpected token \\'<\\'',\n /Loading.* chunk \\d+ failed/,\n /removeChild/,\n 'Duplicate Phone Number',\n 'Extension context invalidated',\n 'TypeError: null is not an object (evaluating \\'u.play\\')',\n]\n\nconst denyUrls = [\n// Facebook flakiness\n /graph\\.facebook\\.com/i,\n // Facebook blocked\n /connect\\.facebook\\.net\\/en_US\\/all\\.js/i,\n // Woopra flakiness\n /eatdifferent\\.com\\.woopra-ns\\.com/i,\n /static\\.woopra\\.com\\/js\\/woopra\\.js/i,\n // Chrome extensions\n /extensions\\//i,\n /^chrome:\\/\\//i,\n // Other plugins\n /127\\.0\\.0\\.1:4001\\/isrunning/i, // Cacaoweb\n /webappstoolbarba\\.texthelp\\.com\\//i,\n /metrics\\.itunes\\.apple\\.com\\.edgesuite\\.net\\//i,\n]\n\nexport const initializeErrorReporting = () => {\n const appVersion = getThisAppVersion()\n Sentry.init({\n dsn: env('SENTRY_DSN'),\n release: `perseus-pwa@${appVersion}-${env('ENV')}`,\n enabled: !isEnv('development'),\n environment: env('ENV'),\n integrations,\n beforeSend,\n stateTransformer,\n normalizeDepth: 4,\n tracesSampleRate: isEnv('production') && 0.1,\n attachStacktrace: true,\n ignoreErrors,\n denyUrls,\n })\n}\n\n/**\n * Return true if cannot get response from web server and api.\n * @return {Promise}\n */\nexport const isPerseusReachable = async () => {\n try {\n await getAppMeta()\n return true\n } catch (e) {\n return false\n }\n}\n\n/**\n * Given an error e, return string that is most likely the error message.\n *\n * @param {*} e\n * @param {function=} t - i18next\n * @return {string|void}\n */\nexport const resolveErrorMessage = (e, t) => {\n if (!e) return\n if (_.isString(e)) return e\n const unknownErrorT = t ? t('error:unknownError') : 'Unknown Error'\n if (!_.isError(e)) return unknownErrorT\n let message = e.isAxiosError\n ? _.get(e, 'response.data.message') || _.get(e, 'response.data.error')\n : e.message || e.error || e.toString()\n return message || unknownErrorT\n}\n","import axios from 'axios'\nimport _ from 'lodash'\nimport { env } from 'utils/env'\nimport { mapValuesDeepAsync, mapValuesToJSON, objectWithoutUndefinedValues } from '@sustainhawaii/object-utils'\nimport { getReducedFileUploadBlob, isNewFileUpload, isPreviousFileUpload } from 'utils/file'\nimport { addAxiosRetry } from 'utils/http'\n\nlet instance\nlet multiPartInstance\n\nconst CancelToken = axios.CancelToken\nconst source = CancelToken.source()\n\nconst requestInterceptor = async (config) => {\n config.cancelToken = source.token\n return config\n}\n\nexport const client = () => {\n if(instance && instance.baseURL === clientApiURL) return instance\n instance = axios.create({\n baseURL: clientApiURL,\n timeout: 35000,\n headers: {\n 'Content-Type': 'application/json',\n },\n withCredentials: true,\n })\n addAxiosRetry({ instance })\n instance.interceptors.request.use(requestInterceptor)\n return instance\n}\n\nexport const multiPartClient = () => {\n if(multiPartInstance && multiPartInstance.baseURL === clientApiURL) return multiPartInstance\n multiPartInstance = axios.create({\n baseURL: clientApiURL,\n timeout: 30000,\n headers: {\n 'Content-Type': 'multipart/form-data',\n Accept: '*/*',\n },\n withCredentials: true,\n })\n addAxiosRetry({ instance: multiPartInstance })\n multiPartInstance.interceptors.request.use(requestInterceptor)\n return multiPartInstance\n}\n\nexport const createFormData = async formDataObj => {\n if(!_.isObjectLike(formDataObj)) return\n // eslint-disable-next-line no-undef\n const formData = new FormData()\n const definedPairs = objectWithoutUndefinedValues(formDataObj)\n const {\n formDataWithBlobRefs,\n blobs,\n } = await getBlobifiedFormData(definedPairs)\n const combinedPairs = {\n ...mapValuesToJSON(formDataWithBlobRefs),\n ...blobs,\n s3CustomerKey: env('AWS_CUSTOMER_KEY'),\n }\n _.forEach(combinedPairs, (val, key) => formData.append(key, val))\n return formData\n}\n\n/**\n * Recursively find all file input value objects in an object.\n * Create separate object whose keys are dot-notation paths of those values, and values are blobs.\n * Optimize each blob for upload.\n * Delete the keys from the original object.\n * Return the stripped original object and new blobs object in another object.\n * Replace previously-uploaded file input objects with the AWS S3 url.\n *\n * @param {object} formData\n * @return {object}\n */\nconst getBlobifiedFormData = async formData => {\n const blobs = {}\n const iter = async ({ val }) => {\n if(isPreviousFileUpload(val)) return val.url\n if(!isNewFileUpload(val)) return val\n const blob = await getReducedFileUploadBlob(val.file)\n const blobKey = `blob_${_.size(blobs)}`\n blobs[blobKey] = blob\n const { dataUri, ...goodStuff } = val\n return { ...goodStuff, file: blobKey }\n }\n const recursionTest = val => !isNewFileUpload(val) && !isPreviousFileUpload(val)\n const formDataWithBlobRefs = await mapValuesDeepAsync({\n obj: formData,\n iter,\n recursionTest,\n })\n return {\n formDataWithBlobRefs,\n blobs,\n }\n}\n","import i18n from 'i18next'\nimport Backend from 'i18next-http-backend'\nimport LanguageDetector from 'i18next-browser-languagedetector'\nimport { initReactI18next } from 'react-i18next'\nimport _ from 'lodash'\nimport {\n env,\n isEnv,\n} from './env'\nimport { supportedLngs } from 'config/const.json'\n\nconst backend = {\n loadPath: `${env('AWS_PREFIX')}/${env('AWS_BUCKET')}/{{lng}}-{{ns}}.json`,\n allowMultiLoading: true,\n customHeaders: {\n 'x-amz-server-side-encryption-customer-algorithm': 'AES256',\n 'x-amz-server-side-encryption-customer-key': env('AWS_CUSTOMER_KEY_B64'),\n 'x-amz-server-side-encryption-customer-key-MD5': env('AWS_CUSTOMER_KEY_MD5_B64'),\n },\n}\n\nexport const i18init = () => i18n\n // i18next-http-backend\n // loads translations from your server\n // https://github.com/i18next/i18next-http-backend\n .use(Backend)\n // detect user language\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\n .use(LanguageDetector)\n // pass the i18n instance to react-i18next.\n .use(initReactI18next)\n // init i18next\n // for all options read: https://www.i18next.com/overview/configuration-options\n .init({\n debug: isEnv('development'),\n ns: ['common', 'intake', 'glossary', 'scenes', 'error'],\n defaultNS: 'error',\n supportedLngs,\n fallbackLng: 'en',\n interpolation: {\n escapeValue: false, // not needed for react as it escapes by default\n },\n })\n\n/**\n * If v begins with \"t:\" use the rest as a path to a translation resource path with optional name space and return the\n * translation. Otherwise, just return v.\n *\n * @param {string} v\n * @param {function} t - i18n\n * @param {object=} subs - interpolation values\n * @return {string}\n */\nexport const transVal = (v, t, subs) => /^t:/.test(v) ? t(v.replace('t:', ''), subs) : v\n\n/**\n * Return unique array of i18 name-spaces parsed from array of paths like 't:intake:question.how' where 'intake' is the\n * name-space.\n *\n * @param {object|array} collection\n */\nexport const getNameSpaces = collection => _\n .chain(collection)\n .values()\n .filter(_.isString)\n .map(path => (path.replace('t:', '').match(/:?([a-z]+):/) || [])[1])\n .filter()\n .uniq()\n .value()\n\nexport const getVisitTypeInterpolation = visitType => ({ visitType: `$t(glossary:visitTypes.${visitType})` })\n\nexport const getDynamicQuestionTransNameSpace = ({\n orgId,\n divId,\n level,\n name,\n}) => {\n const nameSpaceScope = getNameSpaceScope({ orgId, divId, level })\n return `dq-${nameSpaceScope}-${name.replace('dynamicQuestions.', '').replace('.agreement', '')}`\n}\n\nexport const getAgreementTransNameSpace = ({\n orgId,\n divId,\n level,\n name,\n}) => {\n const nameSpaceScope = getNameSpaceScope({ orgId, divId, level })\n return `agreement-${nameSpaceScope}-${name.replace('agreements.', '')}`\n}\n\nconst getNameSpaceScope = ({ orgId, divId, level }) => `${orgId}${level === 'div' ? `-${divId}` : ''}`\n","import Bowser from 'bowser'\n\nlet Browser, IsTouchEnabled\n\nif(typeof window !== 'undefined') {\n Browser = Bowser.getParser(window.navigator.userAgent)\n\n IsTouchEnabled = () => 'ontouchstart' in window ||\n navigator.maxTouchPoints > 0 ||\n navigator.msMaxTouchPoints > 0\n}\n\nexport const browser = Browser\nexport const isTouchEnabled = IsTouchEnabled","import axios from 'axios'\nimport { nanoid } from 'nanoid'\nimport semComp from 'semver-compare'\nimport store from 'utils/local-storage'\nimport { env } from 'utils/env'\nimport { isNonEmptyString } from '@sustainhawaii/heal-common/lib/util/string'\n\nexport const getAppMeta = () => axios.get(`/meta.json?${nanoid()}`)\n\nexport const checkForAppUpdate = async () => {\n try {\n const meta = await getAppMeta()\n const thisVersion = getThisAppVersion()\n const latestVersion = meta?.data?.version\n const updateAvailable = semComp(latestVersion, thisVersion) === 1\n if (!updateAvailable) return false\n store.set('APP_VERSION', latestVersion)\n return true\n } catch (e) {\n // means unknown\n }\n}\n\n/**\n * Return version of the currently-loaded web app and store in local storage.\n */\nexport const getThisAppVersion = () => {\n let result\n const envVer = env('VERSION')\n const storeVer = store.get('APP_VERSION')\n if (isNonEmptyString(envVer) && isNonEmptyString(storeVer)) {\n const verComp = semComp(storeVer, envVer)\n result = verComp === -1 ? envVer : storeVer\n } else {\n result = storeVer || envVer\n }\n store.set('APP_VERSION', result)\n return result\n}\n\n","import { useTranslation } from 'react-i18next'\nimport _ from 'lodash'\nimport { supportedLngs } from 'config/const.json'\n\n/**\n * Convert array of i18 resource paths to array objects like:\n * { value: , label: }\n *\n * A dictionary is any object or nested object within an i18 resource json.\n *\n *\n * @param {string} nameSpace\n * @param {string} path - dot-notation path to dictionary\n * @param {string=|string[]=} keys - array of, or comma-separated string of, dictionary keys to translate; if missing, use all keys\n * @param {function=} formatter - function to format the translated string\n * @param {object=} subs - interpolation values\n * @param {boolean=} asValuesLabels - return array of objects with value/label keys\n * @param {boolean=} sort\n *\n * @return {object|object[]}\n */\nexport default ({\n nameSpace,\n path = '',\n keys,\n formatter = v => v,\n subs,\n asValuesLabels = false,\n sort = false,\n}) => {\n const { t, i18n } = useTranslation(nameSpace)\n const currentLng = supportedLngs.includes(i18n.language) ? i18n.language : 'en'\n const bundle = i18n.getResourceBundle(currentLng, nameSpace)\n const keysArray = getKeysArray({\n bundle,\n path,\n keys,\n })\n let result\n if(asValuesLabels) {\n result = _.map(keysArray, key => ({\n value: key,\n label: formatter(t(getFullPath({ nameSpace, path, key }), subs)),\n }))\n if(sort) result = _.sortBy(result, 'label')\n return result\n }\n result = _.chain(keysArray)\n .invert()\n .mapValues((val, key) => formatter(t(getFullPath({ nameSpace, path, key }), subs)))\n .value()\n if(sort) return _.fromPairs(_.sortBy(_.toPairs(result), 1))\n return result\n}\n\nconst getKeysArray = ({\n bundle,\n path,\n keys,\n}) => {\n if(keys) return _.isString(keys) ? keys.split(',') : keys\n const obj = path ? _.get(bundle, path) : bundle\n return _.keys(obj)\n}\n\nconst getFullPath = ({ nameSpace, path = '', key }) => `${nameSpace}:${_.filter([path, key]).join('.')}`\n","const basic = {\n START: undefined,\n SUCCESS: undefined,\n FAILURE: undefined,\n}\n\nexport const fluxStandard = [\n ({ payload }) => payload,\n ({ meta }) => meta,\n]\n\nexport default {\n basic,\n promise: fluxStandard,\n formik: {\n ...basic,\n START: fluxStandard,\n },\n}\n","import { createActions } from 'redux-actions'\nimport phases from '../actionPhases'\n\nexport default createActions({\n USER: {\n LOGIN: phases.formik,\n LOGOUT: phases.formik,\n UPDATE: phases.formik,\n EDIT_PASS: undefined,\n SAVE_PASS: phases.formik,\n GET_QR: phases.formik,\n SET_LINKED_SMART: undefined,\n SET_USER_ETHNICITY: undefined,\n },\n})","import { createActions } from 'redux-actions'\nimport phases from '../actionPhases'\n\nexport default createActions({\n APPINIT: phases.basic,\n BACKGROUND_SYNC: {\n START: undefined,\n STOP: undefined,\n },\n HANDLE_ERROR: undefined,\n BEGIN_APP_UPDATE: undefined,\n THEME: undefined,\n})","import { createActions } from 'redux-actions'\n\nexport default createActions({\n MENU: {\n TOGGLE: undefined,\n ACTIVE_ITEM: undefined,\n DRAWER_OPEN: undefined,\n },\n})","import { createActions } from 'redux-actions'\n\nexport default createActions({\n DIALOG: {\n NOTICE: {\n ADD_NOTIFICATION: undefined,\n REMOVE_NOTIFICATION: undefined,\n ADD: undefined,\n REMOVE: undefined,\n },\n LOADING: {\n OPEN: undefined,\n CLOSE: undefined,\n },\n ALERT: {\n OPEN: undefined,\n CLOSE: undefined,\n },\n CONFIRM: {\n ASK: undefined,\n OPEN: undefined,\n YES: undefined,\n NO: undefined,\n CANCEL: undefined,\n },\n DETAILS: {\n OPEN: undefined,\n CLOSE: undefined,\n },\n },\n})","import { createActions } from 'redux-actions'\nimport phases from '../actionPhases'\n\nexport default createActions({\n LAB: {\n LOAD_PATIENT: phases.formik,\n SAVE_TEST: phases.formik,\n SUBMIT_SELF_TEST: phases.formik,\n LOAD_TEST: phases.formik,\n NEW_TEST: undefined,\n EDIT_TEST: undefined,\n CANCEL_EDIT: undefined,\n SAVE_VACC: phases.formik,\n LOAD_VACC: phases.formik,\n NEW_VACC: undefined,\n EDIT_VACC: undefined,\n CANCEL_EDIT_VACC: undefined,\n LOAD_ACTION_ITEMS: phases.formik,\n SET_CURRENT_VISIT_TYPE: undefined,\n LOAD_INSURANCE_ELIGIBILITY: phases.formik,\n LOAD_INSURANCE_CLAIM_INFO: phases.formik,\n SET_INSURANCE_CLAIM: phases.formik,\n FETCH_INSURER_GROUPS: phases.formik,\n FETCH_INSURERS: phases.formik,\n UPDATE_STEP_STATUS: undefined,\n },\n})","import user from './user/actions'\nimport appinit from './appinit/actions'\nimport menu from './menu/actions'\nimport dialog from './dialog/actions'\nimport lab from './lab/actions'\n\nexport default {\n ...user,\n ...appinit,\n ...menu,\n ...dialog,\n ...lab,\n}\n","import PropTypes from 'prop-types'\nimport { createContext } from 'react'\n\n// project import\nimport config from '../../../config/theme.json'\nimport { createLocalStorageStateHook } from 'use-local-storage-state'\n\n// initial state\nconst initialState = {\n ...config,\n onChangeContainer: () => {},\n onChangeLocalization: () => {},\n onChangeMode: () => {},\n onChangePresetColor: () => {},\n onChangeDirection: () => {},\n onChangeMiniDrawer: () => {},\n onChangeFontFamily: () => {}\n}\n\nconst useContext = createLocalStorageStateHook('perseus-theme-config', initialState)\n\n// ==============================|| CONFIG CONTEXT & PROVIDER ||============================== //\n\nconst ThemeContext = createContext(initialState)\n\nfunction ConfigProvider({ children }) {\n const [config, setConfig] = useContext()\n\n const onChangeContainer = () => {\n setConfig({\n ...config,\n container: !config.container\n })\n }\n\n const onChangeLocalization = (lang) => {\n setConfig({\n ...config,\n i18n: lang\n })\n }\n\n const onChangeMode = (mode) => {\n setConfig({\n ...config,\n mode\n })\n }\n\n const onChangePresetColor = (theme) => {\n setConfig({\n ...config,\n presetColor: theme\n })\n }\n\n const onChangeDirection = (direction) => {\n setConfig({\n ...config,\n themeDirection: direction\n })\n }\n\n const onChangeMiniDrawer = (miniDrawer) => {\n setConfig({\n ...config,\n miniDrawer\n })\n }\n\n const onChangeFontFamily = (fontFamily) => {\n setConfig({\n ...config,\n fontFamily\n })\n }\n\n return (\n \n {children}\n \n )\n}\n\nConfigProvider.propTypes = {\n children: PropTypes.node\n}\n\nexport { ConfigProvider, ThemeContext }\n","import { visitTypes } from '../config/const.json'\nimport _ from 'lodash'\nimport store from './local-storage'\n\n/**\n @typedef {object} FullName\n @property {string} first\n @property {string} last\n @property {string=} middleInitial\n @property {string=} suffix\n */\n\n/**\n *\n * @param {object} o\n * @param {FullName} o.name\n * @return {string}\n */\nexport const getFullName = o => o?.name\n ? _.chain(o).get('name').values().filter().join(' ').trim().value()\n : ''\nexport const getGenderLabel = gender => _.chain(store.get('constants.GENDERS'))\n .find({ value: gender })\n .get('label')\n .value()\n\nexport const stringRegexTest = (str, rgx) => {\n if(!_.isString(str)) return false\n return rgx.test(str)\n}\n\nexport const getVisitTypeName = visitType => visitTypes[visitType]\n\nexport const getPassLabel = () => store.get('constants.PASS_LABEL') || 'Health ID'\n\nexport const commaListWithAnd = ({\n list,\n quoted = false,\n}) => {\n const formatted = quoted ? _.map(list, item => `\"${item}\"`) : [...list]\n const last = formatted.pop()\n return _.chain([formatted.join(', '), last]).filter().join(' and ').value()\n}\n\n/**\n * Convert string to snake case, then start case, then replace spaces with \"_\"\n *\n * @example \"The fazy fox Jumped\" > \"The_Fazy_Fox_Jumped\"\n * @param str\n */\nexport const snakeStartCase = str => _.chain(str).snakeCase().startCase().replace(/\\s/g, '_').value()\n\n/**\n * Return true if value is truthy, except if value is string 'false'\n * @param {*=} v\n * @return {boolean}\n */\nexport const isTruthy = v => v === 'false' ? false : !!v\n","import axios from 'axios'\nimport { env } from 'utils/env'\nimport { downloadFile, getMimeTypeFromFileName, hasImageFileExt, previewFile, previewUrl } from 'utils/file'\nimport store from 'utils/local-storage'\nimport _ from 'lodash'\nimport { mapStringValsToBooleans, mapValuesDeep, mapValuesDeepAsync } from '@sustainhawaii/object-utils'\nimport async from 'async'\nimport { client as apiClient } from 'api/client'\nimport { getImageDataUri } from 'utils/image'\nimport { addAxiosRetry } from './http'\n\nlet axiosInstance\nlet downloadInstance\nconst client = () => {\n if(axiosInstance) return axiosInstance\n axiosInstance = axios.create({\n timeout: 30000,\n headers: {\n 'Cache-Control': 'no-cache',\n Pragma: 'no-cache',\n Expires: '0',\n },\n })\n addAxiosRetry({ instance: axiosInstance })\n return axiosInstance\n}\n\nconst downloadClient = () => {\n if(downloadInstance) return downloadInstance\n downloadInstance = axios.create({\n timeout: 30000000,\n headers: {\n 'Cache-Control': 'no-cache',\n Pragma: 'no-cache',\n Expires: '0',\n },\n })\n addAxiosRetry({ instance: downloadInstance })\n return downloadInstance\n}\n\n/**\n * Recursively map any values that are AWS image URLs to base 64 image data URIs.\n *\n * @param {object} obj\n * @param {boolean} metaOnly - if false, entire file is downloaded and dataUri is set\n * @return {object}\n */\nexport const mapAwsS3UrlsToFileInputVals = ({\n obj,\n metaOnly = false,\n}) => mapValuesDeepAsync({\n obj,\n iter: async ({ val }) => {\n if(!isAwsBucketUrl(val)) return val\n const {\n blob,\n metaData,\n } = await getBlobAndMeta({\n val,\n metaOnly,\n })\n const {\n name,\n type,\n inline,\n ...otherMetaData\n } = getAwsS3MetaDataDeStringified(metaData)\n const mimeType = type || getMimeTypeFromFileName(val)\n const result = {\n isUploadedFile: true,\n fileName: name,\n mimeType,\n inline,\n url: val,\n ...otherMetaData,\n }\n // eslint-disable-next-line no-undef\n if(!metaOnly && inline) {\n result.dataUri = getImageDataUri({ data: blob, mimeType })\n }\n return result\n },\n})\n\nconst getBlobAndMeta = ({\n val,\n metaOnly,\n}) => async.parallel({\n blob: cb => metaOnly\n ? Promise.resolve().then(() => cb(null, null))\n : getFileFromAwsS3({ url: val }).then(result => cb(null, result?.data)),\n metaData: cb => apiClient().post('/files/get-meta', {\n url: val,\n s3CustomerKey: env('AWS_CUSTOMER_KEY'),\n }).then(result => cb(null, result?.data)),\n})\n\nexport const removeIntakeFormExportEntry = ({\n id,\n}) => {\n apiClient().post('/files/delete-intake-form-export-zip', {\n url,\n })\n}\n\n/**\n * Convert strings to booleans and numbers:\n *\n * @param metaData\n */\nconst getAwsS3MetaDataDeStringified = metaData => {\n const boolified = mapStringValsToBooleans(metaData)\n return mapValuesDeep({\n obj: boolified,\n iter: ({ val }) => {\n if(_.isBoolean(val)) return val\n const num = _.toNumber(val)\n return _.isFinite(num) ? num : val\n },\n })\n}\n\nexport const getFileFromAwsS3 = async ({\n url,\n responseType,\n bigData,\n}) => {\n let getClient = client()\n if(bigData) getClient = downloadClient()\n const res = await getClient.get(url, {\n headers: {\n 'x-amz-server-side-encryption-customer-algorithm': 'AES256',\n 'x-amz-server-side-encryption-customer-key': env('AWS_CUSTOMER_KEY_B64'),\n 'x-amz-server-side-encryption-customer-key-MD5': env('AWS_CUSTOMER_KEY_MD5_B64'),\n },\n responseType,\n })\n return res\n}\n\nexport const getBase64ImageFromAWS = async ({\n url,\n mimeType = 'image/jpeg',\n metaOnly = false,\n}) => {\n try {\n const { data } = await getFileFromAwsS3({\n url,\n metaOnly,\n })\n return getImageDataUri({ data, mimeType })\n } catch (e) {\n return ''\n }\n}\n\nexport const downloadFileFromAwsS3 = async ({\n url,\n fileName,\n mimeType,\n encoding,\n open = false,\n}) => {\n if(encoding === 'base64') {\n const dataUri = await getBase64ImageFromAWS({ url, mimeType })\n if(open) return previewUrl(dataUri)\n const { triggerBase64Download } = require('react-base64-downloader')\n triggerBase64Download(dataUri, fileName)\n } else {\n const response = await getFileFromAwsS3({\n url,\n responseType: 'blob',\n })\n if(open) {\n return previewFile({\n data: response.data,\n fileName,\n mimeType,\n })\n }\n return downloadFile({\n data: response.data,\n fileName,\n open,\n })\n }\n}\n\nexport const getAwsBucket = () => store.get('constants.imageBucketAWS')\n\nexport const isAwsBucketUrl = val => _.isString(val) && val.indexOf(getAwsBucket()) > 0\n\nexport const isAwsImageUrl = val => isAwsBucketUrl(val) && hasImageFileExt(val)\n","import { eventChannel } from 'redux-saga'\nimport { standardFluxThunk } from 'utils/redux'\nimport { useDispatch } from 'react-redux'\nimport log from 'utils/logger'\n\nexport const getIntervalChannel = seconds => {\n try {\n return eventChannel(emitter => {\n let n = 0\n const iv = setInterval(() => {\n emitter({ pollCount: ++n })\n }, seconds * 1000)\n return () => {\n clearInterval(iv)\n }\n })\n } catch (e) {\n log.error('getIntervalChannel error:', e)\n }\n}\n\nexport const getSagaCall = actions => {\n const dispatch = useDispatch()\n return standardFluxThunk(dispatch, actions.start, {\n waiting: actions,\n })\n}\n","import { WAIT_FOR_ACTION, ERROR_ACTION } from 'redux-wait-for-action'\n\n/**\n * Construct and dispatch a redux action.\n * Return the result of the dispatch call.\n *\n * @param {function} dispatch\n * @param {function} actionCreator\n * @param {object=} options\n * @param {object=} options.waiting - configuration for returning a Promise to dispatch actions on resolve or reject\n * @param {object=} options.waiting.success - redux action for Promise to wait for and resolve with\n * @param {object=} options.waiting.failure - redux action for Promise to reject with\n * @return {object|Promise}\n */\nexport const standardFluxThunk = (\n dispatch,\n actionCreator,\n options = {}\n) => (\n values,\n formikBag\n) => {\n const action = actionCreator({\n payload: values,\n meta: formikBag,\n })\n const {\n waiting,\n } = options\n if (waiting) {\n action[WAIT_FOR_ACTION] = waiting.success\n action[ERROR_ACTION] = waiting.failure\n }\n return dispatch(action)\n}\n","import { createSelector } from 'reselect'\nimport { getCanUseAdmin, getRole, getUserPermissions } from 'app/state/ducks/user/selectors'\nimport _ from 'lodash'\nimport { isNonEmptyArray } from '@sustainhawaii/object-utils'\nimport { getDivisionProperty, getOrgDivisionProperty } from 'utils/org'\nimport { getPassLabel } from 'utils/string'\nimport VaccinesOutlinedIcon from '@mui/icons-material/VaccinesOutlined'\nimport CookieOutlinedIcon from '@mui/icons-material/CookieOutlined'\nimport SecurityOutlinedIcon from '@mui/icons-material/SecurityOutlined'\nimport CorporateFareOutlinedIcon from '@mui/icons-material/CorporateFareOutlined'\nimport DesignServicesOutlinedIcon from '@mui/icons-material/DesignServicesOutlined'\nimport WarehouseOutlinedIcon from '@mui/icons-material/WarehouseOutlined'\nimport MedicalInformationOutlinedIcon from '@mui/icons-material/MedicalInformationOutlined'\nimport ContactEmergencyOutlinedIcon from '@mui/icons-material/ContactEmergencyOutlined'\nimport CoronavirusOutlinedIcon from '@mui/icons-material/CoronavirusOutlined'\nimport MonitorHeartOutlinedIcon from '@mui/icons-material/MonitorHeartOutlined'\nimport BallotOutlinedIcon from '@mui/icons-material/BallotOutlined'\nimport FactCheckOutlinedIcon from '@mui/icons-material/FactCheckOutlined'\nimport MapsHomeWorkOutlinedIcon from '@mui/icons-material/MapsHomeWorkOutlined'\nimport ManageAccountsOutlinedIcon from '@mui/icons-material/ManageAccountsOutlined'\nimport CalculateOutlinedIcon from '@mui/icons-material/CalculateOutlined'\nimport ExploreOutlinedIcon from '@mui/icons-material/ExploreOutlined'\nimport FastfoodOutlinedIcon from '@mui/icons-material/FastfoodOutlined'\nimport DinnerDiningOutlinedIcon from '@mui/icons-material/DinnerDiningOutlined'\nimport LocalHospitalIcon from '@mui/icons-material/LocalHospital'\nimport HistoryOutlinedIcon from '@mui/icons-material/HistoryOutlined'\nimport MedicationLiquidOutlinedIcon from '@mui/icons-material/MedicationLiquidOutlined'\nimport {\n AreaChartOutlined,\n ContainerOutlined,\n CopyOutlined,\n DashboardOutlined,\n DiffOutlined,\n DownloadOutlined,\n EditOutlined,\n EnvironmentOutlined,\n ExperimentOutlined,\n FileAddOutlined,\n FileDoneOutlined,\n FormatPainterOutlined,\n FormOutlined,\n HeartOutlined,\n HighlightOutlined,\n IdcardOutlined,\n LayoutOutlined,\n MedicineBoxOutlined,\n MoneyCollectOutlined,\n NodeIndexOutlined,\n OneToOneOutlined,\n PhoneOutlined,\n ReconciliationOutlined,\n SafetyCertificateOutlined,\n SafetyOutlined,\n ScheduleOutlined,\n SnippetsOutlined,\n TeamOutlined,\n UnorderedListOutlined,\n UserAddOutlined,\n UserSwitchOutlined,\n} from '@ant-design/icons'\nimport { systemRoles } from 'app/components/Drawer/DrawerContent/Navigation/feature-config'\n\nconst icons = {\n DashboardOutlined,\n SafetyCertificateOutlined,\n SafetyOutlined,\n DownloadOutlined,\n LayoutOutlined,\n IdcardOutlined,\n PhoneOutlined,\n MedicineBoxOutlined,\n FormOutlined,\n FormatPainterOutlined,\n UnorderedListOutlined,\n SnippetsOutlined,\n CopyOutlined,\n EditOutlined,\n DiffOutlined,\n HighlightOutlined,\n EnvironmentOutlined,\n FileAddOutlined,\n FileDoneOutlined,\n ContainerOutlined,\n UserAddOutlined,\n OneToOneOutlined,\n TeamOutlined,\n ScheduleOutlined,\n ReconciliationOutlined,\n UserSwitchOutlined,\n ExperimentOutlined,\n VaccinesOutlinedIcon,\n CookieOutlinedIcon,\n SecurityOutlinedIcon,\n CorporateFareOutlinedIcon,\n DesignServicesOutlinedIcon,\n WarehouseOutlinedIcon,\n MedicalInformationOutlinedIcon,\n ContactEmergencyOutlinedIcon,\n CoronavirusOutlinedIcon,\n BallotOutlinedIcon,\n FactCheckOutlinedIcon,\n MapsHomeWorkOutlinedIcon,\n ManageAccountsOutlinedIcon,\n MoneyCollectOutlined,\n MonitorHeartOutlinedIcon,\n AreaChartOutlined,\n NodeIndexOutlined,\n CalculateOutlinedIcon,\n ExploreOutlinedIcon,\n FastfoodOutlinedIcon,\n HeartOutlined,\n DinnerDiningOutlinedIcon,\n LocalHospitalIcon,\n HistoryOutlinedIcon,\n MedicationLiquidOutlinedIcon,\n}\n\nconst getAllMainItems = ({\n canUseAdmin,\n role,\n}) => {\n const intakeFormEnabled = getDivisionProperty({ key: 'intakeFormEnabled' })\n const symptomSurveyEnabled = getOrgDivisionProperty({ key: 'symptomSurveyEnabled' })\n const patientCallItem = {\n name: 'Patients to Call',\n path: 'lab/calls',\n enabled: true,\n icon: icons.PhoneOutlined,\n }\n const printTestLabels = {\n name: 'Print Test Labels',\n path: 'lab/printing-test',\n enabled: true,\n icon: icons.OneToOneOutlined,\n }\n const medStaffItems = [\n {\n name: 'Pending Tests',\n path: 'lab/pending-tests',\n enabled: true,\n icon: icons.VaccinesOutlinedIcon,\n },\n {\n name: 'Pending Vaccinations',\n path: 'lab/pending-vaccs',\n enabled: false,\n icon: icons.ReconciliationOutlined,\n },\n patientCallItem,\n {\n name: 'Add New Patient',\n path: 'lab/create-patient',\n enabled: true,\n icon: icons.UserAddOutlined,\n },\n ]\n const reportingItems = []\n if(canUseAdmin) {\n let path = 'admin/tests-list'\n if(role === 'Sales Manager') {\n reportingItems.push({\n name: 'Leads Management',\n path: 'admin/leads-management',\n pathPattern: /\\badmin\\b/,\n enabled: true,\n })\n reportingItems.push({\n name: 'Sales Setup',\n path: 'admin/sales-setup',\n pathPattern: /\\badmin\\b/,\n enabled: true,\n })\n } else if(role === 'Prospect AO') {\n reportingItems.push({\n name: 'Administration',\n path: 'admin/org-setup',\n pathPattern: /\\badmin\\b/,\n enabled: true,\n })\n } else {\n reportingItems.push({\n name: 'Administration',\n path,\n pathPattern: /\\badmin\\b/,\n enabled: true,\n })\n }\n\n }\n return {\n everyone: [\n {\n name: 'My Dashboard',\n path: 'personal/dashboard',\n enabled: true,\n icon: icons.DashboardOutlined,\n\n },\n {\n name: `My ${getPassLabel()}s`,\n path: 'personal/passes',\n enabled: true,\n icon: icons.MedicalInformationOutlinedIcon,\n\n },\n {\n name: 'My Intake Forms',\n path: 'personal/intake-forms',\n pathPattern: /intake-forms?/,\n enabled: !!intakeFormEnabled,\n icon: icons.ContactEmergencyOutlinedIcon,\n\n },\n {\n name: 'COVID-19 Status',\n path: 'personal/my-status',\n pathPattern: /(personal\\/my-status|myact\\/div)/,\n enabled: true,\n icon: icons.CoronavirusOutlinedIcon,\n\n }, {\n name: 'My Health',\n path: 'personal/my-health',\n enabled: true,\n icon: icons.MonitorHeartOutlinedIcon,\n },\n {\n name: 'DRI',\n path: 'personal/dri',\n enabled: true,\n icon: icons.CalculateOutlinedIcon,\n },\n {\n name: 'Food Compass',\n path: 'personal/food-compass',\n enabled: true,\n icon: icons.ExploreOutlinedIcon,\n },\n {\n name: 'Diabetes',\n path: 'personal/diabetes',\n enabled: true,\n icon: icons.MedicationLiquidOutlinedIcon,\n },\n {\n name: 'Food Preferences',\n path: 'personal/food-preferences',\n enabled: true,\n icon: icons.DinnerDiningOutlinedIcon,\n },\n {\n name: 'Scan Upca',\n path: 'personal/scan-upca',\n enabled: true,\n icon: icons.FastfoodOutlinedIcon,\n },\n {\n name: 'Food Diary',\n path: 'personal/food-diary',\n enabled: true,\n icon: icons.HistoryOutlinedIcon,\n },\n /* \n {\n name: 'Medical Chat',\n path: 'personal/medical-chat',\n enabled: true,\n icon: icons.LocalHospitalIcon,\n },*/\n {\n name: 'Report Symptoms',\n path: 'personal/symptoms',\n enabled: symptomSurveyEnabled,\n icon: icons.PhoneOutlined,\n\n },\n ],\n byRole: [\n {\n roles: ['Lab Tech', 'HCP', 'Account Owner', 'Admin'],\n items: [printTestLabels],\n },\n {\n roles: ['HCP', 'Account Owner', 'Admin'],\n items: [\n ...medStaffItems,\n ...reportingItems,\n ],\n },\n {\n roles: ['Sales Manager'],\n items: [...reportingItems],\n },\n {\n roles: ['Prospect AO'],\n items: [...reportingItems],\n },\n {\n roles: ['Analyst X'],\n items: [patientCallItem],\n },\n {\n roles: ['Analyst R', 'Analyst X'],\n items: reportingItems,\n },\n ],\n byFeature: [\n {\n feature: 'Administration of Organization',\n items: [printTestLabels, patientCallItem, ...medStaffItems],\n },\n {\n feature: 'CRM',\n items: [],\n },\n {\n feature: 'Gatekeeper',\n items: [],\n },\n {\n feature: 'Inventory',\n items: [],\n },\n {\n feature: 'Lab Functions',\n items: [printTestLabels, patientCallItem, ...medStaffItems,\n ],\n },\n {\n feature: 'Org Management',\n items: [],\n },\n {\n feature: 'Reporting',\n items: reportingItems,\n },\n {\n feature: 'FC Admin',\n items: [\n {\n name: 'FCS Mgmt',\n path: 'fcs-management',\n enabled: true,\n icon: icons.ManageAccountsOutlinedIcon,\n },\n ],\n },\n {\n feature: 'PCRM Admin',\n items: [\n {\n name: 'Health Profile',\n path: 'health-profile-management',\n enabled: true,\n icon: icons.HeartOutlined,\n },\n ],\n },\n ],\n bottom: [\n {\n name: 'Privacy Policy',\n path: 'privacy-policy',\n enabled: true,\n icon: icons.SecurityOutlinedIcon,\n\n },\n {\n name: 'Cookie Policy',\n path: 'cookie-policy',\n enabled: true,\n icon: icons.CookieOutlinedIcon,\n\n },\n {\n name: 'Supported Browsers',\n path: 'supported-browsers',\n enabled: true,\n icon: icons.LayoutOutlined,\n\n },\n ],\n }\n}\n\nconst getAllAdminItems = () => {\n return ({\n byRole: [\n {\n roles: ['HCP', 'Account Owner', 'Admin', 'Analyst X', 'Analyst R'],\n items: [\n {\n name: 'Analytics',\n path: 'reporting',\n enabled: true,\n icon: icons.AreaChartOutlined,\n\n },\n {\n name: 'Test List',\n path: 'tests-list',\n enabled: true,\n icon: icons.BallotOutlinedIcon,\n\n },\n {\n name: 'Vacc List',\n path: 'vacc-list',\n enabled: true,\n icon: icons.FactCheckOutlinedIcon,\n\n },\n {\n name: 'Proc List',\n path: 'proc-list',\n enabled: true,\n icon: icons.FactCheckOutlinedIcon,\n },\n {\n name: 'Vacc Stats',\n path: 'vacc-stats',\n enabled: false,\n icon: icons.ContainerOutlined,\n\n },\n ],\n },\n {\n roles: ['HCP', 'Account Owner', 'Admin'],\n items: [\n {\n name: 'Claims',\n path: 'claim-management',\n enabled: true,\n icon: icons.FileDoneOutlined,\n\n },\n {\n name: 'Vacc Downloads',\n path: 'vaccs-export',\n enabled: false,\n icon: icons.DownloadOutlined,\n\n },\n {\n name: 'Scheduled Visits',\n path: 'scheduled-visits',\n enabled: true,\n icon: icons.ScheduleOutlined,\n\n },\n ],\n },\n {\n roles: ['HCP', 'Account Owner', 'Admin'],\n items: [\n {\n name: 'HCP Scheduler',\n path: 'hcp-scheduler',\n enabled: true,\n icon: icons.ScheduleOutlined,\n\n },\n ],\n },\n {\n roles: ['Account Owner', 'Admin'],\n items: [\n {\n name: 'Patients',\n path: 'patients',\n enabled: true,\n icon: icons.TeamOutlined,\n\n },\n {\n name: 'User Mgmt',\n path: 'user-management',\n enabled: true,\n icon: icons.ManageAccountsOutlinedIcon,\n\n },\n {\n name: 'Workflow Mgmt',\n path: 'workflow-management',\n enabled: true,\n icon: icons.NodeIndexOutlined,\n\n },\n {\n name: 'Health Profile',\n path: 'health-profile-management',\n enabled: true,\n icon: icons.HeartOutlined,\n\n },\n {\n name: 'FCS Mgmt',\n path: 'fcs-management',\n enabled: true,\n icon: icons.NodeIndexOutlined,\n\n },\n ],\n },\n {\n roles: ['Admin'],\n items: [\n {\n name: 'Divisions',\n path: 'division-manager',\n enabled: true,\n icon: icons.MapsHomeWorkOutlinedIcon,\n\n },\n ],\n }, {\n roles: ['Account Owner', 'Admin'],\n items: [\n {\n name: 'Locations',\n path: 'location-manager',\n enabled: true,\n icon: icons.EnvironmentOutlined,\n\n },\n {\n name: 'Inventory Mgmt',\n path: 'inventory-management',\n enabled: true,\n icon: icons.WarehouseOutlinedIcon,\n\n },\n ],\n },\n {\n roles: ['Admin'],\n items: [\n {\n name: 'Lab Accounts',\n path: 'lab-account-manager',\n enabled: true,\n icon: icons.ExperimentOutlined,\n\n },\n ],\n },\n {\n roles: ['Sales Manager', 'Account Owner', 'Admin'],\n items: [\n {\n name: 'Leads',\n path: 'leads-management',\n enabled: true,\n icon: icons.DiffOutlined,\n },\n ],\n },\n {\n roles: ['Sales Manager', 'Admin', 'Account Owner'],\n items: [\n {\n name: 'Sales Setup',\n path: 'sales-setup',\n enabled: true,\n icon: icons.MoneyCollectOutlined,\n },\n ],\n },\n {\n roles: ['Account Owner', 'Admin'],\n items: [\n {\n name: 'Form Designer',\n path: 'form-designer',\n enabled: true,\n icon: icons.DesignServicesOutlinedIcon,\n },\n ],\n },\n {\n roles: ['Prospect AO', 'Admin'],\n items: [\n {\n name: 'Org Setup',\n path: 'org-setup',\n enabled: true,\n icon: icons.CorporateFareOutlinedIcon,\n },\n ],\n },\n ],\n byFeature: [\n {\n feature: 'Administration of Organization',\n items: [\n {\n name: 'Test List',\n path: 'tests-list',\n enabled: true,\n icon: icons.BallotOutlinedIcon,\n },\n {\n name: 'Vacc List',\n path: 'vacc-list',\n enabled: true,\n icon: icons.FactCheckOutlinedIcon,\n },\n {\n name: 'Proc List',\n path: 'proc-list',\n enabled: true,\n icon: icons.FactCheckOutlinedIcon,\n },\n {\n name: 'Vacc Stats',\n path: 'vacc-stats',\n enabled: false,\n icon: icons.ContainerOutlined,\n },\n {\n name: 'Claims',\n path: 'claim-management',\n enabled: true,\n icon: icons.FileDoneOutlined,\n },\n {\n name: 'Vacc Downloads',\n path: 'vaccs-export',\n enabled: false,\n icon: icons.DownloadOutlined,\n },\n {\n name: 'Scheduled Visits',\n path: 'scheduled-visits',\n enabled: true,\n icon: icons.ScheduleOutlined,\n },\n {\n name: 'Patients',\n path: 'patients',\n enabled: true,\n icon: icons.TeamOutlined,\n },\n {\n name: 'User Mgmt',\n path: 'user-management',\n enabled: true,\n icon: icons.ManageAccountsOutlinedIcon,\n },\n {\n name: 'Divisions',\n path: 'division-manager',\n enabled: true,\n icon: icons.MapsHomeWorkOutlinedIcon,\n },\n {\n name: 'Locations',\n path: 'location-manager',\n enabled: true,\n icon: icons.EnvironmentOutlined,\n },\n {\n name: 'Inventory Mgmt',\n path: 'inventory-management',\n enabled: true,\n icon: icons.WarehouseOutlinedIcon,\n },\n {\n name: 'Lab Accounts',\n path: 'lab-account-manager',\n enabled: true,\n icon: icons.ExperimentOutlined,\n },\n {\n name: 'Leads',\n path: 'leads-management',\n enabled: true,\n icon: icons.DiffOutlined,\n },\n {\n name: 'Form Designer',\n path: 'form-designer',\n enabled: true,\n icon: icons.DesignServicesOutlinedIcon,\n },\n {\n name: 'Org Setup',\n path: 'org-setup',\n enabled: true,\n icon: icons.CorporateFareOutlinedIcon,\n },\n {\n name: 'Sales Setup',\n path: 'sales-setup',\n enabled: true,\n icon: icons.MoneyCollectOutlined,\n },\n {\n name: 'Workflow Mgmt',\n path: 'workflow-management',\n enabled: true,\n icon: icons.NodeIndexOutlined,\n },\n {\n name: 'Health Profile',\n path: 'health-profile-management',\n enabled: true,\n icon: icons.HeartOutlined,\n },\n {\n name: 'FCS Mgmt',\n path: 'fcs-management',\n enabled: true,\n icon: icons.ManageAccountsOutlinedIcon,\n },\n ],\n },\n {\n feature: 'FC Admin',\n items: [\n {\n name: 'FCS Mgmt',\n path: 'fcs-management',\n enabled: true,\n icon: icons.ManageAccountsOutlinedIcon,\n },\n ],\n },\n {\n feature: 'PCRM Admin',\n items: [\n {\n name: 'Health Profile',\n path: 'health-profile-management',\n enabled: true,\n icon: icons.HeartOutlined,\n },\n ],\n },\n {\n feature: 'CRM',\n items: [\n {\n name: 'Leads',\n path: 'leads-management',\n enabled: true,\n icon: icons.DiffOutlined,\n },\n {\n name: 'Sales Setup',\n path: 'sales-setup',\n enabled: true,\n icon: icons.MoneyCollectOutlined,\n },\n ],\n },\n {\n feature: 'Gatekeeper',\n items: [\n {\n name: 'Test List',\n path: 'tests-list',\n enabled: true,\n icon: icons.BallotOutlinedIcon,\n },\n ],\n },\n {\n feature: 'Inventory',\n items: [\n {\n name: 'Inventory Mgmt',\n path: 'inventory-management',\n enabled: true,\n icon: icons.WarehouseOutlinedIcon,\n },\n ],\n },\n {\n feature: 'Lab Functions',\n items: [\n {\n name: 'Test List',\n path: 'tests-list',\n enabled: true,\n icon: icons.BallotOutlinedIcon,\n },\n {\n name: 'Vacc List',\n path: 'vacc-list',\n enabled: true,\n icon: icons.FactCheckOutlinedIcon,\n },\n {\n name: 'Proc List',\n path: 'proc-list',\n enabled: true,\n icon: icons.FactCheckOutlinedIcon,\n },\n {\n name: 'Claims',\n path: 'claim-management',\n enabled: true,\n icon: icons.FileDoneOutlined,\n },\n {\n name: 'Scheduled Visits',\n path: 'scheduled-visits',\n enabled: true,\n icon: icons.ScheduleOutlined,\n },\n {\n name: 'Patients',\n path: 'patients',\n enabled: true,\n icon: icons.TeamOutlined,\n },\n ],\n },\n {\n feature: 'Org Management',\n items: [\n {\n name: 'Org Setup',\n path: 'org-setup',\n enabled: true,\n icon: icons.CorporateFareOutlinedIcon,\n },\n ],\n },\n {\n feature: 'Reporting',\n items: [\n {\n name: 'Test List',\n path: 'tests-list',\n enabled: true,\n icon: icons.BallotOutlinedIcon,\n },\n {\n name: 'Vacc List',\n path: 'vacc-list',\n enabled: true,\n icon: icons.FactCheckOutlinedIcon,\n },\n {\n name: 'Vacc Stats',\n path: 'vacc-stats',\n enabled: false,\n icon: icons.ContainerOutlined,\n },\n {\n name: 'Vacc Downloads',\n path: 'vaccs-export',\n enabled: false,\n icon: icons.DownloadOutlined,\n },\n ],\n },\n ],\n })\n}\n\nexport const getMainMenuItems = createSelector(getRole, getCanUseAdmin, getUserPermissions, (role, canUseAdmin, permissions) => buildItemsArray(getAllMainItems({\n canUseAdmin,\n role,\n}), role, permissions))\n\nexport const getAdminMenuItems = createSelector(getRole, getUserPermissions, (role, permissions) => buildItemsArray(getAllAdminItems(), role, permissions))\n\nconst buildItemsArray = (allItems, role, permissions) => {\n const menuItems = []\n addItems(menuItems, allItems.everyone)\n\n if(systemRoles.includes(role)) {\n const roleItems = _.chain(allItems.byRole).filter(({ roles }) => roles.includes(role)).map('items').flatten().value()\n addItems(menuItems, roleItems)\n\n } else {\n const allowedFeatures = _.chain(permissions).map(perm => {\n if(perm.view) {\n return perm.featureName\n }\n }).compact().value()\n const roleItems = _.chain(allItems.byFeature).filter((features) => allowedFeatures.includes(features.feature)).map('items').flatten().uniqBy('name').value()\n addItems(menuItems, roleItems)\n }\n\n addItems(menuItems, allItems.bottom)\n return menuItems\n}\n\nexport const getIsOpen = state => state.menu.isOpen || false\n\nconst addItems = (menuItems, newItems) => {\n if(isNonEmptyArray(newItems)) menuItems.push(..._.castArray(_.filter(newItems, 'enabled')))\n}\n","import { useTranslation } from 'react-i18next'\nimport { getNameSpaces, transVal } from 'utils/internationalization'\n\n/**\n * Translate a string if formatted for translation; otherwise, return unchanged.\n *\n * @param {string} str\n * @param {object=} subs - interpolation values\n * @return {string}\n */\nexport default (str, subs) => {\n const { t } = useTranslation(getNameSpaces([str]))\n return transVal(str, t, subs)\n}\n","import { useTranslation } from 'react-i18next'\nimport _ from 'lodash'\nimport { getNameSpaces, transVal } from 'utils/internationalization'\nimport { obj2LabelValuePairs } from 'utils/form'\n\n/**\n * Convert array of i18 resource paths to array of translated strings.\n * Empty values are converted to empty strings so sparse arrays maintain order.\n *\n * @param {object} obj - each object value is either:\n * a dot-notation path, or array of paths, to translation resources optionally prefixed with \":\"\n * other strings that should not be translated\n * empty (null, undefined, empty strings)\n * @param {function=} formatter - function to format the translated string\n * @param {object=} subs - interpolation values\n * @param {boolean} asValuesLabels - return array of objects with value/label keys\n * @return {object}\n */\nexport default ({\n obj,\n formatter = v => v,\n subs,\n asValuesLabels = false,\n}) => {\n const { t } = useTranslation(getNameSpaces(obj))\n const mapped = _.mapValues(\n obj,\n v => _.isArray(v)\n ? _.map(v, v => formatter(transVal(v, t, subs)))\n : formatter(transVal(v, t, subs)),\n )\n if (asValuesLabels) return obj2LabelValuePairs(mapped)\n return mapped\n}\n","export const getLab = state => state.lab\nexport const getCurrentDivId = state => getLab(state).currentDivId\nexport const getCurrentLocId = state => getLab(state).currentLocId\nexport const getCurrentVisitType = state => getLab(state).currentVisitType\nexport const getReuseIntakeForm = state => getLab(state).reuseIntakeForm\n\n// Patient\nexport const getPatient = state => getLab(state).patient\nexport const getLoadingPatient = state => getLab(state).loadingPatient\nexport const getIntakeForm = state => getLab(state).intakeForm\nexport const getIsEditingTest = state => getLab(state).isEditingTest\nexport const getIsEditingVacc = state => getLab(state).isEditingVacc\nexport const getIsInsuranceClaimExists = state => getLab(state).insuranceClaim\n\n// Visit\nexport const getTestingLoadingMessage = state => {\n if(getLoadingPatient(state)) return 'Retrieving Patient'\n if(getLoadingTest(state)) return 'Retrieving Test'\n if(getLoadingVacc(state)) return 'Retrieving Vacc'\n}\n\n//lastTestDate\n\nexport const getLastTestDate = state => getLab(state).lastTestDate\n\n// Tests\nexport const getTestDefaults = state => getLab(state).testDefaults\nexport const getTestInfo = state => getLab(state).testInfo\nexport const getLoadingTest = state => getLab(state).loadingTest\nexport const getTestsToCallAbout = state => getLab(state).testsToCallAbout || []\nexport const getTotalTestsToCallAbout = state => getTestsToCallAbout(state).length\nexport const getPendingTests = state => getLab(state).pendingTests || []\nexport const getTotalPendingTests = state => getPendingTests(state).length\n\n// Vaccinations\nexport const getVaccDefaults = state => getLab(state).vaccDefaults\nexport const getVaccInfo = state => getLab(state).vaccInfo\nexport const getLoadingVacc = state => getLab(state).loadingVacc\nexport const getPendingVaccs = state => getLab(state).pendingVaccs || []\nexport const getTotalPendingVaccs = state => getPendingVaccs(state).length\n\n// Insurance and claims\nexport const checkInsuranceEligibility = state => getLab(state).insurance\nexport const hasClaimSubmitted = state => getLab(state).hasClaimSubmitted\nexport const getClaimInfo = state => getLab(state).insuranceClaim\nexport const getInsurerGroups = state => getLab(state).insurerGroups\nexport const getInsurers = state => getLab(state).insurers\nexport const getFormStepStatus = state => getLab(state).formStepStatus","import { useSelector } from 'react-redux'\nimport { getRole, getIsMedStaff, getCanViewPHI } from 'app/state/ducks/user/selectors'\nimport _ from 'lodash'\nimport {\n systemFeatures,\n systemRoles,\n} from 'app/components/Drawer/DrawerContent/Navigation/feature-config'\n\nexport default () => {\n const role = useSelector(getRole)\n return {\n role,\n hasAnyRoles: someRoles => _.castArray(someRoles).includes(role),\n isAdmin: role === 'Admin',\n isAccountOwner: role === 'Account Owner',\n isSalesManager: role === 'Sales Manager',\n isProspectAO: role === 'Prospect AO',\n isMedStaff: useSelector(getIsMedStaff),\n canViewPHI: useSelector(getCanViewPHI),\n isSystemFeature: feature => systemFeatures.includes(feature),\n isSystemRole: userRole => systemRoles.includes(userRole),\n }\n}","import actions from 'app/state/ducks/actions'\nimport { useDispatch } from 'react-redux'\nimport { getSagaCall } from 'utils/saga'\n\nconst { login, logout, update, savePass, editPass, orgStatus } = actions.user\n\nexport default () => {\n const dispatch = useDispatch()\n return {\n login: getSagaCall(login),\n logout: getSagaCall(logout),\n updateUser: getSagaCall(update),\n savePass: getSagaCall(savePass),\n editPass: params => dispatch(editPass(params)),\n orgStatus: params => dispatch(orgStatus(params)),\n }\n}","import PropTypes from 'prop-types'\n\n// ==============================|| CUSTOM FUNCTION - COLOR SHADOWS ||============================== //\n\nconst getShadow = (theme, shadow) => {\n switch (shadow) {\n case 'secondary':\n return theme.customShadows.secondary\n case 'error':\n return theme.customShadows.error\n case 'warning':\n return theme.customShadows.warning\n case 'info':\n return theme.customShadows.info\n case 'success':\n return theme.customShadows.success\n case 'primaryButton':\n return theme.customShadows.primaryButton\n case 'secondaryButton':\n return theme.customShadows.secondaryButton\n case 'errorButton':\n return theme.customShadows.errorButton\n case 'warningButton':\n return theme.customShadows.warningButton\n case 'infoButton':\n return theme.customShadows.infoButton\n case 'successButton':\n return theme.customShadows.successButton\n default:\n return theme.customShadows.primary\n }\n}\n\ngetShadow.propTypes = {\n theme: PropTypes.object,\n shadow: PropTypes.string\n}\n\nexport default getShadow\n","export const getAppInit = state => state.appinit\nexport const getAppTheme = state => state.appinit.theme\nexport const getAppFontFamily = state => state.appinit.fontFamily","import { attach } from 'retry-axios'\n\nexport const addAxiosRetry = ({ instance }) => {\n instance.defaults.raxConfig = { instance }\n return attach(instance)\n}\n","import { call, cancel, put, select, takeEvery } from 'redux-saga/effects'\nimport { push } from 'connected-react-router'\nimport actions from 'app/state/ducks/actions'\nimport { getPostLoginPath, getRole, getUserId, isMasterPassComplete } from 'app/state/ducks/selectors'\nimport { getUser, upsertPass } from 'api/user'\nimport * as Sentry from '@sentry/react'\nimport { getAndStoreConstants } from 'utils/site-context'\nimport store from 'utils/local-storage'\nimport { logOut } from '../../../../api/auth'\nimport { getDivision, getOrg } from 'utils/org'\n\nexport function * login () {\n const { login, editPass } = actions.user\n const { alert } = actions.dialog\n try {\n let user = {}\n try {\n user = yield call(getUser)\n // Get larger set of constants accessible to authenticated users if not already loaded:\n if(!getDivision()) yield call(getAndStoreConstants)\n } catch (e) {\n yield put(actions.handleError({ e, loggingIn: true }))\n yield cancel()\n }\n if(user.notice) yield put(notice.add(user.notice))\n const { id: orgId, division } = yield call(getOrg)\n if(!division) {\n yield put(alert.open({\n title: 'Incorrect Sign-In Page',\n message: 'Please use the link or QR code you were provided.',\n signOutAfterClose: true,\n }))\n yield cancel()\n }\n if(!user.isSiteOrgStaff) delete user.role\n yield put(login.success(user))\n yield put(actions.backgroundSync.start())\n Sentry.configureScope(scope => {\n scope.setTag('orgId', orgId)\n scope.setTag('orgDivision', division?.name || 'none')\n scope.setTag('role', user.role)\n scope.setUser(_.pick(user, ['id', 'role', 'divIds', 'locIds']))\n })\n let postLoginPath = yield select(getPostLoginPath)\n // Force them to update master health ID if incomplete:\n const masterPassComplete = yield select(isMasterPassComplete)\n const passUpdateRequired = !masterPassComplete\n if(passUpdateRequired) {\n yield put(editPass(user.id))\n postLoginPath = '/personal/dashboard'\n }\n store.remove('landing')\n yield put(push(postLoginPath))\n } catch (error) {\n yield put(login.failure())\n yield * logout()\n } finally {\n yield put(actions.appinit.success())\n }\n}\n\nexport function * watchLogin () {\n yield takeEvery(actions.user.login.start, login)\n}\n\nexport function * logout () {\n const role = yield select(getRole)\n yield put(actions.backgroundSync.stop())\n store.remove('printingTestLabelId')\n yield call(logOut)\n yield put(push('/'))\n yield put(actions.user.logout.success())\n}\n\nexport function * watchLogout () {\n yield takeEvery(actions.user.logout.start, logout)\n}\n\nexport function * savePass ({ payload: pass, meta: { resetForm } = {} }) {\n const { savePass } = actions.user\n const passId = pass.userId\n const masterUserId = yield select(getUserId)\n const isMasterPass = masterUserId === passId\n const masterPassWasComplete = yield select(isMasterPassComplete)\n const isNewMasterPass = isMasterPass && !masterPassWasComplete\n const isNewCompanionPass = !passId\n const isNewPass = (isNewMasterPass || isNewCompanionPass)\n try {\n const { savedPass } = yield call(upsertPass, { pass })\n yield put(savePass.success(savedPass))\n } catch (e) {\n yield put(savePass.failure())\n yield put(actions.handleError({\n e,\n alertCfg: {\n title: 'Sorry, there was a problem',\n message: `We could not ${isNewPass ? 'create' : 'update'} your Health ID. Please try again.`,\n },\n sentryCfg: {\n tags: {\n section: 'user',\n func: 'upsertPass',\n },\n extra: {\n passId,\n masterUserId,\n },\n },\n }))\n if(resetForm) {\n yield call(resetForm)\n }\n }\n}\n\nexport function * watchSavePass () {\n yield takeEvery(actions.user.savePass.start, savePass)\n}\n","import {\n applyMiddleware,\n combineReducers,\n compose,\n createStore,\n} from 'redux'\nimport { createLogger } from 'redux-logger'\nimport createSagaMiddleware from 'redux-saga'\nimport thunk from 'redux-thunk'\nimport promise from 'redux-promise'\nimport waitForAction from 'redux-wait-for-action'\nimport {\n connectRouter,\n routerMiddleware,\n} from 'connected-react-router'\nimport * as ducksReducers from './ducks/reducers'\nimport notifyReducer from './ducks/dialog/noticeReducers'\nimport * as Sentry from '@sentry/react'\nimport { isEnv } from 'utils/env'\n\nlet reduxStore\n\n// configure reducers:\n\nexport const history = require('history').createBrowserHistory()\n\nconst reducers = combineReducers({\n ...ducksReducers,\n notifications: notifyReducer,\n router: connectRouter(history),\n})\n\n// configure middlewares:\n\nexport const sagaMiddleware = createSagaMiddleware()\n\nconst sentryReduxEnhancer = Sentry.createReduxEnhancer()\n\nconst middlewares = [\n routerMiddleware(history),\n sagaMiddleware,\n thunk,\n promise,\n waitForAction(),\n]\n\nif (!isEnv('production')) {\n // see options at https://www.npmjs.com/package/redux-logger\n const reduxLogger = createLogger({\n predicate: (getState, action) => ![\n '@@router/LOCATION_CHANGE',\n 'LAB/LOAD_ACTION_ITEMS/SUCCESS',\n ].includes(action.type),\n collapsed: true,\n timestamp: false,\n level: 'info',\n })\n middlewares.push(reduxLogger)\n}\n\nconst composeEnhancer = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose\n\n// Activate tracing in Redux DevTools:\n// const composeEnhancer = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({ trace: true }) || compose\n\nexport const configureStore = () => {\n if (reduxStore) return reduxStore\n reduxStore = createStore(\n reducers,\n composeEnhancer(applyMiddleware(...middlewares), sentryReduxEnhancer)\n )\n return reduxStore\n}","import reducer from './reducers'\n\nexport default reducer\n","import { handleActions } from 'redux-actions'\nimport produce from 'immer'\nimport _ from 'lodash'\n\nexport default handleActions({\n APPINIT: {\n START: (state) => ({\n ...state,\n initialized: false,\n initializing: true,\n }),\n SUCCESS: (state, { payload }) => produce(state, draft => {\n draft.initialized = true\n draft.initializing = false\n _.assign(draft, payload)\n }),\n FAILURE: (state) => ({\n ...state,\n initialized: false,\n initializing: false,\n }),\n },\n BEGIN_APP_UPDATE: (state) => ({\n ...state,\n appUpdateBegun: true,\n }),\n THEME: (state, { theme }) => ({\n ...state,\n theme: theme.theme,\n fontFamily: theme.fontFamily,\n }),\n}, {\n initialized: false,\n initializing: false,\n appUpdateBegun: false,\n theme: __appTheme,\n fontFamily: __appFontFamily,\n})","import reducer from './reducers'\n\nexport default reducer\n","import { handleActions } from 'redux-actions'\nimport produce from 'immer'\nimport _ from 'lodash'\n\nexport default handleActions({\n USER: {\n LOGIN: {\n START: state => ({\n ...state,\n loggingIn: true,\n }),\n SUCCESS: (state, { payload: user }) => produce(state, draft => {\n draft.userId = user.id\n draft.role = user.role\n draft.divIds = user.divIds\n draft.locIds = user.locIds\n draft.passes = user.passes || {}\n draft.currentPassId = user.userId\n draft.loggingIn = false\n draft.permissions = user.permissions\n draft.ethnicity = user.ethnicity\n }),\n FAILURE: state => ({\n ...state,\n loggingIn: false,\n }),\n },\n LOGOUT: {\n START: state => ({\n ...state,\n loggingOut: true,\n }),\n SUCCESS: state => ({\n ...state,\n userId: null,\n loggingOut: false,\n role: '',\n divIds: [],\n locIds: [],\n passes: {},\n editingPass: false,\n }),\n },\n UPDATE: {\n SUCCESS: (state, { payload: user }) => ({\n ...state,\n ...user,\n }),\n },\n EDIT_PASS: (state, { payload: newOrPassId }) => produce(state, draft => {\n if(newOrPassId) {\n draft.currentPassId = newOrPassId\n draft.editingPass = true\n } else {\n draft.editingPass = false\n }\n }),\n SAVE_PASS: {\n SUCCESS: (state, { payload: pass }) => produce(state, draft => {\n draft.editingPass = false\n const userId = pass?.userId\n if(!userId) return\n if(_.isPlainObject(draft.passes)) {\n draft.passes[userId] = pass\n } else {\n draft.passes = {\n [userId]: pass,\n }\n }\n draft.currentPassId = userId\n }),\n },\n GET_QR: {\n SUCCESS: (state, { payload: { userId, qrSecret } }) => produce(state, draft => {\n _.set(draft, `passes.${userId}.qrSecret`, qrSecret)\n }),\n },\n SET_LINKED_SMART: (state, { payload: { userId, linkedSMART, dataSourceType } }) => produce(state, draft => {\n draft.passes[userId].linkedSMART = linkedSMART\n if(linkedSMART) draft.passes[userId].dataSourceType = dataSourceType\n else delete draft.passes[userId].dataSourceType\n }),\n SET_USER_ETHNICITY: (state, { payload: { ethnicity } }) => produce(state, draft => {\n draft.ethnicity = ethnicity\n }),\n },\n}, {\n loggingIn: false,\n loggingOut: false,\n userId: null,\n role: '',\n divIds: [],\n locIds: [],\n passes: {},\n editingPass: false,\n})","import reducer from './reducers'\nexport default reducer\n","import { handleActions } from 'redux-actions'\n\nexport default handleActions({\n MENU: {\n TOGGLE: (state, action) => ({\n activeItem: state.activeItem,\n isOpen: !state.isOpen,\n menuItemName: action.payload?.menuItemName ? action.payload?.menuItemName : state.menuItemName,\n }),\n ACTIVE_ITEM: (state, action) => ({\n ...state,\n activeItem: action?.activeItem,\n }),\n DRAWER_OPEN: (state, action) => ({\n ...state,\n drawerOpen: action?.drawerOpen,\n }),\n },\n\n}, {\n isOpen: false,\n menuItemName: 'MENU',\n activeItem: [],\n drawerOpen: false,\n})","import { handleActions } from 'redux-actions'\n\nconst confirmationChoiceReducer = state => ({\n ...state,\n confirm: {\n open: false,\n },\n})\n\nexport default handleActions({\n DIALOG: {\n LOADING: {\n OPEN: (state, action) => ({\n ...state,\n loading: {\n ...action.payload,\n open: true,\n },\n }),\n CLOSE: state => ({\n ...state,\n loading: {\n open: false,\n progress: null,\n },\n }),\n },\n ALERT: {\n OPEN: (state, action) => ({\n ...state,\n alert: {\n ...action.payload,\n open: true,\n },\n }),\n CLOSE: state => ({\n ...state,\n alert: {\n open: false,\n },\n }),\n },\n CONFIRM: {\n OPEN: (state, action) => ({\n ...state,\n confirm: {\n ...action.payload,\n open: true,\n },\n }),\n YES: confirmationChoiceReducer,\n NO: confirmationChoiceReducer,\n CANCEL: confirmationChoiceReducer,\n },\n DETAILS: {\n OPEN: (state, action) => ({\n ...state,\n details: {\n ...action.payload,\n open: true,\n },\n }),\n CLOSE: state => ({\n ...state,\n details: {\n open: false,\n },\n }),\n },\n },\n},\n{\n loading: {\n open: false,\n progress: null,\n },\n alert: {\n open: false,\n },\n confirm: {\n open: false,\n },\n details: {\n open: false,\n },\n})\n","import reducer from './reducers'\nexport default reducer\n","import reducer from './reducers'\n\nexport default reducer\n","import { handleActions } from 'redux-actions'\nimport produce from 'immer'\nimport _ from 'lodash'\n\nexport default handleActions({\n LAB: {\n SET_CURRENT_VISIT_TYPE: (state, { payload: visitType }) => produce(state, draft => {\n draft.currentVisitType = visitType\n }),\n LOAD_PATIENT: {\n START: state => ({\n ...state,\n loadingPatient: true,\n patient: null,\n intakeForm: null,\n reuseIntakeForm: false,\n testInfo: null,\n lastTestDate: null,\n vaccInfo: null,\n }),\n SUCCESS: (state, {\n payload: {\n patient,\n lastTestDate = null,\n intakeForm = null,\n pendingTestInfo = null,\n pendingVaccInfo = null,\n },\n }) => ({\n ...state,\n loadingPatient: false,\n patient,\n lastTestDate: lastTestDate,\n intakeForm,\n testInfo: pendingTestInfo,\n vaccInfo: pendingVaccInfo,\n }),\n FAILURE: state => ({\n ...state,\n loadingPatient: false,\n patient: null,\n lastTestDate: null,\n intakeForm: null,\n testInfo: null,\n vaccInfo: null,\n }),\n },\n SAVE_TEST: {\n SUCCESS: (state, { payload }) => produce(state, draft => {\n const { isNew, division, insuranceClaim, ...testInfo } = payload\n draft.testInfo = testInfo\n draft.reuseIntakeForm = false\n if(isNew) {\n draft.insuranceClaim = null\n draft.testDefaults = {\n division,\n location: testInfo.location.id,\n phase: testInfo.test?.phase,\n type: testInfo.test?.type,\n labAccountId: testInfo.test?.labAccountId,\n specimenSource: testInfo.test?.specimenSource,\n specimenSourceRequired: false,\n }\n draft.currentDivId = testInfo.divisionId\n draft.currentLocId = testInfo.location?.id\n draft.currentVisitType = 'test'\n } else {\n draft.insuranceClaim = (insuranceClaim ? true : false)\n draft.intakeForm.paid = !!testInfo.paid\n draft.isEditingTest = false\n }\n }),\n FAILURE: state => produce(state, draft => {\n draft.testInfo = null\n }),\n },\n SUBMIT_SELF_TEST: state => state,\n NEW_TEST: state => ({\n ...state,\n testInfo: null,\n reuseIntakeForm: true,\n }),\n EDIT_TEST: state => ({\n ...state,\n testInfo: state.testInfo,\n isEditingTest: true,\n reuseIntakeForm: true,\n }),\n CANCEL_EDIT: state => ({\n ...state,\n isEditingTest: false,\n }),\n LOAD_TEST: {\n START: state => ({\n ...state,\n loadingTest: true,\n patient: null,\n lastTestDate: null,\n intakeForm: null,\n testInfo: null,\n insuranceClaim: null,\n }),\n SUCCESS: (state, { payload: { patient, lastTestDate, intakeForm, testInfo, insuranceClaim } }) => ({\n ...state,\n loadingTest: false,\n patient,\n lastTestDate,\n intakeForm,\n testInfo,\n insuranceClaim,\n currentVisitType: 'test',\n }),\n FAILURE: state => ({\n ...state,\n loadingTest: false,\n patient: null,\n lastTestDate: null,\n intakeForm: null,\n testInfo: null,\n insuranceClaim: null,\n }),\n },\n SAVE_VACC: {\n SUCCESS: (state, { payload }) => produce(state, draft => {\n const { isNew, division, ...vaccInfo } = payload\n draft.vaccInfo = vaccInfo\n if(isNew) {\n draft.insuranceClaim = null\n draft.vaccDefaults = {\n division,\n type: vaccInfo.vacc?.type,\n location: vaccInfo.location.id,\n lotNumber: vaccInfo.vacc?.lotNumber,\n }\n draft.currentDivId = vaccInfo.divisionId\n draft.currentLocId = vaccInfo.location?.id\n draft.currentVisitType = 'vacc'\n } else {\n draft.isEditingVacc = false\n }\n }),\n FAILURE: state => produce(state, draft => {\n draft.vaccInfo = null\n }),\n },\n NEW_VACC: state => ({\n ...state,\n vaccInfo: null,\n reuseIntakeForm: true,\n }),\n EDIT_VACC: state => ({\n ...state,\n vaccInfo: state.vaccInfo,\n isEditingVacc: true,\n reuseIntakeForm: true,\n }),\n CANCEL_EDIT_VACC: state => ({\n ...state,\n isEditingVacc: false,\n }),\n LOAD_VACC: {\n START: state => ({\n ...state,\n loadingVacc: true,\n patient: null,\n intakeForm: null,\n vaccInfo: null,\n insuranceClaim: null,\n }),\n SUCCESS: (state, { payload: { patient, lastTestDate, intakeForm, vaccInfo, insuranceClaim } }) => ({\n ...state,\n loadingVacc: false,\n patient,\n lastTestDate,\n intakeForm,\n vaccInfo,\n insuranceClaim,\n currentVisitType: 'vacc',\n }),\n FAILURE: state => ({\n ...state,\n loadingVacc: false,\n patient: null,\n lastTestDate: null,\n intakeForm: null,\n vaccInfo: null,\n insuranceClaim: null,\n }),\n },\n LOAD_ACTION_ITEMS: {\n START: (state, { payload }) => produce(state, draft => {\n if(payload?.locId) {\n draft.currentDivId = payload.divId\n draft.currentLocId = payload.locId\n if(!draft.testDefaults?.location) draft.testDefaults.location = payload.locId\n if(!draft.vaccDefaults?.location) draft.vaccDefaults.location = payload.locId\n }\n }),\n SUCCESS: (state, { payload: actionItems }) => ({\n ...state,\n ...actionItems, // pendingTests, testsToCallAbout, pendingVaccs\n }),\n },\n LOAD_INSURANCE_ELIGIBILITY: {\n START: (state) => ({\n ...state,\n insurance: null,\n }),\n SUCCESS: (state, { payload }) => ({\n ...state,\n insurance: {\n ...payload,\n },\n }),\n },\n SET_INSURANCE_CLAIM: {\n START: (state) => ({\n ...state,\n hasClaimSubmitted: false,\n }),\n SUCCESS: (state) => {\n return ({\n ...state,\n hasClaimSubmitted: true,\n })\n },\n },\n FETCH_INSURER_GROUPS: {\n START: (state) => state,\n SUCCESS: (state, { payload }) => {\n const insurerGroups = _.reduce(payload, (obj, group) => {\n obj[group] = group\n return obj\n }, {})\n return ({\n ...state,\n insurerGroups,\n })\n },\n },\n FETCH_INSURERS: {\n START: (state) => state,\n SUCCESS: (state, { payload }) => {\n const insurers = _.reduce(payload, (obj, insurer) => {\n obj[insurer] = insurer\n return obj\n }, {})\n return ({\n ...state,\n insurers,\n })\n },\n },\n UPDATE_STEP_STATUS: (state, { payload }) => {\n return ({\n ...state,\n formStepStatus: payload,\n })\n },\n },\n}, {\n currentDivId: '',\n currentLocId: '',\n currentVisitType: 'test',\n loadingPatient: false,\n loadingTest: false,\n loadingVacc: false,\n patient: null,\n intakeForm: null,\n reuseIntakeForm: false,\n testInfo: null,\n lastTestDate: null,\n vaccInfo: null,\n insurerGroups: {},\n insurers: {},\n formStepStatus: null,\n testDefaults: {\n division: '',\n location: '',\n phase: 'baseline',\n type: '',\n labAccountId: '',\n specimenSource: '',\n specimenSourceRequired: false,\n },\n testsToCallAbout: [],\n pendingTests: [],\n vaccDefaults: {\n division: '',\n location: '',\n type: '',\n lotNumber: '',\n doseNumber: '',\n bodySite: '',\n route: '',\n color: '',\n },\n pendingVaccs: [],\n})","import { handleActions } from 'redux-actions'\n\nexport default handleActions({\n DIALOG: {\n NOTICE: {\n ADD_NOTIFICATION: (state, action) => [].concat(state, [action.payload]),\n REMOVE_NOTIFICATION: (state, action) => state.filter((item => item.id !== action.payload.id)),\n },\n },\n}, [])","import _ from 'lodash'\nimport React from 'react'\nimport {\n getAnniversaryDateISO,\n getPrettyDate,\n getPrettyDateFromISO,\n isValidISO,\n} from './temporal'\nimport { getIntakeForms } from '../api/user'\nimport {\n getFullAddressString,\n isValidAddressObject,\n} from './address'\nimport {\n getDivisionId,\n getDivisionProperty,\n getOrgDivisionProperty,\n getOrgProperty,\n} from './org'\nimport {\n arrayHasAnyValues,\n bool2str,\n mapBooleanValsToStrings,\n mapStringValsToBooleans,\n mapValuesDeep,\n objectWithoutNonInfoValues,\n objectWithoutUndefinedValues,\n str2bool,\n} from '@sustainhawaii/object-utils'\nimport { isValid as isValidDriversLicenseUS } from 'driver-license-validator'\nimport {\n personNameDefault,\n quoteObjectPaths,\n} from './form'\nimport store from './local-storage'\nimport { mapAwsS3UrlsToFileInputVals } from './aws'\n\n/**\n * Given answer value and intake form key path,\n * return formatted string answer if there is one.\n *\n * @param {*} a - answer value\n * @param {string} k - key path\n * @return {string|undefined}\n */\nexport const getIntakeFormStringAnswer = ({ a, k }) => {\n // string arrays to comma-separated:\n if(_.isArray(a)) return a.join(', ')\n // Addresses with or without date ranges:\n if(_.isPlainObject(a)) {\n const { description, dateStart, dateEnd } = a\n const fullAddressStr = description || getFullAddressString(a)\n if(fullAddressStr) {\n if(dateStart) return `${fullAddressStr} from ${getPrettyDate({ dateTime: dateStart })} to ${getPrettyDate({ dateTime: dateEnd })}`\n return fullAddressStr\n }\n }\n // Dates:\n if(['birthDate', 'symptomsStarted'].includes(k) || _.startsWith(k, 'date') || (isValidISO(a))) {\n return getPrettyDateFromISO(a)\n }\n}\n\n/**\n * Returns unique array of visit types ('test' or 'vacc' so far) based on the 'purposes' of each form (what they were registering for)\n * @returns {Promise<*>}\n */\nexport const getFamilyIntakeFormVisitTypes = async () => {\n // Get forms to determine which types of visits (test or vacc) the master and companion users are eligible for:\n const forms = await getIntakeForms()\n return _.chain(forms).flatMap('purposes').uniq().filter().map(purpose => purpose === 'covid19test' ? 'test' : 'vacc').value()\n}\n\nexport const getAgreementConfigs = (fullOrg) => {\n const orgId = getOrgProperty('id')\n const divId = getDivisionId()\n const { agreements: orgAgreements } = getOrgProperty('intakeFormConfig', {})\n const { agreements: divAgreements } = getDivisionProperty({ key: 'intakeFormConfig', df: {} })\n const orgLevels = divAgreements?.org && !fullOrg ? _.pick(orgAgreements, divAgreements.org) : orgAgreements\n const divLevels = divAgreements?.div || {}\n if(!fullOrg) {\n return {\n ..._.mapValues(orgLevels, cfg => ({ ...cfg, orgId, level: 'org' })),\n ..._.mapValues(divLevels, cfg => ({ ...cfg, orgId, divId, level: 'div' })),\n }\n } else {\n return {\n ..._.mapValues(orgLevels, cfg => ({ ...cfg, orgId, level: 'org' })),\n ..._.mapValues(divLevels, cfg => ({ ...cfg, orgId, level: 'div' })),\n }\n }\n\n}\n\nexport const getStepConfigs = () => {\n const orgId = getOrgProperty('id')\n const { steps: orgSteps } = getOrgProperty('intakeFormConfig', {})\n const { steps: divSteps } = getDivisionProperty({ key: 'intakeFormConfig', df: {} })\n const orgLevels = orgSteps\n const divLevels = divSteps || {}\n return {\n ..._.mapValues(orgLevels, cfg => ({ ...cfg, orgId, level: 'org' })),\n ..._.mapValues(divLevels, cfg => ({ ...cfg, orgId, level: 'div' })),\n }\n}\n\nexport const getAgreementConfigsForPurposes = ({\n agreementConfigs,\n purposes,\n}) => _.pickBy(agreementConfigs, ({ purposes: stepPurposes }) => purposes && stepPurposes && arrayHasAnyValues(purposes, stepPurposes))\n\n/**\n * Return the keys and lowest signing age of the agreements in the intake form configuration for the current context.\n * @return {{agreementKeys: string[], lowestAgreementAge: number}}\n */\nexport const getCurrentAgreementsRequirements = () => {\n const configs = getAgreementConfigs()\n return {\n agreementKeys: _.keys(configs) || [],\n lowestAgreementAge: _.chain(configs).map('requiresGuardianSignature').filter().min().value() || 0,\n }\n}\n\nconst dataCleaningConfig = {\n forceString: [\n 'userId',\n 'formId',\n ],\n omit: [\n 'parentId',\n 'isVisiting',\n 'scheduledTest',\n 'scheduledVacc',\n 'cosignerDocumentCount',\n 'hadSymptomsRecently',\n ],\n omitBy: {\n travelsLast10Days: o => !isValidAddressObject(o),\n addresses: o => !isValidAddressObject(o),\n },\n omitIfFalse: {\n hadRespiratoryIllness: ['respiratoryIllness'],\n hadContactWithCovidPositive: ['contactWithCovidPositiveDetails'],\n isEssentialWorker: ['essentialWorkerDetails'],\n hadFeverLast30: ['feverLast30Date', 'feverLast30DF'],\n },\n omitNone: [\n 'symptoms',\n 'riskFactors',\n 'essentialWorkerDetails.ppeSelections',\n ],\n omitEmpty: [\n 'previousTestInfo.over90daysAgo',\n 'previousTestInfo.last3to6days',\n ],\n}\n// Return data cleaned for sending to API:\nexport const getCleanedIntakeForm = ({\n data,\n purposes,\n agreementTranslatedData,\n}) => {\n // Remove non-info values and convert 'true' and 'false' to boolean:\n let result = _.omit(data, dataCleaningConfig.omit)\n result = objectWithoutNonInfoValues(result)\n result = mapStringValsToBooleans(result)\n // Force some values to be JSON.parse'd as strings:\n quoteObjectPaths(result, dataCleaningConfig.forceString)\n // Omit some values using specific functions:\n _.forEach(dataCleaningConfig.omitBy, (func, key) => {\n const val = _.get(result, key)\n if(val) _.set(result, key, _.omitBy(_.get(result, key), func))\n })\n // Omit some values based on another value:\n _.forEach(dataCleaningConfig.omitIfFalse, (keysToOmit, boolKey) => {\n if(!_.get(result, boolKey)) {\n result = _.omit(result, keysToOmit)\n }\n })\n // Omit 'none' from multiple-choice fields:\n _.forEach(dataCleaningConfig.omitNone, key => {\n const val = _.get(result, key)\n if(val) _.set(result, key, _.without(val, 'none'))\n })\n // Omit some empty fields:\n _.forEach(dataCleaningConfig.omitEmpty, key => {\n if(_.isEmpty(_.get(result, key))) {\n result = _.omit(result, key)\n }\n })\n if(!_.isEmpty(result.vitals?.birthDate)) result.vitals.birthDate = getAnniversaryDateISO(result.vitals.birthDate)\n result.purposes = purposes\n result.agreementTranslatedData = agreementTranslatedData\n return result\n}\n\nexport const getIntakeFormConfigProperty = ({ path, df }) => getOrgDivisionProperty({\n key: `intakeFormConfig.${path}`,\n df,\n})\n\nexport const getStepIncludesExtraField = (stepName, fieldName) => {\n const extraFields = getIntakeFormConfigProperty({\n path: `steps.${stepName}.extraFields`,\n df: [],\n })\n return extraFields.includes(fieldName)\n}\n\n// Return data from API formatted for display in intake form:\nexport const getFormCompatibleIntakeFormData = async response => {\n if(_.isEmpty(response?.data)) return\n let formData = mapBooleanValsToStrings(response?.data)\n formData.hasNoSSN = str2bool(formData.hasNoSSN)\n formData = await mapAwsS3UrlsToFileInputVals({\n obj: formData,\n metaOnly: true,\n })\n formData.isVisiting = bool2str(!!formData.addresses?.visiting)\n return formData\n}\nexport const getStepProp = ({\n stepName,\n prop,\n intakeFormConfig,\n divSteps,\n fieldsProps,\n}) => _.get(fieldsProps, prop) || _.get(divSteps, `${stepName}.${prop}`) || _.get(intakeFormConfig, `steps.${stepName}.${prop}`)\n\n/**\n *\n * @param {string} stepName - key in allSteps\n * @param {string[]=} purposes - list of purposes for current form\n * @param {object} intakeFormConfig - intake form config of org\n * @param {object=} divSteps - intake form config of div\n * @param {object=} fieldsProps - specific props for the step, if any\n * @return {boolean}\n */\nexport const stepIsForCurrentPurposes = ({\n stepName,\n purposes,\n intakeFormConfig,\n divSteps,\n fieldsProps,\n}) => {\n const stepPurposes = getStepProp({\n stepName,\n prop: 'purposes',\n intakeFormConfig,\n divSteps,\n fieldsProps,\n })\n return purposes && stepPurposes && arrayHasAnyValues(purposes, stepPurposes)\n}\n/**\n *\n * @param {string} stepName - key in allSteps\n * @param {string=} patientType - patient type of intake form subject\n * @param {object} intakeFormConfig - intake form config of org\n * @param {object=} divSteps - intake form config of div\n * @param {object=} fieldsProps - specific props for the step, if any\n * @return {boolean}\n */\nexport const stepIsForCurrentPatientTypes = ({\n stepName,\n patientType,\n intakeFormConfig,\n divSteps,\n fieldsProps,\n}) => {\n const stepPatientTypes = getStepProp({\n stepName,\n prop: 'patientTypes',\n intakeFormConfig,\n divSteps,\n fieldsProps,\n })\n return !stepPatientTypes || stepPatientTypes.includes(patientType)\n}\n\nexport const setIntakeFormInProgress = ({\n snapshot,\n purposes,\n}) => {\n const intakeFormsInProgress = store.get('intakeFormsInProgress') || {}\n intakeFormsInProgress[snapshot.userId] = {\n snapshot: mapValuesDeep({\n obj: snapshot,\n iter: ({ val }) => val?.isNewFile ? '' : val,\n recursionTest: val => !val?.isNewFile,\n }),\n purposes,\n }\n store.set('intakeFormsInProgress', intakeFormsInProgress)\n}\nexport const getIntakeFormInProgress = userId => store.get(`intakeFormsInProgress.${userId}`)\nexport const removeIntakeFormInProgress = userId => store.remove(`intakeFormsInProgress.${userId}`)\nexport const getPatientTypes = () => getOrgDivisionProperty({ key: 'patientTypes' })\nconst getAgreementDefaultValues = ({ purposes, patientType }) => ({\n agreements: _.chain(getAgreementConfigs())\n .mapValues(({ purposes, patientTypes, iAgree, initials, signature, file }, agreementKey) => ({\n agreementKey,\n purposes,\n patientTypes,\n file,\n ...objectWithoutUndefinedValues(_.mapValues({ iAgree, initials, signature }, v => v ? '' : undefined)),\n }))\n .filter(({\n purposes: agreementPurposes,\n patientTypes,\n }) => (\n (agreementPurposes && arrayHasAnyValues(agreementPurposes, purposes))\n && (!patientTypes || patientTypes.includes(patientType))\n ))\n .keyBy('agreementKey')\n .mapValues(vals => vals.file ? '' : _.pick(vals, ['iAgree', 'initials', 'signature']))\n .value(),\n})\nconst getFilteredDefaultValues = ({ topKeys, purposes, patientType }) => {\n const defaultValues = getAllDefaultValues()\n return {\n ..._.pick(defaultValues, topKeys),\n ...getAgreementDefaultValues({ purposes, patientType }),\n }\n}\nconst addNoneIfEmpty = (data, key, topKeys) => {\n const topKey = key.split('.')[0]\n if(!topKeys.includes(topKey)) return\n const arr = _.get(data, key)\n if(_.isArray(arr) && _.isEmpty(arr)) arr.push('none')\n}\nexport const getInitialValuesFromHealthIDs = ({\n pass,\n masterPass,\n}) => ({\n ..._.pick(masterPass, ['phoneNumber', 'email']),\n ..._.pick(pass || {}, ['userId', 'name', 'email', 'phoneNumber', 'vitals', 'addresses']),\n})\nconst getDynamicQuestionInitialValues = (dynamicQuestionNames = [], prefillData) => _.chain(dynamicQuestionNames)\n .map(name => ({\n key: name,\n val: {\n answer: _.get(prefillData, `dynamicQuestions.${name}.answer`, ''),\n other: _.get(prefillData, `dynamicQuestions.${name}.other`, ''),\n agreement: _.get(prefillData, `dynamicQuestions.${name}.agreement`, { signature: '' }),\n },\n }))\n .keyBy('key')\n .mapValues('val')\n .value()\nexport const getInitialValues = ({\n prefillData,\n purposes,\n patientType,\n topKeys,\n dynamicQuestionNames,\n}) => {\n const result = _.merge(\n { patientType },\n getFilteredDefaultValues({ topKeys, purposes, patientType }),\n _.pick(prefillData, [...topKeys, ...dynamicQuestionNames, 'name', 'vitals', 'email', 'phoneNumber', 'addresses']),\n )\n _.forEach(['symptoms', 'riskFactors', 'essentialWorkerDetails.ppeSelections'], key => {\n addNoneIfEmpty(result, key, topKeys)\n })\n result.hadSymptomsRecently = ''\n result.dynamicQuestions = getDynamicQuestionInitialValues(dynamicQuestionNames, prefillData)\n return result\n}\n\n/**\n * Return an inline agreement configured for a dynamic question\n * if current answer makes it required\n *\n * @param {InlineAgreementConfig[]=} agreementConfigs\n * @param {string} answer\n * @return {InlineAgreementConfig|void}\n */\nexport const getDynamicQuestionAgreementForAnswer = ({\n agreementConfigs,\n answer,\n}) => {\n const answerArray = _.castArray(answer)\n return _.find(agreementConfigs, ({ answers }) => _.isEmpty(answers) || !_.isEmpty(_.intersection(answers, answerArray)))\n}\n\nexport const idConfigs = {\n driversLicenseUS: {\n numberValidator: isValidDriversLicenseUS,\n issuerType: 'state',\n preferred: true,\n },\n stateIdUS: {\n numberValidator: n => /^[a-zA-Z0-9-./]{3,25}$/i.test(n), issuerType: 'state',\n preferred: true,\n },\n passport: {\n numberValidator: n => /^[a-z][a-z0-9]{2,16}$/i.test(n),\n issuerType: 'country',\n preferred: false,\n },\n workStudentId: {\n // MAYBE find better validator since this is a copy of the state ID validator\n numberValidator: n => /^[a-zA-Z0-9-./]{3,25}$/i.test(n),\n preferred: false,\n },\n}\n\nexport const idDefault = {\n photo: '',\n photoBack: '',\n number: '',\n issuer: '',\n}\nexport const identificationDefaults = _.mapValues(idConfigs, () => idDefault)\n\nconst addressDefault = {\n country: 'US',\n}\nconst destinationDefault = {\n address: addressDefault,\n dateStart: null,\n dateEnd: null,\n}\nconst insuranceAddressDefault = {\n country: '',\n state: '',\n}\nconst insuranceVitalsDefault = {\n gender: '',\n birthDate: '',\n}\nexport const insuranceDefault = {\n photo: '',\n photoBack: '',\n name: '',\n group: '',\n otherName: '',\n subscriberNumber: '',\n subscriberName: personNameDefault,\n subscriberAddress: insuranceAddressDefault,\n subscriberVitals: insuranceVitalsDefault,\n eligibility: '',\n}\nexport const secondaryInsuranceDefault = {\n photo: '',\n photoBack: '',\n name: '',\n group: '',\n otherName: '',\n subscriberNumber: '',\n subscriberName: personNameDefault,\n subscriberAddress: insuranceAddressDefault,\n eligibility: '',\n}\nexport const socialSecurityDefault = {\n number: '',\n}\nconst checkBoxGroupsWithOtherChoiceNames = [\n 'race',\n 'communityHousing',\n 'shelters',\n 'encampments',\n 'socialServiceOrgs',\n 'statuses',\n]\nconst emptyFieldList = [\n 'homeType',\n 'homelessType',\n 'haveHomelessDocs',\n 'hispanic',\n 'liveOrWorkCongregate',\n 'congregateType',\n 'previouslyTested',\n 'previouslyVaccinated',\n 'previouslyVaccinatedC19',\n 'hasInsurance',\n 'pregnant',\n 'employedInHealthCare',\n 'hospitalizedForCovid',\n 'icuForCovid',\n 'covidExposureConcern',\n 'publicGatherings',\n 'workedPublicHighContact',\n 'contactWithHighRiskGroups',\n 'hadFeverLast30',\n 'feverLast30DF',\n 'traveledLast10Days',\n 'hadRespiratoryIllness',\n 'isGuardian',\n 'deptPublicSafety',\n 'feelSick',\n 'vaccineAllergyEn',\n 'vaccineAllergyEs',\n 'bleedingDisorder',\n 'immunocompromised',\n 'otherVaccinationLast14days',\n 'covidPositiveLast90days',\n 'covidTreatment',\n 'dermalFiller',\n 'allergies',\n 'nka',\n 'maritalStatus',\n 'tribalAffiliation',\n 'language',\n 'languageOther',\n 'divisionEmail',\n 'isVisitingHotel',\n 'visitingHotelRoom',\n 'ethnicity',\n 'hasNoSSN',\n 'hadContactWithCovidPositive',\n 'isEssentialWorker',\n 'patientRelationshipToInsured',\n ..._.flatMap(checkBoxGroupsWithOtherChoiceNames, name => [name, `${name}Other`]),\n]\nconst emptyFields = _.chain(emptyFieldList).invert().mapValues(() => '').value()\nexport const ksSchoolsDefaults = {\n affiliated: '',\n patientType: '',\n patientTypeOther: '',\n studentGrade: '',\n teacherGrades: [],\n familyRelationship: '',\n familyRelationshipOther: '',\n}\nexport const getAllDefaultValues = () => {\n // TODO: add dynamic questions defaults (answer: '')\n const specialQuestions = getOrgProperty({ key: 'intakeFormConfig.specialQuestions' })\n let specialQuestionsDefault = {}\n if(!_.isEmpty(specialQuestions)) {\n // Replace all question strings with ''\n specialQuestionsDefault = mapValuesDeep({\n obj: specialQuestions,\n iter: () => '',\n })\n }\n return {\n ...emptyFields,\n nka: false,\n allergies: '',\n symptomsStarted: null,\n feverLast30Date: null,\n name: personNameDefault,\n cosigner: {\n name: personNameDefault,\n phoneNumber: '',\n // email: '',\n },\n addresses: {\n home: addressDefault,\n visiting: addressDefault,\n },\n guardianInfo: {\n typeOf: '',\n otherType: '',\n },\n socialSecurity: socialSecurityDefault,\n education: {\n schoolGrade: '',\n },\n identification: identificationDefaults,\n ksSchools: ksSchoolsDefaults,\n insuranceCarriers: {\n primary: insuranceDefault,\n secondary: secondaryInsuranceDefault,\n },\n previousTestInfo: {\n testResult: '',\n last3to6days: '',\n over90daysAgo: '',\n },\n previousVaccInfo: {\n date: null,\n dosagePhase: '',\n manufacturer: '',\n },\n symptoms: [],\n riskFactors: [],\n travelsLast10Days: {\n destination1: destinationDefault,\n destination2: destinationDefault,\n destination3: destinationDefault,\n },\n respiratoryIllness: {\n sawProvider: '',\n symptomsDate: null,\n diagnosis: '',\n wasTreated: '',\n testedForFluOrStrep: '',\n fluOrStrepResult: '',\n symptoms: '',\n },\n contactWithCovidPositiveDetails: {\n awaitingResults: '',\n where: '',\n when: null,\n travelHistory: '',\n workHistory: '',\n quarantined: '',\n },\n essentialWorkerDetails: {\n organization: '',\n position: '',\n departments: '',\n fullTime: '',\n contactWithPatients: '',\n ppeSelections: [],\n ppeOther: '',\n },\n job: {\n title: '',\n duties: '',\n },\n emergencyContact: {\n name: personNameDefault,\n phoneNumber: '',\n },\n employer: {\n name: '',\n phoneNumber: '',\n },\n ...specialQuestionsDefault,\n }\n}","import _ from 'lodash'\nimport { isNonEmptyString } from '@sustainhawaii/heal-common/lib/util/string'\nimport { blobToDataURL, dataURLToBlob } from 'blob-util'\nimport axios from 'axios'\nimport { isEnv } from './env'\nimport Jimp from 'jimp'\nimport * as Sentry from '@sentry/react'\n\n/*\n Increase max memory usage of Jimp decoder:\n (from https://github.com/oliver-moran/jimp/issues/915#issuecomment-967163466)\n */\nconst cachedJpegDecoder = Jimp.decoders['image/jpeg']\nJimp.decoders['image/jpeg'] = (data) => {\n const opts = { maxMemoryUsageInMB: 1024 }\n return cachedJpegDecoder(data, opts)\n}\n\nlet axiosInstance\nconst client = () => {\n if (axiosInstance) return axiosInstance\n axiosInstance = axios.create({\n timeout: 5000,\n headers: {\n 'Cache-Control': 'no-cache',\n Pragma: 'no-cache',\n Expires: '0',\n },\n })\n return axiosInstance\n}\n\nconst JPEG_QUALITY = 72\n/**\n * Return new image Blob scaled down to fit small dimensions and JPEG compressed 72% quality.\n *\n * @param {File|Blob} blob\n * @return {Promise}\n */\nexport const getReducedImageBlob = async blob => {\n if (!_.isFunction(blob?.arrayBuffer)) return blob\n const { name, type, size } = blob\n const sentryConfig = { tags: { func: 'getReducedImageBlob' }, extra: { name, type, size } }\n let buffer\n let image\n try {\n buffer = await blob.arrayBuffer()\n } catch(e) {\n sentryConfig.extra.step = 'blob.arrayBuffer()'\n Sentry.captureException(e, sentryConfig)\n return blob\n }\n try {\n image = await Jimp.read(buffer)\n } catch(e) {\n sentryConfig.extra.step = 'Jimp.read(buffer)'\n Sentry.captureException(e, sentryConfig)\n return blob\n }\n try {\n buffer = await image.scaleToFit(1024, 1024).quality(JPEG_QUALITY).getBufferAsync(type)\n } catch(e) {\n sentryConfig.extra.step = 'image.scaleToFit'\n Sentry.captureException(e, sentryConfig)\n return blob\n }\n try {\n return new Blob([new Uint8Array(buffer)], { type })\n } catch (e) {\n sentryConfig.extra.step = 'new Blob'\n Sentry.captureException(e, sentryConfig)\n return blob\n }\n}\n\nexport const getBlobFromImageDataUri = uri => {\n if (!isNonEmptyString(uri)) return\n return dataURLToBlob(uri)\n}\n\nexport const getImageDataUri = ({\n data,\n mimeType,\n}) => `data:${mimeType};base64,${data}`\n\nexport const retrieveImageDataUri = async url => {\n try {\n const res = await client().get(url, {\n responseType: 'blob',\n })\n if (res?.data) {\n return blobToDataURL(res.data)\n }\n } catch (e) {\n if (!isEnv('production')) console.error(`could not retrieve image data from \"${url}\"`, e)\n }\n}\n\nexport const isImageDataUri = v => _.isString(v) && /^data:image/.test(v)\n","import _ from 'lodash'\n\nconst formikProps = [\n 'children',\n 'dirty',\n 'enableReinitialize',\n 'errors',\n 'getFieldHelpers',\n 'getFieldMeta',\n 'getFieldProps',\n 'handleBlur',\n 'handleChange',\n 'handleReset',\n 'handleSubmit',\n 'initialErrors',\n 'initialStatus',\n 'initialTouched',\n 'initialValues',\n 'isInitialValid',\n 'isSubmitting',\n 'isValid',\n 'isValidating',\n 'onReset',\n 'onSubmit',\n 'registerField',\n 'unregisterField',\n 'render',\n 'resetForm',\n 'setErrors',\n 'setFieldError',\n 'setFieldTouched',\n 'setFieldValue',\n 'setFormikState',\n 'setStatus',\n 'setSubmitting',\n 'setTouched',\n 'setValues',\n 'submitCount',\n 'submitForm',\n 'touched',\n 'validate',\n 'validateField',\n 'validateForm',\n 'validateOnBlur',\n 'validateOnChange',\n 'validateOnMount',\n 'validationSchema',\n 'values',\n]\n\nexport const noFormikProps = props => _.omit(props, formikProps)\n","// MUI TextField wrapped for use with Formik\n\nimport React from 'react'\nimport { Field } from 'formik'\nimport { TextField } from 'formik-mui'\nimport { noFormikProps } from 'utils/formik'\nimport InputMask from 'react-input-mask'\nimport MiuTextField from '@mui/material/TextField'\nimport useTranslateValue from '../../../hooks/useTranslateValue'\n\nexport default ({\n type = 'text',\n margin = 'normal',\n variant = 'outlined',\n name,\n label, // can be t:namespace:path...\n mask,\n ...rest\n}) => {\n const labelT = useTranslateValue(label)\n return (\n \n {mask && (({ field }) => (\n \n {(innerProps) => (\n \n )}\n \n ))}\n \n )\n}\n","import React from 'react'\nimport withStyles from '@mui/styles/withStyles'\nimport CircularProgress from '@mui/material/CircularProgress'\n\nexport default ({\n style,\n ...rest\n}) => {\n const CircularProgressStyled = withStyles({\n root: {\n ...style,\n },\n })(CircularProgress)\n return (\n \n )\n}\n","import {\n aSchema,\n schemas,\n} from '@sustainhawaii/heal-schemas'\nimport _ from 'lodash'\nimport { str2bool } from '@sustainhawaii/object-utils'\nimport {\n getLuxonDateTime,\n getNow,\n getPrettyDate,\n} from 'utils/temporal'\nimport { getOrgDivisionProperty } from 'utils/org'\nimport { isFileInputVal } from 'utils/file'\n\nconst errorsEn = {\n 'errorMsg': 'error message',\n 'formSubmitProblem': 'problem submitting the form',\n 'initFail': 'Could not initialize the app',\n 'notFound': 'Not found',\n 'required': 'Required',\n 'selectYesNo': 'Select \"Yes\" or \"No\"',\n 'selectOne': 'Select one',\n 'selectAtLeastOne': 'Select at least one',\n 'tooShort': 'Too short',\n 'tooLong': 'Too long',\n 'tooFew': 'Too few',\n 'tooMany': 'Too many',\n 'noFutureDate': 'Today or before',\n 'invalidPhone': 'Please enter a valid phone number',\n 'dateStartAfterEnd': 'Must be before end date',\n 'dateEndBeforeStart': 'Must be after start date',\n 'phoneCountryCodeRequired': 'Country Code \"{{code}}\" required after \"+\"',\n 'companyNameCharsAllowed': 'Only letters, numbers and ,.?!-',\n 'tryAgain': 'Please try again',\n 'pleaseSpecify': 'Please Specify',\n 'enterFirstName': 'Enter your first name',\n 'enterLastName': 'Enter your last name',\n}\n\nconst { string, date, numberNaN2Undefined, array, mixed, object } = schemas\n\nconst arrayOfStringOrEmpty = array().ensure().compact().of(string())\n\n/**\n * Return set of schemas using ii18n t function with name spaces: common, glossary, error\n *\n * @param {function} t\n * @return {object}\n */\nexport default (t = () => false) => {\n\n const errMsg = _.mapValues(errorsEn, (v, k) => t(`error:${k}`))\n\n const mongoObjIdSchema = string().length(24)\n\n const neo4jIdSchema = string().min(24) // to accommodate both mongoId schema & neo4j uuid schema\n\n const personFullNameSchema = aSchema({\n first: string().required(errMsg.enterFirstName)\n .min(1, errMsg.tooShort)\n .max(50, errMsg.tooLong),\n middleInitial: string().max(1).notRequired(),\n last: string().required(errMsg.enterLastName)\n .min(1, errMsg.tooShort)\n .max(50, errMsg.tooLong),\n suffix: string().max(20, errMsg.tooLong).notRequired(),\n })\n\n const genderRegEx = new RegExp(_.chain(getOrgDivisionProperty({ key: 'genders' })).map('value').join('|').value())\n\n const genderSchema = string().ensure().matches(genderRegEx, errMsg.selectOne)\n\n const birthDateSchema = string().nullable()\n const vitalsSchema = aSchema({\n gender: genderSchema,\n birthDate: birthDateSchema.required(errMsg.required),\n }).required(errMsg.required)\n\n const physicalAddressSchema = aSchema({\n street1: string().min(3, errMsg.tooShort).max(50, errMsg.tooLong).required(errMsg.required),\n street2: string().max(50),\n street3: string().max(50),\n city: string().min(1).max(50).required(errMsg.required),\n state: string().min(2).max(50).required(errMsg.required),\n zip: string().min(1).max(20).required(errMsg.required),\n country: string().min(2).max(2).required(errMsg.required),\n })\n\n return {\n\n errMsg,\n\n pass: aSchema({\n userId: neo4jIdSchema,\n name: personFullNameSchema.required(),\n email: schemas.string().required(),\n ethnicity: schemas.string().required(),\n addresses: aSchema({\n home: physicalAddressSchema,\n }).required(errMsg.required),\n vitals: aSchema({\n gender: genderSchema,\n birthDate: birthDateSchema.required(errMsg.required),\n }).required(errMsg.required),\n qrSecret: schemas.string().notRequired(),\n govtIdExists: schemas.boolean(),\n selfiePhoto: schemas.mixed().when('govtIdExists', {\n is: true,\n then: mixed().required(),\n otherwise: mixed().optional(),\n }),\n govtIdCardFront: mixed().when('govtIdExists', {\n is: true,\n then: mixed().optional(),\n otherwise: mixed().optional(),\n }),\n }),\n\n arrayOfStringOrEmpty,\n\n notRequiredSchema: mixed().notRequired(),\n\n neo4jIdSchema,\n\n namePartSchema: string().min(1, errMsg.tooShort).max(50, errMsg.tooLong).required(errMsg.required),\n\n physicalAddressSchema,\n\n companyNameSchema: string()\n .matches(/[\\w\\d\\s!?,.-]/, errMsg.companyNameCharsAllowed)\n .min(1, errMsg.tooShort)\n .max(50, errMsg.tooLong),\n\n nonFutureDate: date().max(getNow(), errMsg.noFutureDate).typeError(''),\n\n birthDateSchema,\n\n genderSchema,\n vitalsSchema,\n\n ssnSchema: string().matches(/^\\d{3}-?\\d{2}-?\\d{4}$/, '\"#########\" or \"###-##-####\"').default(''),\n\n phoneSchema: string().matches(/(\\D*\\d){8}/, errMsg.invalidPhone).required(errMsg.required),\n\n yesNoSchema: (message = errMsg.selectYesNo) => string().oneOf(['true', 'false']).required(message),\n\n atLeastOneCheckedSchema: arrayOfStringOrEmpty.min(1, errMsg.selectAtLeastOne).required(errMsg.selectAtLeastOne),\n\n atLeastOneCheckedOrNoneSchema: array().ensure().compact().of(string()).min(1, `${errMsg.selectAtLeastOne}, or ${errMsg.noneAbove}`),\n\n singleChoiceRequiredSchema: choices => string().oneOf(choices, errMsg.selectOne).required(errMsg.selectOne),\n\n fileInputSchema: object().test('is-file-input-val', errMsg.required, isFileInputVal),\n\n fileInputSchemaOptional: mixed().test(o => _.isEmpty(o) ? true : isFileInputVal(o)),\n\n personFullNameSchema,\n\n personalAddressesSchema: aSchema({\n home: physicalAddressSchema,\n visiting: object().when('isVisiting', isVisiting => isVisiting || str2bool(isVisiting, true) ? physicalAddressSchema : object().optional()),\n }),\n\n vitalsSchemas: {\n bodyTemp: numberNaN2Undefined.min(95, '>= 95').max(105, '<= 105'),\n o2: numberNaN2Undefined.min(75, '>= 75').max(100, '<= 100'),\n pulse: numberNaN2Undefined.min(30, '>= 30').max(150, '<= 150'),\n },\n\n getDateRangeSchema: ({\n startDateName,\n endDateName,\n maxDays,\n }) => {\n const noFutureMessage = errMsg.noFutureDate\n return schemas.object().shape({\n [startDateName]: schemas.date().when(endDateName, (endDate, schema) => {\n const nowISO = getNow().toISO()\n const endISO = endDate && getLuxonDateTime(endDate).endOf('day').toISO()\n if(!endISO) return schema.max(nowISO, noFutureMessage).nullable()\n const minISO = maxDays\n ? getLuxonDateTime(endDate).minus({ days: maxDays }).toISO()\n : '2021-01-01'\n const minPrettyDate = getPrettyDate({ dateTime: minISO })\n return schema\n .min(minISO, maxDays ? `${maxDays} days max` : `${minPrettyDate} or later`)\n .max(endISO || nowISO, endISO < nowISO ? errMsg.dateStartAfterEnd : noFutureMessage).typeError('')\n }),\n [endDateName]: schemas.date().when(startDateName, (startDate, schema) => {\n const startISO = startDate\n ? getLuxonDateTime(startDate).startOf('day').toISO()\n : '2021-01-01'\n return schema.min(startISO, errMsg.dateEndBeforeStart).max(getNow().endOf('day').toISO(), noFutureMessage).typeError('')\n }),\n }, [startDateName, endDateName])\n },\n }\n}","import actions from 'app/state/ducks/actions'\nimport { getAppInit } from 'app/state/ducks/appinit/selectors'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { checkForAppUpdate } from '../../../api/general'\nimport { useDebouncedCallback } from 'use-debounce'\nimport { useCurrentEffect } from 'use-current-effect'\nimport store from 'utils/local-storage'\n\nconst emptyCache = async () => {\n if (!window.caches?.keys) return\n const keys = await window.caches.keys()\n for (const key of keys) {\n const cache = await window.caches.open(key)\n const cachedRequests = await cache.keys()\n for (const cachedRequest of cachedRequests) {\n await cache.delete(cachedRequest)\n }\n }\n}\n\nconst updateApp = async () => {\n // Delete constants from local storage so they are reloaded:\n store.remove('constants')\n await emptyCache()\n // Delete browser cache and hard reload:\n window.location.reload(true)\n}\n\nexport default () => {\n const allSelectors = useSelector(getAppInit)\n const dispatch = useDispatch()\n const debounced = useDebouncedCallback(() => {\n checkForAppUpdate().then(updateAvailable => {\n if (updateAvailable) dispatch(actions.beginAppUpdate())\n })\n }, 5000)\n useCurrentEffect(isCurrent => {\n if (isCurrent() && !allSelectors.appUpdateBegun) debounced()\n })\n return {\n ...allSelectors,\n initApp: params => dispatch(actions.appinit.start(params)),\n handleError: params => dispatch(actions.handleError(params)),\n updateApp,\n }\n}\n","import _ from 'lodash'\n\nexport const addressObjectToString = (obj, keys) => _.chain(obj).pick(keys ? keys : _.keys(obj)).values().filter().join(', ').value()\n\nexport const getFullAddressString = option => addressObjectToString(option, ['street1', 'street2', 'city', 'state', 'zip'])\n\nexport const isValidAddressObject = obj => _.isPlainObject(obj) && obj.street1 && obj.country\n","import React from 'react'\nimport Box from '@mui/material/Box'\n\nexport default ({ children }) => (\n \n {children}\n \n)\n","import { useContext } from 'react'\nimport { ThemeContext } from '../contexts/ThemeConfigContext'\n\n// ==============================|| CONFIG - HOOKS ||============================== //\n\nconst useThemeConfig = () => useContext(ThemeContext)\n\nexport default useThemeConfig\n","export const getRouter = state => state.router\nexport const getLocation = state => getRouter(state).location\nexport const getPathName = state => getLocation(state).pathname\nexport const getBasePathName = state => getPathName(state).split('/').pop()\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Image, Transformation } from 'cloudinary-react'\nimport _ from 'lodash'\n\nconst CdnImg = props => {\n const { src, transforms, ...rest } = props\n if (_.isEmpty(src)) return null\n const transformComponents = _.chain(transforms)\n .castArray()\n .map((cfg, i) => (\n \n ))\n .value()\n return (\n \n {transformComponents}\n \n )\n}\n\nCdnImg.propTypes = {\n src: PropTypes.string.isRequired,\n}\n\nexport default CdnImg\n","import _ from 'lodash'\nimport { objArray2KeyValuePairs } from '@sustainhawaii/object-utils'\nimport store from './local-storage'\n\nexport const getOrg = () => store.get('constants.org') || {}\n\nexport const getOrgProperty = (key, df) => _.get(getOrg(), key, df)\n\n/**\n * Returns a division config of the current org.\n * If divisionId is not passed, return the active division, if any.\n *\n * @param {string=} divisionId\n * @returns {object|void}\n */\nexport const getDivision = ({ divisionId } = {}) => {\n const { divisions, division: orgDivision } = getOrg()\n return divisionId && divisions ? _.find(divisions, { id: divisionId }) : orgDivision\n}\nexport const getDivisionProperty = ({ key, divisionId, df }) => {\n const division = getDivision({ divisionId })\n return _.get(division, key, df)\n}\nexport const getCurrentDivisionId = () => getDivisionProperty({ key: 'id' })\nexport const getDivisions = ({\n divisionIds,\n eventAttribs,\n withLocations = false,\n forReporting = false,\n} = {}) => {\n let divisions = getOrgProperty('divisions')\n if(!divisions) return\n if(!forReporting) divisions = _.reject(divisions, 'onlyForReporting')\n if(!_.isEmpty(divisionIds)) divisions = _.filter(divisions, ({ id }) => divisionIds.includes(id))\n if(withLocations) divisions = _.filter(divisions, ({ locations }) => !_.isEmpty(locations))\n if(_.isEmpty(divisions)) return divisions\n const eventFilter = getEventFilter(eventAttribs)\n if(!eventFilter) return divisions\n return _.filter(\n divisions,\n ({ locations }) => _.some(\n locations,\n ({ events }) => _.some(\n events,\n eventFilter,\n ),\n ),\n )\n}\nexport const getDivisionNamesById = filters => {\n const divisions = _.sortBy(getDivisions(filters), ({ name }) => _.toLower(name))\n return objArray2KeyValuePairs(divisions, 'id', 'name')\n}\nexport const getAllDivisionLocations = ({\n locTypes,\n locId,\n divisionId,\n} = {}) => {\n if(divisionId === 'all') return getSomeOrgLocations({ locTypes })\n const division = getDivision({ divisionId })\n const locations = division?.locations\n if(!locations) return []\n return locId\n ? _.filter(locations, { id: locId })\n : filterLocationsByTypes({ locations, locTypes })\n}\nexport const getSomeDivisionLocations = ({\n locTypes,\n locId,\n divisionId,\n eventAttribs,\n} = {}) => {\n const locations = getAllDivisionLocations({ locTypes, locId, divisionId })\n if(_.isEmpty(locations)) return []\n const eventFilter = getEventFilter(eventAttribs)\n if(!eventFilter) return locations\n return _.filter(locations, ({ events }) => _.some(events, eventFilter))\n}\nexport const getDivisionSchedulers = ({\n locId,\n divisionId,\n eventAttribs,\n} = {}) => {\n const locations = getAllDivisionLocations({\n locTypes: ['Medical'],\n locId,\n divisionId,\n })\n if(_.isEmpty(locations)) return []\n let eventFilter = getEventFilter(eventAttribs)\n if(!eventFilter) eventFilter = () => true\n const orgId = getOrgProperty('id')\n return _.chain(locations)\n .map(({ events }) => _.map(events, (evt, type) => ({\n ...evt,\n type,\n })))\n .flatten()\n .filter(eventFilter)\n .map(({ slug, ...rest }) => ({\n url: `https://calendly.com/perseus-org-${orgId}/${slug}`,\n slug,\n ...rest,\n }))\n .value()\n}\nexport const getDivisionSchedulersVisitTypes = filters => {\n const schedulers = getDivisionSchedulers(filters)\n return _.chain(schedulers).map('type').uniq().filter().value()\n}\n/**\n * Return function for use with lodash.filter.\n * Returns void if none of the parameters are truthy.\n *\n * @param {boolean=} visitType - if set, reject events of other types\n * @param {string=} patientType - if set, reject events that have a patientTypes array does does not contain this value\n * @return {function}\n */\nexport const getEventFilter = ({\n visitType,\n patientType,\n} = {}) => {\n if(!visitType && !patientType) return\n return event => {\n if(!event) return false\n const { type, patientTypes } = event\n if(visitType && type !== visitType) return false\n return !(patientType && _.isArray(patientTypes) && !patientTypes.includes(patientType))\n }\n}\n/**\n * Return a property of the active or specified division, falling back to a property of the org.\n *\n * @param {string} key\n * @param {string=} divisionId - defaults to active division\n * @param {*=} df - default if not found\n * @returns {*}\n */\nexport const getOrgDivisionProperty = ({\n divisionId,\n key,\n df,\n}) => getDivisionProperty({\n key,\n divisionId,\n df: getOrgProperty(key, df),\n})\n\nexport const getOrgDivisionInsuranceAbility = ({ divisionId } = {}) => getOrgDivisionProperty({\n divisionId,\n key: 'insuranceEnabled',\n df: false,\n})\n\nexport const getSomeOrgLocations = ({\n divisionIds,\n locationIds,\n locTypes,\n}) => {\n const divisions = getDivisions({ divisionIds })\n const locations = _.chain(divisions).flatMap(({ locations }) => locations).filter(loc => !!loc && (_.isEmpty(locationIds) || locationIds.includes(loc.id))).value()\n return filterLocationsByTypes({ locations, locTypes })\n}\n\nconst filterLocationsByTypes = ({\n locations,\n locTypes,\n}) => {\n if(_.isArray(locTypes)) return _.filter(locations, ({ types }) => !_.isEmpty(_.intersection(types, locTypes)))\n return locations\n}\n\nexport const getOrgLocationNamesByLocId = filters => {\n const locations = getSomeDivisionLocations(filters)\n if(_.isEmpty(locations)) return {}\n const sorted = _.sortBy(locations, ({ name }) => _.toLower(name))\n return objArray2KeyValuePairs(sorted, 'id', 'name')\n}\n\nexport const getOrgLocation = locId => {\n const locations = getSomeDivisionLocations({ locId, divisionId: 'all' })\n return _.find(locations, { id: locId })\n}\n\nexport const getOrgLocationName = locId => {\n const loc = getOrgLocation(locId)\n return loc?.name\n}\n\nexport const getDivisionOrOrgVisitFormConfig = ({ visitType, divisionId }) => getOrgDivisionProperty({\n key: `visitConfigs.${visitType}`,\n divisionId,\n})\n\nexport const getDivisionId = () => getDivisionProperty({ key: 'id' })\n\n/**\n * This is used to merge divSteps with org dynamic questions where division dynamic question marked as org true\n * @param steps\n */\nexport const mergeOrgDivisionDynamicQuestions = (steps) => {\n const orgDynamicQuestions = getOrgProperty('intakeFormConfig.dynamicQuestions')\n if(!orgDynamicQuestions) return\n _.map(steps, (stepValue, stepKey) => {\n if(stepValue.org) {\n const dynamicQuestion = _.merge({}, orgDynamicQuestions[stepKey], steps[stepKey])\n delete dynamicQuestion.org\n steps[stepKey] = dynamicQuestion\n }\n })\n}\n\n/**\n * Get list of stateShort & stateName for stateSelector component\n */\nexport const getStateSelectors = ({} = {}) => {\n let divisions = getOrgProperty('divisions')\n if(!divisions) return\n divisions = _.filter(divisions, ({ locations }) => !_.isEmpty(locations))\n\n let stateArray = []\n _.forEach(divisions, division => {\n _.forEach(division.locations, loc => {\n stateArray.push({ 'value': loc.stateShort, 'label': loc.stateName ? loc.stateName : loc.stateLong })\n })\n })\n\n const result = _.chain(stateArray)\n .uniqBy('value')\n .sortBy('label')\n .compact()\n .value()\n return result\n}\n\n/**\n * Get map of stateShort to the associated divs (using their locations)\n */\nexport const getDivisionsByStates = ({} = {}) => {\n let divisions = getOrgProperty('divisions')\n if(!divisions) return\n divisions = _.filter(divisions, ({ locations }) => !_.isEmpty(locations))\n\n let divArray = []\n _.forEach(divisions, division => {\n const uniqStates = _.map(_.uniqBy(division.locations, 'stateShort'), 'stateShort')\n _.forEach(uniqStates, loc => {\n divArray.push({ 'value': division.id, 'label': division.name, 'stateShort': loc })\n })\n })\n\n const result = _.chain(divArray)\n .groupBy((div) => {\n const stateShort = div.stateShort\n delete div.stateShort\n return stateShort\n })\n .value()\n return result\n}\n\n/**\n * Check if current div is part of input state\n */\nexport const isCurrentDivInState = ({ stateShort }) => {\n const division = getDivision()\n const result = _.some(division.locations, ['stateShort', stateShort])\n return result\n}","export const getDialogStates = state => state.dialog\nexport const getAlert = state => getDialogStates(state).alert\n","import * as log from 'loglevel'\nimport inspect from 'object-inspect'\nimport { env } from 'utils/env'\nimport _ from 'lodash'\n\nlog.setLevel(['development', 'staging'].includes(env('ENV')) ? 'debug' : 'error')\n\nconst levels = [\n 'trace',\n 'debug',\n 'info',\n 'warn',\n 'error',\n]\n\nexport default _\n .chain(levels)\n .keyBy(level => level)\n .mapValues((val, key) => (msg, data) => {\n let m = msg\n if (data) {\n m += ': ' + inspect(data)\n }\n log[key](m)\n // data && log[key](data)\n })\n .value()\n","import store from 'store'\nimport _ from 'lodash'\n\nconst getKeySub = path => {\n const [key, ...subPaths] = path.split('.')\n return {\n key,\n subPath: subPaths.join('.'),\n }\n}\n\nexport default {\n set: (key, val) => {\n try {\n return store.set(key, val)\n } catch (e) {\n }\n },\n get: (path, df) => {\n const { key, subPath } = getKeySub(path)\n try {\n const rootVal = store.get(key)\n if (rootVal) {\n return subPath ? _.get(rootVal, subPath, df) : rootVal\n } else {\n return df\n }\n } catch (e) {\n }\n },\n remove: path => {\n const { key, subPath } = getKeySub(path)\n try {\n if (!subPath) return store.remove(key)\n const rootVal = store.get(key)\n if (rootVal) {\n _.unset(rootVal, subPath)\n store.set(key, rootVal)\n }\n } catch (e) {\n }\n },\n clearAll: () => {\n try {\n return store.clearAll()\n } catch (e) {\n }\n },\n}\n","export const env = suffix => process.env[`REACT_APP_${suffix}`]\n\nexport const isEnv = envName => env('ENV') === envName\n","import React from 'react'\nimport FormHelperText from '@mui/material/FormHelperText'\nimport makeStyles from '@mui/styles/makeStyles'\nimport { useFormikContext } from 'formik'\nimport _ from 'lodash'\n\nconst useStyles = makeStyles(({ palette }) => ({\n helperText: {\n display: 'block',\n color: palette.error.main,\n },\n}))\n\nexport default ({\n name, // formik field name\n text, // optional override message\n}) => {\n const classes = useStyles()\n const { errors, dirty } = useFormikContext()\n if(!dirty) return null\n let helperText = _.get(errors, name)\n if (!text) {\n if (!helperText) return null\n if (_.isPlainObject(helperText)) {\n const vals = _.values(helperText)\n if (_.every(vals, _.isString)) {\n helperText = vals.join('; ')\n } else {\n helperText = `One more values missing from ${name}`\n }\n }\n }\n return (\n \n {text || helperText}\n \n )\n}\n","import { call, cancel, fork, put, select, take, takeEvery } from 'redux-saga/effects'\nimport { push } from 'connected-react-router'\nimport actions from 'app/state/ducks/actions'\nimport isOnline from 'is-online'\nimport log from 'utils/logger'\nimport { getAndStoreConstants, inMaintenanceMode, setSiteContext } from 'utils/site-context'\nimport { getIntervalChannel } from 'utils/saga'\nimport {\n getMasterPass,\n getRole,\n getCanViewPHI,\n} from 'app/state/ducks/user/selectors'\nimport { loadActionItems } from 'app/state/ducks/lab/sagas'\nimport { getLocation } from 'app/state/ducks/router/selectors'\nimport * as Sentry from '@sentry/react'\nimport { isEnv } from 'utils/env'\nimport { login } from '../user/sagas'\nimport { isPerseusReachable, resolveErrorMessage } from 'utils/error-handling'\nimport qs from 'query-string'\nimport { i18init } from 'utils/internationalization'\nimport _ from 'lodash'\n\nfunction * initApp () {\n try {\n const location = yield select(getLocation)\n const { invitationId } = qs.parse(location.search)\n yield call(setSiteContext, { location, invitationId })\n yield call(getAndStoreConstants)\n yield call(i18init)\n if(inMaintenanceMode()) {\n yield put(actions.appinit.success())\n yield cancel()\n }\n yield fork(login)\n // appinit.success is called after successful or failed login in login saga, so that when you reload the app, it doesn't show the login page briefly if you're still logged in.\n while (yield take(actions.backgroundSync.start)) {\n const bgTask = yield fork(backgroundSync)\n yield take(actions.backgroundSync.stop)\n yield cancel(bgTask)\n }\n } catch (e) {\n yield put(actions.handleError({\n e,\n alertCfg: {\n title: 'Could not initialize the app.',\n },\n sentryCfg: {\n tags: {\n section: 'initSaga',\n },\n },\n }))\n }\n}\n\nexport function * watchInitApp () {\n yield takeEvery(actions.appinit.start, initApp)\n}\n\n/**\n * @return {IterableIterator<*|PutEffect>}\n */\nfunction * backgroundSync () {\n const channel = yield call(getIntervalChannel, 30) // poll every 30 seconds\n yield * sync()\n while (true) {\n yield take(channel)\n yield * sync()\n }\n}\n\nfunction * sync () {\n try {\n const canViewPHI = yield select(getCanViewPHI)\n if(canViewPHI) {\n yield * loadActionItems()\n }\n } catch (e) {\n log.error('system polling error', e)\n }\n}\n\nexport function * handleError ({\n payload: {\n e,\n alertCfg = {},\n alertOnly = false,\n sentryCfg,\n redirect,\n loggingIn = false,\n } = {},\n}) {\n const resStatus = e?.response?.status || e?.code\n const errorMessage = resolveErrorMessage(e)\n const masterPass = yield select(getMasterPass)\n const role = yield select(getRole)\n if(masterPass?.name) _.set(sentryCfg, 'tags.name', `${masterPass.name.first} ${masterPass.name.last.substring(0, 1)}`)\n _.set(sentryCfg, 'tags.isStaff', role ? 'yes' : 'no')\n _.set(sentryCfg, 'tags.role', role || 'none')\n const { alert } = actions.dialog\n // Handle lost internet connection:\n const online = yield call(isOnline)\n if(!online) {\n yield * networkErrorAlert({\n title: 'Cannot connect to internet.',\n message: 'Please check your connection and try again.',\n alertCfg,\n e,\n })\n yield cancel()\n }\n // Handle PERSEUS unreachable:\n const perseusReachable = yield call(isPerseusReachable)\n if(!perseusReachable) {\n const cfg = { ...sentryCfg }\n _.set(cfg, 'tags.networkError', 'api-unreachable')\n cfg.extra = {\n sentryCfg,\n alertCfg,\n }\n Sentry.captureException(e, cfg)\n yield * networkErrorAlert({\n title: 'Connectivity Issue',\n message: 'There may be an issue with the network. Please check signal strength and try again.',\n alertCfg,\n e,\n })\n yield cancel()\n }\n // Handle app out of date:\n if(e?.name === 'ChunkLoadError') {\n const { confirm } = actions.dialog\n yield put(confirm.ask({\n title: 'App Update Required',\n question: `${alertCfg?.message ? `${alertCfg.message} This is because this` : 'This'} app is out of date. Let’s update it now.`,\n yesButtonLabel: 'Okay',\n forceYes: true,\n }))\n yield put(actions.beginAppUpdate())\n yield cancel()\n }\n // Handle not authenticated/session expired::\n if(errorMessage === 'Authentication required') {\n if(!loggingIn) {\n alertCfg.signOutAfterClose = true\n yield * networkErrorAlert({\n title: 'Sign-In Expired',\n message: 'Sorry, but you need to sign in again to continue.',\n alertCfg,\n e,\n })\n }\n yield cancel()\n }\n // Handle forbidden errors:\n if(resStatus === 401) {\n yield * networkErrorAlert({\n title: 'Permission Error',\n message: 'Sorry, but you don\\'t have permission to do this.',\n alertCfg,\n e,\n })\n yield cancel()\n }\n // Handle Maintenance Mode:\n yield call(getAndStoreConstants)\n if(inMaintenanceMode()) {\n window.location.reload(true)\n yield cancel()\n }\n if(_.isEmpty(alertCfg)) {\n alertCfg = {\n title: 'Error.',\n message: errorMessage,\n }\n }\n const subTitleLines = [\n alertCfg.message,\n 'Please tell what you did right before this happened.',\n ]\n if(!isEnv('production')) subTitleLines.push(errorMessage)\n // Handle other errors with Sentry:\n Sentry.captureException(e, sentryCfg)\n if(isEnv('development') || alertOnly) {\n yield put(alert.open({\n ...alertCfg,\n error: e,\n }))\n if(isEnv('development')) {\n console.error(e)\n console.error(errorMessage)\n }\n } else {\n Sentry.showReportDialog({\n title: alertCfg.title,\n subtitle: subTitleLines.join(' '),\n successMessage: 'Your feedback has been sent. Thank you!',\n })\n }\n if(redirect) {\n yield put(push(redirect))\n }\n}\n\nexport function * watchHandleError () {\n yield takeEvery(actions.handleError, handleError)\n}\n\nfunction * networkErrorAlert ({\n title,\n message,\n alertCfg = {},\n e,\n}) {\n const { alert } = actions.dialog\n yield put(alert.open({\n ...alertCfg,\n title: title || alertCfg?.title || 'Error',\n message: alertCfg?.message ? [alertCfg?.message, message] : message,\n error: e,\n }))\n}","export const HEALTH_HISTORY_STATUS = {\n undefined: null,\n uninitialized: 'uninitialized',\n completed: 'completed',\n processing: 'processing',\n fail: 'failed',\n}\n\nexport const HEALTH_RECORDS_CELL_TYPES = {\n custom: 'custom',\n array: 'array',\n date: 'date',\n coverageOrder: 'coverageOrder',\n}\n\nexport const HEALTH_RECORDS_INSURANCE_COVERAGE_ORDER = ['Primary', 'Secondary', 'Tertiary']","import React from 'react'\nimport withStyles from '@mui/styles/withStyles'\nimport PersonIcon from '@mui/icons-material/Person'\nimport { useTheme } from '@mui/material/styles'\n\nexport default ({\n style,\n ...rest\n}) => {\n const { palette } = useTheme()\n const PersonIconStyled = withStyles({\n root: {\n ...style,\n color: palette.primary.dark,\n },\n })(PersonIcon)\n return (\n \n )\n}\n","import { client } from './client'\nimport { getLocalZoneName } from 'utils/temporal'\n\nexport const recordUserScanningUser = ({ scanneeId, locId }) => client().post('/gatekeeper/record-user-scanning-user', {\n scanneeId,\n locId,\n})\n\nexport const getGateKeeperScan = async ({ userId }) => {\n const response = await client().post('/gatekeeper/gate-keeper-scan', { userId, tz: getLocalZoneName() })\n let data = response?.data\n if (!data) return\n return data\n}\n","import IconButton from '@mui/material/IconButton'\nimport ArrowBackIcon from '@mui/icons-material/ArrowBack'\nimport Button from '@mui/material/Button'\nimport React from 'react'\nimport { useHistory } from 'react-router-dom'\nimport T from 'prop-types'\nimport makeStyles from '@mui/styles/makeStyles'\n\nconst useStyles = makeStyles(() => ({\n leftElement: {\n marginLeft: -12,\n marginRight: 20,\n },\n backLabel: {\n paddingLeft: 10,\n },\n})\n)\n\nconst BackButton = ({ back }) => {\n const { leftElement, backLabel } = useStyles()\n const history = useHistory()\n\n const clickFunc = () => (back === true || !back.url) ? history.goBack() : history.push(back.url)\n\n if (back === true || !back.label) {\n return (\n \n \n \n )\n }\n\n return (\n \n \n {back.label}\n \n )\n}\n\nBackButton.propTypes = {\n back: T.oneOfType([ // Causes a back button to be displayed upper-left. Overrides 'left' prop.\n T.bool, // If true, back button label is \"Back\" and calls props.goBack()\n T.shape({ // If this shape, a text button is displayed that goes to url\n label: T.string,\n url: T.string,\n }),\n ]),\n}\n\nexport default BackButton\n","import React from 'react'\nimport Typography from '@mui/material/Typography'\nimport { useTheme } from '@mui/material/styles'\nimport makeStyles from '@mui/styles/makeStyles'\nimport T from 'prop-types'\nimport useTranslateMapValues from '../../hooks/useTranslateMapValues'\nimport _ from 'lodash'\n\nconst useStyles = makeStyles(() => ({\n titleElement: {\n flexGrow: 1,\n },\n}))\n\nconst SceneTitle = ({\n title: { center, main, sub },\n compact,\n themeBg,\n}) => {\n const { palette } = useTheme()\n const { titleElement } = useStyles()\n const titles = useTranslateMapValues({\n obj: { main, sub },\n })\n return (\n \n {titles.main}\n {!_.isEmpty(titles.sub) && {titles.sub}}\n \n )\n}\n\nSceneTitle.propTypes = {\n themeBg: T.string,\n compact: T.bool,\n title: T.shape({\n main: T.oneOfType([T.string, T.element]),\n sub: T.oneOfType([T.string, T.element]),\n center: T.bool,\n }).isRequired,\n}\n\nexport default SceneTitle\n","import React from 'react'\nimport BackButton from 'app/views/layouts/Scene/SceneBackButton'\nimport SceneTitle from 'app/views/layouts/Scene/SceneTitle'\nimport Toolbar from '@mui/material/Toolbar'\nimport Divider from '@mui/material/Divider'\nimport T from 'prop-types'\nimport makeStyles from '@mui/styles/makeStyles'\n\nconst getPadding = (theme, compact = false) => compact ? 0 : 2\n\nconst useStyles = makeStyles(({ spacing }) => {\n const basePadding = getPadding({ spacing })\n return {\n headerNormal: {\n padding: spacing(1, 0),\n },\n headerCompact: {\n padding: spacing(0.5),\n },\n dividerNormal: {\n marginBottom: spacing(basePadding),\n },\n dividerCompact: {\n marginBottom: 0,\n },\n leftElement: {\n marginRight: spacing(2),\n },\n rightElement: {\n flexGrow: 1,\n marginRight: spacing(2),\n },\n }\n})\n\nconst SceneHeader = ({ compact, header, themeBg }) => {\n const { headerCompact, headerNormal, leftElement, rightElement, dividerCompact, dividerNormal } = useStyles()\n const {\n title,\n back,\n left,\n right,\n divider = true,\n } = header\n return (\n <>\n \n {back\n ? \n : left &&\n \n {left}\n }\n {title && }\n {\n right &&\n \n {right}\n \n }\n \n {divider && }\n \n )\n}\n\nSceneHeader.propTypes = {\n compact: T.bool,\n header: T.shape({\n title: T.shape({\n main: T.oneOfType([T.string, T.element]),\n sub: T.oneOfType([T.string, T.element]),\n center: T.bool,\n }),\n left: T.oneOfType([T.string, T.element]),\n right: T.oneOfType([T.string, T.element]),\n back: T.oneOfType([T.bool, T.object]),\n divider: T.bool,\n }).isRequired,\n themeBg: T.string,\n}\n\nexport default SceneHeader\n","import SceneLoadingProgress from 'app/views/components/SceneLoadingProgress'\nimport AutoSizer from 'react-virtualized-auto-sizer'\nimport React from 'react'\nimport makeStyles from '@mui/styles/makeStyles'\nimport T from 'prop-types'\n\nconst useStyles = makeStyles(() => ({\n scrollableContentOuterWrapper: {\n flexGrow: 1,\n },\n scrollableContentInnerWrapper: {\n overflowY: 'auto',\n WebkitOverflowScrolling: 'touch', // enables momentum-scrolling on iOS overflow elements\n },\n nonScrollableContent: {\n flexGrow: 0,\n flexBasis: 'content',\n },\n})\n)\n\nconst SceneScrollableContent = ({\n preScrollableContent,\n scrollableContent,\n scrollableContentLoading,\n postScrollableContent,\n}) => {\n const { nonScrollableContent, scrollableContentOuterWrapper, scrollableContentInnerWrapper } = useStyles()\n return (\n <>\n {preScrollableContent && (\n
\n {preScrollableContent}\n
\n )}\n
\n {scrollableContentLoading\n ? \n : (\n \n {\n parentSize => (\n \n {scrollableContent(parentSize)}\n
\n )\n }\n \n )}\n \n {postScrollableContent && (\n
\n {postScrollableContent}\n
\n )}\n \n )\n}\nSceneScrollableContent.propTypes = {\n preScrollableContent: T.element,\n scrollableContent: T.func, // will be provided width and height props\n scrollableContentLoading: T.bool,\n postScrollableContent: T.element,\n}\n\nexport default SceneScrollableContent\n","import React from 'react'\nimport SceneLoadingProgress from 'app/views/components/SceneLoadingProgress'\nimport SceneScrollableContent from 'app/views/layouts/Scene/SceneScrollableContent'\nimport T from 'prop-types'\n\nconst SceneContent = ({\n children,\n loading,\n themeBg,\n scrollableContent,\n preScrollableContent,\n scrollableContentLoading,\n postScrollableContent,\n}) => {\n if (loading) return (\n \n )\n\n if (scrollableContent) {\n return (\n \n )\n }\n\n return children || null\n}\n\nSceneContent.propTypes = {\n themeBg: T.string,\n loading: T.oneOfType([T.bool, T.string]),\n scrollableContent: T.func,\n preScrollableContent: T.element,\n scrollableContentLoading: T.bool,\n postScrollableContent: T.element,\n}\n\nexport default SceneContent\n","import React from 'react'\nimport T from 'prop-types'\nimport Box from '@mui/material/Box'\nimport { useTheme } from '@mui/material/styles'\nimport makeStyles from '@mui/styles/makeStyles'\nimport clsx from 'clsx'\nimport SceneHeader from 'app/views/layouts/Scene/SceneHeader'\nimport SceneContent from 'app/views/layouts/Scene/SceneContent'\nimport _ from 'lodash'\n\nconst getPadding = (theme, compact = false) => compact ? 0 : 2\n\nconst useStyles = makeStyles(({ spacing }) => {\n const basePadding = getPadding({ spacing })\n return {\n root: {\n flexGrow: 1,\n overflowY: 'auto',\n },\n rootNormal: {\n padding: spacing(0, basePadding, 2),\n },\n rootCompact: {\n padding: spacing(0, 0, 2),\n },\n }\n})\n\nconst defaultFlexProps = {\n flexDirection: 'column',\n}\n\nconst Scene = ({\n children,\n scrollableContent,\n compact,\n header,\n loading,\n preScrollableContent,\n scrollableContentLoading,\n postScrollableContent,\n themeBg,\n className,\n style = {},\n flexProps = {},\n}) => {\n const classes = useStyles()\n const { palette } = useTheme()\n if(scrollableContent) {\n flexProps.alignContent = 'stretch'\n }\n if(themeBg) {\n style.backgroundColor = _.get(palette, themeBg)\n }\n return (\n \n {header && }\n \n {children}\n \n \n )\n}\n\nScene.propTypes = {\n loading: T.oneOfType([\n T.bool, // If true, display loading spinner instead of children.\n T.string, // If string, display loading spinner with message.\n ]),\n header: T.object,\n preScrollableContent: T.element,\n scrollableContent: T.func, // will be provided width and height props\n scrollableContentLoading: T.bool,\n postScrollableContent: T.element,\n compact: T.bool,\n justifyContent: T.string,\n alignContent: T.string,\n themeBg: T.string, // dot-notation path of theme.palette color to use\n}\n\nScene.defaultProps = {\n loading: false,\n preScrollableContent: null,\n scrollableContent: null,\n postScrollableContent: null,\n alignContent: 'flex-start',\n}\n\nexport default Scene\n","import React from 'react'\nimport Loader from './Loader'\nimport Button from '@mui/material/Button'\nimport clsx from 'clsx'\nimport { noFormikProps } from 'utils/formik'\nimport { Link } from 'react-router-dom'\nimport makeStyles from '@mui/styles/makeStyles'\nimport useTranslateMapValues from '../../../hooks/useTranslateMapValues'\n\nconst useStyles = makeStyles(({ spacing }) => ({\n stacked: {\n marginTop: spacing(4),\n },\n fatButton: {\n height: spacing(8),\n borderRadius: spacing(1),\n },\n fatButtonLabel: {\n fontSize: '1.5rem',\n },\n gutterBottom: {\n marginBottom: spacing(4),\n },\n}))\n\nexport default ({\n label,\n loadingLabel,\n href,\n loading = false,\n stacked = false,\n fat = false,\n gutterBottom = false,\n className,\n variant = 'outlined',\n disabled = false,\n ...buttonProps\n}) => {\n const classes = useStyles()\n const trans = useTranslateMapValues({\n obj: {\n label,\n loadingLabel,\n },\n })\n const button = (\n \n {\n loading\n ? \n : trans.label\n }\n \n )\n if (href && !disabled) {\n return (\n \n {button}\n \n )\n } else {\n return button\n }\n}\n","// MUI SelectField wrapped for use with Formik\n\nimport React from 'react'\nimport { Field, useFormikContext } from 'formik'\nimport FormControl from '@mui/material/FormControl'\nimport { useTheme } from '@mui/material/styles'\nimport makeStyles from '@mui/styles/makeStyles'\nimport InputLabel from '@mui/material/InputLabel'\nimport { Select } from 'formik-mui'\nimport { getMenuItems } from 'app/views/components/form/formHelpers'\nimport _ from 'lodash'\nimport TextField from 'app/views/components/form/mui-formik/TextField'\nimport Chip from '@mui/material/Chip'\nimport HelperText from 'app/views/components/form/HelperText'\nimport useTranslateMapValues from '../../../hooks/useTranslateMapValues'\n\nconst useStyles = makeStyles(() => ({\n chips: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n chip: {\n margin: 2,\n },\n}))\n\nexport default ({\n name,\n itemData,\n otherChoiceName,\n otherChoiceLabel = 't:error:pleaseSpecify',\n label,\n multiple = false,\n inputVariant = 'outlined', // variant of the MUI text input\n formControlProps = {}, // props passed to FormControl\n required = false,\n disabled = false,\n inputProps = {}, // props passed to the MUI text input used to display selection\n placeholder, // optional placeholder text/object displayed in text field and is added as a disabled first item\n margin = 'dense',\n fullWidth,\n autoComplete,\n}) => {\n const { values } = useFormikContext()\n const classes = useStyles()\n const theme = useTheme()\n const labels = useTranslateMapValues({\n obj: {\n label,\n otherChoiceLabel,\n placeholder,\n },\n })\n const menuItems = getMenuItems({\n name,\n itemData,\n placeholder: labels.placeholder,\n otherChoiceName,\n multiple,\n values,\n theme,\n })\n _.assign(formControlProps, {\n variant: inputVariant,\n required,\n })\n _.assign(inputProps, {\n autoComplete,\n })\n let renderValue\n if (multiple) {\n renderValue = selected => (\n
\n {selected.map(v => (\n \n ))}\n
\n )\n }\n return (\n <>\n \n {/*{labels.label && {labels.label}}*/}\n \n {menuItems}\n \n \n \n {!multiple && _.get(values, name) === 'other' && (\n <>\n \n \n \n )}\n \n )\n}\n","import React from 'react'\nimport { FormikConsumer } from 'formik'\n\nexport default () => (\n \n \n Formik State\n \n \n {({ validationSchema, validate, onSubmit, errors, ...rest }) => (\n \n {JSON.stringify({\n errors,\n ...rest,\n }, null, 2)})}\n \n )}\n \n \n)\n","import {\n FormControlLabel,\n Switch,\n} from '@mui/material'\nimport FormikDebug from '../FormikDebug'\nimport React, { useState } from 'react'\nimport { isEnv } from 'utils/env'\n\nexport default () => {\n const [debug, setDebug] = useState(false)\n if (isEnv('production')) return null\n return (\n <>\n setDebug(e.target.checked)} name='debug' />}\n label='Debug'\n />\n {debug && }\n \n )\n}\n","import React from 'react'\nimport DeluxeButton from 'app/views/components/buttons/DeluxeButton'\nimport _ from 'lodash'\nimport { useFormikContext } from 'formik'\nimport useDialogs from '../../../hooks/useDialogs'\n\nexport default ({\n type,\n label = 't:common:submit',\n stacked = true,\n disabled,\n op,\n confirmConfig,\n ...otherProps\n}) => {\n const {\n isValid,\n dirty,\n setFieldValue,\n submitForm,\n isSubmitting,\n values,\n } = useFormikContext()\n const { confirm } = useDialogs()\n const submit = () => {\n if (op) setFieldValue('op', op)\n return submitForm()\n }\n const buttonProps = {\n type: type || (op || confirmConfig ? 'button' : 'submit'),\n label,\n name: label,\n disabled: _.isBoolean(disabled)\n ? disabled\n : (!dirty || !isValid || isSubmitting),\n loading: isSubmitting && (!op || op === values.op),\n stacked,\n ...otherProps,\n }\n if (op || confirmConfig) {\n buttonProps.onClick = async () => {\n if (confirmConfig) {\n const confirmed = await confirm(confirmConfig)\n if (confirmed) return submit()\n } else {\n return submit()\n }\n }\n }\n return \n}\n","import MenuItem from '@mui/material/MenuItem'\nimport _ from 'lodash'\nimport React from 'react'\nimport { getDivisionNamesById, getOrgLocationNamesByLocId } from 'utils/org'\n\n/**\n * Return set of MenuItem components.\n *\n * @param {string=} name\n * @param {object} itemData - object with keys as values and values as labels\n * @param {string=} placeholder - displayed in select box before selection made\n * @param {string=} otherChoiceName - adds 'other' value and label\n * @param {boolean=} multiple - is a multi-select\n * @param {object=} values - form's values\n * @param {object=} theme - MUI theme\n * @return {element[]}\n */\nexport const getMenuItems = ({\n name,\n itemData,\n placeholder,\n otherChoiceName,\n multiple = false,\n values,\n theme,\n}) => {\n // use the itemData keys as the values, and the itemData values as the displayed text, of the menu items\n const itemPropSets = _.map(itemData, (val, key) => ({\n key: key.toString(),\n value: key,\n label: val,\n style: getItemStyles({\n name,\n value: key,\n values,\n multiple,\n theme,\n }),\n }))\n if(placeholder) {\n itemPropSets.unshift({\n key: placeholder,\n value: '',\n label: placeholder,\n disabled: true,\n },\n )\n }\n if(otherChoiceName) {\n itemPropSets.push({\n key: 'other',\n value: 'other',\n label: 'Other',\n })\n }\n return itemPropSets.map(({\n key,\n label,\n ...menuItemProps\n }) => (\n \n {label}\n \n ))\n}\n\nconst getItemStyles = ({\n name,\n value,\n values,\n multiple,\n theme,\n}) => {\n if(!multiple || !name) return\n const selectedValues = _.get(values, name)\n const selected = _.some(selectedValues, v => v === value)\n return {\n backgroundColor: selected\n ? theme.palette.grey[200]\n : 'transparent',\n fontWeight: selected\n ? theme.typography.fontWeightBold\n : theme.typography.fontWeightRegular,\n }\n}\n\nconst addAllSelectionItem = (result, withAll) => {\n if(!!withAll || _.isString(withAll)) return {\n ALL: _.isString(withAll) ? withAll : 'ALL',\n ...result,\n }\n return result\n}\n\nexport const getOrgDivisionSelectionItemData = ({\n withAll,\n filters,\n} = {}) => {\n let result = getDivisionNamesById(filters)\n return addAllSelectionItem(result, withAll)\n}\n\nexport const getOrgLocationSelectionItemData = ({\n withAll = false,\n filters,\n} = {}) => {\n let result = getOrgLocationNamesByLocId(filters)\n return addAllSelectionItem(result, withAll)\n}\n\nexport const getOrgWarehouseSelectionItemData = ({\n withAll = false,\n filters,\n} = {}) => {\n let result = getOrgLocationNamesByLocId(filters)\n return addAllSelectionItem(result, withAll)\n}\n","import getCommonSchemas from 'schemas/commonSchemas'\nimport { isValid } from '@sustainhawaii/heal-schemas'\nimport store from 'utils/local-storage'\nimport { createSelector } from 'reselect'\nimport {\n adminSalesMgrDashBoardPath,\n personalDashBoardPath,\n} from 'config/const.json'\nimport _ from 'lodash'\nimport qs from 'query-string'\nimport { systemRoles } from 'app/components/Drawer/DrawerContent/Navigation/feature-config'\n\nexport const getUser = state => state.user || {}\nexport const getUserId = state => getUser(state).userId\nexport const getLoggedIn = state => !!getUserId(state)\nexport const getLoggingIn = state => getUser(state).loggingIn\n\nexport const getPasses = state => getUser(state).passes || {}\nexport const getPass = userId => createSelector(\n [getPasses],\n passes => passes[userId],\n)\nexport const getMasterPass = state => {\n const passes = getPasses(state)\n return passes[getUserId(state)]\n}\nexport const getCurrentPassId = state => getUser(state).currentPassId\nexport const getEditingPass = state => getUser(state).editingPass\nexport const canAddPasses = state => Object.keys(getPasses(state)).length - 1 < store.get('constants.MAX_COMPANION_PASSES')\nexport const getRole = state => getUser(state).role\nexport const getEthnicity = state => getUser(state).ethnicity\nexport const getIsMedStaff = state => ['Admin', 'Account Owner', 'HCP'].includes(getRole(state))\nexport const getIsSalesManager = state => ['Sales Manager'].includes(getRole(state))\nexport const getCanViewCoreAdmin = state => ['Admin', 'Account Owner'].includes(getRole(state))\nexport const getCanViewPHI = state => ['Admin', 'Account Owner', 'HCP', 'Analyst X'].includes(getRole(state))\nexport const getCanUseAdmin = state => {\n const role = getRole(state)\n if(!role) return false\n if(systemRoles.includes(role)) {\n const { divIds, locIds } = getUser(state)\n return ['Admin', 'Account Owner', 'Sales Manager', 'Prospect AO'].includes(role) || (['HCP', 'Analyst R', 'Analyst X'].includes(role) && !(_.isEmpty(divIds) && _.isEmpty(locIds)))\n }\n return true // for custom roles - access is defined by permissions\n}\nexport const getUserPermissions = state => getUser(state).permissions\nexport const getAdminFilters = state => {\n if(['Admin', 'Account Owner'].includes(getRole(state))) return {}\n const { divIds, locIds } = getUser(state)\n return { divIds, locIds }\n}\nexport const isMasterPassComplete = state => {\n const masterPass = getMasterPass(state)\n return isValid(getCommonSchemas().pass, masterPass)\n}\n\nexport const getPostLoginPath = state => {\n const landing = store.get('landing')\n if(landing) {\n // If there is a query param, append that too to the path to retrieve the desired resource\n if(landing.search) return `${landing.pathname}${landing.search}`\n return landing.pathname\n }\n return getDashBoardPath(state)\n}\n\nexport const getIsCurrentMasterHealthId = createSelector(\n [getUserId, getCurrentPassId],\n (userId, currentPassId) => userId === currentPassId,\n)\n\n// These are for development experimentation:\nlet dashBoardPathOverride = null\ndashBoardPathOverride = false // To keep previous line from switching to const when formatting code.\n\n// dashBoardPathOverride = '/admin/tests-list'\n// dashBoardPathOverride = '/admin/patients'\n// dashBoardPathOverride = '/admin/dashboard'\n// dashBoardPathOverride = '/admin/lab-account-manager'\n// dashBoardPathOverride = '/admin/test-bed'\n// dashBoardPathOverride = '/admin/division-manager'\n// dashBoardPathOverride = '/lab/scheduled-visits'\n// dashBoardPathOverride = '/personal/my-results'\n// dashBoardPathOverride = '/lab/visit?patientId=6268df4e6be831b9e0073288'\n// dashBoardPathOverride = '/lab/visit/?testId=ca03392b-4313-4d38-9c28-e4f6eff5baaf' // pending test\n// dashBoardPathOverride = '/personal/intake-forms'\n// dashBoardPathOverride = '/personal/intake-form?userId=614ed24b63fab65cce935547'\n// dashBoardPathOverride = '/lab/visit?patientId=61c29653b2386e2d058525c0' // Master\n// dashBoardPathOverride = '/lab/visit?patientId=60b344ea2aff5510334b4e3c' // Companion\n// dashBoardPathOverride = '/lab/visit/?testId=9fded531-ec5a-45f2-84fa-6167dd737552'\n// dashBoardPathOverride = '/personal/intake-form?userId=60545d8f63e63458cb2bdfb3'\n// dashBoardPathOverride = '/personal/intake-form?formId=60d25082fccab52a731c3ad2'\n// dashBoardPathOverride = '/scheduling/select-slot?userId=60545d8f63e63458cb2bdfb3&locId=ChIJkyrqXbjHwoAR1bJ76zx89B8&visitType=test'\n// dashBoardPathOverride = '/gate-keeper?userId=60b344ea2aff5510334b4e3c'\n\nexport const getDashBoardPath = (state) => {\n if(dashBoardPathOverride) return dashBoardPathOverride\n if(getCanUseAdmin(state)) {\n if(getIsSalesManager(state)) {\n return adminSalesMgrDashBoardPath\n }\n }\n return personalDashBoardPath\n}\n\nexport const getVisitSchedulerHrefGetter = createSelector(\n [getUserId, getPasses],\n (userId, passes) => ({\n locId,\n visitType,\n selfTest = false,\n }) => {\n const { path, params } = _.size(passes) < 2\n ? {\n path: selfTest ? '/lab/visit' : '/Scheduling/select-slot',\n params: selfTest ? { patientId: userId } : { userId },\n }\n : {\n path: '/Scheduling/select-user',\n params: {},\n }\n const queryString = qs.stringify({ ...params, locId, visitType, selfTest })\n if(!locId) return `/scheduling/select-scheduling-type?${queryString}`\n return `${path}?${queryString}`\n },\n)\n\nexport const getNotificationList = (state) => {\n return state\n}\n\nexport const getNotifications = createSelector([getNotificationList], state => state.notifications)\n\nexport const getMyOrg = (state) => state.myOrg","import { client } from 'api/client'\nimport { getAndStoreConstants } from 'utils/site-context'\n\n/**\n * @return {Promise}\n */\nexport const saveDivision = async ({ json, ...rest }) => {\n const result = await client().post('/admin/divisions', {\n ...json,\n ...rest,\n })\n await getAndStoreConstants({ noOrgCache: true, noLocCache: true })\n return result?.data\n}\n\n/**\n * @return {Promise}\n */\nexport const getOrgEventTypes = async () => {\n const response = await client().get('/admin/calendly-event-types')\n return response?.data\n}\n\n/**\n * Return array of info objects of labs that have orderables from CHC\n * @return {Promise}\n */\nexport const getLabs = async () => {\n const response = await client().get('/admin/labs')\n return response?.data\n}\n\nexport const saveLabAccount = async data => {\n const response = await client().post(`/admin/labAccount`, data)\n return response?.data\n}\n\nexport const deleteLabAccounts = async ids => {\n const response = await client().post(`/admin/deleteLabAccounts`, { ids })\n return response?.data\n}\n\nexport const getLabAccounts = async () => {\n const response = await client().get('/admin/labAccounts')\n return response?.data\n}\n\nexport const getAllOrgMap = async() => {\n const result = await client().get('/domain-org-map')\n return result?.data\n}\n\n/**\n * @return {Promise}\n */\nexport const updateTheme = async ({ json, ...rest }) => {\n const result = await client().post('/domain-org-map/update-theme', {\n ...json,\n ...rest,\n })\n return result?.data\n}\n\n/*\nTEST BED FUNCTIONS:\n */\n\nexport const getOrderableInfo = async () => {\n const result = {}\n\n // AEL:\n let response = await client().post('/admin/test-bed-orderable-info', {\n labObjId: '13089285',\n orderCode: 'U696',\n })\n result.ael = response.data\n\n // SYNERGY:\n // response = await client().post('/admin/test-bed-orderable-info', {\n // labObjId: '3003823717',\n // orderCode: 'GEN_COVID19',\n // })\n // result.synergy = response.data\n\n // response = await client().post('/admin/test-bed-orderable-info', {\n // labObjId: '25667019',\n // orderCode: '7305',\n // })\n // result.clh = response?.data\n return result\n}\n","import React from 'react'\nimport SvgIcon from '@mui/material/SvgIcon'\n\nexport default props => (\n \n \n \n)\n","import ReactMarkdown from 'react-markdown'\nimport React from 'react'\nimport makeStyles from '@mui/styles/makeStyles'\nimport useTranslateValue from '../hooks/useTranslateValue'\n\nconst useStyles = makeStyles(({ typography }) => ({\n md: {\n '& > strong, & > p > strong, & > a > strong, & > p > a > strong': {\n fontWeight: typography.fontWeightBold,\n },\n '& > h6': {\n fontWeight: typography.fontWeightBold,\n },\n '& > h5': {\n fontWeight: typography.fontWeightBold,\n },\n '& > h4': {\n fontWeight: typography.fontWeightBold,\n },\n '& > h3': {\n fontWeight: typography.fontWeightBold,\n },\n '& > h2': {\n fontWeight: typography.fontWeightBold,\n },\n '& > h1': {\n fontWeight: typography.fontWeightBold,\n },\n '& > p': {\n fontWeight: typography.fontWeightRegular,\n },\n },\n}))\n\nexport default ({\n markdown,\n className,\n style,\n}) => {\n const classes = useStyles()\n const markdownT = useTranslateValue(markdown)\n return (\n \n \n {markdownT}\n \n \n )\n}\n","import React from 'react'\nimport Box from '@mui/material/Box'\nimport { Typography, useTheme } from '@mui/material'\nimport makeStyles from '@mui/styles/makeStyles'\nimport clsx from 'clsx'\nimport _ from 'lodash'\nimport useTranslateValue from '../../hooks/useTranslateValue'\n\nconst directionConfig = {\n right: {\n flexDirection: 'row',\n marginType: 'marginRight',\n },\n left: {\n flexDirection: 'row-reverse',\n marginType: 'marginLeft',\n },\n down: {\n flexDirection: 'column',\n marginType: 'marginBottom',\n },\n up: {\n flexDirection: 'column-reverse',\n marginType: 'marginTop',\n },\n}\n\nconst iconMarginSizes = {\n small: 0.5,\n large: 1,\n huge: 1.25,\n}\n\nconst useStyles = makeStyles(() => ({\n iconSmall: {\n fontSize: 26,\n },\n textSmall: {\n fontSize: 14,\n },\n iconLarge: {\n fontSize: 52,\n },\n textLarge: {\n fontSize: 16,\n },\n iconHuge: {\n fontSize: 58,\n },\n textHuge: {\n fontSize: 18,\n },\n}))\n\nconst getIconStyle = ({ size, direction, spacing }) => ({\n [directionConfig[direction].marginType]: spacing(iconMarginSizes[size]),\n})\n\nexport default ({\n Icon,\n text,\n size = 'small',\n themeColor,\n styleColor,\n iconClassName,\n direction = 'right',\n ...props\n}) => {\n const { spacing } = useTheme()\n const classes = useStyles()\n const textT = useTranslateValue(text)\n const classSuffix = _.capitalize(size)\n const iconClass = clsx(classes[`icon${classSuffix}`], iconClassName)\n const textClass = classes[`text${classSuffix}`]\n const iconStyle = getIconStyle({ size, direction, spacing })\n return (\n \n \n \n {textT}\n \n \n )\n}\n","import React from 'react'\nimport SvgIcon from '@mui/material/SvgIcon'\n\nexport default props => (\n \n \n \n)\n","import SelectField from '../../../../../../components/form/mui-formik/SelectField'\nimport React from 'react'\nimport AnswerMessages from './AnswerMessages'\n\nexport default ({\n name,\n ...props\n}) => {\n return (\n <>\n \n \n \n )\n}\n","import { useFormikContext } from 'formik'\nimport { Box } from '@mui/material'\nimport _ from 'lodash'\nimport MarkDownContainer from '../../../../../../components/MarkDownContainer'\nimport { getIntakeFormConfigProperty } from '../../../../../../../../utils/intake-form'\nimport { useMemo } from 'react'\nimport { str2bool } from '@sustainhawaii/object-utils'\n\nexport default ({\n name,\n}) => {\n const { values } = useFormikContext()\n const answer = _.get(values, name)\n const messages = useMemo(\n () => {\n const answerMessages = getIntakeFormConfigProperty({ path: 'answerMessages', df: [] })\n return _.chain(answerMessages)\n .filter(({\n path,\n answers,\n }) => path === name && (answers.includes(answer) || answers.includes(str2bool(answer))))\n .map('message')\n .value()\n }, [name, answer])\n if(_.isEmpty(messages)) return null\n return (\n \n {_.map(messages, (message, i) => (\n \n ))}\n \n )\n}\n","import LinearProgress from '@mui/material/LinearProgress'\nimport withStyles from '@mui/styles/withStyles'\n\nexport default withStyles(({ palette }) => ({\n root: {\n height: 10,\n borderRadius: 5,\n },\n colorPrimary: {\n backgroundColor: palette.grey[palette.mode === 'light' ? 200 : 700],\n },\n bar: {\n borderRadius: 5,\n backgroundColor: palette.secondary.main,\n },\n}))(LinearProgress)\n","import { createSlice } from '@reduxjs/toolkit'\nimport * as Cookies from 'js-cookie'\n\nconst auth = createSlice({\n name: 'auth',\n initialState: {\n cookieConsent: Cookies.get('CookieConsent'),\n },\n reducers: {\n consentToCookies (state) {\n state.cookieConsent = true\n },\n },\n})\n\nconst { actions, reducer } = auth\n\nexport const { consentToCookies } = actions\n\nexport default reducer\n","import { createSlice } from '@reduxjs/toolkit'\n\nconst gatekeeper = createSlice({\n name: 'gatekeeper',\n initialState: {\n divId: '',\n locId: '',\n },\n reducers: {\n setDivId (state, { payload }) {\n state.divId = payload\n },\n setLocId (state, { payload }) {\n state.locId = payload\n },\n },\n})\n\nconst { actions, reducer } = gatekeeper\n\nexport const { setDivId, setLocId } = actions\n\nexport default reducer\n","export const getAuth = (state) => state.auth\nexport const getCookieConsent = (state) => getAuth(state).cookieConsent\n","import { createSelector } from '@reduxjs/toolkit'\n\nexport const getGatekeeper = (state) => state.gatekeeper\nexport const getDivId = createSelector([getGatekeeper], ({ divId }) => divId)\nexport const getLocId = createSelector([getGatekeeper], ({ locId }) => locId)\n","import PropTypes from 'prop-types'\nimport { forwardRef } from 'react'\n\n// material-ui\nimport { useTheme } from '@mui/material/styles'\nimport { Card, CardContent, CardHeader, Divider, Typography } from '@mui/material'\n\n// header style\nconst headerSX = {\n p: 2.5,\n '& .MuiCardHeader-action': { m: '0px auto', alignSelf: 'center' },\n}\n\n// ==============================|| CUSTOM - MAIN CARD ||============================== //\n\nconst MainCard = forwardRef(\n (\n {\n border = true,\n boxShadow,\n children,\n content = true,\n contentSX = {},\n darkTitle,\n divider = true,\n elevation,\n secondary,\n shadow,\n sx = {},\n title,\n codeHighlight,\n ...others\n },\n ref,\n ) => {\n const theme = useTheme()\n boxShadow = theme.palette.mode === 'dark' ? boxShadow || true : boxShadow\n\n return (\n \n {/* card header and action */}\n {!darkTitle && title && (\n \n )}\n {darkTitle && title && (\n {title}} action={secondary} />\n )}\n\n {/* content & header divider */}\n {title && divider && }\n\n {/* card content */}\n {content && {children}}\n {!content && children}\n\n \n )\n },\n)\n\nMainCard.propTypes = {\n border: PropTypes.bool,\n boxShadow: PropTypes.bool,\n contentSX: PropTypes.object,\n darkTitle: PropTypes.bool,\n divider: PropTypes.bool,\n elevation: PropTypes.number,\n secondary: PropTypes.node,\n shadow: PropTypes.string,\n sx: PropTypes.object,\n title: PropTypes.string,\n codeHighlight: PropTypes.bool,\n content: PropTypes.bool,\n children: PropTypes.node,\n}\n\nexport default MainCard","import React from 'react'\nimport SvgIcon from '@mui/material/SvgIcon'\n\nexport default props => (\n \n \n \n)\n","import _ from 'lodash'\nimport { DateTime } from 'luxon'\nimport prettyMs from 'pretty-ms'\n\n/**\n * Return a luxon DateTime instance from either a js Date, object, ISO string, or milliseconds\n *\n * @param {*} val\n * @param {object=} opts\n * @param {string=} opts.tz - if set, setZone with it\n * @param {boolean=} opts.utc - if true, convert to UTC\n * @param {boolean=} opts.iso - if true, convert to ISO string\n * @param {boolean=} opts.isoDate - if true, convert to ISO date-only string\n * @return {DateTime|string}\n */\nexport function getLuxonDateTime (val, opts = {}) {\n const { utc = false, iso = false, isoDate = false, tz } = opts\n let dt\n if(val instanceof DateTime) {\n dt = val\n } else if(val instanceof Date) {\n dt = DateTime.fromJSDate(val)\n } else if(_.isPlainObject(val)) {\n dt = DateTime.fromObject(val)\n } else if(_.isString(val)) {\n dt = DateTime.fromISO(val)\n } else if(_.isFinite(val)) {\n dt = DateTime.fromMillis(val)\n } else {\n dt = DateTime.local()\n }\n if(tz) dt = dt.setZone(tz)\n if(utc) dt = dt.toUTC()\n if(iso) dt = dt.toISO()\n if(isoDate) dt = dt.toISODate()\n return dt\n}\n\nexport const getNow = DateTime.now\n\nexport function getDateDiff (from, to, units) {\n const dFrom = getLuxonDateTime(from)\n const dTo = getLuxonDateTime(to)\n return Math.floor(dTo.diff(dFrom, units)[units])\n}\n\nexport function getAgeFromBirthDate (birthDate) {\n return getDateDiff(birthDate, getNow(), 'years')\n}\n\nexport function getNowUtcIso () {\n return DateTime.utc().toISO()\n}\n\nexport function isValidISO (str) {\n const dt = DateTime.fromISO(str)\n return isValidLuxonDateTime(dt)\n}\n\nexport function isValidLuxonDateTime (val) {\n return val instanceof DateTime && !val.invalid\n}\n\n/**\n * Return short date in localized format.\n *\n * @param {Date|object|string=} dateTime\n * @param {boolean} localized\n * @param {boolean} withTZ\n * @returns {string}\n */\nexport const getPrettyDate = ({\n dateTime,\n tz,\n withTZ = false,\n localized = false,\n}) => {\n const dt = getLuxonDateTime(dateTime, { tz })\n if(localized) return dt.toLocaleString(DateTime.DATE_SHORT)\n return dt.toFormat(withTZ ? 'L/d/yy ZZZZ' : 'L/d/yy')\n}\n\nexport const getPrettyDateTime = ({\n dateTime,\n tz,\n withTZ = false,\n localized = false,\n}) => {\n const dt = getLuxonDateTime(dateTime, { tz })\n if(localized) {\n const timeFormat = withTZ ? DateTime.TIME_WITH_SHORT_OFFSET : DateTime.TIME_SIMPLE\n return `${dt.toLocaleString(DateTime.DATE_SHORT)}, ${dt.toLocaleString(timeFormat)}`\n }\n return dt.toFormat(withTZ ? 'L/d/yy, h:mm a ZZZZ' : 'L/d/yy, h:mm a')\n}\n\nexport const getPrettyTime = ({\n dateTime,\n tz,\n withTZ = false,\n}) => {\n const dt = getLuxonDateTime(dateTime, { tz })\n const timeSimple = dt.toLocaleString(DateTime.TIME_SIMPLE)\n return withTZ ? `${timeSimple} ${dt.toFormat('ZZZZ')}` : timeSimple\n}\n\nexport const getDateISOString = ({\n dateTime,\n tz,\n withTZ = false,\n}) => getLuxonDateTime(dateTime, { tz }).toFormat(withTZ ? 'yyyy-LL-dd ZZZZ' : 'yyyy-LL-dd')\n\n/**\n * Return object with UTC timestamps of the start and end\n * of the specified unit of time for the provided date.\n *\n * The server stores all datetimes in UTC,\n * so this converts local time to UTC for the server.\n *\n * @example\n * parameters:\n * startDate = '2020-01-20'\n * endDate = '2020-01-22'\n * unit = 'day'\n * returns:\n * {\n * start: '2020-01-20T10:00:00.000Z'\n * end: '2020-02-01T09:59:59.999Z'\n * }\n *\n * @param {Date|object|string} startDate - anything luxon can parse\n * @param {Date|object|string} endDate - anything luxon can parse\n * @param {string} unit - e.g.: 'day', 'week', ...\n * @param {string=} tz - timezone in IANA format\n * @return {object}\n */\nexport const getTimePeriodRange = ({\n startDate,\n endDate,\n unit,\n tz,\n}) => {\n startDate = convertToStandardDate(startDate)\n endDate = convertToStandardDate(endDate)\n let t0 = getLuxonDateTime(startDate)\n let t1 = getLuxonDateTime(endDate)\n if(tz) {\n t0 = t0.setZone(tz)\n t1 = t1.setZone(tz)\n }\n return {\n startTime: t0.startOf(unit).toISO(),\n endTime: t1.endOf(unit).toISO(),\n }\n}\n\nexport const getDateRangeString = (d1, d2, sep) => [d1, d2].map(getAnniversaryDateISO).join(sep)\n\n/**\n *\n * @param {*} dateTime - representation of a timestamp\n * @param {boolean} compact - if true, returns \"7d\" instead of \"7 days\"\n * @return {string}\n */\nexport const getLocalTimeAgo = ({ dateTime, compact = false }) => {\n const from = getLuxonDateTime(dateTime)\n const to = DateTime.now()\n return prettyMs(getDateDiff(from, to, 'seconds') * 1000, { compact })\n}\n\n/**\n * Convert a UTC date-time to '1989-03-12' without being affected by timezone.\n * For prepping to send to API.\n *\n * @param {date} dateTime - date-only portion of ISO date.\n * @return {string}\n */\n\nexport const getAnniversaryDateISO = dateTime => getLuxonDateTime(dateTime, { isoDate: true })\n\nconst timeZoneNameFormats = {\n acronym: 'ZZZZ', // EST\n IANA: 'z', // America/New_York\n full: 'ZZZZZ', // Eastern Standard Time\n}\nexport const getLocalZoneName = (format = 'IANA') => getNow().toFormat(timeZoneNameFormats[format])\n\n/**\n * Reformat YYYY-MM-DD to m/d/yyyy without Luxon (to prevent timezone shifting)\n *\n * @param isoDate\n * @return {string}\n */\nexport const getPrettyDateFromISO = isoDate => {\n if(!_.isString(isoDate) || isoDate.length < 10) return ''\n const [y, m, d] = isoDate.substr(0, 10).split('-')\n if(!y || !m || !d) return ''\n return `${_.trimStart(m, '0')}/${_.trimStart(d, '0')}/${y}`\n}\n\nexport const getStrippedDateFromISO = isoDate => isoDate.replace(/-/g, '').substr(0, 8)\n\n/**\n * This method is used to covert chrome, safari , firefox all browsers to one time\n *\n * @param date\n * @returns {DateTime}\n */\nexport const convertToStandardDate = ( date ) => {\n let currentDateTime = new Date()\n if(date){\n if (typeof(date) === 'string') {\n date = DateTime.fromISO(date)\n }\n // always keep the standard time whether firefox/chrome/safari\n date = date.set({ hour: 15 }).set({ minutes: 25 }).set({seconds : 0})\n }\n return date\n}\n","import { client } from './client'\n\n/**\n * Post phone number.\n *\n * @return {Promise}\n */\nexport const startLogin = async params => {\n const response = await client().post('/auth/start', params)\n return response?.data\n}\n/**\n * Post OTP.\n *\n * @return {Promise}\n */\nexport const verifyLogin = params => client().post('/auth/verify', params)\n\nexport const logOut = async () => {\n await client().get('/auth/logout')\n}\n\n/**\n * @param {CovidTest} test\n * @return {Promise}\n */\nexport const createTest = async test => {\n const response = await client().post('/lab/test', test)\n return response?.data\n}\n","import CircularProgress from '@mui/material/CircularProgress'\nimport Box from '@mui/material/Box'\nimport React from 'react'\nimport makeStyles from '@mui/styles/makeStyles'\n\nconst useStyles = makeStyles(({ spacing }) => ({\n text: {\n paddingRight: spacing(0.25),\n },\n}))\n\nexport default ({\n text = '',\n fat = false,\n}) => {\n const classes = useStyles()\n return (\n \n {text}\n \n \n )\n}\n","// ==============================|| OVERRIDES - TYPOGRAPHY ||============================== //\n\nexport default function Typography() {\n return {\n MuiTypography: {\n styleOverrides: {\n root :{\n fontWeight : 500,\n lineHeight: 1.17,\n },\n gutterBottom: {\n marginBottom: 12\n }\n }\n }\n }\n}\n","import React, { lazy } from 'react'\nimport { Route } from 'react-router-dom'\nimport { connectedRouterRedirect } from 'redux-auth-wrapper/history4/redirect'\nimport { routerActions } from 'connected-react-router'\nimport SuspenseAndLoader from 'app/views/components/SuspenseAndLoader'\nimport SceneLoadingProgress from 'app/views/components/SceneLoadingProgress'\nimport { configureStore } from 'app/state/store'\nimport actions from 'app/state/ducks/actions'\nimport {\n getDashBoardPath,\n getLoggedIn,\n getRole,\n getUserPermissions,\n} from 'app/state/ducks/selectors'\nimport withProps from 'recompose/withProps'\nimport { compose } from 'recompose'\nimport { isNonEmptyArray } from '@sustainhawaii/object-utils'\nimport _ from 'lodash'\nimport { systemRoles } from 'app/components/Drawer/DrawerContent/Navigation/feature-config'\n\nconst reduxStore = configureStore()\n\n/**\n * Wrap a route with this if you have to be logged in to view it.\n */\nconst withAuthenticationRequired = connectedRouterRedirect({\n redirectPath: '/',\n redirectAction: routerActions.replace,\n authenticatedSelector: getLoggedIn,\n AuthenticatingComponent: SceneLoadingProgress,\n wrapperDisplayName: 'withAuthenticationRequired',\n})\n\nconst checkRouteAccess = ({ state, userRoles, features }) => {\n const role = getRole(state)\n const permissions = getUserPermissions(state)\n\n if(systemRoles.includes(role)) {\n return userRoles.includes(role)\n } else {\n const allowedFeatures = _.chain(permissions).map(perm => {\n if(perm.view) { return perm.featureName }\n }).compact().value()\n\n return _.intersection(allowedFeatures, features)?.length > 0\n }\n}\n\n/**\n * Wrap a route with this if you have to have a specific user role to view it.\n */\nconst withUserRolesRequired = ({ userRoles, features }) => connectedRouterRedirect({\n redirectPath: getDashBoardPath,\n redirectAction: routerActions.replace,\n authenticatedSelector: state => checkRouteAccess({ state, userRoles, features }),\n AuthenticatingComponent: SceneLoadingProgress,\n wrapperDisplayName: 'withUserRolesRequired',\n})\n\nconst getRouteEnhancers = ({\n authRequired = false,\n userRoles = [],\n features = [],\n commonProps = {},\n routeSpecificProps = {},\n}) => {\n const enhancers = []\n if(isNonEmptyArray(userRoles) || isNonEmptyArray(features)) {\n authRequired = true\n enhancers.push(withUserRolesRequired({ userRoles, features }))\n }\n // Determine the user wrapper if any:\n if(authRequired) {\n enhancers.push(withAuthenticationRequired)\n }\n const extraRouteProps = {\n ...commonProps,\n ...routeSpecificProps,\n }\n if(!_.isEmpty(extraRouteProps)) {\n enhancers.push(withProps(extraRouteProps))\n }\n return enhancers\n}\n\nconst getRouteFromConfig = ({\n routeConfig: {\n path,\n component,\n exact,\n authRequired,\n userRoles,\n features,\n ...routeSpecificProps\n },\n baseRoutePath,\n routeKey,\n ...rest\n}) => {\n if(!_.isString(path) && !_.isArray(path)) {\n path = baseRoutePath\n }\n const enhancers = getRouteEnhancers({\n authRequired,\n userRoles,\n features,\n routeSpecificProps,\n ...rest,\n })\n\n const EnhancedSuspenseAndLoader = compose(...enhancers)(SuspenseAndLoader)\n return (\n (\n getComponent(component))}\n {...routerProps}\n />\n )}\n />\n )\n}\n\nconst getComponent = component => {\n return new Promise((resolve, reject) => {\n component().then(resolve).catch(error => {\n if(error?.name === 'ChunkLoadError') {\n reduxStore.dispatch(actions.handleError({ e: error }))\n resolve(null)\n return\n }\n reject(error)\n })\n })\n}\n\n/**\n * Return array of Route elements.\n *\n * @param {object} params\n * @param {object[]} params.routeConfigs\n * @param {string=} params.baseRoutePath - used along with the route config object's name prop to build path if missing\n * @param {object=} params.commonProps - props to pass to all components rendered in routes.\n * @return {Route[]}\n */\nexport const getRoutesFromConfigs = ({\n routeConfigs,\n ...rest\n}) => _.chain(routeConfigs).filter('enabled').map((routeConfig, routeKey) => getRouteFromConfig({\n routeConfig,\n routeKey,\n ...rest,\n})).value()\n","import React, { Suspense } from 'react'\nimport SceneLoadingProgress from 'app/views/components/SceneLoadingProgress'\n\nconst SuspenseAndLoader = ({ component: Component, ...rest }) => (\n }>\n \n \n)\n\nexport default SuspenseAndLoader\n","import React from 'react'\nimport SvgIcon from '@mui/material/SvgIcon'\n\nexport default props => (\n \n \n \n \n \n \n \n \n \n \n \n \n)\n","import { useSelector } from 'react-redux'\nimport { getAdminMenuItems } from 'app/state/ducks/menu/selectors'\n\nexport default () => {\n const items = useSelector(getAdminMenuItems)\n return { items }\n}\n","import React from 'react'\nimport Paper from '@mui/material/Paper'\nimport IconAndText from './IconAndText'\nimport makeStyles from '@mui/styles/makeStyles'\n\nconst useStyles = makeStyles(({ spacing, palette }) => ({\n box: {\n borderRadius: spacing(2),\n padding: spacing(1.5),\n },\n icon: {\n color: 'white',\n backgroundColor: palette.primary.main,\n borderRadius: '50%',\n padding: spacing(1),\n },\n}))\n\nexport default ({\n Icon,\n text,\n size = 'default',\n themeColor,\n styleColor,\n direction = 'right',\n ...props\n}) => {\n const classes = useStyles()\n const iconTextProps = {\n Icon,\n text,\n size,\n themeColor,\n styleColor,\n direction,\n iconClassName: classes.icon,\n }\n return (\n \n \n \n )\n}\n","import React from 'react'\nimport BoxedIconAndText from './BoxedIconAndText'\nimport { Link } from 'react-router-dom'\nimport makeStyles from '@mui/styles/makeStyles'\nimport classNames from 'classnames'\nimport _ from 'lodash'\n\nconst useStyles = makeStyles(({ spacing }) => ({\n root: {\n margin: spacing(3, 'auto'),\n minWidth: '45%',\n maxWidth: '80%',\n },\n fullWidth: {\n width: '80%',\n },\n}))\n\nexport default ({\n Icon,\n text,\n href,\n hrefTarget,\n fullWidth = false,\n ...props\n}) => {\n const allClasses = useStyles()\n const classes = [allClasses.root]\n if (fullWidth) {\n classes.push(allClasses.fullWidth)\n }\n const className = classNames(classes)\n const Button = () => (\n \n )\n if (href) {\n if (_.startsWith(href, 'http')) return (\n \n