{"version":3,"sources":["locales/i18n.js","utils/highlight.js","utils/scrollTo.js","components/MenuPopover.js","components/tutorial/TutorialPopover.js","components/tutorial/Tutorial.js","config/ConfigProvider.js","components/LoadingScreen.js","components/RtlLayout.js","components/ScrollToTop.js","guards/AuthGuard.js","guards/GuestGuard.js","utils/createAvatar.js","components/MyAvatar.js","layouts/dashboard/AccountPopover.js","components/buttons/IconButtonWithConfirm.js","components/contacts/ContactForm.js","components/Scrollbar.js","layouts/dashboard/ContactsPopover.js","layouts/dashboard/NotificationsPopover.js","layouts/dashboard/DashboardNavbar.js","assets/pwa.js","components/InstallApp.js","components/Logo.js","components/NavSection.js","layouts/dashboard/SidebarConfig.js","layouts/dashboard/DashboardSidebar.js","layouts/dashboard/index.js","layouts/LogoOnlyLayout.js","routes/index.js","App.js","reportWebVitals.js","serviceWorkerRegistration.js","index.js","utils/jwt.js","components/animate/variants/Wrap.js","components/animate/variants/Actions.js","components/animate/variants/background/BackgroundPan.js","components/animate/variants/fade/FadeIn.js","components/animate/variants/zoom/In.js","components/animate/variants/zoom/Out.js","components/animate/variants/bounce/BounceIn.js","components/animate/variants/bounce/BounceOut.js","components/animate/MotionContainer.js","components/animate/ButtonAnimate.js","hooks/useTutorial.js","hooks/useIsMountedRef.js","contexts/SettingsContext.js","hooks/useLocalStorage.js","utils/stopPropagation.js","utils/formatTime.js","components/tutorial/TutorialElement.js","hooks/useContacts.js","hooks/useSettings.js","utils/snackbar.js","components/NotistackProvider.js","components/ThemePrimaryColor.js","contexts/TutorialContext.js","contexts/JWTContext.js","contexts/ContactsContext.js","contexts/NotificationsContext.js","theme/overrides/Checkbox.js","theme/overrides/Rating.js","theme/overrides/TreeView.js","theme/overrides/index.js","theme/overrides/Fab.js","theme/overrides/Tabs.js","theme/overrides/Chip.js","theme/overrides/Card.js","theme/overrides/Menu.js","theme/overrides/Grid.js","theme/overrides/Badge.js","theme/overrides/Lists.js","theme/overrides/Table.js","theme/overrides/Paper.js","theme/overrides/Alert.js","theme/overrides/Input.js","theme/overrides/Radio.js","theme/overrides/Dialog.js","theme/overrides/Drawer.js","theme/overrides/Avatar.js","theme/overrides/Slider.js","theme/overrides/Button.js","theme/overrides/Switch.js","theme/overrides/Select.js","theme/overrides/Pickers.js","theme/overrides/Stepper.js","theme/overrides/Tooltip.js","theme/overrides/Popover.js","theme/overrides/SvgIcon.js","theme/overrides/Skeleton.js","theme/overrides/Timeline.js","theme/overrides/Backdrop.js","theme/overrides/Snackbar.js","theme/overrides/Progress.js","theme/overrides/Container.js","theme/overrides/Accordion.js","theme/overrides/Typography.js","theme/overrides/Pagination.js","theme/overrides/IconButton.js","theme/overrides/Breadcrumbs.js","theme/overrides/ButtonGroup.js","theme/overrides/ControlLabel.js","theme/overrides/Autocomplete.js","theme/overrides/ToggleButton.js","theme/overrides/LoadingButton.js","theme/breakpoints.js","theme/globalStyles.js","theme/shadows.js","theme/shape.js","theme/typography.js","theme/zIndex.js","theme/index.js","components/Label.js","components/Page.js","assets/illustration_upload.js","assets/illustration_404.js","assets/icon_doc.js","contexts/RecordsContext.js","components/dashboard/records/labels/TypeLabel.js","utils/axios.js","components/@material-extend/MCheckbox.js","components/@material-extend/MChip.js","components/@material-extend/MAvatar.js","components/@material-extend/MBreadcrumbs.js","components/@material-extend/MFab.js","components/@material-extend/MButton.js","components/@material-extend/MIconButton.js","components/@material-extend/MButtonGroup.js","components/@material-extend/MHidden.js","hooks/useNotifications.js","assets/caravan.js","components/authentication/login/LoginForm.js","pages/authentication/Login.js","config/index.js","apis.js","theme/palette.js","hooks/useAuth.js","routes/paths.js"],"names":["i18n","use","LanguageDetector","initReactI18next","init","debug","defaultNS","fallbackLng","interpolation","escapeValue","lng","localStorage","getItem","ns","resources","fr","translations","frLocales","hljs","configure","languages","window","scrollTo","offset","callback","onScroll","fixedOffset","toFixed","actualOffset","Number","Math","abs","document","body","getBoundingClientRect","top","triggered","removeEventListener","documentElement","scrollHeight","innerHeight","addEventListener","behavior","ArrowStyle","styled","theme","breakpoints","up","background","palette","paper","borderBottom","alpha","grey","borderRadius","borderRight","content","height","position","right","transform","width","zIndex","MenuPopover","anchorEl","children","sx","other","Popover","PaperProps","border","boxShadow","customShadows","z20","ml","mt","overflow","anchorOrigin","horizontal","vertical","transformOrigin","className","renderActions","handleClose","nextStep","prevStep","reset","size","stepIndex","Stack","direction","spacing","p","Button","color","fullWidth","onClick","variant","Dot","active","backgroundColor","primary","main","lighter","cursor","Dots","onChangeStepIndex","justifyContent","Array","from","length","map","dot","iDot","TutorialPopover","open","scrolling","step","stepOptions","stepRef","bodyComponent","title","onClose","minWidth","Typography","Divider","align","TutorialBox","Paper","left","tutorialBoxPadding","default","display","padding","tutorialBox","PreventEvents","disableActions","Tutorial","offsetTop","renderPopover","tutorialBoxRef","useRef","useState","stepRect","setStepRect","setAnchorEl","bodyRect","setBodyRect","useTutorial","handleScrollStart","handleScrollStop","safeStep","useEffect","a","ref","current","bRect","rect","fixed","y","stepTop","renderContent","Backdrop","hexToRgb","drawer","id","Box","defaultProps","ConfigProvider","useTheme","config","public","appleIconURL","faviconURL","manifestURL","href","rel","sizes","type","name","nprogressStyle","makeStyles","snackbar","opacity","pointerEvents","RootStyle","alignItems","LoadingScreen","useMemo","NProgress","start","done","animate","rotate","scale","component","motion","div","dark","transition","duration","ease","repeat","Infinity","RtlLayout","jss","create","plugins","jssPreset","rtl","dir","cache","createCache","key","prepend","stylisPlugins","rtlPlugin","compat","value","StylesProvider","ScrollToTop","pathname","useLocation","AuthGuard","isAuthenticated","useAuth","requestedLocation","setRequestedLocation","to","Login","GuestGuard","PATH_DASHBOARD","root","PRIMARY_NAME","INFO_NAME","SUCCESS_NAME","WARNING_NAME","ERROR_NAME","getFirstCharacter","capitalize","charAt","getAvatarColor","includes","createAvatar","MyAvatar","user","alt","displayName","photoURL","src","AccountPopover","anchorRef","navigate","useNavigate","enqueueSnackbar","useSnackbar","isMountedRef","useIsMountedRef","logout","setOpen","handleLogout","bgcolor","my","px","noWrap","email","pt","IconButtonWithConfirm","confirmationProps","props","cancelText","confirmText","confirmOpen","setConfirmOpen","handleCloseConfirmation","IconButton","stopPropagation","Dialog","DialogTitle","DialogContent","DialogContentText","DialogActions","autoFocus","ContactForm","contact","creating","useContacts","createContact","updateContact","ContactSchema","Yup","shape","FCT","max","MAIL","required","NOM","PRENOM","formik","useFormik","initialValues","onSubmit","contactData","resetForm","setErrors","setSubmitting","ID_CONTACT","afterSubmit","validationSchema","errors","getFieldProps","handleSubmit","isSubmitting","touched","values","maxWidth","autoComplete","noValidate","fDate","DTEMODIF","Alert","severity","TextField","label","error","Boolean","helperText","LoadingButton","loading","flexGrow","SimpleBarStyle","SimpleBarReact","maxHeight","Scrollbar","test","navigator","userAgent","overflowX","clickOnTrack","timeout","ContactListItem","onDeleteContact","onSelectContact","ListItem","button","dense","disableGutters","ListItemAvatar","Avatar","ListItemText","primaryTypographyProps","mb","typography","secondary","secondaryTypographyProps","ListItemSecondaryAction","edge","Delete","ContactsPopover","formOpen","setFormOpen","selectedContact","setSelectedContact","contacts","deleteContact","getContacts","icon","peopleFill","Tooltip","TutorialElement","action","focusOpacity","ITEM_HEIGHT","List","NotificationItem","notification","RouterLink","py","isUnRead","NUMDOS","OBJ","Icon","clockFill","mr","Date","DTEDERMOD","TypeLabel","TYPE","NotificationsPopover","refreshing","setRefreshing","useNotifications","getNotifications","notifications","totalUnRead","interval","setInterval","clearInterval","handleRefreshNotifications","bellFill","Badge","badgeContent","sm","xs","disablePadding","AppBar","WebkitBackdropFilter","backdropFilter","DRAWER_WIDTH","ToolbarStyle","Toolbar","minHeight","DashboardNavbar","onOpenSidebar","menu2Fill","PWAIcon","PRIMARY","viewBox","xmlns","cx","cy","fill","r","x","d","points","InstallAppStyle","borderRadiusSm","InstallApp","canAdd","setCanAdd","deferredPrompt","setDeferredPrompt","isMobile","useMediaQuery","down","handleInstall","useCallback","e","preventDefault","prompt","userChoice","then","logoURL","Logo","ListSubheaderStyle","ListSubheader","disableSticky","overline","text","marginBottom","marginTop","paddingLeft","ListItemStyle","body2","borderBottomLeftRadius","borderTopLeftRadius","bottom","paddingRight","textTransform","ListItemIconStyle","ListItemIcon","NavItem","item","isActiveRoot","path","info","activeRootStyle","selectedOpacity","fontWeight","activeSubStyle","prev","th","transitions","disableTypography","arrowIosDownwardFill","arrowIosForwardFill","Collapse","in","unmountOnExit","navItem","itemPath","itemTitle","isActiveSub","NavSection","navConfig","match","matchPath","end","list","items","subheader","random","ICONS","dashboard","Dashboard","documents","Description","sidebarConfig","overview","pieces","piecesReturn","technical","flexShrink","AccountStyle","DocStyle","mode","borderRadiusMd","DashboardSidebar","isOpenSidebar","onCloseSidebar","handleOpen","flexDirection","mx","Link","underline","pb","gutterBottom","Drawer","MainStyle","paddingBottom","paddingTop","APP_BAR_MOBILE","APP_BAR_DESKTOP","DashboardLayout","HeaderStyle","lineHeight","LogoOnlyLayout","Loadable","Component","isDashboard","fallback","Router","useRoutes","element","DocumentsPage","OverviewPage","RecordsPage","defaultStatus","pageLabel","RecordDetailsPage","NotFound","replace","lazy","App","isInitialized","ThemePrimaryColor","NotistackProvider","reportWebVitals","onPerfEntry","Function","getCLS","getFCP","getFID","getLCP","getTTFB","isLocalhost","location","hostname","registerValidSW","swUrl","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","state","controller","onUpdate","console","log","onSuccess","catch","ReactDOM","render","LocalizationProvider","dateAdapter","AdapterDateFns","getElementById","URL","process","origin","fetch","headers","response","contentType","get","status","indexOf","ready","unregister","reload","checkValidServiceWorker","registrationWaiting","waiting","enqueue","setLoading","postMessage","target","search","persist","isValidToken","token","decoded","jwtDecode","currentTime","now","exp","setSession","setItem","axios","defaults","common","Authorization","expiredTimer","clearTimeout","timeLeft","setTimeout","removeItem","handleTokenExpired","varWrapEnter","staggerChildren","varSmallClick","hover","tap","varMediumClick","TRANSITION","gradient","deg","DISTANCE","TRANSITION_ENTER","TRANSITION_EXIT","varFadeIn","exit","initial","varFadeInRight","IN","OUT","translateY","translateX","varBounceIn","scaleY","scaleX","MotionContainer","variants","ButtonAnimate","mediumClick","whileHover","whileTap","useContext","TutorialContext","isMounted","PRIMARY_COLOR","light","contrastText","darker","SetColor","themeColor","DEFAULT","PURPLE","CYAN","BLUE","ORANGE","RED","themeMode","initialState","colorOption","onChangeColor","onChangeDirection","onChangeMode","setColor","themeDirection","SettingsContext","createContext","SettingsProvider","defaultValue","storedValue","JSON","parse","setValue","listener","storageArea","newValue","currentValue","result","stringify","useLocalStorage","settings","setSettings","Provider","event","locale","timeZone","date","format","stepProp","withoutContainer","elementRef","childRef","addElement","currentStep","stepOption","on","React","cloneElement","createElement","undefined","ContactsContext","useSettings","message","options","Display","mountPoint","useStyles","isLight","createStyle","marginRight","containerRoot","contentRoot","z8","margin","fontWeightMedium","success","warning","SnackbarIcon","classes","autoHideDuration","variantError","variantInfo","variantSuccess","variantWarning","iconVariant","infoFill","alertCircleFill","checkmarkCircle2Fill","alertTriangleFill","maxSnack","outerTheme","themeOptions","createTheme","components","componentsOverride","steps","handlers","ADD_ELEMENT","filter","s","reducer","payload","Promise","resolve","TutorialProvider","useReducer","dispatch","setStepIndex","setScrolling","filteredSteps","orderedSteps","sort","b","i","index","INITIALIZE","LOGIN","LOGOUT","AuthContext","login","method","AuthProvider","apis","me","data","initialize","credentials","CONTACT_CREATED","CONTACT_DELETED","c","CONTACT_UPDATED","GET_CONTACTS","ContactsProvider","contactId","getContactInfo","find","GET_NOTIFICATIONS","REMOVE_NOTIFICATION","recordId","n","NotificationsContext","NotificationsProvider","removeNotification","SvgIcon","CheckedIcon","IndeterminateIcon","ICON_SMALL","ICON_LARGE","ICON","starFill","ICON_SIZE","ComponentsOverrides","merge","MuiFab","styleOverrides","extended","style","Fab","MuiTab","labelIcon","borderTopRightRadius","textColorInherit","wrapper","whiteSpace","MuiTabPanel","MuiTabScrollButton","Tabs","MuiChip","deleteIcon","closeCircleFill","colorDefault","outlined","borderColor","Chip","MuiCard","z16","MuiCardContent","MuiCardHeader","subheaderTypographyProps","titleTypographyProps","Card","MuiMenuItem","selected","Menu","MuiGrid","MuiBadge","MuiListItemAvatar","MuiListItemIcon","MuiListItemText","multiline","Lists","MuiTableCell","head","borderBottomRightRadius","neutral","stickyHeader","backgroundImage","MuiTablePagination","borderTop","divider","select","selectIcon","toolbar","MuiTableRow","Table","MuiPaper","elevation","standardStyle","filledStyle","outlinedStyle","MuiAlert","iconMapping","marginLeft","filledError","filledInfo","filledSuccess","filledWarning","outlinedError","outlinedInfo","outlinedSuccess","outlinedWarning","standardError","standardInfo","standardSuccess","standardWarning","MuiFilledInput","disabledBackground","focus","borderBottomColor","MuiInput","MuiInputBase","input","disabled","MuiOutlinedInput","Input","MuiRadio","Radio","MuiRating","emptyIcon","iconEmpty","sizeLarge","sizeSmall","Rating","MuiDialog","z24","paperFullWidth","MuiDialogActions","MuiDialogContent","MuiDialogTitle","MuiDrawer","modal","MuiAvatar","MuiAvatarGroup","avatar","fontSize","MuiSlider","markLabel","Slider","MuiButton","containedInherit","containedPrimary","containedSecondary","outlinedInherit","textInherit","MuiSwitch","switchBase","thumb","z1","track","Switch","MuiSelect","IconComponent","ExpandMoreRoundedIcon","MuiDateRangePickerViewDesktop","PrivatePicker","landscape","white","PrivatePickersPopper","Pickers","MuiStepConnector","line","MuiStepContent","MuiStepLabel","iconContainer","Stepper","MuiTooltip","arrow","tooltip","MuiPopover","z12","MuiSvgIcon","fontSizeLarge","fontSizeSmall","MuiSkeleton","animation","Skeleton","MuiTimelineConnector","MuiTimelineDot","Timeline","MuiTreeItem","MuiTreeView","defaultCollapseIcon","minusSquareOutline","defaultEndIcon","closeSquareOutline","defaultExpandIcon","plusSquareOutline","TreeView","varLow","varHigh","MuiBackdrop","MuiSnackbarContent","MuiLinearProgress","bar","buffer","colorPrimary","Progress","MuiCheckbox","checkedIcon","indeterminateIcon","Checkbox","MuiContainer","MuiAccordion","MuiAccordionSummary","expandIconWrapper","Accordion","MuiTypography","paragraph","MuiPaginationItem","outlinedPrimary","fontWeightBold","textPrimary","Pagination","MuiIconButton","MuiBreadcrumbs","separator","Breadcrumbs","MuiButtonGroup","grouped","groupedContained","groupedContainedPrimary","groupedContainedSecondary","groupedOutlinedPrimary","groupedOutlinedSecondary","groupedTextPrimary","groupedTextSecondary","ButtonGroup","MuiFormControlLabel","MuiFormHelperText","MuiFormLabel","ControlLabel","MuiAutocomplete","Autocomplete","MuiToggleButton","ToggleButton","MuiLoadingButton","lg","md","xl","GlobalStyles","withStyles","boxSizing","WebkitFilter","html","img","WebkitAppearance","MozAppearance","textarea","LIGHT_MODE","DARK_MODE","createShadow","transparent1","transparent2","transparent3","createCustomShadow","transparent","shadows","pxToRem","responsiveFontSizes","body1","caption","fontFamily","fontWeightRegular","h1","h2","h3","h4","h5","h6","letterSpacing","subtitle1","subtitle2","ThemeConfig","StyledEngineProvider","injectFirst","ThemeProvider","CssBaseline","styleProps","styleOutlined","styleGhost","Label","siteName","Page","forwardRef","propTypes","PropTypes","node","isRequired","string","UploadIllustration","PRIMARY_MAIN","PRIMARY_DARK","PRIMARY_DARKER","x1","x2","y1","y2","stopColor","stopOpacity","fillRule","stroke","strokeWidth","rx","ry","strokeLinecap","PageNotFoundIllustration","DocIcon","PRIMARY_LIGHTER","PRIMARY_LIGHT","P","0","1","RP","T","shouldBeClosedRecords","ADD_RECORD","record","CLOSE_RECORD","ROW_ID","GET_RECORDS","records","GET_SHOULD_BE_CLOSED_RECORDS","RecordsContext","getRecords","getShouldBeClosedRecords","RecordsProvider","getRecordsShouldBeClosed","addRecord","recordData","closeRecord","axiosInstance","interceptors","reject","MCheckbox","hoverOpacity","clickable","onDelete","emphasize","styleFilledClickable","styleFilledDeletable","MAvatar","Separator","LinkItem","link","MBreadcrumbs","activeLast","links","currentLink","last","listDefault","listActiveLast","textOverflow","MFab","ButtonStyle","styleText","MButton","MIconButton","ButtonGroupStyle","MButtonGroup","MHidden","breakpoint","substring","hiddenUp","hiddenDown","oneOf","CaravanIcon","LoginForm","showPassword","setShowPassword","LoginSchema","password","username","remember","InputProps","endAdornment","InputAdornment","show","eyeFill","eyeOffFill","FormControlLabel","control","checked","PATH_AUTH","SectionStyle","ContentStyle","Container","env","JSONConfig","ROOT_URL","apiUrl","createURL","urlPath","post","addRow","numdos","row","delete","getDocuments","getMiniDashboardInfo","getRecordDetails","getStats","markRecordDetailsAsSeen","searchRecords","fromDate","toDate","qs","from_date","to_date","put","createGradient","color1","color2","GREY","100","200","300","400","500","600","700","800","900","INFO","SUCCESS","WARNING","ERROR","GRADIENTS","COMMON","disabledOpacity","black","gradients","subLink","ROOTS_DASHBOARD","recordDetails"],"mappings":"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","file":"static/js/main.3ec8a3c5.chunk.js","sourcesContent":["import i18n from 'i18next';\r\nimport LanguageDetector from 'i18next-browser-languagedetector';\r\nimport { initReactI18next } from 'react-i18next';\r\n\r\nimport frLocales from './fr.json';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ni18n\r\n .use(LanguageDetector)\r\n .use(initReactI18next)\r\n .init({\r\n debug: false,\r\n defaultNS: 'translations',\r\n fallbackLng: 'en',\r\n interpolation: {\r\n escapeValue: false,\r\n },\r\n lng: localStorage.getItem('i18nextLng') || 'en',\r\n ns: ['translations'],\r\n resources: {\r\n fr: { translations: frLocales },\r\n },\r\n });\r\n\r\nexport default i18n;\r\n","import 'highlight.js/styles/atom-one-dark.css';\r\n\r\nimport hljs from 'highlight.js';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nhljs.configure({\r\n languages: ['javascript', 'jsx', 'sh', 'bash', 'html', 'scss', 'css', 'json'],\r\n});\r\n\r\nwindow.hljs = hljs;\r\n","const scrollTo = (offset, callback) => {\r\n const onScroll = function () {\r\n const fixedOffset = offset.toFixed();\r\n const actualOffset = Number(Math.abs(window.document.body.getBoundingClientRect().top.toFixed()));\r\n let triggered = false;\r\n\r\n if (!triggered && actualOffset === Number(fixedOffset)) {\r\n window.removeEventListener('scroll', onScroll);\r\n callback();\r\n }\r\n if (\r\n fixedOffset >= actualOffset &&\r\n actualOffset >= window.document.documentElement.scrollHeight - window.innerHeight\r\n ) {\r\n triggered = true;\r\n window.removeEventListener('scroll', onScroll);\r\n callback();\r\n }\r\n };\r\n\r\n window.addEventListener('scroll', onScroll);\r\n onScroll();\r\n window.scrollTo({\r\n behavior: 'smooth',\r\n top: offset,\r\n });\r\n};\r\n\r\nexport default scrollTo;\r\n","// material\r\nimport { Popover } from '@material-ui/core';\r\nimport { alpha, experimentalStyled as styled } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst ArrowStyle = styled('span')(({ theme }) => ({\r\n [theme.breakpoints.up('sm')]: {\r\n background: theme.palette.background.paper,\r\n borderBottom: `solid 1px ${alpha(theme.palette.grey[500], 0.12)}`,\r\n borderRadius: '0 0 4px 0',\r\n borderRight: `solid 1px ${alpha(theme.palette.grey[500], 0.12)}`,\r\n content: \"''\",\r\n height: 12,\r\n position: 'absolute',\r\n right: 20,\r\n top: -7,\r\n transform: 'rotate(-135deg)',\r\n width: 12,\r\n zIndex: 1,\r\n },\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst MenuPopover = ({ anchorEl, children, sx, ...other }) => (\r\n `solid 1px ${theme.palette.grey[500_8]}`,\r\n boxShadow: (theme) => theme.customShadows.z20,\r\n ml: 0.5,\r\n mt: 1.5,\r\n overflow: 'inherit',\r\n width: 200,\r\n ...sx,\r\n },\r\n }}\r\n anchorEl={anchorEl}\r\n anchorOrigin={{ horizontal: 'right', vertical: 'bottom' }}\r\n transformOrigin={{ horizontal: 'right', vertical: 'top' }}\r\n {...other}\r\n >\r\n \r\n\r\n {children}\r\n \r\n);\r\n\r\nMenuPopover.propTypes = {\r\n children: PropTypes.node.isRequired,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n sx: PropTypes.object,\r\n};\r\n\r\nexport default MenuPopover;\r\n","import { Button, Divider, Stack, Typography } from '@material-ui/core';\r\nimport { styled } from '@material-ui/styles';\r\nimport MenuPopover from 'components/MenuPopover';\r\nimport React from 'react';\r\n\r\nconst renderActions = ({ handleClose, nextStep, prevStep, reset, size, stepIndex }) => {\r\n const closeAndReset = () => {\r\n handleClose();\r\n reset();\r\n };\r\n\r\n return (\r\n \r\n {stepIndex !== 0 && (\r\n \r\n )}\r\n {stepIndex !== size - 1 && (\r\n \r\n )}\r\n {stepIndex === size - 1 && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst Dot = styled('div')(({ active, theme }) => ({\r\n backgroundColor: active ? theme.palette.primary.main : theme.palette.primary.lighter,\r\n borderRadius: '7px',\r\n cursor: 'pointer',\r\n height: '7px',\r\n width: active ? '14px' : '7px',\r\n}));\r\n\r\nconst Dots = ({ onChangeStepIndex, size, stepIndex }) => (\r\n \r\n {Array.from({ length: size }).map((dot, iDot) => (\r\n onChangeStepIndex(iDot)} />\r\n ))}\r\n \r\n);\r\n\r\nconst TutorialPopover = ({\r\n handleClose,\r\n nextStep,\r\n onChangeStepIndex,\r\n open,\r\n prevStep,\r\n reset,\r\n scrolling,\r\n size,\r\n step,\r\n stepIndex,\r\n stepOptions,\r\n stepRef,\r\n}) => {\r\n const { body, bodyComponent, title } = stepOptions;\r\n return (\r\n \r\n \r\n {title || `#${step} Step`}\r\n \r\n \r\n {bodyComponent || {body}}\r\n \r\n \r\n \r\n \r\n {renderActions({ handleClose, nextStep, prevStep, reset, size, stepIndex })}\r\n \r\n );\r\n};\r\n\r\nexport default TutorialPopover;\r\n","import { Backdrop, Box, Paper, hexToRgb } from '@material-ui/core';\r\nimport { styled } from '@material-ui/styles';\r\nimport useTutorial from 'hooks/useTutorial';\r\nimport React, { useEffect, useRef, useState } from 'react';\r\nimport scrollTo from 'utils/scrollTo';\r\n\r\nimport TutorialPopover from './TutorialPopover';\r\n\r\nconst TutorialBox = styled(Paper)(({ height, left, open, theme, top, tutorialBoxPadding, width }) => ({\r\n background: theme.palette.background.default,\r\n border: `1px solid ${theme.palette.grey[800]}`,\r\n display: open ? 'block' : 'none',\r\n height: `calc(${height}px + (2*${tutorialBoxPadding}px))`,\r\n left: `calc(${left}px - ${tutorialBoxPadding}px)`,\r\n overflow: 'hidden',\r\n padding: tutorialBoxPadding,\r\n position: 'absolute',\r\n top: `calc(${top}px - ${tutorialBoxPadding}px)`,\r\n width: `calc(${width}px + (2*${tutorialBoxPadding}px))`,\r\n zIndex: theme.zIndex.tutorialBox,\r\n}));\r\n\r\nconst PreventEvents = styled('div')(({ disableActions, height, left, theme, top, width }) => ({\r\n display: disableActions ? 'block' : 'none',\r\n height,\r\n left,\r\n position: 'absolute',\r\n top,\r\n width,\r\n zIndex: theme.zIndex.tutorialBox + 2,\r\n}));\r\n\r\nconst Tutorial = ({ offsetTop, renderPopover, tutorialBoxPadding }) => {\r\n const tutorialBoxRef = useRef();\r\n const [stepRect, setStepRect] = useState({});\r\n const [anchorEl, setAnchorEl] = useState({});\r\n const [bodyRect, setBodyRect] = useState({});\r\n const {\r\n handleClose,\r\n handleScrollStart,\r\n handleScrollStop,\r\n nextStep,\r\n onChangeStepIndex,\r\n open,\r\n prevStep,\r\n reset,\r\n safeStep,\r\n scrolling,\r\n size,\r\n stepIndex,\r\n stepRef,\r\n } = useTutorial();\r\n\r\n useEffect(() => {\r\n (async () => {\r\n if (safeStep?.ref.current) {\r\n const bRect = window.document.body.getBoundingClientRect();\r\n const rect = safeStep.ref.current.getBoundingClientRect();\r\n\r\n if (open) {\r\n // Handle disable actions\r\n // if (safeStep?.disableActions) safeStep.ref.current.style.pointerEvents = 'none';\r\n\r\n handleScrollStart();\r\n if (!safeStep?.fixed) {\r\n scrollTo(rect.top + Math.abs(bRect.y) - tutorialBoxPadding - offsetTop, () => {\r\n setStepRect(rect);\r\n setBodyRect(bRect);\r\n handleScrollStop();\r\n });\r\n } else {\r\n // Scroll if not fixed item\r\n setStepRect(rect);\r\n setBodyRect(bRect);\r\n handleScrollStop();\r\n }\r\n }\r\n }\r\n })();\r\n }, [safeStep, stepIndex, open, stepRef, tutorialBoxPadding, offsetTop, handleScrollStart, handleScrollStop]);\r\n\r\n const { height, left, top: stepTop, width } = stepRect;\r\n\r\n useEffect(() => {\r\n setAnchorEl(tutorialBoxRef);\r\n }, [stepTop]);\r\n\r\n const renderContent = safeStep?.stepOptions?.renderContent;\r\n const top = stepTop + Math.abs(bodyRect.top);\r\n\r\n return (\r\n <>\r\n `rgba(${hexToRgb(theme.palette.background.default)}, 0.5)`,\r\n zIndex: (theme) => theme.zIndex.drawer + 1,\r\n }}\r\n />\r\n {open && (\r\n <>\r\n \r\n \r\n {renderContent ? {renderContent()} : null}\r\n \r\n {renderPopover({\r\n handleClose,\r\n nextStep,\r\n onChangeStepIndex,\r\n open,\r\n prevStep,\r\n reset,\r\n scrolling,\r\n size,\r\n step: safeStep?.step,\r\n stepIndex,\r\n stepOptions: safeStep?.stepOptions,\r\n stepRef: anchorEl?.current,\r\n })}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nTutorial.defaultProps = {\r\n offsetTop: 78,\r\n renderPopover: TutorialPopover,\r\n tutorialBoxPadding: 8,\r\n};\r\n\r\nexport default Tutorial;\r\n","import { useTheme } from '@material-ui/core';\r\nimport config from 'config';\r\nimport React from 'react';\r\nimport { Helmet } from 'react-helmet-async';\r\n\r\nconst ConfigProvider = () => {\r\n const theme = useTheme();\r\n\r\n if (!config?.public) return null;\r\n\r\n const { appleIconURL, faviconURL, manifestURL, title } = config.public;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ConfigProvider;\r\n","import { Box } from '@material-ui/core';\r\n// material\r\nimport { alpha, makeStyles, experimentalStyled as styled } from '@material-ui/core/styles';\r\nimport { motion } from 'framer-motion';\r\nimport NProgress from 'nprogress';\r\nimport React, { useEffect, useMemo } from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst nprogressStyle = makeStyles((theme) => ({\r\n '@global': {\r\n '#nprogress': {\r\n '& .bar': {\r\n backgroundColor: theme.palette.primary.main,\r\n boxShadow: `0 0 2px ${theme.palette.primary.main}`,\r\n height: 2,\r\n left: 0,\r\n position: 'fixed',\r\n top: 0,\r\n width: '100%',\r\n zIndex: theme.zIndex.snackbar,\r\n },\r\n '& .peg': {\r\n boxShadow: `0 0 10px ${theme.palette.primary.main}, 0 0 5px ${theme.palette.primary.main}`,\r\n display: 'block',\r\n height: '100%',\r\n opacity: 1,\r\n position: 'absolute',\r\n right: 0,\r\n transform: 'rotate(3deg) translate(0px, -4px)',\r\n width: 100,\r\n },\r\n pointerEvents: 'none',\r\n },\r\n },\r\n}));\r\n\r\nconst RootStyle = styled('div')(({ theme }) => ({\r\n alignItems: 'center',\r\n backgroundColor: theme.palette.background.default,\r\n display: 'flex',\r\n height: '100%',\r\n justifyContent: 'center',\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function LoadingScreen({ ...other }) {\r\n nprogressStyle();\r\n\r\n useMemo(() => {\r\n NProgress.start();\r\n }, []);\r\n\r\n useEffect(() => {\r\n NProgress.done();\r\n }, []);\r\n\r\n return (\r\n \r\n `solid 3px ${alpha(theme.palette.primary.dark, 0.24)}`,\r\n borderRadius: '25%',\r\n height: 100,\r\n position: 'absolute',\r\n width: 100,\r\n }}\r\n transition={{ duration: 3.2, ease: 'linear', repeat: Infinity }}\r\n />\r\n\r\n `solid 8px ${alpha(theme.palette.primary.dark, 0.24)}`,\r\n borderRadius: '25%',\r\n height: 120,\r\n position: 'absolute',\r\n width: 120,\r\n }}\r\n transition={{\r\n duration: 3.2,\r\n ease: 'linear',\r\n repeat: Infinity,\r\n }}\r\n />\r\n \r\n );\r\n}\r\n","// emotion\r\nimport createCache from '@emotion/cache';\r\nimport { CacheProvider } from '@emotion/react';\r\nimport { useTheme } from '@material-ui/core/styles';\r\n// material\r\nimport { StylesProvider, jssPreset } from '@material-ui/styles';\r\nimport { create } from 'jss';\r\n// rtl\r\nimport rtl from 'jss-rtl';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useEffect } from 'react';\r\nimport rtlPlugin from 'stylis-plugin-rtl';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst RtlLayout = ({ children }) => {\r\n const theme = useTheme();\r\n\r\n const jss = create({\r\n plugins: [...jssPreset().plugins, rtl()],\r\n });\r\n\r\n useEffect(() => {\r\n document.dir = theme.direction;\r\n }, [theme.direction]);\r\n\r\n const cache = createCache({\r\n key: theme.direction === 'rtl' ? 'rtl' : 'css',\r\n prepend: true,\r\n stylisPlugins: theme.direction === 'rtl' ? [rtlPlugin] : [],\r\n });\r\n\r\n cache.compat = true;\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nRtlLayout.propTypes = {\r\n children: PropTypes.node,\r\n};\r\n\r\nexport default RtlLayout;\r\n","import { useEffect } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function ScrollToTop() {\r\n const { pathname } = useLocation();\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, [pathname]);\r\n\r\n return null;\r\n}\r\n","import { RecordsProvider } from 'contexts/RecordsContext';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useState } from 'react';\r\nimport { Navigate, useLocation } from 'react-router-dom';\r\n\r\n// hooks\r\nimport useAuth from '../hooks/useAuth';\r\n// pages\r\nimport Login from '../pages/authentication/Login';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst AuthGuard = ({ children }) => {\r\n const { isAuthenticated } = useAuth();\r\n const { pathname } = useLocation();\r\n const [requestedLocation, setRequestedLocation] = useState(null);\r\n\r\n if (!isAuthenticated) {\r\n if (pathname !== requestedLocation) {\r\n setRequestedLocation(pathname);\r\n }\r\n return ;\r\n }\r\n\r\n if (requestedLocation && pathname !== requestedLocation) {\r\n setRequestedLocation(null);\r\n return ;\r\n }\r\n\r\n return {children};\r\n};\r\n\r\nAuthGuard.propTypes = {\r\n children: PropTypes.node,\r\n};\r\n\r\nexport default AuthGuard;\r\n","import PropTypes from 'prop-types';\r\n// hooks\r\nimport React from 'react';\r\nimport { Navigate } from 'react-router-dom';\r\n\r\nimport useAuth from '../hooks/useAuth';\r\n// routes\r\nimport { PATH_DASHBOARD } from '../routes/paths';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst GuestGuard = ({ children }) => {\r\n const { isAuthenticated } = useAuth();\r\n\r\n if (isAuthenticated) {\r\n return ;\r\n }\r\n\r\n return <>{children};\r\n};\r\n\r\nGuestGuard.propTypes = {\r\n children: PropTypes.node,\r\n};\r\n\r\nexport default GuestGuard;\r\n","import { capitalize } from 'lodash';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst PRIMARY_NAME = ['A', 'N', 'H', 'L', 'Q', '9', '8'];\r\nconst INFO_NAME = ['F', 'G', 'T', 'I', 'J', '1', '2', '3'];\r\nconst SUCCESS_NAME = ['K', 'D', 'Y', 'B', 'O', '4', '5'];\r\nconst WARNING_NAME = ['P', 'E', 'R', 'S', 'C', 'U', '6', '7'];\r\nconst ERROR_NAME = ['V', 'W', 'X', 'M', 'Z'];\r\n\r\nfunction getFirstCharacter(name) {\r\n return capitalize(name && name.charAt(0));\r\n}\r\n\r\nfunction getAvatarColor(name) {\r\n if (PRIMARY_NAME.includes(getFirstCharacter(name))) return 'primary';\r\n if (INFO_NAME.includes(getFirstCharacter(name))) return 'info';\r\n if (SUCCESS_NAME.includes(getFirstCharacter(name))) return 'success';\r\n if (WARNING_NAME.includes(getFirstCharacter(name))) return 'warning';\r\n if (ERROR_NAME.includes(getFirstCharacter(name))) return 'warning';\r\n return 'default';\r\n}\r\n\r\nexport default function createAvatar(name) {\r\n return {\r\n color: getAvatarColor(name),\r\n name: getFirstCharacter(name),\r\n };\r\n}\r\n","// hooks\r\nimport React from 'react';\r\n\r\nimport useAuth from '../hooks/useAuth';\r\nimport createAvatar from '../utils/createAvatar';\r\n//\r\nimport { MAvatar } from './@material-extend';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function MyAvatar({ ...other }) {\r\n const { user } = useAuth();\r\n\r\n return (\r\n \r\n {createAvatar(user.displayName).name}\r\n \r\n );\r\n}\r\n","import { Box, Button, Divider, Typography } from '@material-ui/core';\r\n// material\r\nimport { alpha } from '@material-ui/core/styles';\r\nimport { useSnackbar } from 'notistack';\r\nimport React, { useRef, useState } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\n// components\r\nimport { MIconButton } from '../../components/@material-extend';\r\nimport MenuPopover from '../../components/MenuPopover';\r\nimport MyAvatar from '../../components/MyAvatar';\r\n// hooks\r\nimport useAuth from '../../hooks/useAuth';\r\nimport useIsMountedRef from '../../hooks/useIsMountedRef';\r\n\r\nexport default function AccountPopover() {\r\n const anchorRef = useRef(null);\r\n const navigate = useNavigate();\r\n const { enqueueSnackbar } = useSnackbar();\r\n const isMountedRef = useIsMountedRef();\r\n const { logout, user } = useAuth();\r\n const [open, setOpen] = useState(false);\r\n\r\n const handleOpen = () => {\r\n setOpen(true);\r\n };\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleLogout = async () => {\r\n try {\r\n await logout();\r\n navigate('/');\r\n if (isMountedRef.current) {\r\n handleClose();\r\n }\r\n } catch (error) {\r\n enqueueSnackbar('Unable to logout', { variant: 'error' });\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n alpha(theme.palette.grey[900], 0.72),\r\n borderRadius: '50%',\r\n content: \"''\",\r\n height: '100%',\r\n position: 'absolute',\r\n width: '100%',\r\n zIndex: 1,\r\n },\r\n }),\r\n }}\r\n >\r\n \r\n \r\n\r\n \r\n \r\n \r\n {user.displayName}\r\n \r\n \r\n {user.email}\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import {\r\n Button,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogContentText,\r\n DialogTitle,\r\n IconButton,\r\n} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useState } from 'react';\r\nimport stopPropagation from 'utils/stopPropagation';\r\n\r\nconst IconButtonWithConfirm = ({ children, confirmationProps, onClick, ...props }) => {\r\n const { cancelText, confirmText, content, title } = confirmationProps;\r\n const [confirmOpen, setConfirmOpen] = useState(false);\r\n\r\n const handleOpenConfirmation = () => {\r\n setConfirmOpen(true);\r\n };\r\n const handleCloseConfirmation = () => {\r\n setConfirmOpen(false);\r\n };\r\n\r\n const handleConfirm = () => {\r\n if (onClick) onClick();\r\n handleCloseConfirmation();\r\n };\r\n\r\n const handleCancel = () => {\r\n handleCloseConfirmation();\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {children}\r\n \r\n \r\n {title}\r\n \r\n {content}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nIconButtonWithConfirm.defaultProps = {\r\n confirmationProps: {\r\n cancelText: 'Annuler',\r\n confirmText: 'Ok',\r\n content: 'Cette action est irréversible. Êtes-vous certain de vouloir poursuivre ?',\r\n title: 'Attention',\r\n },\r\n};\r\n\r\nIconButtonWithConfirm.propTypes = {\r\n confirmationProps: PropTypes.shape({\r\n cancelText: PropTypes.string,\r\n confirmText: PropTypes.string,\r\n content: PropTypes.string,\r\n onCancel: PropTypes.func,\r\n onConfirm: PropTypes.func,\r\n title: PropTypes.string,\r\n }),\r\n};\r\n\r\nexport default IconButtonWithConfirm;\r\n","import {\r\n Alert,\r\n Button,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogTitle,\r\n Stack,\r\n TextField,\r\n Typography,\r\n} from '@material-ui/core';\r\nimport { LoadingButton } from '@material-ui/lab';\r\nimport { Form, FormikProvider, useFormik } from 'formik';\r\nimport useContacts from 'hooks/useContacts';\r\n// import useContacts from 'hooks/useContacts';\r\nimport useIsMountedRef from 'hooks/useIsMountedRef';\r\nimport React from 'react';\r\nimport { fDate } from 'utils/formatTime';\r\nimport * as Yup from 'yup';\r\n\r\nconst ContactForm = ({ contact, onClose }) => {\r\n const creating = !contact;\r\n const isMountedRef = useIsMountedRef();\r\n const { createContact, updateContact } = useContacts();\r\n\r\n const ContactSchema = Yup.object().shape({\r\n FCT: Yup.string().max(100, 'Max. 100 caractères.'),\r\n MAIL: Yup.string()\r\n .email(\"L'email doit être une adresse valide\")\r\n .required(\"L'email est requis.\")\r\n .max(100, 'Max. 100 caractères.'),\r\n NOM: Yup.string().required('Le nom est requis.').max(100, 'Max. 100 caractères.'),\r\n PRENOM: Yup.string().required('Le prénom est requis.').max(100, 'Max. 100 caractères.'),\r\n });\r\n\r\n const formik = useFormik({\r\n initialValues: !creating\r\n ? contact\r\n : {\r\n FCT: '',\r\n MAIL: '',\r\n NOM: '',\r\n PRENOM: '',\r\n },\r\n onSubmit: async (contactData, { resetForm, setErrors, setSubmitting }) => {\r\n try {\r\n if (creating) {\r\n await createContact(contactData);\r\n } else {\r\n await updateContact(contact.ID_CONTACT, contactData);\r\n }\r\n if (isMountedRef.current) {\r\n setSubmitting(false);\r\n }\r\n if (onClose) onClose();\r\n } catch (error) {\r\n resetForm();\r\n if (isMountedRef.current) {\r\n setSubmitting(false);\r\n setErrors({ afterSubmit: 'Erreur lors de la création du contact' });\r\n }\r\n }\r\n },\r\n validationSchema: ContactSchema,\r\n });\r\n\r\n const { errors, getFieldProps, handleSubmit, isSubmitting, touched, values } = formik;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n {creating && !(values.NOM || values.PRENOM) ? 'Nouveau contact' : `${values.PRENOM} ${values.NOM}`}\r\n {!creating && (\r\n <>\r\n
\r\n {`Mis à jour pour la dernière fois le ${fDate(\r\n contact.DTEMODIF\r\n )}`}\r\n \r\n )}\r\n
\r\n \r\n \r\n {errors.afterSubmit && {errors.afterSubmit}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Enregistrer\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ContactForm;\r\n","import { Box } from '@material-ui/core';\r\n// material\r\nimport { alpha, experimentalStyled as styled } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport SimpleBarReact from 'simplebar-react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst RootStyle = styled('div')({\r\n flexGrow: 1,\r\n height: '100%',\r\n overflow: 'hidden',\r\n});\r\n\r\nconst SimpleBarStyle = styled(SimpleBarReact)(({ theme }) => ({\r\n // cspell-checker: disable-next-line\r\n '& .simplebar-mask': {\r\n zIndex: 'inherit',\r\n },\r\n // cspell-checker: disable-next-line\r\n '& .simplebar-scrollbar': {\r\n // cspell-checker: disable-next-line\r\n '&.simplebar-visible:before': {\r\n opacity: 1,\r\n },\r\n '&:before': {\r\n backgroundColor: alpha(theme.palette.grey[600], 0.48),\r\n },\r\n },\r\n // cspell-checker: disable-next-line\r\n '& .simplebar-track.simplebar-horizontal .simplebar-scrollbar': {\r\n height: 6,\r\n },\r\n // cspell-checker: disable-next-line\r\n '& .simplebar-track.simplebar-vertical': {\r\n width: 10,\r\n },\r\n maxHeight: '100%',\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst Scrollbar = ({ children, sx, ...other }) => {\r\n const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n\r\n if (isMobile) {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nScrollbar.propTypes = {\r\n children: PropTypes.node.isRequired,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n sx: PropTypes.object,\r\n};\r\n\r\nexport default Scrollbar;\r\n","import peopleFill from '@iconify/icons-eva/people-fill';\r\nimport { Icon } from '@iconify/react';\r\nimport {\r\n Avatar,\r\n Box,\r\n Divider,\r\n List,\r\n ListItem,\r\n ListItemAvatar,\r\n ListItemSecondaryAction,\r\n ListItemText,\r\n Tooltip,\r\n Typography,\r\n} from '@material-ui/core';\r\n// material\r\nimport { alpha } from '@material-ui/core/styles';\r\nimport { Delete as DeleteIcon } from '@material-ui/icons';\r\nimport IconButtonWithConfirm from 'components/buttons/IconButtonWithConfirm';\r\nimport ContactForm from 'components/contacts/ContactForm';\r\nimport TutorialElement from 'components/tutorial/TutorialElement';\r\nimport useContacts from 'hooks/useContacts';\r\nimport React, { useEffect, useRef, useState } from 'react';\r\n\r\nimport { MButton, MIconButton } from '../../components/@material-extend';\r\nimport MenuPopover from '../../components/MenuPopover';\r\n// components\r\nimport Scrollbar from '../../components/Scrollbar';\r\n\r\n// hooks\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst ITEM_HEIGHT = 64;\r\nconst PADDING_ITEM = 2.5;\r\n\r\nconst ContactListItem = ({ contact, onDeleteContact, onSelectContact }) => {\r\n const { FCT, ID_CONTACT, MAIL, NOM, PRENOM } = contact;\r\n return (\r\n onSelectContact(contact)}\r\n sx={{\r\n height: ITEM_HEIGHT,\r\n px: PADDING_ITEM,\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n onDeleteContact(ID_CONTACT)}>\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst ContactsPopover = () => {\r\n const anchorRef = useRef(null);\r\n const [open, setOpen] = useState(false);\r\n const [formOpen, setFormOpen] = useState();\r\n const [selectedContact, setSelectedContact] = useState();\r\n\r\n const { contacts, deleteContact, getContacts } = useContacts();\r\n\r\n useEffect(() => {\r\n getContacts();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const handleOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleAddContact = () => {\r\n setFormOpen(true);\r\n };\r\n\r\n const handleCloseContactForm = () => {\r\n setSelectedContact(null);\r\n setFormOpen(false);\r\n };\r\n\r\n const stepOptions = {\r\n body: 'Administrez vos contacts facilement et en quelques clics!',\r\n renderContent: () => (\r\n \r\n \r\n \r\n ),\r\n step: 2,\r\n title: 'Gérez vos Contacts',\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n alpha(theme.palette.primary.main, theme.palette.action.focusOpacity),\r\n }),\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Contacts ({contacts.length})\r\n \r\n\r\n \r\n \r\n {contacts.map((contact) => (\r\n deleteContact(contact.ID_CONTACT)}\r\n onSelectContact={() => setSelectedContact(contact)}\r\n />\r\n ))}\r\n \r\n \r\n \r\n \r\n Nouveau contact\r\n \r\n \r\n \r\n {(selectedContact || formOpen) && (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ContactsPopover;\r\n","import bellFill from '@iconify/icons-eva/bell-fill';\r\nimport clockFill from '@iconify/icons-eva/clock-fill';\r\nimport { Icon } from '@iconify/react';\r\nimport { Badge, Box, Divider, List, ListItem, ListItemText, Stack, Typography } from '@material-ui/core';\r\n// material\r\nimport { alpha } from '@material-ui/core/styles';\r\nimport { LoadingButton } from '@material-ui/lab';\r\nimport TypeLabel from 'components/dashboard/records/labels/TypeLabel';\r\nimport TutorialElement from 'components/tutorial/TutorialElement';\r\nimport useNotifications from 'hooks/useNotifications';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useEffect, useRef, useState } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport { fDate } from 'utils/formatTime';\r\n\r\nimport { MIconButton } from '../../components/@material-extend';\r\nimport MenuPopover from '../../components/MenuPopover';\r\n// components\r\nimport Scrollbar from '../../components/Scrollbar';\r\n\r\n// utils\r\n// ----------------------------------------------------------------------\r\n\r\nfunction NotificationItem({ notification, onClose }) {\r\n return (\r\n \r\n \r\n \r\n \r\n {`Le ${fDate(new Date(notification.DTEDERMOD))}`}\r\n \r\n \r\n \r\n }\r\n />\r\n \r\n );\r\n}\r\n\r\nNotificationItem.propTypes = {\r\n // eslint-disable-next-line react/forbid-prop-types\r\n notification: PropTypes.object.isRequired,\r\n};\r\n\r\nconst NotificationsPopover = () => {\r\n const anchorRef = useRef(null);\r\n const [open, setOpen] = useState(false);\r\n const [refreshing, setRefreshing] = useState(false);\r\n const { getNotifications, notifications } = useNotifications();\r\n\r\n const totalUnRead = notifications.length;\r\n\r\n const handleOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n useEffect(() => {\r\n let interval = null;\r\n (async () => {\r\n await getNotifications();\r\n interval = setInterval(getNotifications, 30000);\r\n })();\r\n\r\n return () => interval && clearInterval(interval);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const handleRefreshNotifications = async () => {\r\n setRefreshing(true);\r\n await getNotifications();\r\n setRefreshing(false);\r\n };\r\n\r\n const stepOptions = {\r\n body: 'Recevez des notifications au sujet des dossiers en cours et ouvert ! Si vous êtes connecté depuis longtemps, pensez à rafraîchir.',\r\n renderContent: () => (\r\n \r\n \r\n \r\n ),\r\n step: 1,\r\n title: 'Notifications',\r\n };\r\n\r\n return (\r\n <>\r\n \r\n alpha(theme.palette.primary.main, theme.palette.action.focusOpacity),\r\n }),\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Notifications\r\n \r\n {totalUnRead > 0 ? `Vous avez ${totalUnRead} dossiers non lus` : 'Vous êtes à jour'}\r\n \r\n \r\n \r\n\r\n \r\n\r\n {totalUnRead > 0 && (\r\n \r\n \r\n {notifications.map((notification) => (\r\n \r\n ))}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Rafraîchir\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default NotificationsPopover;\r\n","import menu2Fill from '@iconify/icons-eva/menu-2-fill';\r\nimport { Icon } from '@iconify/react';\r\nimport { AppBar, Box, IconButton, Stack, Toolbar } from '@material-ui/core';\r\n// material\r\nimport { alpha, experimentalStyled as styled } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\n// components\r\nimport React from 'react';\r\n\r\nimport { MHidden } from '../../components/@material-extend';\r\nimport AccountPopover from './AccountPopover';\r\nimport ContactsPopover from './ContactsPopover';\r\nimport NotificationsPopover from './NotificationsPopover';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst DRAWER_WIDTH = 280;\r\nconst APP_BAR_MOBILE = 64;\r\nconst APP_BAR_DESKTOP = 92;\r\n\r\nconst RootStyle = styled(AppBar)(({ theme }) => ({\r\n WebkitBackdropFilter: 'blur(6px)',\r\n backdropFilter: 'blur(6px)',\r\n // Fix on Mobile\r\n backgroundColor: alpha(theme.palette.background.default, 0.72),\r\n boxShadow: 'none',\r\n [theme.breakpoints.up('lg')]: {\r\n width: `calc(100% - ${DRAWER_WIDTH + 1}px)`,\r\n },\r\n}));\r\n\r\nconst ToolbarStyle = styled(Toolbar)(({ theme }) => ({\r\n minHeight: APP_BAR_MOBILE,\r\n [theme.breakpoints.up('lg')]: {\r\n minHeight: APP_BAR_DESKTOP,\r\n padding: theme.spacing(0, 5),\r\n },\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst DashboardNavbar = ({ onOpenSidebar }) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nDashboardNavbar.propTypes = {\r\n onOpenSidebar: PropTypes.func,\r\n};\r\n\r\nexport default DashboardNavbar;\r\n","import { Box } from '@material-ui/core';\r\n// material\r\nimport { useTheme } from '@material-ui/core/styles';\r\nimport React from 'react';\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function PWAIcon({ ...other }) {\r\n const theme = useTheme();\r\n const PRIMARY = theme.palette.primary.main;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import {\r\n Box,\r\n Button,\r\n Stack,\r\n Typography,\r\n experimentalStyled as styled,\r\n useMediaQuery,\r\n useTheme,\r\n} from '@material-ui/core';\r\nimport PWAIcon from 'assets/pwa';\r\nimport { useSnackbar } from 'notistack';\r\nimport React, { useCallback, useEffect, useState } from 'react';\r\n\r\nconst InstallAppStyle = styled('div')(({ theme }) => ({\r\n backgroundColor: theme.palette.grey[500_11],\r\n borderRadius: theme.shape.borderRadiusSm,\r\n padding: theme.spacing(2, 2.5),\r\n}));\r\n\r\nconst InstallApp = () => {\r\n const [canAdd, setCanAdd] = useState(false);\r\n const [deferredPrompt, setDeferredPrompt] = useState(null);\r\n const theme = useTheme();\r\n const isMobile = useMediaQuery(theme.breakpoints.down('sm'));\r\n const { enqueueSnackbar } = useSnackbar();\r\n\r\n const handleInstall = useCallback(\r\n (e) => {\r\n e.preventDefault();\r\n deferredPrompt.prompt();\r\n deferredPrompt.userChoice.then(() => {\r\n setCanAdd(false);\r\n setDeferredPrompt(false);\r\n });\r\n },\r\n [deferredPrompt]\r\n );\r\n\r\n useEffect(() => {\r\n window.addEventListener('beforeinstallprompt', (e) => {\r\n // Prevent Chrome 67 and earlier from automatically showing the prompt\r\n e.preventDefault();\r\n // Stash the event so it can be triggered later.\r\n setDeferredPrompt(e);\r\n setCanAdd(true);\r\n if (isMobile)\r\n enqueueSnackbar(`Vous pouvez installer l'application sur votre téléphone`, {\r\n action: () => (\r\n \r\n ),\r\n variant: 'success',\r\n });\r\n });\r\n }, [enqueueSnackbar, handleInstall, isMobile]);\r\n\r\n if (!canAdd) return null;\r\n\r\n return (\r\n \r\n \r\n \r\n Installez l'application pour téléphone / desktop\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default InstallApp;\r\n","import { Box } from '@material-ui/core';\r\nimport config from 'config';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\nconst { logoURL } = config.public;\r\n\r\nconst Logo = ({ sx }) => (\r\n \r\n \"Socanor\"\r\n \r\n);\r\n\r\nLogo.propTypes = {\r\n // eslint-disable-next-line react/forbid-prop-types\r\n sx: PropTypes.object,\r\n};\r\n\r\nexport default Logo;\r\n","import arrowIosDownwardFill from '@iconify/icons-eva/arrow-ios-downward-fill'; // cspell-checker: disable-line\r\nimport arrowIosForwardFill from '@iconify/icons-eva/arrow-ios-forward-fill'; // cspell-checker: disable-line\r\nimport { Icon } from '@iconify/react'; // cspell-checker: disable-line\r\nimport { Box, Collapse, List, ListItem, ListItemIcon, ListItemText, ListSubheader } from '@material-ui/core';\r\n// material\r\nimport { alpha, experimentalStyled as styled, useTheme } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useState } from 'react';\r\nimport { NavLink as RouterLink, matchPath, useLocation } from 'react-router-dom';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst ListSubheaderStyle = styled((props) => )(\r\n ({ theme }) => ({\r\n ...theme.typography.overline,\r\n color: theme.palette.text.primary,\r\n marginBottom: theme.spacing(2),\r\n marginTop: theme.spacing(3),\r\n paddingLeft: theme.spacing(5),\r\n })\r\n);\r\n\r\nconst ListItemStyle = styled((props) => )(({ theme }) => ({\r\n ...theme.typography.body2,\r\n '&:before': {\r\n backgroundColor: theme.palette.primary.main,\r\n borderBottomLeftRadius: 4,\r\n borderTopLeftRadius: 4,\r\n bottom: 0,\r\n content: \"''\",\r\n display: 'none',\r\n position: 'absolute',\r\n right: 0,\r\n top: 0,\r\n width: 3,\r\n },\r\n color: theme.palette.text.secondary,\r\n height: 48,\r\n paddingLeft: theme.spacing(5),\r\n paddingRight: theme.spacing(2.5),\r\n position: 'relative',\r\n textTransform: 'capitalize',\r\n}));\r\n\r\nconst ListItemIconStyle = styled(ListItemIcon)({\r\n alignItems: 'center',\r\n display: 'flex',\r\n height: 22,\r\n justifyContent: 'center',\r\n width: 22,\r\n});\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst NavItem = ({ active, item }) => {\r\n const theme = useTheme();\r\n const isActiveRoot = active(item.path);\r\n const { children, icon, info, path, title } = item;\r\n const [open, setOpen] = useState(isActiveRoot);\r\n\r\n const handleOpen = () => {\r\n setOpen((prev) => !prev);\r\n };\r\n\r\n const activeRootStyle = {\r\n '&:before': { display: 'block' },\r\n bgcolor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\r\n color: 'primary.main',\r\n fontWeight: 'fontWeightMedium',\r\n };\r\n\r\n const activeSubStyle = {\r\n color: 'text.primary',\r\n fontWeight: 'fontWeightMedium',\r\n };\r\n\r\n if (children) {\r\n return (\r\n <>\r\n \r\n \r\n {icon || (\r\n th.transitions.create('transform'),\r\n width: 4,\r\n ...(isActiveRoot && {\r\n bgcolor: 'primary.main', // cspell-checker: disable-line\r\n transform: 'scale(2)',\r\n }),\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {info && info}\r\n \r\n \r\n\r\n \r\n \r\n {children.map((navItem) => {\r\n const { path: itemPath, title: itemTitle } = navItem;\r\n const isActiveSub = active(itemPath);\r\n\r\n return (\r\n \r\n \r\n th.transitions.create('transform'),\r\n width: 4,\r\n ...(isActiveSub && {\r\n bgcolor: 'primary.main', // cspell-checker: disable-line\r\n transform: 'scale(2)',\r\n }),\r\n }}\r\n />\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {icon || (\r\n th.transitions.create('transform'),\r\n width: 4,\r\n ...(isActiveRoot && {\r\n bgcolor: 'primary.main', // cspell-checker: disable-line\r\n transform: 'scale(2)',\r\n }),\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {info && info}\r\n \r\n );\r\n};\r\n\r\nNavItem.propTypes = {\r\n active: PropTypes.func,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n item: PropTypes.object,\r\n};\r\n\r\nconst NavSection = ({ navConfig, ...other }) => {\r\n const { pathname } = useLocation();\r\n const match = (path) => (path ? !!matchPath({ end: false, path }, pathname) : false);\r\n\r\n return (\r\n \r\n {navConfig.map((list) => {\r\n const { items, subheader } = list;\r\n return (\r\n \r\n {subheader}\r\n {items.map((item) => (\r\n \r\n ))}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nNavSection.propTypes = {\r\n // eslint-disable-next-line react/forbid-prop-types\r\n navConfig: PropTypes.array,\r\n};\r\n\r\nexport default NavSection;\r\n","import { Dashboard as DashboardIcon, Description as DescriptionIcon } from '@material-ui/icons';\r\nimport React from 'react';\r\n// routes\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst ICONS = {\r\n dashboard: ,\r\n documents: ,\r\n};\r\n\r\nconst sidebarConfig = [\r\n {\r\n items: [\r\n {\r\n icon: ICONS.dashboard,\r\n path: PATH_DASHBOARD.overview,\r\n title: 'Accueil',\r\n },\r\n {\r\n icon: ICONS.documents,\r\n path: PATH_DASHBOARD.documents,\r\n title: 'Documents',\r\n },\r\n ],\r\n },\r\n {\r\n items: [\r\n {\r\n path: PATH_DASHBOARD.pieces,\r\n title: 'Pièces',\r\n },\r\n {\r\n path: PATH_DASHBOARD.piecesReturn,\r\n title: 'Retour de pièces',\r\n },\r\n {\r\n path: PATH_DASHBOARD.technical,\r\n title: 'Techniques',\r\n },\r\n ],\r\n subheader: 'Mes dossiers',\r\n },\r\n];\r\n\r\nexport default sidebarConfig;\r\n","import { Box, Button, Drawer, Link, Typography, useMediaQuery, useTheme } from '@material-ui/core';\r\nimport { alpha, experimentalStyled as styled } from '@material-ui/core/styles';\r\nimport InstallApp from 'components/InstallApp';\r\nimport useTutorial from 'hooks/useTutorial';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useEffect } from 'react';\r\nimport { Link as RouterLink, useLocation } from 'react-router-dom';\r\n\r\nimport { DocIcon } from '../../assets';\r\nimport { MHidden } from '../../components/@material-extend';\r\nimport Logo from '../../components/Logo';\r\nimport MyAvatar from '../../components/MyAvatar';\r\nimport NavSection from '../../components/NavSection';\r\nimport Scrollbar from '../../components/Scrollbar';\r\nimport useAuth from '../../hooks/useAuth';\r\nimport sidebarConfig from './SidebarConfig';\r\n\r\nconst DRAWER_WIDTH = 280;\r\n\r\nconst RootStyle = styled('div')(({ theme }) => ({\r\n [theme.breakpoints.up('lg')]: {\r\n flexShrink: 0,\r\n width: DRAWER_WIDTH,\r\n },\r\n}));\r\n\r\nconst AccountStyle = styled('div')(({ theme }) => ({\r\n alignItems: 'center',\r\n backgroundColor: theme.palette.grey[500_12],\r\n borderRadius: theme.shape.borderRadiusSm,\r\n display: 'flex',\r\n padding: theme.spacing(2, 2.5),\r\n}));\r\n\r\nconst DocStyle = styled('div')(({ theme }) => ({\r\n backgroundColor:\r\n theme.palette.mode === 'light' ? alpha(theme.palette.primary.main, 0.08) : theme.palette.primary.lighter,\r\n borderRadius: theme.shape.borderRadiusMd,\r\n padding: theme.spacing(2.5),\r\n}));\r\n\r\nconst DashboardSidebar = ({ isOpenSidebar, onCloseSidebar }) => {\r\n const { pathname } = useLocation();\r\n const { user } = useAuth();\r\n const theme = useTheme();\r\n const { handleOpen, size } = useTutorial();\r\n const isMobile = useMediaQuery(theme.breakpoints.down('sm'));\r\n\r\n useEffect(() => {\r\n if (isOpenSidebar) {\r\n onCloseSidebar();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [pathname]);\r\n\r\n const renderContent = (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {user.displayName}\r\n \r\n \r\n {user.email}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n {Boolean(size) && !isMobile && (\r\n \r\n \r\n \r\n \r\n Besoin d'aide ?\r\n \r\n \r\n Il y a {size} conseils à voir sur cette page !\r\n \r\n {\r\n if (isOpenSidebar && onCloseSidebar) onCloseSidebar();\r\n handleOpen();\r\n }}\r\n variant=\"contained\"\r\n >\r\n Voir les conseils\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n {renderContent}\r\n \r\n \r\n\r\n \r\n \r\n {renderContent}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nDashboardSidebar.propTypes = {\r\n isOpenSidebar: PropTypes.bool,\r\n onCloseSidebar: PropTypes.func,\r\n};\r\n\r\nexport default DashboardSidebar;\r\n","// material\r\nimport { experimentalStyled as styled } from '@material-ui/core/styles';\r\nimport { ContactsProvider } from 'contexts/ContactsContext';\r\nimport { NotificationsProvider } from 'contexts/NotificationsContext';\r\nimport React, { useState } from 'react';\r\nimport { Outlet } from 'react-router-dom';\r\n\r\n//\r\nimport DashboardNavbar from './DashboardNavbar';\r\nimport DashboardSidebar from './DashboardSidebar';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst APP_BAR_MOBILE = 64;\r\nconst APP_BAR_DESKTOP = 92;\r\n\r\nconst RootStyle = styled('div')({\r\n display: 'flex',\r\n minHeight: '100%',\r\n overflow: 'hidden',\r\n});\r\n\r\nconst MainStyle = styled('div')(({ theme }) => ({\r\n flexGrow: 1,\r\n minHeight: '100%',\r\n overflow: 'auto',\r\n paddingBottom: theme.spacing(10),\r\n paddingTop: APP_BAR_MOBILE + 24,\r\n [theme.breakpoints.up('lg')]: {\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(2),\r\n paddingTop: APP_BAR_DESKTOP + 24,\r\n },\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function DashboardLayout() {\r\n const [open, setOpen] = useState(false);\r\n\r\n return (\r\n \r\n \r\n \r\n setOpen(true)} />\r\n setOpen(false)} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","// material\r\nimport { experimentalStyled as styled } from '@material-ui/core/styles';\r\n// components\r\nimport React from 'react';\r\nimport { Outlet, Link as RouterLink } from 'react-router-dom';\r\n\r\nimport Logo from '../components/Logo';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst HeaderStyle = styled('header')(({ theme }) => ({\r\n left: 0,\r\n lineHeight: 0,\r\n padding: theme.spacing(3, 3, 0),\r\n position: 'absolute',\r\n top: 0,\r\n width: '100%',\r\n [theme.breakpoints.up('sm')]: {\r\n padding: theme.spacing(5, 5, 0),\r\n },\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst LogoOnlyLayout = () => (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default LogoOnlyLayout;\r\n","import React, { Suspense, lazy } from 'react';\r\nimport { Navigate, useLocation, useRoutes } from 'react-router-dom';\r\n\r\n// components\r\nimport LoadingScreen from '../components/LoadingScreen';\r\nimport AuthGuard from '../guards/AuthGuard';\r\n// guards\r\nimport GuestGuard from '../guards/GuestGuard';\r\nimport DashboardLayout from '../layouts/dashboard';\r\nimport LogoOnlyLayout from '../layouts/LogoOnlyLayout';\r\nimport { PATH_DASHBOARD } from './paths';\r\n\r\nconst Loadable = (Component) => (props) => {\r\n // eslint-disable-next-line react-hooks/rules-of-hooks\r\n const { pathname } = useLocation();\r\n const isDashboard = pathname.includes(PATH_DASHBOARD.root);\r\n\r\n return (\r\n \r\n }\r\n >\r\n \r\n \r\n );\r\n};\r\n\r\nexport default function Router() {\r\n return useRoutes([\r\n // Dashboard Routes\r\n {\r\n children: [\r\n { element: , path: '/' },\r\n { element: , path: '/documents' },\r\n { element: , path: '/overview' },\r\n { element: , path: '/pieces' },\r\n {\r\n element: ,\r\n path: '/retour-de-pieces',\r\n },\r\n { element: , path: '/techniques' },\r\n { element: , path: '/dossiers/:id' },\r\n ],\r\n element: (\r\n \r\n \r\n \r\n ),\r\n path: 'dashboard',\r\n },\r\n // Main Routes\r\n {\r\n children: [\r\n { element: , path: '/' },\r\n {\r\n element: (\r\n \r\n \r\n \r\n ),\r\n path: 'login',\r\n },\r\n ],\r\n path: '*',\r\n },\r\n // Errors route\r\n {\r\n children: [\r\n { element: , path: '404' },\r\n { element: , path: '*' },\r\n ],\r\n element: ,\r\n path: '*',\r\n },\r\n ]);\r\n}\r\n\r\n// IMPORT COMPONENTS\r\n\r\n// Authentication\r\nconst Login = Loadable(lazy(() => import('../pages/authentication/Login')));\r\n// Dashboard\r\nconst OverviewPage = Loadable(lazy(() => import('../pages/dashboard/Overview')));\r\nconst DocumentsPage = Loadable(lazy(() => import('../pages/dashboard/Documents')));\r\nconst RecordsPage = Loadable(lazy(() => import('../pages/dashboard/Records')));\r\nconst RecordDetailsPage = Loadable(lazy(() => import('../pages/dashboard/RecordDetails')));\r\n// Main\r\nconst NotFound = Loadable(lazy(() => import('../pages/Page404')));\r\n","// routes\r\nimport { useMediaQuery, useTheme } from '@material-ui/core';\r\nimport Tutorial from 'components/tutorial/Tutorial';\r\nimport ConfigProvider from 'config/ConfigProvider';\r\nimport { TutorialProvider } from 'contexts/TutorialContext';\r\nimport React from 'react';\r\n\r\nimport LoadingScreen from './components/LoadingScreen';\r\nimport NotistackProvider from './components/NotistackProvider'; // cspell-checker: disable-line\r\nimport RtlLayout from './components/RtlLayout';\r\nimport ScrollToTop from './components/ScrollToTop';\r\n// components\r\nimport ThemePrimaryColor from './components/ThemePrimaryColor';\r\n// hooks\r\nimport useAuth from './hooks/useAuth';\r\nimport Router from './routes';\r\n// theme\r\nimport ThemeConfig from './theme';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function App() {\r\n const { isInitialized } = useAuth();\r\n const theme = useTheme();\r\n const isMobile = useMediaQuery(theme.breakpoints.down('sm'));\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isInitialized ? : }\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","const reportWebVitals = (onPerfEntry) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFCP, getFID, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://cra.link/PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\r\n);\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then((registration) => {\r\n // eslint-disable-next-line no-param-reassign\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n //\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n // eslint-disable-next-line no-console\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch((error) => {\r\n // eslint-disable-next-line no-console\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' },\r\n })\r\n .then((response) => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (response.status === 404 || (contentType != null && contentType.indexOf('javascript') === -1)) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n // eslint-disable-next-line no-console\r\n console.log('No internet connection found. App is running in offline mode.');\r\n });\r\n}\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n // eslint-disable-next-line no-console\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://cra.link/PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then((registration) => {\r\n registration.unregister();\r\n })\r\n .catch((error) => {\r\n // eslint-disable-next-line no-console\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","// cspell-checker: disable\r\n// scroll bar\r\nimport 'simplebar/src/simplebar.css';\r\n// map\r\nimport 'mapbox-gl/dist/mapbox-gl.css';\r\n// lightbox\r\nimport 'react-image-lightbox/style.css';\r\n// editor\r\nimport 'react-quill/dist/quill.snow.css';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\n// slick-carousel\r\nimport 'slick-carousel/slick/slick.css';\r\nimport 'slick-carousel/slick/slick-theme.css';\r\n// lazy image\r\n// cspell-checker: disable\r\nimport 'lazysizes';\r\nimport 'lazysizes/plugins/attrchange/ls.attrchange';\r\nimport 'lazysizes/plugins/object-fit/ls.object-fit';\r\nimport 'lazysizes/plugins/parent-fit/ls.parent-fit';\r\n\r\n// cspell-checker: enable\r\n// i18n\r\nimport './locales/i18n';\r\n// highlight\r\nimport './utils/highlight';\r\n\r\nimport { LoadingButton } from '@material-ui/lab';\r\n// material\r\nimport AdapterDateFns from '@material-ui/lab/AdapterDateFns';\r\nimport LocalizationProvider from '@material-ui/lab/LocalizationProvider';\r\n// redux\r\nimport React, { useState } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { HelmetProvider } from 'react-helmet-async';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport snackbar from 'utils/snackbar';\r\n\r\n//\r\nimport App from './App';\r\nimport { AuthProvider } from './contexts/JWTContext';\r\n// contexts\r\nimport { SettingsProvider } from './contexts/SettingsContext';\r\nimport reportWebVitals from './reportWebVitals';\r\nimport * as serviceWorker from './serviceWorkerRegistration';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to enable client cache, register instead.\r\nserviceWorker.register({\r\n onUpdate: (registration) => {\r\n const registrationWaiting = registration.waiting;\r\n if (registrationWaiting) {\r\n snackbar.enqueue('Votre application a été mise à jour', {\r\n action: () => {\r\n // eslint-disable-next-line react-hooks/rules-of-hooks\r\n const [loading, setLoading] = useState(false);\r\n\r\n return (\r\n {\r\n setLoading(true);\r\n registrationWaiting.postMessage({ type: 'SKIP_WAITING' });\r\n registrationWaiting.addEventListener('statechange', (e) => {\r\n if (e.target.state === 'activated') {\r\n window.location.href = `${window.location.pathname}${window.location.search}`;\r\n }\r\n });\r\n }}\r\n variant=\"outlined\"\r\n >\r\n Rafraîchir\r\n \r\n );\r\n },\r\n persist: true,\r\n variant: 'warning',\r\n });\r\n }\r\n },\r\n});\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n","import { sign, verify } from 'jsonwebtoken';\r\nimport jwtDecode from 'jwt-decode';\r\n\r\n//\r\n// eslint-disable-next-line import/no-cycle\r\nimport axios from './axios';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst isValidToken = (token) => {\r\n if (!token) {\r\n return false;\r\n }\r\n\r\n const decoded = jwtDecode(token);\r\n const currentTime = Date.now() / 1000;\r\n\r\n return decoded.exp > currentTime;\r\n};\r\n\r\nconst handleTokenExpired = (exp) => {\r\n let expiredTimer;\r\n\r\n window.clearTimeout(expiredTimer);\r\n const currentTime = Date.now();\r\n const timeLeft = exp * 1000 - currentTime;\r\n expiredTimer = window.setTimeout(() => {\r\n localStorage.removeItem('token');\r\n window.location.href = '/login';\r\n }, timeLeft);\r\n};\r\n\r\nconst setSession = (token) => {\r\n if (token) {\r\n localStorage.setItem('token', token);\r\n // Unless until we add interceptor in apis.js\r\n axios.defaults.headers.common.Authorization = `Bearer ${token}`;\r\n // This function below will handle when token is expired\r\n const { exp } = jwtDecode(token);\r\n handleTokenExpired(exp);\r\n } else {\r\n localStorage.removeItem('token');\r\n delete axios.defaults.headers.common.Authorization;\r\n }\r\n};\r\n\r\nexport { isValidToken, setSession, verify, sign };\r\n","// ----------------------------------------------------------------------\r\n\r\nexport const varWrapEnter = {\r\n animate: {\r\n transition: { staggerChildren: 0.1 },\r\n },\r\n};\r\n\r\nexport const varWrapExit = {\r\n exit: {\r\n transition: { staggerChildren: 0.1 },\r\n },\r\n};\r\n\r\nexport const varWrapBoth = {\r\n animate: {\r\n transition: { delayChildren: 0.1, staggerChildren: 0.07 },\r\n },\r\n exit: {\r\n transition: { staggerChildren: 0.05, staggerDirection: -1 },\r\n },\r\n};\r\n","// ----------------------------------------------------------------------\r\n\r\nexport const varHover = {\r\n hover: { scale: 1.1 },\r\n};\r\n\r\nexport const varSmallClick = {\r\n hover: { scale: 1.04 },\r\n tap: { scale: 0.96 },\r\n};\r\n\r\nexport const varMediumClick = {\r\n hover: { scale: 1.1 },\r\n tap: { scale: 0.9 },\r\n};\r\n","// ----------------------------------------------------------------------\r\n\r\nconst TRANSITION = {\r\n duration: 4,\r\n ease: 'linear',\r\n};\r\n\r\nconst gradient = (deg) => `linear-gradient(${deg}deg, #ee7752, #e73c7e, #23a6d5, #23d5ab)`;\r\n\r\nexport const varPanTop = {\r\n animate: {\r\n backgroundImage: [gradient(0), gradient(0)],\r\n backgroundPosition: ['center 99%', 'center 1%'],\r\n backgroundSize: ['100% 600%', '100% 600%'],\r\n transition: TRANSITION,\r\n },\r\n};\r\n\r\nexport const varPanBottom = {\r\n animate: {\r\n backgroundImage: [gradient(0), gradient(0)],\r\n backgroundPosition: ['center 1%', 'center 99%'],\r\n backgroundSize: ['100% 600%', '100% 600%'],\r\n transition: TRANSITION,\r\n },\r\n};\r\n\r\nexport const varPanLeft = {\r\n animate: {\r\n backgroundImage: [gradient(270), gradient(270)],\r\n backgroundPosition: ['99% center', '1% center'],\r\n backgroundSize: ['600% 100%', '600% 100%'],\r\n transition: TRANSITION,\r\n },\r\n};\r\n\r\nexport const varPanRight = {\r\n animate: {\r\n backgroundImage: [gradient(270), gradient(270)],\r\n backgroundPosition: ['1% center', '99% center'],\r\n backgroundSize: ['600% 100%', '600% 100%'],\r\n transition: TRANSITION,\r\n },\r\n};\r\n","// ----------------------------------------------------------------------\r\n\r\nconst DISTANCE = 120;\r\n\r\nconst TRANSITION_ENTER = {\r\n duration: 0.64,\r\n ease: [0.43, 0.13, 0.23, 0.96],\r\n};\r\nconst TRANSITION_EXIT = {\r\n duration: 0.48,\r\n ease: [0.43, 0.13, 0.23, 0.96],\r\n};\r\n\r\nexport const varFadeIn = {\r\n animate: { opacity: 1, transition: TRANSITION_ENTER },\r\n exit: { opacity: 0, transition: TRANSITION_EXIT },\r\n initial: { opacity: 0 },\r\n};\r\n\r\nexport const varFadeInUp = {\r\n animate: { opacity: 1, transition: TRANSITION_ENTER, y: 0 },\r\n exit: { opacity: 0, transition: TRANSITION_EXIT, y: DISTANCE },\r\n initial: { opacity: 0, y: DISTANCE },\r\n};\r\n\r\nexport const varFadeInLeft = {\r\n animate: { opacity: 1, transition: TRANSITION_ENTER, x: 0 },\r\n exit: { opacity: 0, transition: TRANSITION_EXIT, x: -DISTANCE },\r\n initial: { opacity: 0, x: -DISTANCE },\r\n};\r\n\r\nexport const varFadeInDown = {\r\n animate: { opacity: 1, transition: TRANSITION_ENTER, y: 0 },\r\n exit: { opacity: 0, transition: TRANSITION_EXIT, y: -DISTANCE },\r\n initial: { opacity: 0, y: -DISTANCE },\r\n};\r\n\r\nexport const varFadeInRight = {\r\n animate: { opacity: 1, transition: TRANSITION_ENTER, x: 0 },\r\n exit: { opacity: 0, transition: TRANSITION_EXIT, x: DISTANCE },\r\n initial: { opacity: 0, x: DISTANCE },\r\n};\r\n","// ----------------------------------------------------------------------\r\n\r\nconst DISTANCE = 720;\r\nconst IN = { opacity: 1, scale: 1 };\r\nconst OUT = { opacity: 0, scale: 0 };\r\n\r\nconst TRANSITION_ENTER = {\r\n duration: 0.64,\r\n ease: [0.43, 0.13, 0.23, 0.96],\r\n};\r\n\r\nconst TRANSITION_EXIT = {\r\n duration: 0.48,\r\n ease: [0.43, 0.13, 0.23, 0.96],\r\n};\r\n\r\nexport const varZoomIn = {\r\n animate: { ...IN, transition: TRANSITION_ENTER },\r\n exit: { ...OUT, transition: TRANSITION_EXIT },\r\n initial: OUT,\r\n};\r\n\r\nexport const varZoomInUp = {\r\n animate: { ...IN, transition: TRANSITION_ENTER, translateY: 0 },\r\n exit: { ...OUT, transition: TRANSITION_EXIT, translateY: DISTANCE },\r\n initial: { ...OUT, translateY: DISTANCE },\r\n};\r\n\r\nexport const varZoomInDown = {\r\n animate: { ...IN, transition: TRANSITION_ENTER, translateY: 0 },\r\n exit: { ...OUT, transition: TRANSITION_EXIT, translateY: -DISTANCE },\r\n initial: { ...OUT, translateY: -DISTANCE },\r\n};\r\n\r\nexport const varZoomInLeft = {\r\n animate: { ...IN, transition: TRANSITION_ENTER, translateX: 0 },\r\n exit: { ...OUT, transition: TRANSITION_EXIT, translateX: -DISTANCE },\r\n initial: { ...OUT, translateX: -DISTANCE },\r\n};\r\n\r\nexport const varZoomInRight = {\r\n animate: { ...IN, transition: TRANSITION_ENTER, translateX: 0 },\r\n exit: { ...OUT, transition: TRANSITION_EXIT, translateX: DISTANCE },\r\n initial: { ...OUT, translateX: DISTANCE },\r\n};\r\n","// ----------------------------------------------------------------------\r\n\r\nconst DISTANCE = 720;\r\nconst IN = { opacity: 1, scale: 1 };\r\nconst OUT = { opacity: 0, scale: 0 };\r\n\r\nconst TRANSITION_ENTER = {\r\n duration: 0.64,\r\n ease: [0.43, 0.13, 0.23, 0.96],\r\n};\r\n\r\nexport const varZoomOut = {\r\n animate: { scale: 0, transition: TRANSITION_ENTER },\r\n initial: { scale: 1 },\r\n};\r\n\r\nexport const varZoomOutUp = {\r\n animate: { ...OUT, transition: TRANSITION_ENTER, translateY: -DISTANCE },\r\n initial: IN,\r\n};\r\n\r\nexport const varZoomOutDown = {\r\n animate: { ...OUT, transition: TRANSITION_ENTER, translateY: DISTANCE },\r\n initial: IN,\r\n};\r\n\r\nexport const varZoomOutLeft = {\r\n animate: { ...OUT, transition: TRANSITION_ENTER, translateX: -DISTANCE },\r\n initial: IN,\r\n};\r\n\r\nexport const varZoomOutRight = {\r\n animate: { ...OUT, transition: TRANSITION_ENTER, translateX: DISTANCE },\r\n initial: IN,\r\n};\r\n","import { varBounceOut, varBounceOutDown, varBounceOutLeft, varBounceOutRight, varBounceOutUp } from './BounceOut';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst TRANSITION_ENTER = {\r\n duration: 0.72,\r\n ease: [0.43, 0.13, 0.23, 0.96],\r\n};\r\n\r\nconst TRANSITION_EXIT = {\r\n duration: 0.48,\r\n ease: [0.43, 0.13, 0.23, 0.96],\r\n};\r\n\r\nexport const varBounceIn = {\r\n animate: {\r\n opacity: [0, 1, 1, 1, 1, 1],\r\n scale: [0.3, 1.1, 0.9, 1.03, 0.97, 1],\r\n transition: TRANSITION_ENTER,\r\n },\r\n exit: varBounceOut.animate,\r\n};\r\n\r\nexport const varBounceInUp = {\r\n animate: {\r\n opacity: [0, 1, 1, 1, 1],\r\n scaleY: [4, 0.9, 0.95, 0.985, 1],\r\n transition: { ...TRANSITION_ENTER },\r\n y: [720, -24, 12, -4, 0],\r\n },\r\n exit: { ...varBounceOutDown.animate, transition: TRANSITION_EXIT },\r\n};\r\n\r\nexport const varBounceInDown = {\r\n animate: {\r\n opacity: [0, 1, 1, 1, 1],\r\n scaleY: [4, 0.9, 0.95, 0.985, 1],\r\n transition: TRANSITION_ENTER,\r\n y: [-720, 24, -12, 4, 0],\r\n },\r\n exit: { ...varBounceOutUp.animate, transition: TRANSITION_EXIT },\r\n};\r\n\r\nexport const varBounceInLeft = {\r\n animate: {\r\n opacity: [0, 1, 1, 1, 1],\r\n scaleX: [3, 1, 0.98, 0.995, 1],\r\n transition: TRANSITION_ENTER,\r\n x: [-720, 24, -12, 4, 0],\r\n },\r\n exit: { ...varBounceOutLeft.animate, transition: TRANSITION_EXIT },\r\n};\r\n\r\nexport const varBounceInRight = {\r\n animate: {\r\n opacity: [0, 1, 1, 1, 1],\r\n scaleX: [3, 1, 0.98, 0.995, 1],\r\n transition: TRANSITION_ENTER,\r\n x: [720, -24, 12, -4, 0],\r\n },\r\n exit: { ...varBounceOutRight.animate, transition: TRANSITION_EXIT },\r\n};\r\n","// ----------------------------------------------------------------------\r\n\r\nexport const varBounceOut = {\r\n animate: {\r\n opacity: [1, 1, 0],\r\n scale: [0.9, 1.1, 0.3],\r\n },\r\n};\r\n\r\nexport const varBounceOutUp = {\r\n animate: {\r\n opacity: [1, 1, 0],\r\n scaleY: [0.985, 0.9, 3],\r\n y: [-12, 24, -720],\r\n },\r\n};\r\n\r\nexport const varBounceOutDown = {\r\n animate: {\r\n opacity: [1, 1, 0],\r\n scaleY: [0.985, 0.9, 3],\r\n y: [12, -24, 720],\r\n },\r\n};\r\n\r\nexport const varBounceOutLeft = {\r\n animate: {\r\n opacity: [1, 1, 0],\r\n scaleX: [1, 0.9, 2],\r\n x: [0, 24, -720],\r\n },\r\n};\r\n\r\nexport const varBounceOutRight = {\r\n animate: {\r\n opacity: [1, 1, 0],\r\n scaleX: [1, 0.9, 2],\r\n x: [0, -24, 720],\r\n },\r\n};\r\n","// material\r\nimport { Box } from '@material-ui/core';\r\nimport { motion } from 'framer-motion';\r\nimport PropTypes from 'prop-types';\r\n//\r\nimport React from 'react';\r\n\r\nimport { varWrapEnter } from './variants';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst MotionContainer = ({ children, open, ...other }) => (\r\n \r\n {children}\r\n \r\n);\r\n\r\nMotionContainer.propTypes = {\r\n children: PropTypes.node,\r\n open: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default MotionContainer;\r\n","// material\r\nimport { Box } from '@material-ui/core';\r\nimport { motion } from 'framer-motion';\r\nimport PropTypes from 'prop-types';\r\n//\r\nimport React from 'react';\r\n\r\nimport { varMediumClick, varSmallClick } from './variants';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst ButtonAnimate = ({ children, mediumClick = false, sx, ...other }) => (\r\n \r\n {children}\r\n \r\n);\r\n\r\nButtonAnimate.propTypes = {\r\n children: PropTypes.node,\r\n mediumClick: PropTypes.bool,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n sx: PropTypes.object,\r\n};\r\n\r\nexport default ButtonAnimate;\r\n","import { useContext } from 'react';\r\n\r\nimport { TutorialContext } from '../contexts/TutorialContext';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst useTutorial = () => useContext(TutorialContext);\r\n\r\nexport default useTutorial;\r\n","import { useEffect, useRef } from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function useIsMountedRef() {\r\n const isMounted = useRef(true);\r\n\r\n useEffect(\r\n () => () => {\r\n isMounted.current = false;\r\n },\r\n []\r\n );\r\n\r\n return isMounted;\r\n}\r\n","import config from 'config';\r\nimport PropTypes from 'prop-types';\r\nimport React, { createContext } from 'react';\r\n\r\n// hooks\r\nimport useLocalStorage from '../hooks/useLocalStorage';\r\n// theme\r\nimport palette from '../theme/palette';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst PRIMARY_COLOR = [\r\n // DEFAULT\r\n {\r\n name: 'default',\r\n ...palette.light.primary,\r\n },\r\n // PURPLE\r\n {\r\n contrastText: '#fff',\r\n dark: '#431A9E',\r\n darker: '#200A69',\r\n light: '#B985F4',\r\n lighter: '#EBD6FD',\r\n main: '#7635dc',\r\n name: 'purple',\r\n },\r\n // CYAN\r\n {\r\n contrastText: palette.light.grey[800],\r\n dark: '#0E77B7',\r\n darker: '#053D7A',\r\n light: '#76F2FF',\r\n lighter: '#D1FFFC',\r\n main: '#1CCAFF',\r\n name: 'cyan',\r\n },\r\n // BLUE\r\n {\r\n contrastText: '#fff',\r\n dark: '#0027B7',\r\n darker: '#00137A',\r\n light: '#6697FF',\r\n lighter: '#CCDFFF',\r\n main: '#0045FF',\r\n name: 'blue',\r\n },\r\n // ORANGE\r\n {\r\n contrastText: palette.light.grey[800],\r\n dark: '#B66816',\r\n darker: '#793908',\r\n light: '#FED680',\r\n lighter: '#FEF4D4',\r\n main: '#fda92d',\r\n name: 'orange',\r\n },\r\n // RED\r\n {\r\n contrastText: '#fff',\r\n dark: '#B71833',\r\n darker: '#7A0930',\r\n light: '#FFC1AC',\r\n lighter: '#FFE3D5',\r\n main: '#FF3030',\r\n name: 'red',\r\n },\r\n];\r\n\r\nfunction SetColor(themeColor) {\r\n let color;\r\n const DEFAULT = PRIMARY_COLOR[0];\r\n const PURPLE = PRIMARY_COLOR[1];\r\n const CYAN = PRIMARY_COLOR[2];\r\n const BLUE = PRIMARY_COLOR[3];\r\n const ORANGE = PRIMARY_COLOR[4];\r\n const RED = PRIMARY_COLOR[5];\r\n\r\n switch (themeColor) {\r\n case 'purple':\r\n color = PURPLE;\r\n break;\r\n case 'cyan':\r\n color = CYAN;\r\n break;\r\n case 'blue':\r\n color = BLUE;\r\n break;\r\n case 'orange':\r\n color = ORANGE;\r\n break;\r\n case 'red':\r\n color = RED;\r\n break;\r\n default:\r\n color = DEFAULT;\r\n }\r\n return color;\r\n}\r\n\r\nconst { themeColor, themeMode } = config;\r\n\r\nconst initialState = {\r\n colorOption: [],\r\n onChangeColor: () => {},\r\n onChangeDirection: () => {},\r\n onChangeMode: () => {},\r\n setColor: SetColor(themeColor),\r\n themeColor,\r\n themeDirection: 'ltr',\r\n themeMode,\r\n};\r\n\r\nconst SettingsContext = createContext(initialState);\r\n\r\nfunction SettingsProvider({ children }) {\r\n const [settings, setSettings] = useLocalStorage('settings', {\r\n themeColor,\r\n themeDirection: 'ltr',\r\n themeMode,\r\n });\r\n\r\n const onChangeMode = (event) => {\r\n setSettings({\r\n ...settings,\r\n themeMode: event.target.value,\r\n });\r\n };\r\n\r\n const onChangeDirection = (event) => {\r\n setSettings({\r\n ...settings,\r\n themeDirection: event.target.value,\r\n });\r\n };\r\n\r\n const onChangeColor = (event) => {\r\n setSettings({\r\n ...settings,\r\n themeColor: event.target.value,\r\n });\r\n };\r\n\r\n return (\r\n ({\r\n name: color.name,\r\n value: color.main,\r\n })),\r\n\r\n // Color\r\n onChangeColor,\r\n\r\n // Direction\r\n onChangeDirection,\r\n // Mode\r\n onChangeMode,\r\n setColor: SetColor(settings.themeColor),\r\n }}\r\n >\r\n {children}\r\n \r\n );\r\n}\r\n\r\nSettingsProvider.propTypes = {\r\n children: PropTypes.node,\r\n};\r\n\r\nexport { SettingsProvider, SettingsContext };\r\n","import { useEffect, useState } from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function useLocalStorage(key, defaultValue) {\r\n const [value, setValue] = useState(() => {\r\n const storedValue = localStorage.getItem(key);\r\n return storedValue === null ? defaultValue : JSON.parse(storedValue);\r\n });\r\n\r\n useEffect(() => {\r\n const listener = (e) => {\r\n if (e.storageArea === localStorage && e.key === key) {\r\n setValue(JSON.parse(e.newValue));\r\n }\r\n };\r\n window.addEventListener('storage', listener);\r\n\r\n return () => {\r\n window.removeEventListener('storage', listener);\r\n };\r\n }, [key, defaultValue]);\r\n\r\n const setValueInLocalStorage = (newValue) => {\r\n setValue((currentValue) => {\r\n const result = typeof newValue === 'function' ? newValue(currentValue) : newValue;\r\n localStorage.setItem(key, JSON.stringify(result));\r\n return result;\r\n });\r\n };\r\n\r\n return [value, setValueInLocalStorage];\r\n}\r\n","const stopPropagation = (callback) => (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n callback(e);\r\n};\r\n\r\nexport default stopPropagation;\r\n","import { formatDistanceToNow } from 'date-fns';\r\nimport { format } from 'date-fns-tz';\r\nimport { fr } from 'date-fns/locale';\r\n\r\nconst locale = fr;\r\nconst timeZone = 'Europe/Paris';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function fDate(date) {\r\n return format(new Date(date), 'dd MMMM yyyy', { locale, timeZone });\r\n}\r\n\r\nexport function fDateTime(date) {\r\n return format(new Date(date), 'dd MMM yyyy HH:mm', { locale, timeZone });\r\n}\r\n\r\nexport function fDateTimeSuffix(date) {\r\n return format(new Date(date), 'dd/MM/yyyy hh:mm p', { locale, timeZone });\r\n}\r\n\r\nexport function fToNow(date) {\r\n return formatDistanceToNow(new Date(date), {\r\n addSuffix: true,\r\n locale,\r\n });\r\n}\r\n","import { Box, useTheme } from '@material-ui/core';\r\nimport useTutorial from 'hooks/useTutorial';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useEffect, useRef } from 'react';\r\nimport { useLocation } from 'react-router';\r\n\r\nconst TutorialElement = ({ children, disableActions, fixed, step: stepProp, stepOptions, withoutContainer }) => {\r\n const elementRef = useRef();\r\n const childRef = useRef();\r\n const theme = useTheme();\r\n const { addElement, currentStep, open, scrolling } = useTutorial();\r\n const { pathname } = useLocation();\r\n const { body, bodyComponent, renderContent, step: stepOption, title } = stepOptions;\r\n const step = stepProp || stepOption;\r\n\r\n useEffect(() => {\r\n addElement({\r\n disableActions,\r\n fixed,\r\n on: pathname,\r\n ref: childRef,\r\n step,\r\n stepOptions: { body, bodyComponent, renderContent, title },\r\n });\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [pathname, childRef, elementRef]);\r\n\r\n return (\r\n \r\n {withoutContainer\r\n ? React.cloneElement(children, { ref: childRef })\r\n : React.createElement('div', { ref: childRef }, children)}\r\n \r\n );\r\n};\r\n\r\nTutorialElement.defaultProps = {\r\n disableActions: false,\r\n fixed: false,\r\n step: undefined,\r\n stepOptions: {},\r\n withoutContainer: false,\r\n};\r\n\r\nTutorialElement.propTypes = {\r\n children: PropTypes.node.isRequired,\r\n disableActions: PropTypes.bool,\r\n fixed: PropTypes.bool,\r\n step: PropTypes.number,\r\n stepOptions: PropTypes.shape({\r\n body: PropTypes.string,\r\n bodyComponent: PropTypes.func,\r\n renderContent: PropTypes.func,\r\n title: PropTypes.string,\r\n }),\r\n withoutContainer: PropTypes.bool,\r\n};\r\n\r\nexport default TutorialElement;\r\n","import { ContactsContext } from 'contexts/ContactsContext';\r\nimport { useContext } from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst useContacts = () => useContext(ContactsContext);\r\n\r\nexport default useContacts;\r\n","import { useContext } from 'react';\r\n\r\nimport { SettingsContext } from '../contexts/SettingsContext';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst useSettings = () => useContext(SettingsContext);\r\n\r\nexport default useSettings;\r\n","import NotistackProvider from 'components/NotistackProvider';\r\nimport ThemePrimaryColor from 'components/ThemePrimaryColor';\r\nimport { SettingsProvider } from 'contexts/SettingsContext';\r\nimport { useSnackbar } from 'notistack';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport ThemeConfig from 'theme';\r\n\r\nexport default {\r\n enqueue(message, options) {\r\n const Display = () => {\r\n const { enqueueSnackbar } = useSnackbar();\r\n enqueueSnackbar(message, options);\r\n return null;\r\n };\r\n\r\n const mountPoint = document.getElementById('snackbar-helper');\r\n\r\n ReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n mountPoint\r\n );\r\n },\r\n};\r\n","import alertCircleFill from '@iconify/icons-eva/alert-circle-fill';\r\nimport alertTriangleFill from '@iconify/icons-eva/alert-triangle-fill';\r\nimport checkmarkCircle2Fill from '@iconify/icons-eva/checkmark-circle-2-fill';\r\nimport infoFill from '@iconify/icons-eva/info-fill';\r\nimport { Icon } from '@iconify/react';\r\nimport { Box } from '@material-ui/core';\r\n// material\r\nimport { alpha, makeStyles } from '@material-ui/core/styles';\r\nimport { SnackbarProvider } from 'notistack';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst useStyles = makeStyles((theme) => {\r\n const isLight = theme.palette.mode === 'light';\r\n\r\n const createStyle = {\r\n backgroundColor: `${theme.palette.background.paper} !important`,\r\n color: `${theme.palette.text.primary} !important`,\r\n };\r\n\r\n return {\r\n action: {\r\n '& svg': {\r\n '&:hover': { opacity: 1 },\r\n height: 20,\r\n opacity: 0.48,\r\n width: 20,\r\n },\r\n marginRight: -4,\r\n },\r\n containerRoot: {\r\n '& .MuiCollapse-wrapperInner': {\r\n width: '100%',\r\n },\r\n pointerEvents: 'unset',\r\n },\r\n contentRoot: {\r\n backgroundColor: theme.palette.grey[isLight ? 900 : 0],\r\n borderRadius: theme.shape.borderRadius,\r\n boxShadow: theme.customShadows.z8,\r\n color: theme.palette.grey[isLight ? 0 : 800],\r\n margin: theme.spacing(0.25, 0),\r\n padding: theme.spacing(1.5),\r\n width: '100%',\r\n },\r\n error: { ...createStyle },\r\n info: { ...createStyle },\r\n message: {\r\n fontWeight: theme.typography.fontWeightMedium,\r\n padding: 0,\r\n },\r\n success: { ...createStyle },\r\n warning: { ...createStyle },\r\n };\r\n});\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst SnackbarIcon = ({ color, icon }) => (\r\n alpha(theme.palette[color].main, 0.16),\r\n borderRadius: 1.5,\r\n color: `${color}.main`,\r\n display: 'flex',\r\n height: 40,\r\n justifyContent: 'center',\r\n mr: 1.5,\r\n width: 40,\r\n }}\r\n >\r\n \r\n \r\n);\r\n\r\nSnackbarIcon.propTypes = {\r\n color: PropTypes.string,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n icon: PropTypes.object,\r\n};\r\n\r\nconst NotistackProvider = ({ children }) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n ,\r\n info: ,\r\n success: ,\r\n warning: ,\r\n }}\r\n maxSnack={5}\r\n >\r\n {children}\r\n \r\n );\r\n};\r\n\r\nNotistackProvider.propTypes = {\r\n children: PropTypes.node,\r\n};\r\n\r\nexport default NotistackProvider;\r\n","// material\r\nimport { ThemeProvider, alpha, createTheme, useTheme } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useMemo } from 'react';\r\n\r\n// hooks\r\nimport useSettings from '../hooks/useSettings';\r\n//\r\nimport componentsOverride from '../theme/overrides';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst ThemePrimaryColor = ({ children }) => {\r\n const outerTheme = useTheme();\r\n const { setColor } = useSettings();\r\n\r\n const themeOptions = useMemo(\r\n () => ({\r\n ...outerTheme,\r\n customShadows: {\r\n ...outerTheme.customShadows,\r\n primary: `0 8px 16px 0 ${alpha(setColor.main, 0.24)}`,\r\n },\r\n palette: {\r\n ...outerTheme.palette,\r\n primary: setColor,\r\n },\r\n }),\r\n [setColor, outerTheme]\r\n );\r\n\r\n const theme = createTheme(themeOptions);\r\n theme.components = componentsOverride(theme);\r\n\r\n return {children};\r\n};\r\n\r\nThemePrimaryColor.propTypes = {\r\n children: PropTypes.node,\r\n};\r\n\r\nexport default ThemePrimaryColor;\r\n","import PropTypes from 'prop-types';\r\nimport React, { createContext, useEffect, useMemo, useReducer, useState } from 'react';\r\nimport { useLocation } from 'react-router';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState = {\r\n steps: [],\r\n};\r\n\r\nconst handlers = {\r\n ADD_ELEMENT: (state, { disableActions, fixed, on, ref, step, stepOptions }) => ({\r\n ...state,\r\n steps: [...state.steps.filter((s) => s.step !== step), { disableActions, fixed, on, ref, step, stepOptions }],\r\n }),\r\n};\r\n\r\nconst reducer = (state, { payload, type }) => (handlers[type] ? handlers[type](state, payload) : state);\r\n\r\nconst TutorialContext = createContext({\r\n ...initialState,\r\n nextStep: () => Promise.resolve(),\r\n prevStep: () => Promise.resolve(),\r\n});\r\n\r\nfunction TutorialProvider({ children }) {\r\n const [state, dispatch] = useReducer(reducer, initialState);\r\n const [open, setOpen] = useState(false);\r\n const [stepIndex, setStepIndex] = useState(0);\r\n const [scrolling, setScrolling] = useState(false);\r\n const { pathname } = useLocation();\r\n\r\n const filteredSteps = useMemo(() => state.steps.filter((step) => step.on === pathname), [state.steps, pathname]);\r\n const orderedSteps = useMemo(\r\n () =>\r\n filteredSteps.sort((a, b) => {\r\n if (a.step < b.step) return -1;\r\n return 1;\r\n }),\r\n [filteredSteps]\r\n );\r\n\r\n const nextStep = () => setStepIndex((i) => (i < orderedSteps.length - 1 ? i + 1 : 0));\r\n const prevStep = () => setStepIndex((i) => (i <= 0 ? orderedSteps.length - 1 : i - 1));\r\n\r\n const reset = () => setStepIndex(0);\r\n\r\n const addElement = ({ disableActions, fixed, on, ref, step, stepOptions }) => {\r\n //\r\n dispatch({\r\n payload: {\r\n disableActions,\r\n fixed,\r\n on,\r\n ref,\r\n step,\r\n stepOptions,\r\n },\r\n type: 'ADD_ELEMENT',\r\n });\r\n };\r\n\r\n const onChangeStepIndex = (index) => setStepIndex(index);\r\n\r\n const handleOpen = () => setOpen(true);\r\n const handleClose = () => setOpen(false);\r\n\r\n useEffect(() => {\r\n setStepIndex(0);\r\n }, [pathname]);\r\n\r\n const safeStep = useMemo(() => orderedSteps?.[stepIndex] || orderedSteps?.[0], [stepIndex, orderedSteps]);\r\n\r\n return (\r\n setScrolling(true),\r\n handleScrollStop: () => setScrolling(false),\r\n nextStep,\r\n onChangeStepIndex,\r\n open,\r\n orderedSteps,\r\n prevStep,\r\n reset,\r\n safeStep,\r\n scrolling,\r\n size: orderedSteps.length,\r\n stepIndex,\r\n stepRef: safeStep?.ref,\r\n }}\r\n >\r\n {children}\r\n \r\n );\r\n}\r\n\r\nTutorialProvider.propTypes = {\r\n children: PropTypes.node,\r\n};\r\n\r\nexport { TutorialContext, TutorialProvider };\r\n","import PropTypes from 'prop-types';\r\nimport React, { createContext, useEffect, useReducer } from 'react';\r\n\r\nimport apis from '../apis';\r\n// utils\r\nimport { isValidToken, setSession } from '../utils/jwt';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState = {\r\n isAuthenticated: false,\r\n isInitialized: false,\r\n user: null,\r\n};\r\n\r\nconst handlers = {\r\n INITIALIZE: (state, action) => {\r\n const { isAuthenticated, user } = action.payload;\r\n return {\r\n ...state,\r\n isAuthenticated,\r\n isInitialized: true,\r\n user,\r\n };\r\n },\r\n LOGIN: (state, action) => {\r\n const { user } = action.payload;\r\n\r\n return {\r\n ...state,\r\n isAuthenticated: true,\r\n user,\r\n };\r\n },\r\n LOGOUT: (state) => ({\r\n ...state,\r\n isAuthenticated: false,\r\n user: null,\r\n }),\r\n};\r\n\r\nconst reducer = (state, action) => (handlers[action.type] ? handlers[action.type](state, action) : state);\r\n\r\nconst AuthContext = createContext({\r\n ...initialState,\r\n login: () => Promise.resolve(),\r\n logout: () => Promise.resolve(),\r\n method: 'jwt',\r\n});\r\n\r\nfunction AuthProvider({ children }) {\r\n const [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n useEffect(() => {\r\n const initialize = async () => {\r\n try {\r\n const token = window.localStorage.getItem('token');\r\n\r\n if (token && isValidToken(token)) {\r\n setSession(token);\r\n\r\n const response = await apis.me();\r\n const user = response.data?.data;\r\n\r\n dispatch({\r\n payload: {\r\n isAuthenticated: true,\r\n user,\r\n },\r\n type: 'INITIALIZE',\r\n });\r\n } else {\r\n dispatch({\r\n payload: {\r\n isAuthenticated: false,\r\n user: null,\r\n },\r\n type: 'INITIALIZE',\r\n });\r\n }\r\n } catch (err) {\r\n dispatch({\r\n payload: {\r\n isAuthenticated: false,\r\n user: null,\r\n },\r\n type: 'INITIALIZE',\r\n });\r\n }\r\n };\r\n\r\n initialize();\r\n }, []);\r\n\r\n const login = async (credentials) => {\r\n const response = await apis.login(credentials);\r\n const { token, user } = response.data?.data;\r\n\r\n setSession(token);\r\n dispatch({\r\n payload: {\r\n user,\r\n },\r\n type: 'LOGIN',\r\n });\r\n };\r\n\r\n const logout = async () => {\r\n setSession(null);\r\n dispatch({ type: 'LOGOUT' });\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nAuthProvider.propTypes = {\r\n children: PropTypes.node,\r\n};\r\n\r\nexport { AuthContext, AuthProvider };\r\n","import PropTypes from 'prop-types';\r\nimport React, { createContext, useReducer } from 'react';\r\n\r\nimport apis from '../apis';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState = {\r\n contacts: [],\r\n};\r\n\r\nconst handlers = {\r\n CONTACT_CREATED: (state, payload) => ({ ...state, contacts: [...state.contacts, payload] }),\r\n CONTACT_DELETED: (state, payload) => ({\r\n ...state,\r\n contacts: state.contacts.filter((c) => c.ID_CONTACT !== payload.ID_CONTACT),\r\n }),\r\n CONTACT_UPDATED: (state, payload) => ({\r\n ...state,\r\n contacts: state.contacts.map((c) => (c.ID_CONTACT === payload.ID_CONTACT ? payload : c)),\r\n }),\r\n GET_CONTACTS: (state, payload) => ({ ...state, contacts: payload }),\r\n};\r\n\r\nconst reducer = (state, { payload, type }) => (handlers[type] ? handlers[type](state, payload) : state);\r\n\r\nconst ContactsContext = createContext({\r\n ...initialState,\r\n getContacts: () => Promise.resolve(),\r\n});\r\n\r\nfunction ContactsProvider({ children }) {\r\n const [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n const getContacts = async () => {\r\n const { data } = await apis.getContacts();\r\n const contacts = data?.data;\r\n\r\n dispatch({ payload: contacts, type: 'GET_CONTACTS' });\r\n };\r\n\r\n const createContact = async (contactData) => {\r\n const { data } = await apis.createContact(contactData);\r\n const contact = data?.data;\r\n\r\n dispatch({ payload: contact, type: 'CONTACT_CREATED' });\r\n };\r\n\r\n const updateContact = async (contactId, contactData) => {\r\n const { data } = await apis.updateContact(contactId, contactData);\r\n const contact = data?.data;\r\n\r\n dispatch({ payload: contact, type: 'CONTACT_UPDATED' });\r\n };\r\n\r\n const deleteContact = async (contactId) => {\r\n const { data } = await apis.deleteContact(contactId);\r\n const contact = data?.data;\r\n\r\n dispatch({ payload: contact, type: 'CONTACT_DELETED' });\r\n };\r\n\r\n const getContactInfo = (id) => state.contacts.find((contact) => contact.ID_CONTACT === id);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nContactsProvider.propTypes = {\r\n children: PropTypes.node,\r\n};\r\n\r\nexport { ContactsContext, ContactsProvider };\r\n","import PropTypes from 'prop-types';\r\nimport React, { createContext, useReducer } from 'react';\r\n\r\nimport apis from '../apis';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState = {\r\n notifications: [],\r\n};\r\n\r\nconst handlers = {\r\n GET_NOTIFICATIONS: (state, notifications) => ({\r\n ...state,\r\n notifications,\r\n }),\r\n REMOVE_NOTIFICATION: (state, recordId) => ({\r\n ...state,\r\n notifications: state.notifications.filter((n) => n.NUMDOS !== Number(recordId)),\r\n }),\r\n};\r\n\r\nconst reducer = (state, { payload, type }) => (handlers[type] ? handlers[type](state, payload) : state);\r\n\r\nconst NotificationsContext = createContext({\r\n ...initialState,\r\n getNotifications: () => Promise.resolve(),\r\n});\r\n\r\nfunction NotificationsProvider({ children }) {\r\n const [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n const getNotifications = async () => {\r\n const { data } = await apis.getNotifications();\r\n const notifications = data?.data;\r\n\r\n dispatch({ payload: notifications, type: 'GET_NOTIFICATIONS' });\r\n };\r\n\r\n const removeNotification = async (recordId) => {\r\n dispatch({ payload: recordId, type: 'REMOVE_NOTIFICATION' });\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nNotificationsProvider.propTypes = {\r\n children: PropTypes.node,\r\n};\r\n\r\nexport { NotificationsContext, NotificationsProvider };\r\n","import SvgIcon from '@material-ui/core/SvgIcon';\r\nimport React from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nfunction Icon(props) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction CheckedIcon(props) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction IndeterminateIcon(props) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default function Checkbox(theme) {\r\n return {\r\n MuiCheckbox: {\r\n defaultProps: {\r\n checkedIcon: ,\r\n icon: ,\r\n indeterminateIcon: ,\r\n },\r\n\r\n styleOverrides: {\r\n root: {\r\n '& .MuiSvgIcon-fontSizeMedium': {\r\n height: 24,\r\n width: 24,\r\n },\r\n '& .MuiSvgIcon-fontSizeSmall': {\r\n height: 20,\r\n width: 20,\r\n },\r\n '&.Mui-checked.Mui-disabled, &.Mui-disabled': {\r\n color: theme.palette.action.disabled,\r\n },\r\n padding: theme.spacing(1),\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","import starFill from '@iconify/icons-eva/star-fill';\r\nimport { Icon } from '@iconify/react';\r\nimport { SvgIcon } from '@material-ui/core';\r\nimport React from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst ICON_SMALL = { height: 20, width: 20 };\r\nconst ICON_LARGE = { height: 28, width: 28 };\r\n\r\nconst ICON = (\r\n \r\n \r\n \r\n);\r\n\r\nexport default function Rating(theme) {\r\n return {\r\n MuiRating: {\r\n defaultProps: {\r\n emptyIcon: ICON,\r\n icon: ICON,\r\n },\r\n\r\n styleOverrides: {\r\n iconEmpty: { color: theme.palette.grey[500_48] },\r\n root: {\r\n '&.Mui-disabled': {\r\n opacity: 0.48,\r\n },\r\n },\r\n sizeLarge: { '& svg': { ...ICON_LARGE } },\r\n sizeSmall: { '& svg': { ...ICON_SMALL } },\r\n },\r\n },\r\n };\r\n}\r\n","import closeSquareOutline from '@iconify/icons-eva/close-square-outline';\r\nimport minusSquareOutline from '@iconify/icons-eva/minus-square-outline';\r\nimport plusSquareOutline from '@iconify/icons-eva/plus-square-outline';\r\nimport { Icon } from '@iconify/react';\r\nimport { Box } from '@material-ui/core';\r\nimport React from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst ICON_SIZE = { height: 20, width: 20 };\r\n\r\nexport default function TreeView(theme) {\r\n return {\r\n MuiTreeItem: {\r\n styleOverrides: {\r\n iconContainer: { width: 'auto' },\r\n label: { ...theme.typography.body2 },\r\n },\r\n },\r\n MuiTreeView: {\r\n defaultProps: {\r\n defaultCollapseIcon: ,\r\n defaultEndIcon: (\r\n \r\n ),\r\n defaultExpandIcon: ,\r\n },\r\n },\r\n };\r\n}\r\n","import { merge } from 'lodash';\r\n\r\nimport Accordion from './Accordion';\r\nimport Alert from './Alert';\r\nimport Autocomplete from './Autocomplete';\r\nimport Avatar from './Avatar';\r\nimport Backdrop from './Backdrop';\r\nimport Badge from './Badge';\r\nimport Breadcrumbs from './Breadcrumbs';\r\nimport Button from './Button';\r\nimport ButtonGroup from './ButtonGroup';\r\nimport Card from './Card';\r\nimport Checkbox from './Checkbox';\r\nimport Chip from './Chip';\r\nimport Container from './Container';\r\nimport ControlLabel from './ControlLabel';\r\nimport Dialog from './Dialog';\r\nimport Drawer from './Drawer';\r\nimport Fab from './Fab';\r\nimport Grid from './Grid';\r\nimport IconButton from './IconButton';\r\nimport Input from './Input';\r\nimport Lists from './Lists';\r\nimport LoadingButton from './LoadingButton';\r\nimport Menu from './Menu';\r\nimport Pagination from './Pagination';\r\nimport Paper from './Paper';\r\nimport Pickers from './Pickers';\r\nimport Popover from './Popover';\r\nimport Progress from './Progress';\r\nimport Radio from './Radio';\r\nimport Rating from './Rating';\r\nimport Select from './Select';\r\nimport Skeleton from './Skeleton';\r\nimport Slider from './Slider';\r\nimport Snackbar from './Snackbar';\r\nimport Stepper from './Stepper';\r\nimport SvgIcon from './SvgIcon';\r\nimport Switch from './Switch';\r\nimport Table from './Table';\r\nimport Tabs from './Tabs';\r\nimport Timeline from './Timeline';\r\nimport ToggleButton from './ToggleButton';\r\nimport Tooltip from './Tooltip';\r\nimport TreeView from './TreeView';\r\nimport Typography from './Typography';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function ComponentsOverrides(theme) {\r\n return merge(\r\n Fab(theme),\r\n Tabs(theme),\r\n Chip(theme),\r\n Card(theme),\r\n Menu(theme),\r\n Grid(theme),\r\n Badge(theme),\r\n Lists(theme),\r\n Table(theme),\r\n Paper(theme),\r\n Alert(theme),\r\n Input(theme),\r\n Radio(theme),\r\n Rating(theme),\r\n Dialog(theme),\r\n Drawer(theme),\r\n Avatar(theme),\r\n Slider(theme),\r\n Button(theme),\r\n Switch(theme),\r\n Select(theme),\r\n Pickers(theme),\r\n Stepper(theme),\r\n Tooltip(theme),\r\n Popover(theme),\r\n SvgIcon(theme),\r\n Skeleton(theme),\r\n Timeline(theme),\r\n TreeView(theme),\r\n Backdrop(theme),\r\n Snackbar(theme),\r\n Progress(theme),\r\n Checkbox(theme),\r\n Container(theme),\r\n Accordion(theme),\r\n Typography(theme),\r\n Pagination(theme),\r\n IconButton(theme),\r\n Breadcrumbs(theme),\r\n ButtonGroup(theme),\r\n ControlLabel(theme),\r\n Autocomplete(theme),\r\n ToggleButton(theme),\r\n LoadingButton(theme)\r\n );\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Fab(theme) {\r\n return {\r\n MuiFab: {\r\n defaultProps: {\r\n color: 'primary',\r\n },\r\n\r\n styleOverrides: {\r\n extended: {\r\n '& svg': {\r\n marginRight: theme.spacing(1),\r\n },\r\n },\r\n primary: {},\r\n root: {\r\n '&:hover': {\r\n backgroundColor: theme.palette.grey[400],\r\n boxShadow: 'none',\r\n },\r\n boxShadow: theme.customShadows.z8,\r\n },\r\n },\r\n\r\n variants: [\r\n {\r\n props: { color: 'primary' },\r\n style: {\r\n '&:hover': {\r\n backgroundColor: theme.palette.primary.dark,\r\n },\r\n boxShadow: theme.customShadows.primary,\r\n },\r\n },\r\n ],\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Tabs(theme) {\r\n return {\r\n MuiTab: {\r\n styleOverrides: {\r\n labelIcon: {\r\n '& > .MuiTab-wrapper > *:first-of-type': {\r\n marginBottom: 0,\r\n marginRight: theme.spacing(1),\r\n },\r\n minHeight: 48,\r\n paddingTop: 0,\r\n },\r\n root: {\r\n '&.Mui-selected': {\r\n color: theme.palette.text.primary,\r\n },\r\n '&:not(:last-child)': {\r\n marginRight: theme.spacing(5),\r\n },\r\n '@media (min-width: 600px)': {\r\n minWidth: 48,\r\n },\r\n borderTopLeftRadius: theme.shape.borderRadius,\r\n borderTopRightRadius: theme.shape.borderRadius,\r\n fontWeight: theme.typography.fontWeightMedium,\r\n padding: 0,\r\n },\r\n textColorInherit: {\r\n color: theme.palette.text.secondary,\r\n opacity: 1,\r\n },\r\n wrapper: {\r\n flexDirection: 'row',\r\n whiteSpace: 'nowrap',\r\n },\r\n },\r\n },\r\n MuiTabPanel: {\r\n styleOverrides: {\r\n root: {\r\n padding: 0,\r\n },\r\n },\r\n },\r\n MuiTabScrollButton: {\r\n styleOverrides: {\r\n root: {\r\n borderRadius: '50%',\r\n width: 48,\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","import closeCircleFill from '@iconify/icons-eva/close-circle-fill';\r\nimport { Icon } from '@iconify/react';\r\nimport React from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Chip(theme) {\r\n return {\r\n MuiChip: {\r\n defaultProps: {\r\n deleteIcon: ,\r\n },\r\n\r\n styleOverrides: {\r\n colorDefault: {\r\n '& .MuiChip-avatarMedium, .MuiChip-avatarSmall': {\r\n color: theme.palette.text.secondary,\r\n },\r\n },\r\n outlined: {\r\n '&.MuiChip-colorPrimary': {\r\n borderColor: theme.palette.primary.main,\r\n },\r\n '&.MuiChip-colorSecondary': {\r\n borderColor: theme.palette.secondary.main,\r\n },\r\n borderColor: theme.palette.grey[500_32],\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Card(theme) {\r\n return {\r\n MuiCard: {\r\n styleOverrides: {\r\n root: {\r\n borderRadius: theme.shape.borderRadiusMd,\r\n boxShadow: theme.customShadows.z16,\r\n position: 'relative',\r\n zIndex: 0, // Fix Safari overflow: hidden with border radius\r\n },\r\n },\r\n },\r\n MuiCardContent: {\r\n styleOverrides: {\r\n root: {\r\n padding: theme.spacing(3),\r\n },\r\n },\r\n },\r\n MuiCardHeader: {\r\n defaultProps: {\r\n subheaderTypographyProps: { variant: 'body2' },\r\n titleTypographyProps: { variant: 'h6' },\r\n },\r\n styleOverrides: {\r\n root: {\r\n padding: theme.spacing(3, 3, 0),\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Menu(theme) {\r\n return {\r\n MuiMenuItem: {\r\n styleOverrides: {\r\n root: {\r\n '&.Mui-selected': {\r\n '&:hover': {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n backgroundColor: theme.palette.action.selected,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Grid() {\r\n return {\r\n MuiGrid: {\r\n styleOverrides: {},\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Badge() {\r\n return {\r\n MuiBadge: {\r\n styleOverrides: {\r\n dot: {\r\n borderRadius: '50%',\r\n height: 10,\r\n width: 10,\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Lists(theme) {\r\n return {\r\n MuiListItemAvatar: {\r\n styleOverrides: {\r\n root: {\r\n marginRight: theme.spacing(2),\r\n minWidth: 'auto',\r\n },\r\n },\r\n },\r\n MuiListItemIcon: {\r\n styleOverrides: {\r\n root: {\r\n color: 'inherit',\r\n marginRight: theme.spacing(2),\r\n minWidth: 'auto',\r\n },\r\n },\r\n },\r\n MuiListItemText: {\r\n styleOverrides: {\r\n multiline: {\r\n marginBottom: 0,\r\n marginTop: 0,\r\n },\r\n root: {\r\n marginBottom: 0,\r\n marginTop: 0,\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Table(theme) {\r\n return {\r\n MuiTableCell: {\r\n styleOverrides: {\r\n body: {\r\n '&:first-of-type': {\r\n paddingLeft: theme.spacing(3),\r\n },\r\n '&:last-of-type': {\r\n paddingRight: theme.spacing(3),\r\n },\r\n },\r\n head: {\r\n '&:first-of-type': {\r\n borderBottomLeftRadius: theme.shape.borderRadius,\r\n borderTopLeftRadius: theme.shape.borderRadius,\r\n boxShadow: `inset 8px 0 0 ${theme.palette.background.paper}`,\r\n paddingLeft: theme.spacing(3),\r\n },\r\n '&:last-of-type': {\r\n borderBottomRightRadius: theme.shape.borderRadius,\r\n borderTopRightRadius: theme.shape.borderRadius,\r\n boxShadow: `inset -8px 0 0 ${theme.palette.background.paper}`,\r\n paddingRight: theme.spacing(3),\r\n },\r\n backgroundColor: theme.palette.background.neutral,\r\n color: theme.palette.text.secondary,\r\n },\r\n root: {\r\n borderBottom: 'none',\r\n },\r\n stickyHeader: {\r\n backgroundColor: theme.palette.background.paper,\r\n backgroundImage: `linear-gradient(to bottom, ${theme.palette.background.neutral} 0%, ${theme.palette.background.neutral} 100%)`,\r\n },\r\n },\r\n },\r\n MuiTablePagination: {\r\n styleOverrides: {\r\n root: {\r\n borderTop: `solid 1px ${theme.palette.divider}`,\r\n },\r\n select: {\r\n '&:focus': {\r\n borderRadius: theme.shape.borderRadius,\r\n },\r\n },\r\n selectIcon: {\r\n height: 20,\r\n marginTop: 2,\r\n width: 20,\r\n },\r\n toolbar: {\r\n height: 64,\r\n },\r\n },\r\n },\r\n MuiTableRow: {\r\n styleOverrides: {\r\n root: {\r\n '&.Mui-selected': {\r\n '&:hover': {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n backgroundColor: theme.palette.action.selected,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Paper() {\r\n return {\r\n MuiPaper: {\r\n defaultProps: {\r\n elevation: 0,\r\n },\r\n\r\n styleOverrides: {\r\n root: {\r\n backgroundImage: 'none',\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","import alertCircleFill from '@iconify/icons-eva/alert-circle-fill';\r\nimport alertTriangleFill from '@iconify/icons-eva/alert-triangle-fill';\r\nimport checkmarkCircle2Fill from '@iconify/icons-eva/checkmark-circle-2-fill';\r\nimport infoFill from '@iconify/icons-eva/info-fill';\r\nimport { Icon } from '@iconify/react';\r\nimport React from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Alert(theme) {\r\n const isLight = theme.palette.mode === 'light';\r\n\r\n const standardStyle = (color) => ({\r\n backgroundColor: theme.palette[color][isLight ? 'lighter' : 'darker'],\r\n color: theme.palette[color][isLight ? 'darker' : 'lighter'],\r\n });\r\n\r\n const filledStyle = (color) => ({\r\n color: theme.palette[color].contrastText,\r\n });\r\n\r\n const outlinedStyle = (color) => ({\r\n backgroundColor: theme.palette[color][isLight ? 'lighter' : 'darker'],\r\n border: `solid 1px ${theme.palette[color][isLight ? 'light' : 'dark']}`,\r\n color: theme.palette[color][isLight ? 'darker' : 'lighter'],\r\n });\r\n\r\n return {\r\n MuiAlert: {\r\n defaultProps: {\r\n iconMapping: {\r\n error: ,\r\n info: ,\r\n success: ,\r\n warning: ,\r\n },\r\n },\r\n\r\n styleOverrides: {\r\n action: {\r\n '& button:not(:first-of-type)': {\r\n marginLeft: theme.spacing(1),\r\n },\r\n },\r\n filledError: filledStyle('error'),\r\n\r\n filledInfo: filledStyle('info'),\r\n filledSuccess: filledStyle('success'),\r\n filledWarning: filledStyle('warning'),\r\n message: {\r\n '& .MuiAlertTitle-root': {\r\n marginBottom: theme.spacing(0.5),\r\n },\r\n },\r\n\r\n outlinedError: outlinedStyle('error'),\r\n outlinedInfo: outlinedStyle('info'),\r\n outlinedSuccess: outlinedStyle('success'),\r\n outlinedWarning: outlinedStyle('warning'),\r\n\r\n standardError: standardStyle('error'),\r\n standardInfo: standardStyle('info'),\r\n standardSuccess: standardStyle('success'),\r\n standardWarning: standardStyle('warning'),\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Input(theme) {\r\n return {\r\n MuiFilledInput: {\r\n styleOverrides: {\r\n root: {\r\n '&.Mui-disabled': {\r\n backgroundColor: theme.palette.action.disabledBackground,\r\n },\r\n '&.Mui-focused': {\r\n backgroundColor: theme.palette.action.focus,\r\n },\r\n '&:hover': {\r\n backgroundColor: theme.palette.grey[500_16],\r\n },\r\n backgroundColor: theme.palette.grey[500_12],\r\n },\r\n underline: {\r\n '&:before': {\r\n borderBottomColor: theme.palette.grey[500_56],\r\n },\r\n },\r\n },\r\n },\r\n MuiInput: {\r\n styleOverrides: {\r\n underline: {\r\n '&:before': {\r\n borderBottomColor: theme.palette.grey[500_56],\r\n },\r\n },\r\n },\r\n },\r\n MuiInputBase: {\r\n styleOverrides: {\r\n input: {\r\n '&::placeholder': {\r\n color: theme.palette.text.disabled,\r\n opacity: 1,\r\n },\r\n },\r\n root: {\r\n '&.Mui-disabled': {\r\n '& svg': { color: theme.palette.text.disabled },\r\n },\r\n },\r\n },\r\n },\r\n MuiOutlinedInput: {\r\n styleOverrides: {\r\n root: {\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: theme.palette.grey[500_32],\r\n },\r\n '&.Mui-disabled': {\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n borderColor: theme.palette.action.disabledBackground,\r\n },\r\n },\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Radio(theme) {\r\n return {\r\n MuiRadio: {\r\n styleOverrides: {\r\n root: {\r\n padding: theme.spacing(1),\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Dialog(theme) {\r\n return {\r\n MuiDialog: {\r\n styleOverrides: {\r\n paper: {\r\n '&.MuiDialog-paper .MuiDialogActions-root': {\r\n padding: theme.spacing(3),\r\n },\r\n '&.MuiDialog-paperFullScreen': {\r\n borderRadius: 0,\r\n },\r\n '&.MuiPaper-rounded': {\r\n borderRadius: theme.shape.borderRadiusMd,\r\n },\r\n '@media (max-width: 600px)': {\r\n margin: theme.spacing(2),\r\n },\r\n '@media (max-width: 663.95px)': {\r\n '&.MuiDialog-paperWidthSm.MuiDialog-paperScrollBody': {\r\n maxWidth: '100%',\r\n },\r\n },\r\n boxShadow: theme.customShadows.z24,\r\n },\r\n paperFullWidth: {\r\n width: '100%',\r\n },\r\n },\r\n },\r\n MuiDialogActions: {\r\n styleOverrides: {\r\n root: {\r\n '& > :not(:first-of-type)': {\r\n marginLeft: theme.spacing(1.5),\r\n },\r\n },\r\n },\r\n },\r\n MuiDialogContent: {\r\n styleOverrides: {\r\n root: {\r\n borderBottom: 0,\r\n borderTop: 0,\r\n padding: theme.spacing(3),\r\n },\r\n },\r\n },\r\n MuiDialogTitle: {\r\n styleOverrides: {\r\n root: {\r\n padding: theme.spacing(3, 3, 0),\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","import { alpha } from '@material-ui/core';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Drawer(theme) {\r\n const isLight = theme.palette.mode === 'light';\r\n\r\n return {\r\n MuiDrawer: {\r\n styleOverrides: {\r\n modal: {\r\n '&[role=\"presentation\"]': {\r\n '& .MuiDrawer-paperAnchorLeft': {\r\n boxShadow: `8px 24px 24px 12px ${alpha(theme.palette.grey[900], isLight ? 0.16 : 0.48)}`,\r\n },\r\n '& .MuiDrawer-paperAnchorRight': {\r\n boxShadow: `-8px 24px 24px 12px ${alpha(theme.palette.grey[900], isLight ? 0.16 : 0.48)}`,\r\n },\r\n },\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Avatar(theme) {\r\n return {\r\n MuiAvatar: {\r\n styleOverrides: {\r\n colorDefault: {\r\n backgroundColor: theme.palette.grey[400],\r\n color: theme.palette.text.secondary,\r\n },\r\n },\r\n },\r\n MuiAvatarGroup: {\r\n styleOverrides: {\r\n avatar: {\r\n '&:first-of-type': {\r\n backgroundColor: theme.palette.primary.lighter,\r\n color: theme.palette.primary.main,\r\n fontSize: 14,\r\n },\r\n fontSize: 16,\r\n fontWeight: theme.typography.fontWeightMedium,\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Slider(theme) {\r\n return {\r\n MuiSlider: {\r\n styleOverrides: {\r\n markLabel: {\r\n color: theme.palette.text.disabled,\r\n fontSize: 13,\r\n },\r\n root: {\r\n '&.Mui-disabled': {\r\n color: theme.palette.action.disabled,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Button(theme) {\r\n return {\r\n MuiButton: {\r\n styleOverrides: {\r\n containedInherit: {\r\n '&:hover': {\r\n backgroundColor: theme.palette.grey[400],\r\n },\r\n boxShadow: theme.customShadows.z8,\r\n color: theme.palette.grey[800],\r\n },\r\n containedPrimary: {\r\n boxShadow: theme.customShadows.primary,\r\n },\r\n containedSecondary: {\r\n boxShadow: theme.customShadows.secondary,\r\n },\r\n outlinedInherit: {\r\n '&:hover': {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n border: `1px solid ${theme.palette.grey[500_32]}`,\r\n },\r\n root: {\r\n '&:hover': {\r\n boxShadow: 'none',\r\n },\r\n },\r\n sizeLarge: {\r\n height: 48,\r\n },\r\n textInherit: {\r\n '&:hover': {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Switch(theme) {\r\n const isLight = theme.palette.mode === 'light';\r\n\r\n return {\r\n MuiSwitch: {\r\n styleOverrides: {\r\n switchBase: {\r\n '&.Mui-checked.Mui-disabled, &.Mui-disabled': {\r\n color: theme.palette.grey[isLight ? 400 : 600],\r\n },\r\n '&.Mui-disabled+.MuiSwitch-track': {\r\n backgroundColor: `${theme.palette.action.disabledBackground} !important`,\r\n opacity: 1,\r\n },\r\n '&:not(:.Mui-checked)': {\r\n color: theme.palette.grey[isLight ? 100 : 300],\r\n },\r\n left: 0,\r\n right: 'auto',\r\n },\r\n thumb: {\r\n boxShadow: theme.customShadows.z1,\r\n },\r\n track: {\r\n backgroundColor: theme.palette.grey[500],\r\n opacity: 1,\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","import ExpandMoreRoundedIcon from '@material-ui/icons/ExpandMoreRounded';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Select() {\r\n return {\r\n MuiSelect: {\r\n defaultProps: {\r\n IconComponent: ExpandMoreRoundedIcon,\r\n },\r\n\r\n styleOverrides: {\r\n root: {},\r\n },\r\n },\r\n };\r\n}\r\n","import { alpha } from '@material-ui/core/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Pickers(theme) {\r\n return {\r\n MuiDateRangePickerViewDesktop: {\r\n styleOverrides: {\r\n root: {\r\n border: `solid 1px ${theme.palette.divider}`,\r\n borderRadius: theme.shape.borderRadiusMd,\r\n },\r\n },\r\n },\r\n\r\n PrivatePicker: {\r\n styleOverrides: {\r\n landscape: {\r\n border: `solid 1px ${theme.palette.divider}`,\r\n },\r\n root: {\r\n '& .MuiTab-root': {\r\n '&.Mui-selected': {\r\n color: theme.palette.common.white,\r\n },\r\n color: alpha(theme.palette.common.white, 0.72),\r\n margin: 0,\r\n },\r\n '& .MuiTabs-indicator': {\r\n backgroundColor: theme.palette.primary.dark,\r\n width: '160px !important',\r\n },\r\n '& .PrivatePickersToolbar-root': {\r\n '& .MuiTypography-root': {\r\n '&.Mui-selected': {\r\n color: theme.palette.common.white,\r\n },\r\n color: alpha(theme.palette.common.white, 0.72),\r\n },\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.common.white,\r\n },\r\n borderRadius: theme.shape.borderRadiusMd,\r\n overflow: 'hidden',\r\n },\r\n },\r\n },\r\n\r\n PrivatePickersPopper: {\r\n styleOverrides: {\r\n paper: {\r\n borderRadius: theme.shape.borderRadiusMd,\r\n boxShadow: theme.customShadows.z24,\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Stepper(theme) {\r\n return {\r\n MuiStepConnector: {\r\n styleOverrides: {\r\n line: {\r\n borderColor: theme.palette.divider,\r\n },\r\n },\r\n },\r\n MuiStepContent: {\r\n styleOverrides: {\r\n root: {\r\n borderColor: theme.palette.divider,\r\n },\r\n },\r\n },\r\n MuiStepLabel: {\r\n styleOverrides: {\r\n iconContainer: {\r\n '& .MuiStepIcon-root:not(.Mui-active)': {\r\n fill: theme.palette.text.disabled,\r\n },\r\n '& .MuiStepIcon-text': {\r\n fill: theme.palette.common.white,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Tooltip(theme) {\r\n const isLight = theme.palette.mode === 'light';\r\n\r\n return {\r\n MuiTooltip: {\r\n styleOverrides: {\r\n arrow: {\r\n color: theme.palette.grey[isLight ? 800 : 700],\r\n },\r\n tooltip: {\r\n backgroundColor: theme.palette.grey[isLight ? 800 : 700],\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Popover(theme) {\r\n return {\r\n MuiPopover: {\r\n styleOverrides: {\r\n paper: {\r\n boxShadow: theme.customShadows.z12,\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function SvgIcon() {\r\n return {\r\n MuiSvgIcon: {\r\n styleOverrides: {\r\n fontSizeLarge: {\r\n fontSize: 'inherit',\r\n height: 32,\r\n width: 32,\r\n },\r\n fontSizeSmall: {\r\n fontSize: 'inherit',\r\n height: 20,\r\n width: 20,\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Skeleton(theme) {\r\n return {\r\n MuiSkeleton: {\r\n defaultProps: {\r\n animation: 'wave',\r\n },\r\n\r\n styleOverrides: {\r\n root: {\r\n backgroundColor: theme.palette.background.neutral,\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Timeline(theme) {\r\n return {\r\n MuiTimelineConnector: {\r\n styleOverrides: {\r\n root: {\r\n backgroundColor: theme.palette.divider,\r\n },\r\n },\r\n },\r\n\r\n MuiTimelineDot: {\r\n styleOverrides: {\r\n root: {\r\n boxShadow: 'none',\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","import { alpha } from '@material-ui/core/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Backdrop(theme) {\r\n const varLow = alpha(theme.palette.grey[900], 0.48);\r\n const varHigh = alpha(theme.palette.grey[900], 1);\r\n\r\n return {\r\n MuiBackdrop: {\r\n styleOverrides: {\r\n root: {\r\n '&.MuiBackdrop-invisible': {\r\n background: 'transparent',\r\n },\r\n background: [\r\n `rgb(22,28,36)`,\r\n `-moz-linear-gradient(75deg, ${varLow} 0%, ${varHigh} 100%)`,\r\n `-webkit-linear-gradient(75deg, ${varLow} 0%, ${varHigh} 100%)`,\r\n `linear-gradient(75deg, ${varLow} 0%, ${varHigh} 100%)`,\r\n ],\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Snackbar() {\r\n return {\r\n MuiSnackbarContent: {\r\n styleOverrides: {\r\n root: {},\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Progress(theme) {\r\n const isLight = theme.palette.mode === 'light';\r\n\r\n return {\r\n MuiLinearProgress: {\r\n styleOverrides: {\r\n bar: {\r\n borderRadius: 4,\r\n },\r\n buffer: {\r\n backgroundColor: 'transparent',\r\n },\r\n colorPrimary: {\r\n backgroundColor: theme.palette.primary[isLight ? 'lighter' : 'darker'],\r\n },\r\n root: {\r\n borderRadius: 4,\r\n overflow: 'hidden',\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Container() {\r\n return {\r\n MuiContainer: {\r\n styleOverrides: {\r\n root: {},\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Accordion(theme) {\r\n return {\r\n MuiAccordion: {\r\n styleOverrides: {\r\n root: {\r\n '&.Mui-disabled': {\r\n backgroundColor: 'transparent',\r\n },\r\n '&.Mui-expanded': {\r\n borderRadius: theme.shape.borderRadius,\r\n boxShadow: theme.customShadows.z8,\r\n },\r\n },\r\n },\r\n },\r\n MuiAccordionSummary: {\r\n styleOverrides: {\r\n expandIconWrapper: {\r\n color: 'inherit',\r\n },\r\n root: {\r\n '&.Mui-disabled': {\r\n '& .MuiTypography-root': {\r\n color: 'inherit',\r\n },\r\n color: theme.palette.action.disabled,\r\n opacity: 1,\r\n },\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(1),\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Typography(theme) {\r\n return {\r\n MuiTypography: {\r\n styleOverrides: {\r\n gutterBottom: {\r\n marginBottom: theme.spacing(1),\r\n },\r\n paragraph: {\r\n marginBottom: theme.spacing(2),\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","import { alpha } from '@material-ui/core/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Pagination(theme) {\r\n return {\r\n MuiPaginationItem: {\r\n styleOverrides: {\r\n outlined: {\r\n border: `1px solid ${theme.palette.grey[500_32]}`,\r\n },\r\n outlinedPrimary: {\r\n '&.Mui-selected': {\r\n backgroundColor: alpha(theme.palette.primary.main, 0.08),\r\n border: `1px solid ${alpha(theme.palette.primary.main, 0.24)}`,\r\n },\r\n },\r\n root: {\r\n '&.Mui-selected': {\r\n fontWeight: theme.typography.fontWeightBold,\r\n },\r\n },\r\n textPrimary: {\r\n '&.Mui-selected': {\r\n '&:hover, &.Mui-focusVisible': {\r\n backgroundColor: `${alpha(theme.palette.primary.main, 0.24)} !important`,\r\n },\r\n backgroundColor: alpha(theme.palette.primary.main, 0.08),\r\n color: theme.palette.primary.main,\r\n },\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function IconButton(theme) {\r\n return {\r\n MuiIconButton: {\r\n styleOverrides: {\r\n root: {},\r\n },\r\n\r\n variants: [\r\n {\r\n props: { color: 'default' },\r\n style: {\r\n '&:hover': { backgroundColor: theme.palette.action.hover },\r\n },\r\n },\r\n {\r\n props: { color: 'inherit' },\r\n style: {\r\n '&:hover': { backgroundColor: theme.palette.action.hover },\r\n },\r\n },\r\n ],\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Breadcrumbs(theme) {\r\n return {\r\n MuiBreadcrumbs: {\r\n styleOverrides: {\r\n separator: {\r\n marginLeft: theme.spacing(2),\r\n marginRight: theme.spacing(2),\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","import { alpha } from '@material-ui/core/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function ButtonGroup(theme) {\r\n return {\r\n MuiButtonGroup: {\r\n styleOverrides: {\r\n grouped: {\r\n borderColor: `${theme.palette.grey[500_32]} !important`,\r\n },\r\n groupedContained: {\r\n color: theme.palette.grey[800],\r\n },\r\n groupedContainedPrimary: {\r\n borderColor: `${theme.palette.primary.dark} !important`,\r\n color: theme.palette.primary.contrastText,\r\n },\r\n groupedContainedSecondary: {\r\n borderColor: `${theme.palette.secondary.dark} !important`,\r\n color: theme.palette.secondary.contrastText,\r\n },\r\n groupedOutlinedPrimary: {\r\n borderColor: `${alpha(theme.palette.primary.main, 0.48)} !important`,\r\n },\r\n groupedOutlinedSecondary: {\r\n borderColor: `${alpha(theme.palette.secondary.main, 0.48)} !important`,\r\n },\r\n groupedTextPrimary: {\r\n borderColor: `${theme.palette.primary.main} !important`,\r\n },\r\n groupedTextSecondary: {\r\n borderColor: `${theme.palette.secondary.main} !important`,\r\n },\r\n root: {\r\n '&:hover': {\r\n boxShadow: 'none',\r\n },\r\n },\r\n },\r\n\r\n variants: [\r\n {\r\n props: { color: 'inherit', variant: 'contained' },\r\n style: { boxShadow: theme.customShadows.z8 },\r\n },\r\n {\r\n props: { color: 'primary', variant: 'contained' },\r\n style: { boxShadow: theme.customShadows.primary },\r\n },\r\n {\r\n props: { color: 'secondary', variant: 'contained' },\r\n style: { boxShadow: theme.customShadows.secondary },\r\n },\r\n {\r\n props: { disabled: true },\r\n style: {\r\n '& .MuiButtonGroup-grouped.Mui-disabled': {\r\n '&.MuiButton-contained': {\r\n backgroundColor: theme.palette.action.disabledBackground,\r\n },\r\n borderColor: `${theme.palette.action.disabledBackground} !important`,\r\n color: `${theme.palette.action.disabled} !important`,\r\n },\r\n boxShadow: 'none !important',\r\n },\r\n },\r\n ],\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function ControlLabel(theme) {\r\n return {\r\n MuiFormControlLabel: {\r\n styleOverrides: {\r\n label: {\r\n ...theme.typography.body2,\r\n },\r\n },\r\n },\r\n MuiFormHelperText: {\r\n styleOverrides: {\r\n root: {\r\n marginTop: theme.spacing(1),\r\n },\r\n },\r\n },\r\n MuiFormLabel: {\r\n styleOverrides: {\r\n root: {\r\n color: theme.palette.text.disabled,\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function Autocomplete(theme) {\r\n return {\r\n MuiAutocomplete: {\r\n styleOverrides: {\r\n paper: {\r\n boxShadow: theme.customShadows.z20,\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function ToggleButton(theme) {\r\n const isLight = theme.palette.mode === 'light';\r\n\r\n return {\r\n MuiToggleButton: {\r\n styleOverrides: {\r\n root: {\r\n '&.Mui-disabled': {\r\n color: theme.palette.grey[500_48],\r\n },\r\n '&.Mui-selected': {\r\n backgroundColor: theme.palette.action.selected,\r\n color: theme.palette.grey[isLight ? 600 : 0],\r\n },\r\n border: `solid 1px ${theme.palette.grey[500_32]}`,\r\n color: theme.palette.grey[500],\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport default function LoadingButton() {\r\n return {\r\n MuiLoadingButton: {\r\n styleOverrides: {\r\n root: {\r\n '&.MuiButton-text': {\r\n '& .MuiLoadingButton-endIconPendingEnd': {\r\n marginRight: 0,\r\n },\r\n '& .MuiLoadingButton-startIconPendingStart': {\r\n marginLeft: 0,\r\n },\r\n },\r\n },\r\n },\r\n },\r\n };\r\n}\r\n","// THIS IS THE DEFAULT VALUE YOU CAN CHANGE IF YOU WANT\r\n\r\nconst breakpoints = {\r\n values: {\r\n lg: 1280,\r\n md: 960,\r\n sm: 600,\r\n xl: 1920,\r\n xs: 0,\r\n },\r\n};\r\n\r\nexport default breakpoints;\r\n","import { withStyles } from '@material-ui/core/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst GlobalStyles = withStyles((theme) => ({\r\n '@global': {\r\n '#root': {\r\n height: '100%',\r\n width: '100%',\r\n },\r\n '*': {\r\n boxSizing: 'border-box',\r\n margin: 0,\r\n padding: 0,\r\n },\r\n // Lazy Load Img\r\n '.blur-up': {\r\n WebkitFilter: 'blur(5px)',\r\n filter: 'blur(5px)',\r\n transition: 'filter 400ms, -webkit-filter 400ms',\r\n },\r\n\r\n '.blur-up.lazyloaded ': {\r\n WebkitFilter: 'blur(0)',\r\n filter: 'blur(0)',\r\n },\r\n\r\n a: { color: theme.palette.primary.main },\r\n\r\n body: {\r\n height: '100%',\r\n width: '100%',\r\n },\r\n\r\n html: {\r\n '-ms-text-size-adjust': '100%',\r\n '-webkit-overflow-scrolling': 'touch',\r\n height: '100%',\r\n width: '100%',\r\n },\r\n\r\n img: { display: 'block', maxWidth: '100%' },\r\n\r\n input: {\r\n '&[type=number]': {\r\n '&::-webkit-inner-spin-button': { WebkitAppearance: 'none', margin: 0 },\r\n '&::-webkit-outer-spin-button': { WebkitAppearance: 'none', margin: 0 },\r\n MozAppearance: 'textfield',\r\n },\r\n },\r\n textarea: {\r\n '&:-ms-input-placeholder': { color: theme.palette.text.disabled },\r\n '&::-moz-placeholder': { color: theme.palette.text.disabled, opacity: 1 },\r\n '&::-webkit-input-placeholder': { color: theme.palette.text.disabled },\r\n '&::placeholder': { color: theme.palette.text.disabled },\r\n },\r\n },\r\n}))(() => null);\r\n\r\nexport default GlobalStyles;\r\n","// material\r\nimport { alpha } from '@material-ui/core/styles';\r\n\r\nimport palette from './palette';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst LIGHT_MODE = palette.light.grey[500];\r\nconst DARK_MODE = '#000000';\r\n\r\nconst createShadow = (color) => {\r\n const transparent1 = alpha(color, 0.2);\r\n const transparent2 = alpha(color, 0.14);\r\n const transparent3 = alpha(color, 0.12);\r\n return [\r\n 'none',\r\n `0px 2px 1px -1px ${transparent1},0px 1px 1px 0px ${transparent2},0px 1px 3px 0px ${transparent3}`,\r\n `0px 3px 1px -2px ${transparent1},0px 2px 2px 0px ${transparent2},0px 1px 5px 0px ${transparent3}`,\r\n `0px 3px 3px -2px ${transparent1},0px 3px 4px 0px ${transparent2},0px 1px 8px 0px ${transparent3}`,\r\n `0px 2px 4px -1px ${transparent1},0px 4px 5px 0px ${transparent2},0px 1px 10px 0px ${transparent3}`,\r\n `0px 3px 5px -1px ${transparent1},0px 5px 8px 0px ${transparent2},0px 1px 14px 0px ${transparent3}`,\r\n `0px 3px 5px -1px ${transparent1},0px 6px 10px 0px ${transparent2},0px 1px 18px 0px ${transparent3}`,\r\n `0px 4px 5px -2px ${transparent1},0px 7px 10px 1px ${transparent2},0px 2px 16px 1px ${transparent3}`,\r\n `0px 5px 5px -3px ${transparent1},0px 8px 10px 1px ${transparent2},0px 3px 14px 2px ${transparent3}`,\r\n `0px 5px 6px -3px ${transparent1},0px 9px 12px 1px ${transparent2},0px 3px 16px 2px ${transparent3}`,\r\n `0px 6px 6px -3px ${transparent1},0px 10px 14px 1px ${transparent2},0px 4px 18px 3px ${transparent3}`,\r\n `0px 6px 7px -4px ${transparent1},0px 11px 15px 1px ${transparent2},0px 4px 20px 3px ${transparent3}`,\r\n `0px 7px 8px -4px ${transparent1},0px 12px 17px 2px ${transparent2},0px 5px 22px 4px ${transparent3}`,\r\n `0px 7px 8px -4px ${transparent1},0px 13px 19px 2px ${transparent2},0px 5px 24px 4px ${transparent3}`,\r\n `0px 7px 9px -4px ${transparent1},0px 14px 21px 2px ${transparent2},0px 5px 26px 4px ${transparent3}`,\r\n `0px 8px 9px -5px ${transparent1},0px 15px 22px 2px ${transparent2},0px 6px 28px 5px ${transparent3}`,\r\n `0px 8px 10px -5px ${transparent1},0px 16px 24px 2px ${transparent2},0px 6px 30px 5px ${transparent3}`,\r\n `0px 8px 11px -5px ${transparent1},0px 17px 26px 2px ${transparent2},0px 6px 32px 5px ${transparent3}`,\r\n `0px 9px 11px -5px ${transparent1},0px 18px 28px 2px ${transparent2},0px 7px 34px 6px ${transparent3}`,\r\n `0px 9px 12px -6px ${transparent1},0px 19px 29px 2px ${transparent2},0px 7px 36px 6px ${transparent3}`,\r\n `0px 10px 13px -6px ${transparent1},0px 20px 31px 3px ${transparent2},0px 8px 38px 7px ${transparent3}`,\r\n `0px 10px 13px -6px ${transparent1},0px 21px 33px 3px ${transparent2},0px 8px 40px 7px ${transparent3}`,\r\n `0px 10px 14px -6px ${transparent1},0px 22px 35px 3px ${transparent2},0px 8px 42px 7px ${transparent3}`,\r\n `0px 11px 14px -7px ${transparent1},0px 23px 36px 3px ${transparent2},0px 9px 44px 8px ${transparent3}`,\r\n `0px 11px 15px -7px ${transparent1},0px 24px 38px 3px ${transparent2},0px 9px 46px 8px ${transparent3}`,\r\n ];\r\n};\r\n\r\nconst createCustomShadow = (color) => {\r\n const transparent = alpha(color, 0.24);\r\n\r\n return {\r\n error: `0 8px 16px 0 ${alpha(palette.light.error.main, 0.24)}`,\r\n info: `0 8px 16px 0 ${alpha(palette.light.info.main, 0.24)}`,\r\n primary: `0 8px 16px 0 ${alpha(palette.light.primary.main, 0.24)}`,\r\n secondary: `0 8px 16px 0 ${alpha(palette.light.secondary.main, 0.24)}`,\r\n success: `0 8px 16px 0 ${alpha(palette.light.success.main, 0.24)}`,\r\n warning: `0 8px 16px 0 ${alpha(palette.light.warning.main, 0.24)}`,\r\n z1: `0 1px 2px 0 ${transparent}`,\r\n z12: `0 0 2px 0 ${transparent}, 0 12px 24px 0 ${transparent}`,\r\n z16: `0 0 2px 0 ${transparent}, 0 16px 32px -4px ${transparent}`,\r\n z20: `0 0 2px 0 ${transparent}, 0 20px 40px -4px ${transparent}`,\r\n z24: `0 0 4px 0 ${transparent}, 0 24px 48px 0 ${transparent}`,\r\n z8: `0 8px 16px 0 ${transparent}`,\r\n };\r\n};\r\n\r\nexport const customShadows = {\r\n dark: createCustomShadow(DARK_MODE),\r\n light: createCustomShadow(LIGHT_MODE),\r\n};\r\n\r\nconst shadows = {\r\n dark: createShadow(DARK_MODE),\r\n light: createShadow(LIGHT_MODE),\r\n};\r\n\r\nexport default shadows;\r\n","// ----------------------------------------------------------------------\r\n\r\nconst shape = {\r\n borderRadius: 8,\r\n borderRadiusMd: 16,\r\n borderRadiusSm: 12,\r\n};\r\n\r\nexport default shape;\r\n","// ----------------------------------------------------------------------\r\n\r\nfunction pxToRem(value) {\r\n return `${value / 16}rem`;\r\n}\r\n\r\nfunction responsiveFontSizes({ lg, md, sm }) {\r\n return {\r\n '@media (min-width:1280px)': {\r\n fontSize: pxToRem(lg),\r\n },\r\n '@media (min-width:600px)': {\r\n fontSize: pxToRem(sm),\r\n },\r\n '@media (min-width:960px)': {\r\n fontSize: pxToRem(md),\r\n },\r\n };\r\n}\r\n\r\nconst FONT_PRIMARY = 'Public Sans, sans-serif'; // Google Font\r\n// const FONT_SECONDARY = 'CircularStd, sans-serif'; // Local Font\r\n\r\nconst typography = {\r\n body1: {\r\n fontSize: pxToRem(16),\r\n lineHeight: 1.5,\r\n },\r\n body2: {\r\n fontSize: pxToRem(14),\r\n lineHeight: 22 / 14,\r\n },\r\n button: {\r\n fontSize: pxToRem(14),\r\n fontWeight: 700,\r\n lineHeight: 24 / 14,\r\n textTransform: 'capitalize',\r\n },\r\n caption: {\r\n fontSize: pxToRem(12),\r\n lineHeight: 1.5,\r\n },\r\n fontFamily: FONT_PRIMARY,\r\n fontWeightBold: 700,\r\n fontWeightMedium: 600,\r\n fontWeightRegular: 400,\r\n h1: {\r\n fontSize: pxToRem(40),\r\n fontWeight: 700,\r\n lineHeight: 80 / 64,\r\n ...responsiveFontSizes({ lg: 64, md: 58, sm: 52 }),\r\n },\r\n h2: {\r\n fontSize: pxToRem(32),\r\n fontWeight: 700,\r\n lineHeight: 64 / 48,\r\n ...responsiveFontSizes({ lg: 48, md: 44, sm: 40 }),\r\n },\r\n h3: {\r\n fontSize: pxToRem(24),\r\n fontWeight: 700,\r\n lineHeight: 1.5,\r\n ...responsiveFontSizes({ lg: 32, md: 30, sm: 26 }),\r\n },\r\n h4: {\r\n fontSize: pxToRem(20),\r\n fontWeight: 700,\r\n lineHeight: 1.5,\r\n ...responsiveFontSizes({ lg: 24, md: 24, sm: 20 }),\r\n },\r\n h5: {\r\n fontSize: pxToRem(18),\r\n fontWeight: 700,\r\n lineHeight: 1.5,\r\n ...responsiveFontSizes({ lg: 20, md: 20, sm: 19 }),\r\n },\r\n h6: {\r\n fontSize: pxToRem(17),\r\n fontWeight: 700,\r\n lineHeight: 28 / 18,\r\n ...responsiveFontSizes({ lg: 18, md: 18, sm: 18 }),\r\n },\r\n overline: {\r\n fontSize: pxToRem(12),\r\n fontWeight: 700,\r\n letterSpacing: 1.1,\r\n lineHeight: 1.5,\r\n textTransform: 'uppercase',\r\n },\r\n subtitle1: {\r\n fontSize: pxToRem(16),\r\n fontWeight: 600,\r\n lineHeight: 1.5,\r\n },\r\n subtitle2: {\r\n fontSize: pxToRem(14),\r\n fontWeight: 600,\r\n lineHeight: 22 / 14,\r\n },\r\n};\r\n\r\nexport default typography;\r\n","const zIndex = {\r\n tutorialBox: 10000,\r\n};\r\n\r\nexport default zIndex;\r\n","// material\r\nimport { CssBaseline } from '@material-ui/core';\r\nimport { StyledEngineProvider, ThemeProvider, createTheme } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useMemo } from 'react';\r\n\r\n// hooks\r\nimport useSettings from '../hooks/useSettings';\r\nimport breakpoints from './breakpoints';\r\nimport GlobalStyles from './globalStyles';\r\nimport componentsOverride from './overrides';\r\nimport palette from './palette';\r\nimport shadows, { customShadows } from './shadows';\r\n//\r\nimport shape from './shape';\r\nimport typography from './typography';\r\nimport zIndex from './zIndex';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst ThemeConfig = ({ children }) => {\r\n const { themeDirection, themeMode } = useSettings();\r\n const isLight = themeMode === 'light';\r\n\r\n const themeOptions = useMemo(\r\n () => ({\r\n breakpoints,\r\n customShadows: isLight ? customShadows.light : customShadows.dark,\r\n direction: themeDirection,\r\n palette: isLight ? { ...palette.light, mode: 'light' } : { ...palette.dark, mode: 'dark' },\r\n shadows: isLight ? shadows.light : shadows.dark,\r\n shape,\r\n typography,\r\n zIndex,\r\n }),\r\n [isLight, themeDirection]\r\n );\r\n\r\n const theme = createTheme(themeOptions);\r\n theme.components = componentsOverride(theme);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nThemeConfig.propTypes = {\r\n children: PropTypes.node,\r\n};\r\n\r\nexport default ThemeConfig;\r\n","// material\r\nimport { alpha, experimentalStyled as styled } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst RootStyle = styled('span')(({ styleProps, theme }) => {\r\n const isLight = theme.palette.mode === 'light';\r\n const { color, variant } = styleProps;\r\n\r\n const styleFilled = (c) => ({\r\n backgroundColor: theme.palette[c].main,\r\n color: theme.palette[c].contrastText,\r\n });\r\n\r\n const styleOutlined = (c) => ({\r\n backgroundColor: 'transparent',\r\n border: `1px solid ${theme.palette[c].main}`,\r\n color: theme.palette[c].main,\r\n });\r\n\r\n const styleGhost = (c) => ({\r\n backgroundColor: alpha(theme.palette[c].main, 0.16),\r\n color: theme.palette[c][isLight ? 'dark' : 'light'],\r\n });\r\n\r\n return {\r\n alignItems: 'center',\r\n backgroundColor: theme.palette.grey[300],\r\n borderRadius: 8,\r\n color: theme.palette.grey[800],\r\n cursor: 'default',\r\n display: 'inline-flex',\r\n fontFamily: theme.typography.fontFamily,\r\n fontSize: theme.typography.pxToRem(12),\r\n fontWeight: theme.typography.fontWeightBold,\r\n height: 22,\r\n justifyContent: 'center',\r\n lineHeight: 0,\r\n minWidth: 22,\r\n padding: theme.spacing(0, 1),\r\n whiteSpace: 'nowrap',\r\n\r\n ...(color !== 'default'\r\n ? {\r\n ...(variant === 'filled' && { ...styleFilled(color) }),\r\n ...(variant === 'outlined' && { ...styleOutlined(color) }),\r\n ...(variant === 'ghost' && { ...styleGhost(color) }),\r\n }\r\n : {\r\n ...(variant === 'outlined' && {\r\n backgroundColor: 'transparent',\r\n border: `1px solid ${theme.palette.grey[500_32]}`,\r\n color: theme.palette.text.primary,\r\n }),\r\n ...(variant === 'ghost' && {\r\n backgroundColor: theme.palette.grey[500_16],\r\n color: isLight ? theme.palette.text.secondary : theme.palette.common.white,\r\n }),\r\n }),\r\n };\r\n});\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Label({ children, color = 'default', variant = 'ghost', ...other }) {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nLabel.propTypes = {\r\n children: PropTypes.node,\r\n color: PropTypes.oneOf(['default', 'primary', 'secondary', 'info', 'success', 'warning', 'error']),\r\n variant: PropTypes.oneOf(['filled', 'outlined', 'ghost']),\r\n};\r\n","// material\r\nimport { Box } from '@material-ui/core';\r\nimport config from 'config';\r\nimport PropTypes from 'prop-types';\r\nimport React, { forwardRef } from 'react';\r\nimport { Helmet } from 'react-helmet-async';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst { siteName } = config;\r\n\r\nconst Page = forwardRef(({ children, title, ...other }, ref) => (\r\n \r\n \r\n {`${siteName} | ${title}`}\r\n \r\n {children}\r\n \r\n));\r\n\r\nPage.defaultProps = {\r\n title: 'Votre SAV en ligne',\r\n};\r\n\r\nPage.propTypes = {\r\n children: PropTypes.node.isRequired,\r\n title: PropTypes.string,\r\n};\r\n\r\nexport default Page;\r\n","import { Box } from '@material-ui/core';\r\n// material\r\nimport { useTheme } from '@material-ui/core/styles';\r\nimport React from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function UploadIllustration({ ...other }) {\r\n const theme = useTheme();\r\n const PRIMARY_MAIN = theme.palette.primary.main;\r\n const PRIMARY_DARK = theme.palette.primary.dark;\r\n const PRIMARY_DARKER = theme.palette.primary.darker;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import { Box } from '@material-ui/core';\r\n// material\r\nimport { useTheme } from '@material-ui/core/styles';\r\nimport React from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function PageNotFoundIllustration({ ...other }) {\r\n const theme = useTheme();\r\n const PRIMARY_MAIN = theme.palette.primary.main;\r\n const PRIMARY_DARKER = theme.palette.primary.darker;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import { Box } from '@material-ui/core';\r\n// material\r\nimport { useTheme } from '@material-ui/core/styles';\r\nimport React from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function DocIcon({ ...other }) {\r\n const theme = useTheme();\r\n const PRIMARY_LIGHTER = theme.palette.primary.lighter;\r\n const PRIMARY_LIGHT = theme.palette.primary.light;\r\n const PRIMARY_MAIN = theme.palette.primary.main;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import PropTypes from 'prop-types';\r\nimport React, { createContext, useReducer } from 'react';\r\n\r\nimport apis from '../apis';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState = {\r\n P: {\r\n '-1': [],\r\n 0: [],\r\n 1: [],\r\n },\r\n RP: {\r\n '-1': [],\r\n 0: [],\r\n 1: [],\r\n },\r\n T: {\r\n '-1': [],\r\n 0: [],\r\n 1: [],\r\n },\r\n shouldBeClosedRecords: [],\r\n};\r\n\r\nconst handlers = {\r\n ADD_RECORD: (state, { record, status, type }) => ({\r\n ...state,\r\n [type]: {\r\n ...state[type],\r\n [status]: [record, ...state[type][status]],\r\n },\r\n }),\r\n CLOSE_RECORD: (state, record) => ({\r\n ...state,\r\n shouldBeClosedRecords: state.shouldBeClosedRecords.filter((r) => r.ROW_ID !== record.ROW_ID),\r\n }),\r\n GET_RECORDS: (state, { records, status, type }) => ({ ...state, [type]: { ...state[type], [status]: records } }),\r\n GET_SHOULD_BE_CLOSED_RECORDS: (state, shouldBeClosedRecords) => ({\r\n ...state,\r\n shouldBeClosedRecords,\r\n }),\r\n};\r\n\r\nconst reducer = (state, { payload, type }) => (handlers[type] ? handlers[type](state, payload) : state);\r\n\r\nconst RecordsContext = createContext({\r\n ...initialState,\r\n getRecords: () => Promise.resolve(),\r\n getShouldBeClosedRecords: () => Promise.resolve(),\r\n});\r\n\r\nfunction RecordsProvider({ children }) {\r\n const [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n const getRecords = async ({ status, type }) => {\r\n const { data } = await apis.getRecords({ status, type });\r\n const records = data?.data;\r\n\r\n dispatch({ payload: { records, status, type }, type: 'GET_RECORDS' });\r\n };\r\n\r\n const getShouldBeClosedRecords = async () => {\r\n const { data } = await apis.getRecordsShouldBeClosed();\r\n const shouldBeClosedRecords = data?.data;\r\n\r\n dispatch({ payload: shouldBeClosedRecords, type: 'GET_SHOULD_BE_CLOSED_RECORDS' });\r\n };\r\n\r\n const addRecord = async (recordData) => {\r\n const { data } = await apis.addRecord(recordData);\r\n const record = data?.data;\r\n\r\n dispatch({ payload: { record, status: '0', type: recordData.type }, type: 'ADD_RECORD' });\r\n return record;\r\n };\r\n\r\n const closeRecord = async (recordId) => {\r\n const { data } = await apis.closeRecord(recordId);\r\n const record = data?.data;\r\n\r\n dispatch({ payload: record, type: 'CLOSE_RECORD' });\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nRecordsProvider.propTypes = {\r\n children: PropTypes.node,\r\n};\r\n\r\nexport { RecordsContext, RecordsProvider };\r\n","import Label from 'components/Label';\r\nimport React from 'react';\r\n\r\nconst TypeLabel = ({ type }) => (\r\n \r\n);\r\n\r\nexport default TypeLabel;\r\n","import { Button } from '@material-ui/core';\r\nimport axios from 'axios';\r\nimport React from 'react';\r\n\r\n// eslint-disable-next-line import/no-cycle\r\nimport { setSession } from './jwt';\r\nimport snackbar from './snackbar';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst axiosInstance = axios.create();\r\naxiosInstance.defaults.headers.common['content-type'] = 'application/json';\r\n\r\naxiosInstance.interceptors.response.use(\r\n (response) => response,\r\n (error) => {\r\n if (error?.response?.status === 401 && error?.response?.data?.error === 'UNAUTHORIZED') {\r\n setSession(null);\r\n const root = document.getElementById('root');\r\n root.style.transition = 'all 0.5s ease';\r\n root.style.filter = 'blur(5px)';\r\n root.style.pointerEvents = 'none';\r\n root.style.overflow = 'hidden';\r\n snackbar.enqueue(\"Votre session s'est terminée\", {\r\n action: () => (\r\n {\r\n window.location.href = '/login';\r\n }}\r\n variant=\"outlined\"\r\n >\r\n Se reconnecter\r\n \r\n ),\r\n persist: true,\r\n variant: 'error',\r\n });\r\n }\r\n return Promise.reject((error.response && error.response.data) || 'Something went wrong');\r\n }\r\n);\r\n\r\nexport default axiosInstance;\r\n","import { Checkbox } from '@material-ui/core';\r\n// material\r\nimport { alpha, useTheme } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport React, { forwardRef } from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst MCheckbox = forwardRef(({ color = 'primary', sx, ...other }, ref) => {\r\n const theme = useTheme();\r\n\r\n if (color === 'default' || color === 'primary' || color === 'secondary') {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n );\r\n});\r\n\r\nMCheckbox.defaultProps = {\r\n color: 'default',\r\n sx: undefined,\r\n};\r\n\r\nMCheckbox.propTypes = {\r\n color: PropTypes.oneOf(['default', 'primary', 'secondary', 'info', 'success', 'warning', 'error']),\r\n // eslint-disable-next-line react/forbid-prop-types\r\n sx: PropTypes.object,\r\n};\r\n\r\nexport default MCheckbox;\r\n","import { Chip } from '@material-ui/core';\r\n// material\r\nimport { alpha, emphasize, experimentalStyled as styled } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport React, { forwardRef } from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst ChipStyle = styled(Chip)(({ styleProps, theme }) => {\r\n const { clickable, color, onDelete, variant } = styleProps;\r\n\r\n // Filled\r\n const styleFilled = (c) => ({\r\n '& .MuiChip-avatar': {\r\n backgroundColor: theme.palette[c].dark,\r\n c: theme.palette[c].lighter,\r\n },\r\n '& .MuiChip-deleteIcon': {\r\n '&:hover, &:active': { c: theme.palette[c].contrastText },\r\n c: alpha(theme.palette[c].contrastText, 0.7),\r\n },\r\n '& .MuiChip-icon': { c: 'inherit' },\r\n backgroundColor: theme.palette[c].main,\r\n c: theme.palette[c].contrastText,\r\n });\r\n\r\n const styleFilledClickable = (c) => ({\r\n '&:hover, &:focus': {\r\n backgroundColor: emphasize(theme.palette[c].main, theme.palette.action.hoverOpacity),\r\n },\r\n });\r\n\r\n const styleFilledDeletable = (c) => ({\r\n '&:focus': {\r\n backgroundColor: emphasize(theme.palette[c].main, theme.palette.action.focusOpacity),\r\n },\r\n });\r\n\r\n // Outlined\r\n const styleOutlined = (c) => ({\r\n '& .MuiChip-avatar': {\r\n backgroundColor: theme.palette[c].dark,\r\n color: theme.palette[c].lighter,\r\n },\r\n '& .MuiChip-deleteIcon': {\r\n '&:hover, &:active': { color: theme.palette[c].main },\r\n color: alpha(theme.palette[c].main, 0.7),\r\n },\r\n '& .MuiChip-icon': { color: 'currentColor' },\r\n '&:focus, &.MuiChip-clickable:hover': {\r\n backgroundColor: alpha(theme.palette[c].main, theme.palette.action.hoverOpacity),\r\n },\r\n border: `1px solid ${theme.palette[c].main}`,\r\n color: theme.palette[c].main,\r\n });\r\n\r\n return {\r\n ...(variant === 'filled'\r\n ? {\r\n ...styleFilled(color),\r\n ...(clickable && { ...styleFilledClickable(color) }),\r\n ...(onDelete && { ...styleFilledDeletable(color) }),\r\n }\r\n : {\r\n ...styleOutlined(color),\r\n }),\r\n };\r\n});\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst Mchip = forwardRef(\r\n ({ clickable: clickableProp, color = 'default', onDelete: onDeleteProp, variant = 'filled', ...other }, ref) => {\r\n if (color === 'default' || color === 'primary' || color === 'secondary') {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n);\r\n\r\nMchip.propTypes = {\r\n clickable: PropTypes.bool,\r\n color: PropTypes.oneOf(['default', 'primary', 'secondary', 'info', 'success', 'warning', 'error']),\r\n onDelete: PropTypes.func,\r\n variant: PropTypes.oneOfType([PropTypes.oneOf(['filled', 'outlined']), PropTypes.string]),\r\n};\r\n\r\nexport default Mchip;\r\n","// material\r\nimport { Avatar, useTheme } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport React, { forwardRef } from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst MAvatar = forwardRef(({ children, color = 'default', sx, ...other }, ref) => {\r\n const theme = useTheme();\r\n\r\n if (color === 'default') {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n});\r\n\r\nMAvatar.propTypes = {\r\n children: PropTypes.node,\r\n color: PropTypes.oneOf(['default', 'primary', 'secondary', 'info', 'success', 'warning', 'error']),\r\n // eslint-disable-next-line react/forbid-prop-types\r\n sx: PropTypes.object,\r\n};\r\n\r\nexport default MAvatar;\r\n","import { Box, Breadcrumbs, Link, Typography } from '@material-ui/core';\r\nimport { last } from 'lodash';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\n// material\r\nimport { Link as RouterLink } from 'react-router-dom';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst Separator = ;\r\n\r\nconst LinkItem = ({ link }) => {\r\n const { href, icon, name } = link;\r\n return (\r\n div': { display: 'inherit' },\r\n alignItems: 'center',\r\n color: 'text.primary',\r\n display: 'flex',\r\n lineHeight: 2,\r\n }}\r\n to={href}\r\n variant=\"body2\"\r\n >\r\n {icon && (\r\n \r\n {icon}\r\n \r\n )}\r\n {name}\r\n \r\n );\r\n};\r\n\r\nLinkItem.defaultProps = {\r\n link: undefined,\r\n};\r\n\r\nLinkItem.propTypes = {\r\n // eslint-disable-next-line react/forbid-prop-types\r\n link: PropTypes.object,\r\n};\r\n\r\nconst MBreadcrumbs = ({ activeLast = false, links, ...other }) => {\r\n const currentLink = last(links).name;\r\n\r\n const listDefault = links.map((link) => );\r\n const listActiveLast = links.map((link) => (\r\n
\r\n {link.name !== currentLink ? (\r\n \r\n ) : (\r\n \r\n {currentLink}\r\n \r\n )}\r\n
\r\n ));\r\n\r\n return (\r\n \r\n {activeLast ? listDefault : listActiveLast}\r\n \r\n );\r\n};\r\n\r\nMBreadcrumbs.defaultProps = {\r\n activeLast: false,\r\n};\r\n\r\nMBreadcrumbs.propTypes = {\r\n activeLast: PropTypes.bool,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n links: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default MBreadcrumbs;\r\n","import { Fab } from '@material-ui/core';\r\n// material\r\nimport { useTheme } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport React, { forwardRef } from 'react';\r\n\r\n//\r\nimport { ButtonAnimate } from '../animate';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst MFab = forwardRef(({ children, color = 'primary', sx, ...other }, ref) => {\r\n const theme = useTheme();\r\n\r\n if (color === 'default' || color === 'inherit' || color === 'primary' || color === 'secondary') {\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n});\r\n\r\nMFab.defaultProps = {\r\n children: undefined,\r\n color: 'inherit',\r\n sx: undefined,\r\n};\r\n\r\nMFab.propTypes = {\r\n children: PropTypes.node,\r\n color: PropTypes.oneOf(['default', 'inherit', 'primary', 'secondary', 'info', 'success', 'warning', 'error']),\r\n // eslint-disable-next-line react/forbid-prop-types\r\n sx: PropTypes.object,\r\n};\r\n\r\nexport default MFab;\r\n","import { Button } from '@material-ui/core';\r\n// material\r\nimport { alpha, experimentalStyled as styled } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport React, { forwardRef } from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst ButtonStyle = styled(Button)(({ styleProps, theme }) => {\r\n const { color, variant } = styleProps;\r\n\r\n const styleContained = (c) => ({\r\n '&:hover': {\r\n backgroundColor: theme.palette[c].dark,\r\n },\r\n backgroundColor: theme.palette[c].main,\r\n boxShadow: theme.customShadows[c],\r\n color: theme.palette[c].contrastText,\r\n });\r\n\r\n const styleOutlined = (c) => ({\r\n '&:hover': {\r\n backgroundColor: alpha(theme.palette[c].main, theme.palette.action.hoverOpacity),\r\n border: `1px solid ${theme.palette[c].main}`,\r\n },\r\n border: `1px solid ${alpha(theme.palette[c].main, 0.48)}`,\r\n color: theme.palette[c].main,\r\n });\r\n\r\n const styleText = (c) => ({\r\n '&:hover': {\r\n backgroundColor: alpha(theme.palette[c].main, theme.palette.action.hoverOpacity),\r\n },\r\n color: theme.palette[c].main,\r\n });\r\n return {\r\n ...(variant === 'contained' && { ...styleContained(color) }),\r\n ...(variant === 'outlined' && { ...styleOutlined(color) }),\r\n ...(variant === 'text' && { ...styleText(color) }),\r\n };\r\n});\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst MButton = forwardRef(({ children, color = 'primary', variant = 'text', ...other }, ref) => {\r\n if (color === 'inherit' || color === 'primary' || color === 'secondary') {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n});\r\n\r\nMButton.defaultProps = {\r\n children: undefined,\r\n color: 'inherit',\r\n variant: 'text',\r\n};\r\n\r\nMButton.propTypes = {\r\n children: PropTypes.node,\r\n color: PropTypes.oneOf(['inherit', 'primary', 'secondary', 'info', 'success', 'warning', 'error']),\r\n variant: PropTypes.oneOfType([PropTypes.oneOf(['contained', 'outlined', 'text']), PropTypes.string]),\r\n};\r\n\r\nexport default MButton;\r\n","import { IconButton } from '@material-ui/core';\r\n// material\r\nimport { alpha, useTheme } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport React, { forwardRef } from 'react';\r\n\r\n//\r\nimport { ButtonAnimate } from '../animate';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst MIconButton = forwardRef(({ children, color = 'default', sx, ...other }, ref) => {\r\n const theme = useTheme();\r\n\r\n if (color === 'default' || color === 'inherit' || color === 'primary' || color === 'secondary') {\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n});\r\n\r\nMIconButton.propTypes = {\r\n children: PropTypes.node,\r\n color: PropTypes.oneOf(['default', 'inherit', 'primary', 'secondary', 'info', 'success', 'warning', 'error']),\r\n // eslint-disable-next-line react/forbid-prop-types\r\n sx: PropTypes.object,\r\n};\r\n\r\nexport default MIconButton;\r\n","import { ButtonGroup } from '@material-ui/core';\r\n// material\r\nimport { alpha, experimentalStyled as styled } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst ButtonGroupStyle = styled(ButtonGroup)(({ styleProps, theme }) => {\r\n const { color, variant } = styleProps;\r\n\r\n const styleContained = (c) => ({\r\n '& .MuiButtonGroup-grouped': {\r\n '&:hover': {\r\n backgroundColor: theme.palette[c].dark,\r\n },\r\n backgroundColor: theme.palette[c].main,\r\n borderColor: `${theme.palette[c].dark} !important`,\r\n color: theme.palette[c].contrastText,\r\n },\r\n boxShadow: theme.customShadows[c],\r\n });\r\n\r\n const styleOutlined = (c) => ({\r\n '& .MuiButtonGroup-grouped': {\r\n '&:hover': {\r\n backgroundColor: alpha(theme.palette[c].main, theme.palette.action.hoverOpacity),\r\n borderColor: `${theme.palette[c].main} !important`,\r\n },\r\n borderColor: `${alpha(theme.palette[c].main, 0.48)} !important`,\r\n color: theme.palette[c].main,\r\n },\r\n });\r\n\r\n const styleText = (c) => ({\r\n '& .MuiButtonGroup-grouped': {\r\n '&:hover': {\r\n backgroundColor: alpha(theme.palette[c].main, theme.palette.action.hoverOpacity),\r\n },\r\n borderColor: `${theme.palette[c].main} !important`,\r\n color: theme.palette[c].main,\r\n },\r\n });\r\n return {\r\n ...(variant === 'contained' && { ...styleContained(color) }),\r\n ...(variant === 'outlined' && { ...styleOutlined(color) }),\r\n ...(variant === 'text' && { ...styleText(color) }),\r\n };\r\n});\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nfunction MButtonGroup({ children, color = 'primary', variant = 'outlined', ...other }) {\r\n if (color === 'inherit' || color === 'primary' || color === 'secondary') {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nMButtonGroup.defaultProps = {\r\n children: PropTypes.node,\r\n color: 'inherit',\r\n variant: 'text',\r\n};\r\n\r\nMButtonGroup.propTypes = {\r\n children: PropTypes.node,\r\n color: PropTypes.oneOf(['inherit', 'primary', 'secondary', 'info', 'success', 'warning', 'error']),\r\n variant: PropTypes.oneOfType([PropTypes.oneOf(['contained', 'outlined', 'text']), PropTypes.string]),\r\n};\r\n\r\nexport default MButtonGroup;\r\n","// material\r\nimport { useMediaQuery } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst MHidden = ({ children, width }) => {\r\n const breakpoint = width.substring(0, 2);\r\n\r\n const hiddenUp = useMediaQuery((theme) => theme.breakpoints.up(breakpoint));\r\n const hiddenDown = useMediaQuery((theme) => theme.breakpoints.down(breakpoint));\r\n\r\n if (width.includes('Down')) {\r\n return hiddenDown ? null : children;\r\n }\r\n\r\n if (width.includes('Up')) {\r\n return hiddenUp ? null : children;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nMHidden.defaultProps = {\r\n children: undefined,\r\n width: undefined,\r\n};\r\n\r\nMHidden.propTypes = {\r\n children: PropTypes.node,\r\n width: PropTypes.oneOf(['xsDown', 'smDown', 'mdDown', 'lgDown', 'xlDown', 'xsUp', 'smUp', 'mdUp', 'lgUp', 'xlUp'])\r\n .isRequired,\r\n};\r\n\r\nexport default MHidden;\r\n","import { NotificationsContext } from 'contexts/NotificationsContext';\r\nimport { useContext } from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst useNotifications = () => useContext(NotificationsContext);\r\n\r\nexport default useNotifications;\r\n","import { Box } from '@material-ui/core';\r\n// material\r\nimport { useTheme } from '@material-ui/core/styles';\r\nimport React from 'react';\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function CaravanIcon({ ...other }) {\r\n const theme = useTheme();\r\n const PRIMARY_LIGHTER = theme.palette.primary.lighter;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import eyeFill from '@iconify/icons-eva/eye-fill';\r\nimport eyeOffFill from '@iconify/icons-eva/eye-off-fill';\r\nimport { Icon } from '@iconify/react';\r\n// material\r\nimport {\r\n Alert,\r\n Checkbox,\r\n FormControlLabel,\r\n IconButton,\r\n InputAdornment,\r\n Link,\r\n Stack,\r\n TextField,\r\n} from '@material-ui/core';\r\nimport { LoadingButton } from '@material-ui/lab';\r\nimport { Form, FormikProvider, useFormik } from 'formik';\r\nimport React, { useState } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport * as Yup from 'yup';\r\n\r\n// hooks\r\nimport useAuth from '../../../hooks/useAuth';\r\nimport useIsMountedRef from '../../../hooks/useIsMountedRef';\r\n// routes\r\nimport { PATH_AUTH } from '../../../routes/paths';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst LoginForm = () => {\r\n const { login } = useAuth();\r\n const isMountedRef = useIsMountedRef();\r\n const [showPassword, setShowPassword] = useState(false);\r\n\r\n const LoginSchema = Yup.object().shape({\r\n password: Yup.string().required('Le mot de passe est obligatoire.'),\r\n username: Yup.string().required('Le code est obligatoire.'),\r\n });\r\n\r\n const formik = useFormik({\r\n initialValues: {\r\n password: '',\r\n remember: true,\r\n username: '',\r\n },\r\n onSubmit: async ({ password, username }, { resetForm, setErrors, setSubmitting }) => {\r\n try {\r\n await login({ password, username });\r\n if (isMountedRef.current) {\r\n setSubmitting(false);\r\n }\r\n } catch (error) {\r\n resetForm();\r\n if (isMountedRef.current) {\r\n setSubmitting(false);\r\n setErrors({ afterSubmit: 'Erreur: Identifiants invalides' });\r\n }\r\n }\r\n },\r\n validationSchema: LoginSchema,\r\n });\r\n\r\n const { errors, getFieldProps, handleSubmit, isSubmitting, touched, values } = formik;\r\n\r\n const handleShowPassword = () => {\r\n setShowPassword((show) => !show);\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n {errors.afterSubmit && {errors.afterSubmit}}\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n ),\r\n }}\r\n error={Boolean(touched.password && errors.password)}\r\n helperText={touched.password && errors.password}\r\n />\r\n \r\n\r\n \r\n }\r\n label=\"Remember me\"\r\n />\r\n\r\n \r\n Mot de passe oublié ?\r\n \r\n \r\n\r\n \r\n Se connecter\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LoginForm;\r\n","import { Box, Card, Container, Stack, Typography } from '@material-ui/core';\r\n// material\r\nimport { experimentalStyled as styled } from '@material-ui/core/styles';\r\nimport CaravanIcon from 'assets/caravan';\r\nimport config from 'config';\r\n// routes\r\nimport React from 'react';\r\n\r\nimport { MHidden } from '../../components/@material-extend';\r\nimport { LoginForm } from '../../components/authentication/login';\r\n// components\r\nimport Page from '../../components/Page';\r\n\r\n// hooks\r\n// ----------------------------------------------------------------------\r\n\r\nconst RootStyle = styled(Page)(({ theme }) => ({\r\n [theme.breakpoints.up('md')]: {\r\n display: 'flex',\r\n },\r\n}));\r\n\r\nconst SectionStyle = styled(Card)(({ theme }) => ({\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n margin: theme.spacing(2, 0, 2, 2),\r\n maxWidth: 464,\r\n width: '100%',\r\n}));\r\n\r\nconst ContentStyle = styled('div')(({ theme }) => ({\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n margin: 'auto',\r\n maxWidth: 480,\r\n minHeight: '100vh',\r\n padding: theme.spacing(12, 0),\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst { siteName } = config;\r\n\r\nconst Login = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {siteName}\r\n \r\n Utilisez vos identifiants pour vous connecter.\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default Login;\r\n","import JSONConfig from './config.json';\r\n\r\nconst env = process.env.NODE_ENV;\r\n\r\nconst config = JSONConfig[env]?.hostname ? JSONConfig[env]?.hostname[window.location.hostname] : JSONConfig[env];\r\n\r\nexport default config;\r\n","import qs from 'querystring';\r\n\r\nimport config from 'config';\r\nimport axios from 'utils/axios';\r\n\r\nconst ROOT_URL = config.apiUrl;\r\n\r\nconst createURL = (urlPath) => `${ROOT_URL}${urlPath}`;\r\n\r\nconst apis = {\r\n addRecord: (record) => axios.post(createURL(`/me/dossiers`), record),\r\n addRow: (numdos, row) => axios.post(createURL(`/me/dossiers/${numdos}`), row),\r\n closeRecord: (recordId) => axios.post(createURL(`/me/dossiers/${recordId}/close`)),\r\n createContact: (contact) => axios.post(createURL(`/me/contacts`), contact),\r\n deleteContact: (contactId) => axios.delete(createURL(`/me/contacts/${contactId}`)),\r\n getContacts: () => axios.get(createURL(`/me/contacts`)),\r\n getDocuments: () => axios.get(createURL(`/documents`)),\r\n getMiniDashboardInfo: () => axios.get(createURL(`/me/mini-dashboard/info`)),\r\n getNotifications: () => axios.get(createURL(`/me/notifications`)),\r\n getRecordDetails: (recordId) => axios.get(createURL(`/me/dossiers/${recordId}`)),\r\n getRecords: ({ status, type }) => axios.get(createURL(`/me/dossiers?status=${status}&type=${type}`)),\r\n getRecordsShouldBeClosed: () => axios.get(createURL(`/me/dossiers/should-be-closed`)),\r\n getStats: () => axios.get(createURL(`/me/stats`)),\r\n login: (credentials) => axios.post(createURL(`/concessionnaires/auth`), credentials),\r\n markRecordDetailsAsSeen: (recordId) => axios.post(createURL(`/me/dossiers/${recordId}/seen`)),\r\n me: () => axios.get(createURL(`/me`)),\r\n searchRecords: ({ fromDate, search, toDate, type }) =>\r\n axios.get(createURL(`/dossiers/search?${qs.stringify({ from_date: fromDate, search, to_date: toDate, type })}`)),\r\n updateContact: (contactId, contactData) => axios.put(createURL(`/me/contacts/${contactId}`), contactData),\r\n};\r\n\r\nexport default apis;\r\n","import { alpha } from '@material-ui/core/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nfunction createGradient(color1, color2) {\r\n return `linear-gradient(to bottom, ${color1}, ${color2})`;\r\n}\r\n\r\n// SETUP COLORS\r\nconst GREY = {\r\n 0: '#FFFFFF',\r\n 100: '#F9FAFB',\r\n 200: '#F4F6F8',\r\n 300: '#DFE3E8',\r\n 400: '#C4CDD5',\r\n 500: '#919EAB',\r\n 500_12: alpha('#919EAB', 0.12),\r\n 500_16: alpha('#919EAB', 0.16),\r\n 500_24: alpha('#919EAB', 0.24),\r\n 500_32: alpha('#919EAB', 0.32),\r\n 500_48: alpha('#919EAB', 0.48),\r\n 500_56: alpha('#919EAB', 0.56),\r\n 500_8: alpha('#919EAB', 0.08),\r\n 500_80: alpha('#919EAB', 0.8),\r\n 600: '#637381',\r\n 700: '#454F5B',\r\n 800: '#212B36',\r\n 900: '#161C24',\r\n};\r\n\r\nconst PRIMARY = {\r\n contrastText: '#fff',\r\n dark: '#007B55',\r\n darker: '#005249',\r\n light: '#5BE584',\r\n lighter: '#C8FACD',\r\n main: '#00AB55',\r\n};\r\nconst SECONDARY = {\r\n contrastText: '#fff',\r\n dark: '#1939B7',\r\n darker: '#091A7A',\r\n light: '#84A9FF',\r\n lighter: '#D6E4FF',\r\n main: '#3366FF',\r\n};\r\nconst INFO = {\r\n contrastText: '#fff',\r\n dark: '#0C53B7',\r\n darker: '#04297A',\r\n light: '#74CAFF',\r\n lighter: '#D0F2FF',\r\n main: '#1890FF',\r\n};\r\nconst SUCCESS = {\r\n contrastText: GREY[800],\r\n dark: '#229A16',\r\n darker: '#08660D',\r\n light: '#AAF27F',\r\n lighter: '#E9FCD4',\r\n main: '#54D62C',\r\n};\r\nconst WARNING = {\r\n contrastText: GREY[800],\r\n dark: '#B78103',\r\n darker: '#7A4F01',\r\n light: '#FFE16A',\r\n lighter: '#FFF7CD',\r\n main: '#FFC107',\r\n};\r\nconst ERROR = {\r\n contrastText: '#fff',\r\n dark: '#B72136',\r\n darker: '#7A0C2E',\r\n light: '#FFA48D',\r\n lighter: '#FFE7D9',\r\n main: '#FF4842',\r\n};\r\n\r\nconst GRADIENTS = {\r\n error: createGradient(ERROR.light, ERROR.main),\r\n info: createGradient(INFO.light, INFO.main),\r\n primary: createGradient(PRIMARY.light, PRIMARY.main),\r\n success: createGradient(SUCCESS.light, SUCCESS.main),\r\n warning: createGradient(WARNING.light, WARNING.main),\r\n};\r\n\r\nconst COMMON = {\r\n action: {\r\n disabled: GREY[500_80],\r\n disabledBackground: GREY[500_24],\r\n disabledOpacity: 0.48,\r\n focus: GREY[500_24],\r\n hover: GREY[500_8],\r\n hoverOpacity: 0.08,\r\n selected: GREY[500_16],\r\n },\r\n common: { black: '#000', white: '#fff' },\r\n divider: GREY[500_24],\r\n error: { ...ERROR },\r\n gradients: GRADIENTS,\r\n grey: GREY,\r\n info: { ...INFO },\r\n primary: { ...PRIMARY },\r\n secondary: { ...SECONDARY },\r\n success: { ...SUCCESS },\r\n warning: { ...WARNING },\r\n};\r\n\r\nconst palette = {\r\n dark: {\r\n ...COMMON,\r\n action: { active: GREY[500], ...COMMON.action },\r\n background: { default: GREY[900], neutral: GREY[500_16], paper: GREY[800] },\r\n text: { disabled: GREY[600], primary: '#fff', secondary: GREY[500] },\r\n },\r\n light: {\r\n ...COMMON,\r\n action: { active: GREY[600], ...COMMON.action },\r\n background: { default: '#fff', neutral: GREY[200], paper: '#fff' },\r\n text: { disabled: GREY[500], primary: GREY[800], secondary: GREY[600] },\r\n },\r\n};\r\n\r\nexport default palette;\r\n","import { useContext } from 'react';\r\n\r\nimport { AuthContext } from '../contexts/JWTContext';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst useAuth = () => useContext(AuthContext);\r\n\r\nexport default useAuth;\r\n","// ----------------------------------------------------------------------\r\n\r\nfunction path(root, subLink) {\r\n return `${root}${subLink}`;\r\n}\r\n\r\nconst ROOTS_DASHBOARD = '/dashboard';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport const PATH_AUTH = {\r\n login: path('/login'),\r\n};\r\n\r\nexport const PATH_PAGE = {\r\n maintenance: '/maintenance',\r\n page404: '/404',\r\n page500: '/500',\r\n};\r\n\r\nexport const PATH_DASHBOARD = {\r\n documents: path(ROOTS_DASHBOARD, '/documents'),\r\n overview: path(ROOTS_DASHBOARD, '/overview'),\r\n pieces: path(ROOTS_DASHBOARD, '/pieces'),\r\n piecesReturn: path(ROOTS_DASHBOARD, '/retour-de-pieces'),\r\n recordDetails: path(ROOTS_DASHBOARD, '/dossiers/:id'),\r\n root: ROOTS_DASHBOARD,\r\n technical: path(ROOTS_DASHBOARD, '/techniques'),\r\n};\r\n"],"sourceRoot":""}