{"version":3,"sources":["components/third-party/SimpleBar.tsx","utils/getShadow.ts","store/reducers/snackbar.ts","components/Loader.tsx","store/reducers/actions.ts","store/reducers/auth.ts","utils/axios.ts","components/authentication/api/authentication-api.ts","contexts/UserContext.tsx","contexts/ConfigContext.tsx","hooks/useLocalStorage.ts","api/pricelist-subscription.ts","utils/format-date.ts","common/constants.ts","store/reducers/index.ts","store/index.ts","utils/SyntaxHighlight.tsx","components/third-party/Highlighter.tsx","components/MainCard.tsx","hooks/useConfig.ts","config.ts","components/@extended/IconButton.tsx","store/reducers/menu.ts","utils/getColors.ts","hooks/useAuth.ts","components/logo/LogoMain.tsx","components/logo/LogoIcon.tsx","assets/images/logoIdeal.png","assets/images/logoCSystems.png","components/logo/index.tsx","layout/CommonLayout/Header.tsx","layout/CommonLayout/Drawer/Navigation/NavItem.tsx","layout/CommonLayout/Drawer/Navigation/NavGroup.tsx","menu-items/components.tsx","layout/CommonLayout/Drawer/Navigation/index.tsx","layout/CommonLayout/Drawer/DrawerContent.tsx","layout/CommonLayout/Drawer/index.tsx","layout/CommonLayout/ComponentLayout.tsx","layout/CommonLayout/FooterBlock.tsx","layout/CommonLayout/index.tsx","components/Loadable.tsx","utils/route-guard/GuestGuard.tsx","routes/LoginRoutes.tsx","layout/MainLayout/Drawer/DrawerHeader/DrawerHeaderStyled.ts","layout/MainLayout/Drawer/DrawerHeader/index.tsx","layout/MainLayout/Drawer/DrawerContent/NavCard.tsx","layout/MainLayout/Drawer/DrawerContent/Navigation/NavItem.tsx","components/@extended/Transitions.tsx","layout/MainLayout/Drawer/DrawerContent/Navigation/NavCollapse.tsx","layout/MainLayout/Drawer/DrawerContent/Navigation/NavGroup.tsx","menu-items/subscriptions.tsx","menu-items/index.tsx","layout/MainLayout/Drawer/DrawerContent/Navigation/index.tsx","layout/MainLayout/Drawer/DrawerContent/index.tsx","layout/MainLayout/Drawer/MiniDrawerStyled.ts","layout/MainLayout/Drawer/index.tsx","layout/MainLayout/Header/AppBarStyled.tsx","layout/MainLayout/Header/HeaderContent/Search.tsx","components/@extended/Avatar.tsx","layout/MainLayout/Header/HeaderContent/Profile/ProfileTab.tsx","layout/MainLayout/Header/HeaderContent/Profile/SettingTab.tsx","assets/images/users/avatar-1.png","layout/MainLayout/Header/HeaderContent/Profile/index.tsx","assets/images/customization/default.svg","assets/images/customization/rtl.svg","assets/images/customization/mini-menu.svg","layout/MainLayout/Header/HeaderContent/Customization/ThemeLayout.tsx","assets/images/customization/dark.svg","layout/MainLayout/Header/HeaderContent/Customization/ThemeMode.tsx","assets/images/customization/theme-color.svg","layout/MainLayout/Header/HeaderContent/Customization/ColorScheme.tsx","assets/images/customization/container.svg","layout/MainLayout/Header/HeaderContent/Customization/ThemeWidth.tsx","layout/MainLayout/Header/HeaderContent/Customization/ThemeFont.tsx","layout/MainLayout/Header/HeaderContent/Contact/ContactDialog.tsx","layout/MainLayout/Header/HeaderContent/Customization/index.tsx","layout/MainLayout/Header/HeaderContent/Localization.tsx","layout/MainLayout/Header/HeaderContent/MobileSection.tsx","layout/MainLayout/Header/HeaderContent/index.tsx","layout/MainLayout/Header/index.tsx","components/@extended/Breadcrumbs.tsx","common/IdleTimer.tsx","layout/MainLayout/index.tsx","utils/route-guard/AuthGuard.tsx","routes/MainRoutes.tsx","routes/ConsentRoutes.tsx","routes/index.tsx","themes/theme/default.ts","themes/theme/theme1.ts","themes/theme/theme2.ts","themes/theme/theme3.ts","themes/theme/theme4.ts","themes/theme/theme5.ts","themes/theme/theme6.ts","themes/theme/theme7.ts","themes/theme/theme8.ts","themes/theme/index.ts","themes/palette.ts","themes/typography.ts","themes/shadows.tsx","themes/overrides/Alert.ts","themes/overrides/Badge.ts","themes/overrides/Button.ts","themes/overrides/Checkbox.tsx","themes/overrides/Chip.ts","themes/overrides/OutlinedInput.ts","themes/overrides/PaginationItem.ts","themes/overrides/Radio.tsx","themes/overrides/Switch.ts","themes/overrides/index.ts","themes/overrides/Accordion.ts","themes/overrides/AccordionDetails.ts","themes/overrides/AccordionSummary.tsx","themes/overrides/AlertTitle.ts","themes/overrides/Autocomplete.ts","themes/overrides/ButtonBase.ts","themes/overrides/CardContent.ts","themes/overrides/Dialog.ts","themes/overrides/DialogContentText.ts","themes/overrides/DialogTitle.ts","themes/overrides/IconButton.ts","themes/overrides/InputBase.ts","themes/overrides/InputLabel.ts","themes/overrides/LinearProgress.ts","themes/overrides/Link.ts","themes/overrides/ListItemButton.tsx","themes/overrides/ListItemIcon.tsx","themes/overrides/LoadingButton.ts","themes/overrides/Pagination.ts","themes/overrides/Popover.ts","themes/overrides/Tab.ts","themes/overrides/TableBody.ts","themes/overrides/TableCell.ts","themes/overrides/TableFooter.ts","themes/overrides/TableHead.ts","themes/overrides/TablePagination.ts","themes/overrides/TableRow.ts","themes/overrides/Tabs.ts","themes/overrides/ToggleButton.ts","themes/overrides/Tooltip.ts","themes/overrides/TreeItem.ts","themes/overrides/Typography.ts","themes/index.tsx","components/Locales.tsx","components/RTLLayout.tsx","components/ScrollTop.tsx","components/@extended/Snackbar.tsx","App.tsx","index.tsx"],"names":["RootStyle","styled","BrowserView","flexGrow","height","overflow","SimpleBarStyle","SimpleBar","theme","maxHeight","backgroundColor","alpha","palette","grey","opacity","width","zIndex","SimpleBarScroll","children","sx","other","timeout","clickOnTrack","overflowX","getShadow","shadow","customShadows","secondary","error","warning","info","success","primaryButton","secondaryButton","errorButton","warningButton","infoButton","successButton","primary","initialState","action","open","autoHideDuration","message","anchorOrigin","vertical","horizontal","variant","alert","color","transition","close","actionButton","snackbar","createSlice","name","reducers","openSnackbar","state","payload","closeSnackbar","actions","LoaderWrapper","position","top","left","marginTop","spacing","Loader","LOGIN","LOGOUT","isLoggedIn","isInitialized","user","auth","type","axiosServices","axios","create","interceptors","response","use","Promise","reject","data","authenticateUser","request","a","authenticationUrl","process","post","refreshTokens","refreshToken","RefreshToken","ClientId","ClientSecret","console","log","verifyToken","serviceToken","jwtDecode","exp","Date","now","setSession","accessToken","localStorage","setItem","defaults","headers","common","Authorization","removeItem","UserContext","createContext","LoadUser","calledFrom","dispatch","Error","decodedToken","caseFixProfile","profile","replace","decodedProfile","JSON","parse","dealerId","dmsDealerId","userId","givenName","given_name","dmsType","dmsCompany","isPriceListSubscriptionApproved","priceListSubscriptionId","inGracePeriod","gracePeriodDays","isLegacyDealer","newDealerStatus","showPortalView2024","PriceListSubscriptionAPI","getSubscriptionClientByDealerId","then","result","errorMessage","toLowerCase","includes","statusCode","isActive","isSubscriptionActive","subscriptionId","address","city","email","stateOrProvince","companyName","subscriptionClientName","isApproved","currentDate","newPortalDateString","newPortalDate","addApplicationLogEntry","catch","reason","JWTProvider","useReducer","authReducer","useEffect","init","window","getItem","access_token","refresh_token","logout","err","login","userName","password","token","DmsDealerId","Username","Password","ProductId","clear","undefined","Provider","value","updateProfile","config","onChangeContainer","onChangeLocalization","lang","onChangeMode","mode","onChangePresetColor","onChangeDirection","direction","onChangeMiniDrawer","miniDrawer","onChangeFontFamily","fontFamily","ConfigContext","ConfigProvider","key","defaultValue","useState","storedValue","setValue","listener","e","storageArea","newValue","addEventListener","removeEventListener","currentValue","stringify","useLocalStorage","setConfig","container","i18n","presetColor","themeDirection","PL2Url","PL2Code","logEntry","logLevel","url","LogMessage","Level","LogDate","getFormattedCurrentDateTime","LoggedBy","get","activateSubscription","activatedBy","put","priceListCheckOut","checkOutUser","getPriceListSubscription","getPriceListSubscriptions","searchString","sortField","ascending","activeStatus","updateType","manufacturerList","distributorList","frequencyId","pageNumber","pageSize","manufacturers","distributors","showOnlyUpdateAvailable","priceListKey","getPriceListManufacturers","getPriceListManufacturersBySubscription","getPriceListTopManufacturers","salesMinimum","getPriceListDistributors","getPriceListDistributorsBySubscription","updatePriceListSubscription","priceListSubscription","getAvailablePriceLists","dealerid","DmsCompany","Dealerid","Manufacturers","SearchString","SortField","Ascending","PageNumber","PageSize","addPriceListSubscriptions","details","newDealerSubmission","submittedBy","addPriceListSubscriptionsToCart","updatePriceListSubscriptionCart","cartItem","getPriceList","getPriceListSubscriptionCart","unsubscribePriceListSubscription","deletePriceListSubscriptionCartItemById","priceListSubscriptionCartId","delete","deletePriceListSubscriptionCartItemByPriceListKey","preActivationLoadPriceListSubscriptionCart","createdBy","PriceListSubscriptionId","CreatedBy","CreatedOn","getCurrentDate","today","dd","String","getDate","padStart","mm","getMonth","getFullYear","dateTimeStr","dt","toString","getHours","getMinutes","getSeconds","getFormattedJsonDateTime","formatDate","dateString","prefix","d","toLocaleDateString","Everest","DMS_IDEAL_STR","DMS_CSYSTEMS_STR","DMS_CHARTER_STR","EmptyGuid","EVEREST_API_STATUS_CODE_SUCCESS","EVEREST_API_STATUS_CODE_GENERAL_ERROR","EVEREST_API_STATUS_CODE_DUPLICATE_ERROR","DataGridSettings","Data_Grid_Row_Height","Data_Grid_Header_Height","Data_Grid_Header_Double_Height","Data_Grid_Page_Size","combineReducers","menu","store","configureStore","reducer","middleware","getDefaultMiddleware","serializableCheck","ignoredActions","FLUSH","REHYDRATE","PAUSE","PERSIST","PURGE","REGISTER","persistStore","useAppSelector","SyntaxHighlight","others","useTheme","language","showLineNumbers","style","a11yLight","a11yDark","Highlighter","codeString","codeHighlight","highlight","setHighlight","CardActions","justifyContent","Box","display","text","Tooltip","title","placement","IconButton","size","fontSize","CopyOutlined","Divider","orientation","flexItem","mx","onClick","CodeOutlined","Collapse","in","headerSX","p","m","alignSelf","MainCard","forwardRef","ref","border","boxShadow","subheader","content","contentSX","darkTitle","divider","elevation","Card","borderRadius","borderColor","A800","z1","typography","CardHeader","titleTypographyProps","Typography","CardContent","borderStyle","useConfig","useContext","drawerWidth","defaultPath","dms","IconButtonStyle","MuiIconButton","shouldForwardProp","prop","shape","colors","getColors","lighter","dark","main","contrastText","buttonShadow","shadows","commonShadow","getColorStyle","tooltip","disableRipple","displayName","openItem","openComponent","drawerOpen","componentDrawerOpen","activeItem","activeComponent","openDrawer","openComponentDrawer","useAuth","context","AuthContext","LogoMain","reverse","paddingLeft","paddingTop","LogoIcon","isIdeal","favicon","document","getElementById","href","src","alt","LogoSection","isIcon","to","ButtonBase","component","Link","ElevationScroll","layout","trigger","useScrollTrigger","disableHysteresis","threshold","target","backColorScroll","backColor","React","Header","handleDrawerOpen","matchDownMd","useMediaQuery","breakpoints","down","AppBar","bgcolor","Container","disableGutters","Toolbar","px","xs","md","lg","py","Stack","alignItems","textAlign","Chip","label","mt","ml","Button","RouterLink","event","MenuOutlined","NavItem","item","level","useDispatch","matchesMD","useSelector","itemTarget","listItemProps","props","external","location","pathname","split","findIndex","id","textColor","iconSelectedColor","ListItemButton","disabled","selected","pl","mb","borderRight","ListItemText","chip","avatar","Avatar","NavGroup","navCollapse","map","align","List","menuItems","Navigation","searchValue","filteredMenuItems","menuItem","forEach","parentMenu","matchedChildren","child","search","trim","push","filter","xx","length","clonedParent","navGroups","pt","DrawerContent","flexDirection","Drawer","setSearchValue","flexShrink","xl","anchor","ModalProps","keepMounted","onClose","TextField","fullWidth","background","paper","InputProps","startAdornment","SearchOutlined","placeholder","onChange","Main","minHeight","transitions","easing","sharp","duration","leavingScreen","easeOut","enteringScreen","ComponentsLayout","FooterBlock","isFull","year","CommonLayout","maxWidth","sm","my","ComponentLayout","Loadable","Component","fallback","GuestGuard","navigate","useNavigate","AuthLogin","lazy","LoginRoutes","path","element","DrawerHeaderStyled","mixins","toolbar","DrawerHeader","NavCard","version","dayOfMonth","env","toUpperCase","interval","setInterval","reload","clearInterval","Icon","icon","itemIcon","isSelected","useLocation","ListItemIcon","minWidth","Transitions","positionSX","transformOrigin","Grow","Fade","appear","enter","exit","Slide","Zoom","PopperStyled","Popper","transform","borderLeft","borderBottom","NavCollapse","setOpen","setSelected","anchorEl","setAnchorEl","handleClick","currentTarget","handleClose","openMini","Boolean","borderIcon","BorderOutlined","menuIcon","onMouseEnter","onMouseLeave","caption","UpOutlined","marginLeft","DownOutlined","popperOptions","modifiers","options","offset","TransitionProps","Paper","backgroundImage","ClickAwayListener","onClickAway","unmountOnExit","icons","DollarCircleOutlined","GetSubscriptionMenuItems","breadcrumbs","GetMyPriceListItems","GetNavigationMenuItems","items","GetSubscriptions","matchDownMD","openedMixin","closedMixin","MiniDrawerStyled","whiteSpace","boxSizing","MainDrawer","handleDrawerToggle","body","drawerContent","useMemo","drawerHeader","AppBarStyled","drawer","Search","AvatarStyle","MuiAvatar","getSizeStyle","light","default","ProfileTab","handleLogout","toTitleCase","str","word","join","phone","LogoutOutlined","SettingTab","selectedIndex","setSelectedIndex","TabPanel","index","role","hidden","a11yProps","Profile","anchorRef","useRef","current","contains","handleChange","iconBackColorOpen","prevOpen","avatar1","disablePortal","Grid","Tabs","Tab","textTransform","UserOutlined","marginBottom","marginRight","SettingOutlined","dir","ThemeLayout","initialTheme","RadioGroup","row","FormControlLabel","control","Radio","flex","CardMedia","defaultLayout","miniMenu","rtlLayout","ThemeModeLayout","darkLayout","ColorScheme","blue","presetDarkPalettes","presetPalettes","colorOptions","colorLayout","ThemeWidth","containerLayout","ThemeFont","ContactDialog","Dialog","DialogTitle","pr","Customization","themeLayout","themeMode","ThemeMode","themeWidth","themeFont","openSettings","setOpenSettings","openContact","setOpenContact","handleShowSettings","handleShowContact","iconBackColor","ContactsOutlined","PaperProps","CloseCircleOutlined","Accordion","defaultExpanded","borderTop","AccordionSummary","LayoutOutlined","AccordionDetails","HighlightOutlined","BorderInnerOutlined","FontColorsOutlined","Localization","matchesXs","handleListItemClick","TranslationOutlined","MobileSection","focus","MoreOutlined","HeaderContent","headerContent","mainHeader","edge","MenuFoldOutlined","MenuUnfoldOutlined","appBar","Breadcrumbs","card","navigation","maxItems","rightAlign","separator","titleBottom","getCollapse","collapse","breadcrumbContent","whitelist","IdleTimer","delayMinutes","restartAutoReset","clearTimeout","setTimeout","_onMouseMove","preventReset","MainLayout","matchDownLG","parseInt","AuthGuard","PriceListInquiry","NewDealerInquiry","MaintenanceError","MaintenanceError500","MainRoutes","ConstConsentHome","ConstConsentProgram","ConstConsentSubmit","ConsentRoutes","PagesLanding","ThemeRoutes","useRoutes","Default","red","gold","cyan","green","greyColors","A50","A100","A200","A400","A700","darker","A300","Theme1","primaryColors","errorColors","warningColors","infoColors","successColors","Theme2","Theme4","Theme5","Theme6","Theme7","Theme8","Theme","Theme3","Palette","greyPrimary","greyAscent","greyConstant","paletteColor","ThemeOption","createTheme","black","white","htmlFontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","h1","fontWeight","lineHeight","h2","h3","h4","h5","h6","body1","body2","subtitle1","subtitle2","overline","button","CustomShadows","greyButton","checkboxStyle","sizes","getColor","radioStyle","dotSize","switchStyle","base","thumb","trackRadius","padding","ComponentsOverrides","merge","MuiAccordion","defaultProps","square","styleOverrides","root","MuiAccordionDetails","MuiAccordionSummary","expandIcon","RightOutlined","expandIconWrapper","primaryDashed","MuiAlert","filled","Alert","MuiAlertTitle","MuiAutocomplete","popupIndicator","clearIndicator","defaultLightBadge","MuiBadge","standard","Badge","primaryShadow","disabledStyle","iconStyle","MuiButton","disableElevation","contained","outlined","endIcon","startIcon","dashed","containedPrimary","containedSecondary","containedError","containedSuccess","containedInfo","containedWarning","outlinedPrimary","outlinedSecondary","outlinedError","outlinedSuccess","outlinedInfo","outlinedWarning","textPrimary","textSecondary","textError","textSuccess","textInfo","textWarning","sizeExtraSmall","MuiButtonBase","MuiCardContent","paddingBottom","MuiCheckbox","className","checkedIcon","CheckSquareFilled","indeterminateIcon","MinusSquareFilled","Checkbox","defaultLightChip","MuiChip","sizeLarge","combined","MuiDialog","MuiDialogContentText","DialogContentText","MuiDialogTitle","sizeMedium","sizeSmall","MuiInputBase","MuiInputLabel","InputLabel","MuiLinearProgress","bar","MuiLink","underline","MuiListItemButton","MuiListItemIcon","MuiLoadingButton","textShadow","MuiOutlinedInput","input","notchedOutline","inputSizeSmall","inputMultiline","colorSecondary","colorError","colorWarning","colorInfo","colorSuccess","OutlinedInput","MuiPagination","MuiPaginationItem","PaginationItem","MuiPopover","Popover","MuiRadio","colorPrimary","MuiSwitch","track","switchBase","margin","Switch","MuiTab","hoverStyle","MuiTableBody","TableBody","commonCell","right","MuiTableCell","head","footer","TableCell","MuiTableFooter","TableFooter","MuiTableHead","TableHead","MuiTablePagination","selectLabel","displayedRows","MuiTableRow","paddingRight","MuiTabs","MuiToggleButton","ToggleButton","MuiTooltip","MuiTreeItem","iconContainer","MuiTypography","gutterBottom","ThemeCustomization","themeTypography","themeCustomShadows","themeOptions","values","themes","components","componentsOverride","StyledEngineProvider","injectFirst","ThemeProvider","CssBaseline","Locales","messages","setMessages","locale","loadLocaleData","defaultLocale","RTLLayout","cacheRtl","createCache","prepend","stylisPlugins","rtlPlugin","ScrollTop","scrollTo","behavior","animation","SlideLeft","SlideUp","SlideRight","SlideDown","Snackbar","TransitionComponent","CloseOutlined","App","ReactDOM","render"],"mappings":"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","file":"static/js/main.6be27d92.chunk.js","sourcesContent":["// material-ui\r\nimport { alpha, styled } from '@mui/material/styles';\r\nimport { Box, Theme } from '@mui/material';\r\n\r\n// third-party\r\nimport SimpleBar, { Props } from 'simplebar-react';\r\nimport { BrowserView, MobileView } from 'react-device-detect';\r\nimport { MUIStyledCommonProps } from '@mui/system';\r\n\r\n// root style\r\nconst RootStyle = styled(BrowserView)({\r\n flexGrow: 1,\r\n height: '100%',\r\n overflow: 'hidden'\r\n});\r\n\r\n// scroll bar wrapper\r\nconst SimpleBarStyle = styled(SimpleBar)(({ theme }) => ({\r\n maxHeight: '100%',\r\n '& .simplebar-scrollbar': {\r\n '&:before': {\r\n backgroundColor: alpha(theme.palette.grey[500], 0.48)\r\n },\r\n '&.simplebar-visible:before': {\r\n opacity: 1\r\n }\r\n },\r\n '& .simplebar-track.simplebar-vertical': {\r\n width: 10\r\n },\r\n '& .simplebar-track.simplebar-horizontal .simplebar-scrollbar': {\r\n height: 6\r\n },\r\n '& .simplebar-mask': {\r\n zIndex: 'inherit'\r\n }\r\n}));\r\n\r\n// ==============================|| SIMPLE SCROLL BAR ||============================== //\r\n\r\nexport default function SimpleBarScroll({ children, sx, ...other }: MUIStyledCommonProps & Props) {\r\n return (\r\n <>\r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n );\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// ==============================|| CUSTOM FUNCTION - COLOR SHADOWS ||============================== //\r\n\r\nconst getShadow = (theme: Theme, shadow: string) => {\r\n switch (shadow) {\r\n case 'secondary':\r\n return theme.customShadows.secondary;\r\n case 'error':\r\n return theme.customShadows.error;\r\n case 'warning':\r\n return theme.customShadows.warning;\r\n case 'info':\r\n return theme.customShadows.info;\r\n case 'success':\r\n return theme.customShadows.success;\r\n case 'primaryButton':\r\n return theme.customShadows.primaryButton;\r\n case 'secondaryButton':\r\n return theme.customShadows.secondaryButton;\r\n case 'errorButton':\r\n return theme.customShadows.errorButton;\r\n case 'warningButton':\r\n return theme.customShadows.warningButton;\r\n case 'infoButton':\r\n return theme.customShadows.infoButton;\r\n case 'successButton':\r\n return theme.customShadows.successButton;\r\n default:\r\n return theme.customShadows.primary;\r\n }\r\n};\r\n\r\nexport default getShadow;\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\n// types\r\nimport { SnackbarProps } from \"types/snackbar\";\r\n\r\nconst initialState: SnackbarProps = {\r\n action: false,\r\n open: false,\r\n autoHideDuration: 6000,\r\n message: \"Note archived\",\r\n anchorOrigin: {\r\n vertical: \"bottom\",\r\n horizontal: \"right\"\r\n },\r\n variant: \"default\",\r\n alert: {\r\n color: \"primary\",\r\n variant: \"filled\"\r\n },\r\n transition: \"Fade\",\r\n close: true,\r\n actionButton: false\r\n};\r\n\r\n// ==============================|| SLICE - SNACKBAR ||============================== //\r\n\r\nconst snackbar = createSlice({\r\n name: \"snackbar\",\r\n initialState,\r\n reducers: {\r\n openSnackbar(state, action) {\r\n const { open, message, anchorOrigin, variant, alert, transition, close, actionButton, autoHideDuration } =\r\n action.payload;\r\n\r\n state.autoHideDuration = autoHideDuration | initialState.autoHideDuration;\r\n state.action = !state.action;\r\n state.open = open || initialState.open;\r\n state.message = message || initialState.message;\r\n state.anchorOrigin = anchorOrigin || initialState.anchorOrigin;\r\n state.variant = variant || initialState.variant;\r\n state.alert = {\r\n color: alert?.color || initialState.alert.color,\r\n variant: alert?.variant || initialState.alert.variant\r\n };\r\n state.transition = transition || initialState.transition;\r\n state.close = close === false ? close : initialState.close;\r\n state.actionButton = actionButton || initialState.actionButton;\r\n },\r\n\r\n closeSnackbar(state) {\r\n state.open = false;\r\n }\r\n }\r\n});\r\n\r\nexport default snackbar.reducer;\r\n\r\nexport const { closeSnackbar, openSnackbar } = snackbar.actions;\r\n","// material-ui\r\nimport { styled } from '@mui/material/styles';\r\nimport LinearProgress, { LinearProgressProps } from '@mui/material/LinearProgress';\r\n\r\n// loader style\r\nconst LoaderWrapper = styled('div')(({ theme }) => ({\r\n position: 'fixed',\r\n top: 0,\r\n left: 0,\r\n zIndex: 2001,\r\n width: '100%',\r\n '& > * + *': {\r\n marginTop: theme.spacing(2)\r\n }\r\n}));\r\n\r\n// ==============================|| Loader ||============================== //\r\n\r\nexport interface LoaderProps extends LinearProgressProps {}\r\n\r\nconst Loader = () => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default Loader;\r\n","// action - account reducer\r\nexport const LOGIN = '@auth/LOGIN';\r\nexport const LOGOUT = '@auth/LOGOUT';\r\n","// action - state management\r\nimport { LOGIN, LOGOUT } from './actions';\r\n\r\n// types\r\nimport { AuthProps, AuthActionProps } from 'types/auth';\r\n\r\n// initial state\r\nexport const initialState: AuthProps = {\r\n isLoggedIn: false,\r\n isInitialized: false,\r\n user: null\r\n};\r\n\r\n// ==============================|| AUTH REDUCER ||============================== //\r\n\r\nconst auth = (state = initialState, action: AuthActionProps) => {\r\n switch (action.type) {\r\n case LOGIN: {\r\n const { user } = action.payload!;\r\n return {\r\n ...state,\r\n isLoggedIn: true,\r\n isInitialized: true,\r\n user\r\n };\r\n }\r\n case LOGOUT: {\r\n return {\r\n ...state,\r\n isInitialized: true,\r\n isLoggedIn: false,\r\n user: null\r\n };\r\n }\r\n default: {\r\n return { ...state };\r\n }\r\n }\r\n};\r\n\r\nexport default auth;\r\n","import axios from 'axios';\r\n\r\nconst axiosServices = axios.create();\r\n\r\n// ==============================|| AXIOS - FOR MOCK SERVICES ||============================== //\r\n\r\naxiosServices.interceptors.response.use(\r\n (response) => response,\r\n (error) => Promise.reject((error.response && error.response.data) || 'Wrong Services')\r\n);\r\n\r\nexport default axiosServices;\r\n","import axios from 'axios';\r\nimport { IdentityServerAuthRequest } from 'types/auth';\r\n\r\nexport const authenticateUser = async (request: IdentityServerAuthRequest): Promise => {\r\n const authenticationUrl = `${process.env.REACT_APP_IDMS_AUTHENTICATION_URL}/Account/token`;\r\n\r\n return await axios.post(`${authenticationUrl}`, request);\r\n};\r\n\r\nexport const refreshTokens = async (refreshToken: string): Promise => {\r\n const authenticationUrl = `${process.env.REACT_APP_IDMS_AUTHENTICATION_URL}/Account/refreshtoken`;\r\n const secret = process.env.REACT_APP_IDMS_CLIENT_SC || '';\r\n const request = {\r\n RefreshToken: refreshToken,\r\n ClientId: 'dealerPortal',\r\n ClientSecret: secret\r\n };\r\n\r\n console.log('🔄');\r\n\r\n return await axios.post(`${authenticationUrl}`, request);\r\n};\r\n","import React, { createContext, useEffect, useReducer } from 'react';\r\n\r\n// third-party\r\nimport jwtDecode from 'jwt-decode';\r\n\r\n// reducer - state management\r\nimport { LOGIN, LOGOUT } from 'store/reducers/actions';\r\nimport authReducer from 'store/reducers/auth';\r\n\r\n// project import\r\nimport Loader from 'components/Loader';\r\nimport axios from 'utils/axios';\r\nimport { KeyedObject } from 'types/root';\r\nimport { AuthProps, UserContextType, IdentityServerAuthRequest, JwtTokenModel, UserProfile, JwtUserProfile } from 'types/auth';\r\nimport { authenticateUser, refreshTokens } from 'components/authentication/api/authentication-api';\r\nimport PriceListSubscriptionAPI from 'api/pricelist-subscription';\r\nimport { Everest } from 'common/constants';\r\n\r\n// constant\r\nconst initialState: AuthProps = {\r\n isLoggedIn: false,\r\n isInitialized: false,\r\n user: null\r\n};\r\n\r\n// =============================\r\n// Verify Token\r\n// =============================\r\nconst verifyToken: (st: string) => boolean = (serviceToken) => {\r\n if (!serviceToken) {\r\n return false;\r\n }\r\n\r\n const decoded: KeyedObject = jwtDecode(serviceToken);\r\n /**\r\n * Property 'exp' does not exist on type '(token: string, options?: JwtDecodeOptions | undefined) => T'.\r\n */\r\n return decoded.exp > Date.now() / 1000;\r\n};\r\n\r\n// =============================\r\n// Set Session\r\n// =============================\r\nconst setSession = (accessToken?: string | null, refreshToken?: string | null) => {\r\n if (refreshToken) {\r\n localStorage.setItem('dealer-portal-refreshToken', refreshToken);\r\n }\r\n if (accessToken) {\r\n localStorage.setItem('dealer-portal-accessToken', accessToken);\r\n axios.defaults.headers.common.Authorization = `Bearer ${accessToken}`;\r\n } else {\r\n localStorage.removeItem('dealer-portal-showHelp');\r\n localStorage.removeItem('dealer-portal-accessToken');\r\n localStorage.removeItem('dealer-portal-refreshToken');\r\n delete axios.defaults.headers.common.Authorization;\r\n }\r\n};\r\n\r\n// ==============================|| USER CONTEXT & PROVIDER ||============================== //\r\n\r\nconst UserContext = createContext(null);\r\n\r\nconst LoadUser = async (\r\n accessToken: string,\r\n calledFrom: string,\r\n dispatch: (arg0: { type: string; payload: { isLoggedIn: boolean; user: UserProfile } }) => void\r\n): Promise => {\r\n if (accessToken === '') throw new Error('Invalid Access Token');\r\n\r\n const decodedToken: JwtTokenModel = jwtDecode(accessToken);\r\n\r\n let caseFixProfile = decodedToken.profile.replace('\"DmsDealerId\"', '\"dmsDealerId\"');\r\n caseFixProfile = caseFixProfile.replace('\"DealerId\"', '\"dealerId\"');\r\n caseFixProfile = caseFixProfile.replace('\"UserId\"', '\"userId\"');\r\n\r\n decodedToken.profile = caseFixProfile;\r\n\r\n const decodedProfile: JwtUserProfile = JSON.parse(decodedToken.profile);\r\n const user: UserProfile = {\r\n name: decodedToken.name,\r\n dealerId: decodedProfile.dealerId,\r\n dmsDealerId: decodedProfile.dmsDealerId,\r\n userId: decodedProfile.userId,\r\n givenName: decodedToken.given_name,\r\n dmsType: 'unknown',\r\n dmsCompany: 'unknown',\r\n isPriceListSubscriptionApproved: false,\r\n priceListSubscriptionId: 0,\r\n inGracePeriod: false,\r\n gracePeriodDays: 0,\r\n isLegacyDealer: false,\r\n newDealerStatus: 'C', // NewDealer\r\n showPortalView2024: false\r\n };\r\n\r\n console.log('LU');\r\n\r\n try {\r\n // Load dealer information\r\n await PriceListSubscriptionAPI.getSubscriptionClientByDealerId(decodedProfile.dealerId).then((response) => {\r\n if (!!!response)\r\n throw new Error(`No response from API (loaduser)[${decodedProfile.dealerId}]`);\r\n if (!!!response.result) {\r\n if (!!!response.errorMessage)\r\n throw new Error(\"Invalid Login [99]\");\r\n if (response.errorMessage.toLowerCase().includes('dealer not found'))\r\n throw new Error(`Invalid Login [00] - Dealer Not Found [${decodedProfile.dealerId}]`);\r\n else if (response.errorMessage.toLowerCase().includes('subscription not found'))\r\n throw new Error(`Invalid Login [05] - Subscription Not Found`);\r\n else if (response.errorMessage.toLowerCase().includes('invalid dealer id'))\r\n throw new Error(`Invalid Login [04] [${decodedProfile.dealerId}]`);\r\n else\r\n throw new Error(`No result in response from API (loaduser)[${decodedProfile.dealerId}]`);\r\n }\r\n if (response.statusCode === 'Successful') {\r\n if (response.result.priceListSubscriptionId <= 0)\r\n throw new Error(\"Invalid Login [01]\");\r\n else if (!!!response.result.isActive)\r\n throw new Error(\"Invalid Login [02]\");\r\n else if (!!!response.result.isSubscriptionActive)\r\n throw new Error(\"Invalid Login [03]\");\r\n\r\n console.log('✅', response.result.dealerId, '|', response.result.subscriptionId);\r\n\r\n user.dmsType = response.result.dmsType;\r\n user.dmsCompany = response.result.dmsCompany;\r\n user.address = response.result.address;\r\n user.city = response.result.city;\r\n user.email = response.result.email;\r\n user.state = response.result.stateOrProvince;\r\n user.companyName = response.result.subscriptionClientName;\r\n user.priceListSubscriptionId = response.result.subscriptionId;\r\n user.isPriceListSubscriptionApproved = response.result.isApproved ?? false;\r\n user.isLegacyDealer = response.result.isLegacyDealer ?? false;\r\n user.inGracePeriod = response.result.inGracePeriod ?? false;\r\n user.gracePeriodDays = response.result.gracePeriodDays ?? 0;\r\n user.newDealerStatus = response.result.newDealerStatus ?? 'C'; // NewDealer\r\n\r\n // ----------------------------------------------------------\r\n // Temporary config setting containing a date that when\r\n // the current day passes that date, the system hides\r\n // all the code for handling pricing that was\r\n // removed\r\n // ---------------------------------------------------------\r\n const currentDate: Date = new Date();\r\n const newPortalDateString: string = process.env.REACT_APP_PORTALVIEW2024 ?? '2024-01-01';\r\n const newPortalDate: Date = new Date(newPortalDateString);\r\n\r\n user.showPortalView2024 = (currentDate > newPortalDate);\r\n\r\n PriceListSubscriptionAPI.addApplicationLogEntry(`Login: [${user.dmsCompany}] [${user.dealerId}] [${user.companyName}]`, 'Information', user.name ?? 'Unknown');\r\n\r\n dispatch({\r\n type: LOGIN,\r\n payload: {\r\n isLoggedIn: true,\r\n user\r\n }\r\n });\r\n return;\r\n } else\r\n console.log('❌', response.result);\r\n }\r\n )\r\n .catch((reason) => {\r\n console.log('❌', reason);\r\n throw new Error(reason);\r\n })\r\n }\r\n catch (err) {\r\n console.log(`LoadUser Failed [LU]. ${err}`);\r\n setSession(null, null);\r\n dispatch({ type: LOGOUT, payload: { isLoggedIn: false, user } });\r\n throw new Error('Unable to login at this time [LU]');\r\n }\r\n};\r\n\r\nexport const JWTProvider = ({ children }: { children: React.ReactElement }) => {\r\n const [state, dispatch] = useReducer(authReducer, initialState);\r\n // =============================\r\n // useEffect for JWTProvider\r\n // =============================\r\n useEffect(() => {\r\n const init = async () => {\r\n try {\r\n console.log('🔓🔓🔓 [UC->UE]');\r\n let accessToken: string = window.localStorage.getItem('dealer-portal-accessToken') ?? '';\r\n let refreshToken = window.localStorage.getItem('dealer-portal-refreshToken');\r\n\r\n if (!!!verifyToken(accessToken))\r\n console.log(' VT -> 💥');\r\n\r\n if (accessToken && (accessToken !== '') && verifyToken(accessToken)) { // checks to see if token is valid and not expired \r\n LoadUser(accessToken, 'useEffect init, token verified', dispatch);\r\n } else if (refreshToken) {\r\n console.log('🔄🔄🔄');\r\n refreshTokens(refreshToken)\r\n .then((response) => {\r\n console.log('✅✅✅');\r\n const { access_token, refresh_token /* , scope */ } = response.data;\r\n setSession(access_token, refresh_token);\r\n accessToken = access_token ?? '';\r\n refreshToken = refresh_token;\r\n LoadUser(accessToken, 'useEffect init, refreshtoken', dispatch);\r\n })\r\n .catch((reason) => {\r\n console.log('🛑🛑🛑', reason);\r\n logout();\r\n })\r\n } else {\r\n console.log('🛑🛑🛑 NT');\r\n logout();\r\n }\r\n } catch (err) {\r\n console.log(`🛑🛑🛑 Unable to login at this time. [JWT] ${err}`);\r\n logout();\r\n }\r\n };\r\n\r\n init();\r\n }, []);\r\n\r\n // ============================================================== //\r\n // Login\r\n // ============================================================== //\r\n const login = async (dmsDealerId: number, userName: string, password: string, token: string) => {\r\n const secret = process.env.REACT_APP_IDMS_CLIENT_SC || '';\r\n const request: IdentityServerAuthRequest = {\r\n DmsDealerId: dmsDealerId,\r\n Username: userName,\r\n Password: password,\r\n ProductId: process.env.REACT_APP_IDMS_PRODUCT_ID || '',\r\n ClientId: 'dealerPortal',\r\n ClientSecret: secret\r\n };\r\n\r\n let accessToken: string;\r\n\r\n // todo: these two sections are identical. Waiting for changes to idms.\r\n\r\n if (token && token !== '') {\r\n try {\r\n const response = await authenticateUser(request);\r\n const { access_token, refresh_token /* , scope */ } = response.data;\r\n\r\n setSession(access_token, refresh_token);\r\n\r\n accessToken = access_token ?? '';\r\n return LoadUser(accessToken, 'login, token exists', dispatch);\r\n } catch {\r\n console.log('🗑');\r\n localStorage.clear();\r\n throw new Error('Invalid Login');\r\n }\r\n } else {\r\n try {\r\n await authenticateUser(request).then((response) => {\r\n const { access_token, refresh_token /* , scope */ } = response.data;\r\n setSession(access_token, refresh_token);\r\n\r\n accessToken = access_token ?? '';\r\n return LoadUser(accessToken, 'login, new token', dispatch);\r\n });\r\n } catch {\r\n console.log('🗑');\r\n localStorage.clear();\r\n throw new Error('Invalid Login');\r\n }\r\n }\r\n };\r\n\r\n const logout = () => {\r\n setSession(null, null);\r\n\r\n dispatch({ type: LOGOUT });\r\n };\r\n\r\n const updateProfile = () => {\r\n /* console.log('updateProfile'); */\r\n };\r\n\r\n if (state.isInitialized !== undefined && !state.isInitialized) {\r\n return ;\r\n }\r\n\r\n return {children};\r\n};\r\n\r\nexport default UserContext;\r\n","import { createContext, ReactNode } from 'react';\r\n\r\n// project import\r\nimport config from 'config';\r\nimport useLocalStorage from 'hooks/useLocalStorage';\r\n\r\n// types\r\nimport { CustomizationProps, FontFamily, I18n, PresetColor, ThemeDirection, ThemeMode } from 'types/config';\r\n\r\n// initial state\r\nconst initialState: CustomizationProps = {\r\n ...config,\r\n onChangeContainer: () => { },\r\n onChangeLocalization: (lang: I18n) => { },\r\n onChangeMode: (mode: ThemeMode) => { },\r\n onChangePresetColor: (theme: PresetColor) => { },\r\n onChangeDirection: (direction: ThemeDirection) => { },\r\n onChangeMiniDrawer: (miniDrawer: boolean) => { },\r\n onChangeFontFamily: (fontFamily: FontFamily) => { },\r\n};\r\n\r\n// ==============================|| CONFIG CONTEXT & PROVIDER ||============================== //\r\n\r\nconst ConfigContext = createContext(initialState);\r\n\r\ntype ConfigProviderProps = {\r\n children: ReactNode;\r\n};\r\n\r\nfunction ConfigProvider({ children }: ConfigProviderProps) {\r\n const [config, setConfig] = useLocalStorage('dealer-portal-config', initialState);\r\n\r\n const onChangeContainer = () => {\r\n setConfig({\r\n ...config,\r\n container: !config.container\r\n });\r\n };\r\n\r\n const onChangeLocalization = (lang: I18n) => {\r\n setConfig({\r\n ...config,\r\n i18n: lang\r\n });\r\n };\r\n\r\n const onChangeMode = (mode: ThemeMode) => {\r\n setConfig({\r\n ...config,\r\n mode\r\n });\r\n };\r\n\r\n const onChangePresetColor = (theme: PresetColor) => {\r\n setConfig({\r\n ...config,\r\n presetColor: theme\r\n });\r\n };\r\n\r\n const onChangeDirection = (direction: ThemeDirection) => {\r\n setConfig({\r\n ...config,\r\n themeDirection: direction\r\n });\r\n };\r\n\r\n const onChangeMiniDrawer = (miniDrawer: boolean) => {\r\n setConfig({\r\n ...config,\r\n miniDrawer\r\n });\r\n };\r\n\r\n const onChangeFontFamily = (fontFamily: FontFamily) => {\r\n setConfig({\r\n ...config,\r\n fontFamily\r\n });\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport { ConfigProvider, ConfigContext };\r\n","import { useState, useEffect } from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function useLocalStorage(key: string, defaultValue: ValueType) {\r\n const [value, setValue] = useState(() => {\r\n const storedValue = typeof window !== 'undefined' ? localStorage.getItem(key) : null;\r\n return storedValue === null ? defaultValue : JSON.parse(storedValue);\r\n });\r\n\r\n useEffect(() => {\r\n const listener = (e: StorageEvent) => {\r\n if (typeof window !== 'undefined' && e.storageArea === localStorage && e.key === key) {\r\n setValue(e.newValue ? JSON.parse(e.newValue) : 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: ValueType) => {\r\n setValue((currentValue: any) => {\r\n const result = typeof newValue === 'function' ? newValue(currentValue) : newValue;\r\n if (typeof window !== 'undefined') 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","import axios from \"axios\";\r\nimport {\r\n PriceListSubscriptionSearchRequest,\r\n PriceListSubscriptionSearchResponse,\r\n PriceListManufacturersResponse,\r\n PriceListDistributorsResponse,\r\n PriceListSubscription,\r\n PriceListSubscriptionResponse,\r\n PriceListResponse,\r\n SubscriptionClientResponse,\r\n PriceListSubscriptionCartResponse,\r\n PriceListSubscriptionDetail,\r\n SubscriptionResponse,\r\n PriceListSubscriptionCart\r\n} from \"types/subscription\";\r\nimport { getFormattedCurrentDateTime } from \"utils/format-date\";\r\n\r\nconst PL2Url = process.env.REACT_APP_PL20API_URL || \"\";\r\nconst PL2Code = process.env.REACT_APP_PL20API_CODE || \"\";\r\n\r\n// --------------------------------------------------------------------------------------------- //\r\n\r\nexport const PriceListSubscriptionAPI = {\r\n // ------------------------------------------------------------\r\n // AddApplicationLogEntry (temporary)\r\n // ------------------------------------------------------------\r\n addApplicationLogEntry: async (logEntry: string, logLevel: string, user: string) => {\r\n try {\r\n let url = \"\";\r\n\r\n url = `${PL2Url}/applicationlog${PL2Code}`;\r\n\r\n const request = {\r\n LogMessage: logEntry,\r\n Level: logLevel,\r\n LogDate: getFormattedCurrentDateTime(),\r\n LoggedBy: user\r\n };\r\n axios.post(url, request);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n },\r\n // ------------------------------------------------------------\r\n // GetPriceListSubscriptionClientByDealerId\r\n // ------------------------------------------------------------\r\n getSubscriptionClientByDealerId: async (dealerId: number) => {\r\n const url = `${PL2Url}/PriceListSubscriptionClient/${dealerId}${PL2Code}`;\r\n const { data } = await axios.get(url);\r\n return data;\r\n },\r\n // ------------------------------------------------------------\r\n // ActivateSubscription\r\n // This happens only in pre-activation phase.\r\n // ------------------------------------------------------------\r\n activateSubscription: async (subscriptionId: number, activatedBy: string) => {\r\n const url = `${PL2Url}/activate/${subscriptionId}/${activatedBy}${PL2Code}`;\r\n const { data } = await axios.put(url, {});\r\n return data;\r\n },\r\n // ------------------------------------------------------------\r\n // PriceListCheckOut\r\n // ------------------------------------------------------------\r\n priceListCheckOut: async (subscriptionId: number, checkOutUser: string) => {\r\n const url = `${PL2Url}/pricelistsubscriptioncart/pricelistcheckout/${subscriptionId}/${checkOutUser}${PL2Code}`;\r\n const { data } = await axios.post(url, {});\r\n return data;\r\n },\r\n // ------------------------------------------------------------\r\n // GetPriceListSubscription\r\n // ------------------------------------------------------------\r\n getPriceListSubscription: async (priceListSubscriptionId: number) => {\r\n const url = `${PL2Url}/PriceListSubscription/${priceListSubscriptionId}${PL2Code}`;\r\n const { data } = await axios.get(url, {});\r\n return data;\r\n },\r\n // ------------------------------------------------------------\r\n // GetPriceListSubscriptions\r\n // ------------------------------------------------------------\r\n getPriceListSubscriptions: async (\r\n dmsCompany: string,\r\n dealerId: number,\r\n searchString: string,\r\n sortField: string,\r\n ascending: boolean,\r\n activeStatus: string,\r\n updateType: string,\r\n manufacturerList: number[],\r\n distributorList: number[],\r\n frequencyId: number,\r\n pageNumber: number,\r\n pageSize: number\r\n ) => {\r\n const url = `${PL2Url}/PriceListSubscription/Search${PL2Code}`;\r\n\r\n const request: PriceListSubscriptionSearchRequest = {\r\n searchString: searchString,\r\n dmsCompany: dmsCompany,\r\n dealerId: dealerId,\r\n sortField: sortField,\r\n ascending: ascending,\r\n activeStatus: activeStatus,\r\n updateType: updateType,\r\n manufacturers: manufacturerList,\r\n distributors: distributorList,\r\n frequencyId: frequencyId,\r\n showOnlyUpdateAvailable: false,\r\n priceListKey: \"00000000-0000-0000-0000-000000000000\",\r\n pageNumber: pageNumber,\r\n pageSize: pageSize\r\n };\r\n const { data } = await axios.post(url, request);\r\n return data;\r\n },\r\n // ------------------------------------------------------------\r\n // GetPriceListManufacturers\r\n // ------------------------------------------------------------\r\n getPriceListManufacturers: async (searchString: string): Promise => {\r\n const url = `${PL2Url}/PriceListManufacturers/${searchString}${PL2Code}`;\r\n const { data } = await axios.get(url);\r\n return data;\r\n },\r\n // ------------------------------------------------------------\r\n // GetPriceListManufacturersBySubscriptionId\r\n // ------------------------------------------------------------\r\n getPriceListManufacturersBySubscription: async (subscriptionId: number): Promise => {\r\n const url = `${PL2Url}/PriceListManufacturers/Subscription/${subscriptionId}${PL2Code}`;\r\n const { data } = await axios.get(url);\r\n return data;\r\n },\r\n // ------------------------------------------------------------\r\n // GetPriceListTopManufacturers\r\n // ------------------------------------------------------------\r\n getPriceListTopManufacturers: async (\r\n dealerId: number,\r\n salesMinimum: number\r\n ): Promise => {\r\n const url = `${PL2Url}/PriceListManufacturers/TopManufacturers/${dealerId}/${salesMinimum}${PL2Code}`;\r\n const { data } = await axios.get(url);\r\n return data;\r\n },\r\n // ------------------------------------------------------------\r\n // GetPriceListDistributors\r\n // ------------------------------------------------------------\r\n getPriceListDistributors: async (searchString: string): Promise => {\r\n const url = `${PL2Url}/PriceListDistributors/${searchString}${PL2Code}`;\r\n const { data } = await axios.get(url);\r\n return data;\r\n },\r\n // ------------------------------------------------------------\r\n // GetPriceListDistributorsBySubscriptionId\r\n // ------------------------------------------------------------\r\n getPriceListDistributorsBySubscription: async (subscriptionId: number): Promise => {\r\n const url = `${PL2Url}/PriceListDistributors/Subscription/${subscriptionId}${PL2Code}`;\r\n const { data } = await axios.get(url);\r\n return data;\r\n },\r\n // -------------------------------------------------------------\r\n // UpdatePriceListSubscription\r\n // -------------------------------------------------------------\r\n updatePriceListSubscription: async (\r\n priceListSubscription: PriceListSubscription\r\n ): Promise => {\r\n const url = `${PL2Url}/pricelistsubscription${PL2Code}`;\r\n const { data } = await axios.put(url, priceListSubscription);\r\n return data;\r\n },\r\n // -------------------------------------------------------------\r\n // GetAvailablePriceLists\r\n // -------------------------------------------------------------\r\n getAvailablePriceLists: async (\r\n dmsCompany: string,\r\n dealerid: number,\r\n manufacturers: number[],\r\n distributors: number[],\r\n searchString: string,\r\n sortField: string,\r\n ascending: boolean,\r\n pageNumber: number,\r\n pageSize: number\r\n ): Promise => {\r\n const url = `${PL2Url}/pricelist/available${PL2Code}`;\r\n\r\n const request = {\r\n DmsCompany: dmsCompany,\r\n Dealerid: dealerid,\r\n Manufacturers: manufacturers,\r\n distributors: distributors,\r\n SearchString: searchString,\r\n SortField: sortField,\r\n Ascending: ascending,\r\n PageNumber: pageNumber,\r\n PageSize: pageSize\r\n };\r\n const { data } = await axios.post(url, request);\r\n return data;\r\n },\r\n // -------------------------------------------------------------\r\n // AddPriceListSubscriptions - PRE-ACTIVATION\r\n // Adds price list keys directly to the pricelistsubsciption table\r\n // -------------------------------------------------------------\r\n addPriceListSubscriptions: async (details: PriceListSubscriptionDetail[]): Promise => {\r\n const url = `${PL2Url}/pricelistsubscriptions${PL2Code}`;\r\n const { data } = await axios.post(url, details);\r\n return data;\r\n },\r\n // -------------------------------------------------------------\r\n // NewDealerSubmission\r\n // The dealer has added subscirptions and submitted\r\n // This api will set the new dealer status to pending\r\n // -------------------------------------------------------------\r\n newDealerSubmission: async (subscriptionId: number, submittedBy: string): Promise => {\r\n const url = `${PL2Url}/subscription/newdealersubmission${PL2Code}`;\r\n const request = {\r\n subscriptionId: subscriptionId,\r\n submittedBy: submittedBy\r\n };\r\n const { data } = await axios.post(url, request);\r\n return data;\r\n },\r\n // -------------------------------------------------------------\r\n // AddPriceListSubscriptionsToCart - POST ACTIVATION\r\n // Adds price list keys to the cart\r\n // -------------------------------------------------------------\r\n addPriceListSubscriptionsToCart: async (\r\n details: PriceListSubscriptionDetail[]\r\n ): Promise => {\r\n const url = `${PL2Url}/pricelistsubscriptioncart/items${PL2Code}`;\r\n const { data } = await axios.post(url, details);\r\n return data;\r\n },\r\n // -------------------------------------------------------------\r\n // UpdatePriceListSubscriptionCart\r\n // Updates a cart item\r\n // -------------------------------------------------------------\r\n updatePriceListSubscriptionCart: async (\r\n cartItem: PriceListSubscriptionCart\r\n ): Promise => {\r\n const url = `${PL2Url}/pricelistsubscriptioncart${PL2Code}`;\r\n const { data } = await axios.put(url, cartItem);\r\n return data;\r\n },\r\n // ------------------------------------------------------------\r\n // GetPriceList\r\n // This is used when subscribing to a price list\r\n // ------------------------------------------------------------\r\n getPriceList: async (priceListKey: string): Promise => {\r\n const url = `${PL2Url}/pricelistdetail/${priceListKey}${PL2Code}`;\r\n const { data } = await axios.get(url);\r\n return data;\r\n },\r\n // -------------------------------------------------------------\r\n // GetPriceListSubscriptionCart\r\n // -------------------------------------------------------------\r\n getPriceListSubscriptionCart: async (priceListSubscriptionId: number): Promise => {\r\n const url = `${PL2Url}/pricelistsubscriptioncart/${priceListSubscriptionId}${PL2Code}`;\r\n const { data } = await axios.get(url);\r\n return data;\r\n },\r\n // -------------------------------------------------------------\r\n // UnsubscribePriceListSubscription\r\n // -------------------------------------------------------------\r\n unsubscribePriceListSubscription: async (\r\n subscriptionId: number,\r\n priceListKey: string,\r\n userName: string\r\n ): Promise => {\r\n const url = `${PL2Url}/PriceListSubscription/PreActivation/Unsubscribe/${subscriptionId}/${priceListKey}/${userName}${PL2Code}`;\r\n const { data } = await axios.post(url, {});\r\n return data;\r\n },\r\n // -------------------------------------------------------------\r\n // DeletePriceListSubscriptionCartById\r\n // -------------------------------------------------------------\r\n deletePriceListSubscriptionCartItemById: async (\r\n priceListSubscriptionCartId: number\r\n ): Promise => {\r\n const url = `${PL2Url}/pricelistsubscriptioncart/${priceListSubscriptionCartId}${PL2Code}`;\r\n const { data } = await axios.delete(url);\r\n return data;\r\n },\r\n // -------------------------------------------------------------\r\n // DeletePriceListSubscriptionCartByPriceListKey\r\n // -------------------------------------------------------------\r\n deletePriceListSubscriptionCartItemByPriceListKey: async (\r\n subscriptionId: number,\r\n priceListKey: string\r\n ): Promise => {\r\n const url = `${PL2Url}/pricelistsubscriptioncart/${subscriptionId}/${priceListKey}${PL2Code}`;\r\n const { data } = await axios.delete(url);\r\n return data;\r\n },\r\n // -------------------------------------------------------------\r\n // Pre-ActivationLoadPriceListSubscriptionCart\r\n // -------------------------------------------------------------\r\n preActivationLoadPriceListSubscriptionCart: async (\r\n priceListSubscriptionId: number,\r\n createdBy: string\r\n ): Promise => {\r\n const url = `${PL2Url}/pricelistsubscriptioncart/preactivation/loadcart${PL2Code}`;\r\n const request = {\r\n PriceListSubscriptionId: priceListSubscriptionId,\r\n CreatedBy: createdBy,\r\n CreatedOn: getFormattedCurrentDateTime()\r\n };\r\n const { data } = await axios.post(url, request);\r\n return data;\r\n }\r\n};\r\n\r\nexport default PriceListSubscriptionAPI;\r\n","// import moment from 'moment';\r\n\r\nexport function getCurrentDate() {\r\n const today = new Date();\r\n const dd = String(today.getDate()).padStart(2, '0');\r\n const mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!\r\n const yyyy = today.getFullYear();\r\n\r\n return yyyy + '-' + mm + '-' + dd;\r\n}\r\n\r\nexport function getFormattedJsonDateTime(dateTimeStr: string | undefined) {\r\n if (dateTimeStr === undefined || dateTimeStr === '') {\r\n return undefined;\r\n }\r\n\r\n const dt = new Date(dateTimeStr);\r\n\r\n const year = dt.getFullYear().toString();\r\n const month = (1 + dt.getMonth()).toString().padStart(2, '0');\r\n const day = dt.getDate().toString().padStart(2, '0');\r\n\r\n const hours = dt.getHours().toString().padStart(2, '0');\r\n const minutes = dt.getMinutes().toString().padStart(2, '0');\r\n const seconds = dt.getSeconds().toString().padStart(2, '0');\r\n\r\n return year + '-' + month + '-' + day + 'T' + hours + ':' + minutes + ':' + seconds;\r\n}\r\n\r\nexport function getFormattedDateTime(dateTimeStr: string | undefined) {\r\n if (dateTimeStr === undefined || dateTimeStr === null || dateTimeStr === '') {\r\n return '';\r\n }\r\n\r\n const dt = new Date(dateTimeStr);\r\n\r\n const year = dt.getFullYear();\r\n const month = 1 + dt.getMonth();\r\n const day = dt.getDate().toString().padStart(2, '0');\r\n\r\n let hours = dt.getHours();\r\n let ampm = 'AM';\r\n if (hours > 11) ampm = 'PM';\r\n if (hours > 12) hours -= 12;\r\n\r\n const minutes = dt.getMinutes();\r\n const minutesStr = minutes < 10 ? '0' + minutes.toString() : minutes.toString();\r\n const seconds = dt.getSeconds();\r\n const secondsStr = seconds < 10 ? '0' + seconds.toString() : seconds.toString();\r\n\r\n return `${month}/${day}/${year} ${hours}:${minutesStr}:${secondsStr} ${ampm}`;\r\n}\r\n\r\nexport function getFormattedCurrentTime() {\r\n const d = new Date();\r\n let mn = '';\r\n const m = d.getMinutes();\r\n if (m < 10) {\r\n mn = '0' + m.toString();\r\n } else {\r\n mn = m.toString();\r\n }\r\n let sc = '';\r\n const s = d.getSeconds();\r\n if (s < 10) {\r\n sc = '0' + s.toString();\r\n } else {\r\n sc = s.toString();\r\n }\r\n\r\n let h = d.getHours();\r\n let ampm = 'am';\r\n if (h >= 12) {\r\n h -= 12;\r\n ampm = 'pm';\r\n }\r\n const hr = h.toString();\r\n\r\n return hr + ':' + mn + ':' + sc + ' ' + ampm;\r\n}\r\n\r\nexport function getFormattedCurrentDateTime() {\r\n const dt = new Date();\r\n return getFormattedJsonDateTime(dt.toString());\r\n}\r\n\r\nexport function getFormattedDate(dateStr: string | undefined) {\r\n if (dateStr === undefined || dateStr === '') {\r\n return undefined;\r\n }\r\n\r\n const d = new Date(dateStr);\r\n\r\n if (d.valueOf() === 0) return '';\r\n\r\n const year = d.getFullYear().toString();\r\n const month = (1 + d.getMonth()).toString().padStart(2, '0');\r\n const day = d.getDate().toString().padStart(2, '0');\r\n\r\n return year + '-' + month + '-' + day;\r\n}\r\n\r\nexport default function formatDate(dateString: string | undefined, prefix?: string) {\r\n if (dateString === undefined) return '';\r\n if (prefix === undefined) prefix = '';\r\n const d = new Date(dateString);\r\n if (d <= new Date('1-1-1980')) return '';\r\n return typeof d === 'object' ? prefix + d.toLocaleDateString() : '';\r\n}\r\n\r\nexport function dateToString(d: Date | undefined) {\r\n if (d === undefined) return '';\r\n return new Date(d).toLocaleDateString();\r\n}\r\n\r\nexport function dateStringToString(ds: string | undefined) {\r\n if (ds === undefined) return '';\r\n const dn = Date.parse(ds);\r\n\r\n return new Date(dn).toLocaleDateString();\r\n}\r\n\r\n// export function getConversationFormattedDate(latestDateTime: string): string {\r\n// if (latestDateTime === '') return '';\r\n// const currentDateTime = moment().local();\r\n// let timeStamp = '';\r\n// const diffHours = moment.duration(currentDateTime.diff(latestDateTime)).asHours();\r\n// if (diffHours <= 24) {\r\n// timeStamp = moment(latestDateTime).local().format('h:mm a');\r\n// } else {\r\n// timeStamp = moment(latestDateTime).local().format('M/D');\r\n// }\r\n// return timeStamp;\r\n// }\r\n","// Common Constants\r\n\r\nexport class Everest {\r\n static readonly DMS_IDEAL_STR: string = 'Ideal';\r\n static readonly DMS_CSYSTEMS_STR: string = 'c-Systems';\r\n static readonly DMS_CHARTER_STR: string = 'Charter';\r\n\r\n static readonly EmptyGuid = '00000000-0000-0000-0000-000000000000';\r\n\r\n static readonly EVEREST_API_STATUS_CODE_SUCCESS = 'Successful';\r\n static readonly EVEREST_API_STATUS_CODE_GENERAL_ERROR = 'GeneralError';\r\n static readonly EVEREST_API_STATUS_CODE_DUPLICATE_ERROR = 'DuplicateError';\r\n}\r\n\r\nexport class DataGridSettings {\r\n // DataGrid constants ----------------------------------------------------------\r\n static readonly Data_Grid_Row_Height: number = 35; // 28;\r\n static readonly Data_Grid_Header_Height: number = 50;\r\n static readonly Data_Grid_Header_Double_Height: number = 50;\r\n static readonly Data_Grid_Page_Size: number = 100;\r\n}\r\n","// third-party\r\nimport { combineReducers } from 'redux';\r\n\r\n// project import\r\nimport menu from './menu';\r\nimport snackbar from './snackbar';\r\n\r\n// ==============================|| COMBINE REDUCERS ||============================== //\r\n\r\nconst reducers = combineReducers({\r\n menu,\r\n snackbar\r\n});\r\n\r\nexport default reducers;\r\n","// third-party\r\nimport { configureStore } from '@reduxjs/toolkit';\r\nimport { useDispatch as useAppDispatch, useSelector as useAppSelector, TypedUseSelectorHook } from 'react-redux';\r\nimport { persistStore, FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER } from 'redux-persist';\r\n\r\n// project import\r\nimport reducers from './reducers';\r\n\r\n// ==============================|| REDUX TOOLKIT - MAIN STORE ||============================== //\r\n\r\nconst store = configureStore({\r\n reducer: reducers,\r\n middleware: (getDefaultMiddleware) =>\r\n getDefaultMiddleware({\r\n serializableCheck: {\r\n ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER]\r\n }\r\n })\r\n});\r\n\r\nexport type RootState = ReturnType;\r\n\r\nexport type AppDispatch = typeof store.dispatch;\r\n\r\nconst persister = persistStore(store);\r\n\r\nconst { dispatch } = store;\r\n\r\nconst useDispatch = () => useAppDispatch();\r\nconst useSelector: TypedUseSelectorHook = useAppSelector;\r\n\r\nexport { store, dispatch, persister, useSelector, useDispatch };\r\n","// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\n// third-party\r\nimport SyntaxHighlighter from 'react-syntax-highlighter';\r\nimport { a11yDark, a11yLight } from 'react-syntax-highlighter/dist/esm/styles/hljs';\r\n\r\n// ==============================|| CODE HIGHLIGHTER ||============================== //\r\n\r\nexport default function SyntaxHighlight({ children, ...others }: { children: string }) {\r\n const theme = useTheme();\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n","import { useState } from 'react';\r\n\r\n// material-ui\r\nimport { Box, CardActions, Collapse, Divider, Tooltip } from '@mui/material';\r\n\r\n// third-party\r\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\r\n\r\n// project import\r\nimport SyntaxHighlight from 'utils/SyntaxHighlight';\r\nimport IconButton from '../@extended/IconButton';\r\n\r\n// assets\r\nimport { CodeOutlined, CopyOutlined } from '@ant-design/icons';\r\n\r\n// ==============================|| CLIPBOARD & HIGHLIGHTER ||============================== //\r\n\r\ninterface Props {\r\n codeString: string;\r\n codeHighlight: boolean;\r\n}\r\n\r\nconst Highlighter = ({ codeString, codeHighlight }: Props) => {\r\n const [highlight, setHighlight] = useState(codeHighlight);\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 setHighlight(!highlight)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {highlight && {codeString}}\r\n \r\n );\r\n};\r\n\r\nexport default Highlighter;\r\n","import { forwardRef, CSSProperties, ReactNode, Ref } from 'react';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Card, CardContent, CardHeader, Divider, Typography, CardProps, CardHeaderProps, CardContentProps } from '@mui/material';\r\n\r\n// project import\r\nimport Highlighter from './third-party/Highlighter';\r\n\r\n// types\r\nimport { KeyedObject } from 'types/root';\r\n\r\n// header style\r\nconst headerSX = {\r\n p: 2.5,\r\n '& .MuiCardHeader-action': { m: '0px auto', alignSelf: 'center' }\r\n};\r\n\r\n// ==============================|| CUSTOM - MAIN CARD ||============================== //\r\n\r\nexport interface MainCardProps extends KeyedObject {\r\n border?: boolean;\r\n boxShadow?: boolean;\r\n children: ReactNode | string;\r\n subheader?: ReactNode | string;\r\n style?: CSSProperties;\r\n content?: boolean;\r\n contentSX?: CardContentProps['sx'];\r\n darkTitle?: boolean;\r\n divider?: boolean;\r\n sx?: CardProps['sx'];\r\n secondary?: CardHeaderProps['action'];\r\n shadow?: string;\r\n elevation?: number;\r\n title?: ReactNode | string;\r\n codeHighlight?: boolean;\r\n codeString?: string;\r\n}\r\n\r\nconst MainCard = forwardRef(\r\n (\r\n {\r\n border = true,\r\n boxShadow,\r\n children,\r\n subheader,\r\n content = true,\r\n contentSX = {},\r\n darkTitle,\r\n divider = true,\r\n elevation,\r\n secondary,\r\n shadow,\r\n sx = {},\r\n title,\r\n codeHighlight = false,\r\n codeString,\r\n ...others\r\n }: MainCardProps,\r\n ref: Ref\r\n ) => {\r\n const theme = useTheme();\r\n boxShadow = theme.palette.mode === 'dark' ? boxShadow || true : boxShadow;\r\n\r\n return (\r\n \r\n {/* card header and action */}\r\n {!darkTitle && title && (\r\n \r\n )}\r\n {darkTitle && title && {title}} action={secondary} />}\r\n\r\n {/* content & header divider */}\r\n {title && divider && }\r\n\r\n {/* card content */}\r\n {content && {children}}\r\n {!content && children}\r\n\r\n {/* card footer - clipboard & highlighter */}\r\n {codeString && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n);\r\n\r\nexport default MainCard;\r\n","import { useContext } from 'react';\r\nimport { ConfigContext } from 'contexts/ConfigContext';\r\n\r\n// ==============================|| CONFIG - HOOKS ||============================== //\r\n\r\nconst useConfig = () => useContext(ConfigContext);\r\n\r\nexport default useConfig;\r\n","// types\r\nimport { DefaultConfigProps } from \"types/config\";\r\n\r\nexport const DMS_IDEAL: number = 1;\r\nexport const DMS_CSYSTEMS: number = 2;\r\nexport const DMS_CHARTER: number = 3;\r\n\r\nexport const DMS_IDEAL_STR: string = \"Ideal\";\r\nexport const DMS_CSYSTEMS_STR: string = \"c-Systems\";\r\nexport const DMS_CHARTER_STR: string = \"Charter\";\r\n\r\nexport const drawerWidth = 260;\r\n\r\n// ==============================|| THEME CONFIG ||============================== //\r\n\r\n// --------------------------------------------------------\r\n// Set default configuration properties here\r\n// --------------------------------------------------------\r\n\r\nconst config: DefaultConfigProps = {\r\n defaultPath: \"/subscriptions/pricelist/list\",\r\n fontFamily: `'Public Sans', sans-serif`,\r\n i18n: \"en\",\r\n miniDrawer: true, // closes the drawer with the menu items\r\n container: false, // determines if the content stays within pre-defined widths or if they expand to the container\r\n mode: \"light\",\r\n presetColor: \"default\",\r\n themeDirection: \"ltr\",\r\n dms: DMS_IDEAL_STR\r\n};\r\n\r\nexport default config;\r\n","import { forwardRef, ReactNode, ReactChild, ReactFragment, ReactPortal, Ref } from 'react';\r\n\r\n// material-ui\r\nimport MuiIconButton from '@mui/material/IconButton';\r\nimport { alpha, styled, useTheme } from '@mui/material/styles';\r\nimport { IconButtonProps } from '@mui/material';\r\n\r\n// project imports\r\nimport getColors from 'utils/getColors';\r\nimport getShadow from 'utils/getShadow';\r\n\r\n// types\r\nimport { ButtonVariantProps, ExtendedStyleProps, IconButtonShapeProps } from 'types/extended';\r\n\r\n// ==============================|| ICON BUTTON - COLOR STYLE ||============================== //\r\n\r\ninterface IconButtonStyleProps extends ExtendedStyleProps {\r\n variant?: ButtonVariantProps;\r\n}\r\n\r\nfunction getColorStyle({ variant, theme, color }: IconButtonStyleProps) {\r\n const colors = getColors(theme, color);\r\n const { lighter, dark, main, contrastText } = colors;\r\n\r\n const buttonShadow = `${color}Button`;\r\n const shadows = getShadow(theme, buttonShadow);\r\n\r\n const commonShadow = {\r\n '&::after': {\r\n boxShadow: `0 0 6px 6px ${alpha(main, 0.9)}`\r\n },\r\n '&:active::after': {\r\n boxShadow: `0 0 0 0 ${alpha(main, 0.9)}`\r\n }\r\n };\r\n\r\n switch (variant) {\r\n case 'contained':\r\n return {\r\n color: contrastText,\r\n backgroundColor: main,\r\n '&:hover': {\r\n backgroundColor: dark\r\n },\r\n ...commonShadow\r\n };\r\n case 'shadow':\r\n return {\r\n boxShadow: shadows,\r\n color: contrastText,\r\n backgroundColor: main,\r\n '&:hover': {\r\n boxShadow: 'none',\r\n backgroundColor: dark\r\n },\r\n ...commonShadow\r\n };\r\n case 'outlined':\r\n return {\r\n '&:hover': {\r\n backgroundColor: 'transparent',\r\n color: dark,\r\n borderColor: dark\r\n },\r\n ...commonShadow\r\n };\r\n case 'dashed':\r\n return {\r\n backgroundColor: lighter,\r\n '&:hover': {\r\n color: dark,\r\n borderColor: dark\r\n },\r\n ...commonShadow\r\n };\r\n case 'text':\r\n default:\r\n return {\r\n '&:hover': {\r\n color: dark,\r\n backgroundColor: lighter\r\n },\r\n ...commonShadow\r\n };\r\n }\r\n}\r\n\r\n// ==============================|| STYLED - ICON BUTTON ||============================== //\r\n\r\ninterface StyleProps extends IconButtonStyleProps {\r\n shape?: IconButtonShapeProps;\r\n}\r\n\r\nconst IconButtonStyle = styled(MuiIconButton, { shouldForwardProp: (prop) => prop !== 'variant' && prop !== 'shape' })(\r\n ({ theme, variant, shape, color }: StyleProps) => ({\r\n position: 'relative',\r\n '::after': {\r\n content: '\"\"',\r\n display: 'block',\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n width: '100%',\r\n height: '100%',\r\n borderRadius: shape === 'rounded' ? '50%' : 4,\r\n opacity: 0,\r\n transition: 'all 0.5s'\r\n },\r\n\r\n ':active::after': {\r\n position: 'absolute',\r\n borderRadius: shape === 'rounded' ? '50%' : 4,\r\n left: 0,\r\n top: 0,\r\n opacity: 1,\r\n transition: '0s'\r\n },\r\n ...(shape === 'rounded' && {\r\n borderRadius: '50%'\r\n }),\r\n ...(variant === 'outlined' && {\r\n border: '1px solid',\r\n borderColor: 'inherit'\r\n }),\r\n ...(variant === 'dashed' && {\r\n border: '1px dashed',\r\n borderColor: 'inherit'\r\n }),\r\n ...(variant !== 'text' && {\r\n '&.Mui-disabled': {\r\n backgroundColor: theme.palette.grey[200]\r\n }\r\n }),\r\n ...getColorStyle({ variant, theme, color })\r\n })\r\n);\r\n\r\n// ==============================|| EXTENDED - ICON BUTTON ||============================== //\r\n\r\nexport interface Props extends IconButtonProps {\r\n shape?: IconButtonShapeProps;\r\n variant?: ButtonVariantProps;\r\n children: ReactNode;\r\n tooltip?: boolean | ReactChild | ReactFragment | ReactPortal;\r\n}\r\n\r\nconst IconButton = forwardRef(\r\n ({ variant = 'text', shape = 'square', children, color = 'primary', tooltip, ...others }: Props, ref: Ref) => {\r\n const theme = useTheme();\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n }\r\n);\r\n\r\nIconButton.displayName = 'IconButton';\r\n\r\nexport default IconButton;\r\n","// types\r\nimport { MenuProps } from 'types/menu';\r\nimport { createSlice } from '@reduxjs/toolkit';\r\n\r\n// initial state\r\nconst initialState: MenuProps = {\r\n openItem: ['dashboard'],\r\n openComponent: 'buttons',\r\n drawerOpen: false,\r\n componentDrawerOpen: true\r\n};\r\n\r\n// ==============================|| SLICE - MENU ||============================== //\r\n\r\nconst menu = createSlice({\r\n name: 'menu',\r\n initialState,\r\n reducers: {\r\n activeItem(state, action) {\r\n state.openItem = action.payload.openItem;\r\n },\r\n\r\n activeComponent(state, action) {\r\n state.openComponent = action.payload.openComponent;\r\n },\r\n\r\n openDrawer(state, action) {\r\n state.drawerOpen = action.payload.drawerOpen;\r\n },\r\n\r\n openComponentDrawer(state, action) {\r\n state.componentDrawerOpen = action.payload.componentDrawerOpen;\r\n }\r\n }\r\n});\r\n\r\nexport default menu.reducer;\r\n\r\nexport const { activeItem, activeComponent, openDrawer, openComponentDrawer } = menu.actions;\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// types\r\nimport { ColorProps } from 'types/extended';\r\n\r\n// ==============================|| CUSTOM FUNCTION - COLORS ||============================== //\r\n\r\nconst getColors = (theme: Theme, color?: ColorProps) => {\r\n switch (color!) {\r\n case 'secondary':\r\n return theme.palette.secondary;\r\n case 'error':\r\n return theme.palette.error;\r\n case 'warning':\r\n return theme.palette.warning;\r\n case 'info':\r\n return theme.palette.info;\r\n case 'success':\r\n return theme.palette.success;\r\n default:\r\n return theme.palette.primary;\r\n }\r\n};\r\n\r\nexport default getColors;\r\n","import { useContext } from \"react\";\r\n\r\n// auth provider\r\nimport AuthContext from \"contexts/UserContext\";\r\n\r\n// ==============================|| AUTH HOOKS ||============================== //\r\n\r\nconst useAuth = () => {\r\n const context = useContext(AuthContext);\r\n if (!context) {\r\n throw new Error(\"context must be use inside provider\");\r\n }\r\n return context;\r\n};\r\n\r\nexport default useAuth;\r\n","// material-ui\r\n// import { useTheme } from '@mui/material/styles';\r\n\r\n// import logoDark from 'assets/images/logoCSystems.png';\r\n// import logo from 'assets/images/logoCSystems.png';\r\n\r\n// ==============================|| LOGO SVG ||============================== //\r\n\r\nconst LogoMain = ({ reverse, ...others }: { reverse?: boolean }) => {\r\n // const theme = useTheme();\r\n return (\r\n
\r\n {/* \"Price */}\r\n
\r\n // <>\r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n );\r\n};\r\n\r\nexport default LogoMain;\r\n","import logoIdeal from 'assets/images/logoIdeal.png';\r\nimport logoCSystems from 'assets/images/logoCSystems.png';\r\nimport useAuth from 'hooks/useAuth';\r\nimport { Everest } from 'common/constants';\r\n\r\n// ==========================|| IDEAL LOGO ICON PNG ||============================== //\r\n\r\nexport const LogoIcon = () => {\r\n const { user } = useAuth();\r\n const isIdeal = user?.dmsCompany.toLowerCase() === Everest.DMS_IDEAL_STR.toLowerCase();\r\n\r\n const favicon = document.getElementById(\"favicon\") as HTMLLinkElement;\r\n if (favicon)\r\n favicon.href = isIdeal ? '/ideal.ico' : '/csystems.ico';\r\n\r\n if (isIdeal)\r\n return \"Price;\r\n else\r\n return \"Price;\r\n};","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABcWlDQ1BpY2MAACiRdZG9S8NAGMaftkqlVjroIOKQoYpDC0VBdCsV7FId2gpWXZJr0gpJGi4pUlwFF4eCg+ji1+B/oKvgqiAIiiDi5B/g1yIlvtcUWqS94/L+eHLPy91zgD+jM8PuSwCG6fBsOiWtFtak4DtCNMNIYF5mtrWUW8yj5/h5hE/Uh7jo1Xtf1zFYVG0G+AaIZ5nFHeIkcWbLsQTvEY+wslwkPiGOcTog8a3QFY/fBJc8/hLM89kFwC96SqUOVjqYlblBPEUcNfQqa51H3CSsmis5qmO0xmEjizRSkKCgik3ocBCnalJm3X2Jpm8ZFfIw+lqogZOjhDJ5Y6RWqatKVSNdpamjJnL/n6etzUx73cMpoP/VdT8ngOA+0Ki77u+p6zbOgMALcG22/RXKae6b9Hpbix4DkR3g8qatKQfA1S4w+mzJXG5KAVp+TQM+LoChAjB8D4TWvaxa/3H+BOS36YnugMMjYJL2Rzb+AFG4aDCEtD2FAAAACXBIWXMAAA7DAAAOwwHHb6hkAAADGElEQVRYR+2WS4iOURjHX/e7REqJPuxcFuSaaOSSIhbjbmIkCSlZWCjZKM1mllZsmEmYTzML95qZssAGJbdxSclGySSSye33f53zdead8848Pgub79S/c95z/s9znvOc53nOmySVVvHAf/ZAv7z93xUXLGetCQwGv4x2et4r+MsmVt/72JfcwF4Ie1jrBIfA974UufUh9KfAW/DJIhM1gNNPQXgNqOMULRZF4iC3iG48OIPcD4tcngc2INwfnPdKUC7FB8DwnCuR+6vAY3DFsrk4PQxgo2HM7wA3gO7St10MjhsUP4RzDD2xw8lIXWcHHmqMGsDkEjADHIWU7oeyEXTbDZt3wRkKtka42lwxMhk8ALkG6KQvQVugRBkxy2BAEU4Nhv/0XIxXFuk6NVcNGsARv97NTZALLKwDCr7P7vRK1Z0gN2UDw8TZh54Bjv+N/jK63jtdiq0n4HbUACZFkPCFQOl0xisNpxdli0NIf8PHdZdZqxifxCAZlja5Jm0QdHe14Bp4HmioYTzKaECWptPedZPr6eVxFbdSKxnAjA8+5bA3aiyDTWVuLrEmdHVyuEGMFcTtoKOHARA0p+B7AcLgUzGaWqYBiqGLTnY2/RzQ6A/ndXoPFJhYC85C+KJFF0i1ZW4uMZ32qZPfTP8B3Mzq81mwkQW5ScEy2pHm0i/+BwMalI7oG4MOBXeLz4ZQpzdA7lcQKvpVMJSzI4EKRzlNdcSfdiljFZ9SWY8ZUM/kNOCvRN7YDR7JcmeUUigNFkMr6il2sbUNvq7iTkwu9QDk0+EigjP53g9OsJYGkvs/MOydKIb8aScxXg3q0fM1JhymYbi+lw9Vr9SNbF5FN9+yuzvpa2T0aqr0qhRfypONvYbjICtolDL6IVHTd28/L6H+eXz8KSRJov+KdvDMbABEpaOMSF8r15rp9XtVemQyCjUvIyeA8Dr1U9LMQXJ/6bo9MLhNV9IKuhBS0Jmae/tVvq8id9Ak5EhZt6paKffrUKrn1+J2/WCsAAVw7m82Fze7wUI3d5hesDbVkFvgvlWgwqt4wHvgN/thzexw2FSSAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,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\"","import { Link } from 'react-router-dom';\r\nimport { To } from 'history';\r\n\r\n// material-ui\r\nimport { ButtonBase } from '@mui/material';\r\nimport { SxProps } from '@mui/system';\r\n\r\n// project import\r\nimport Logo from './LogoMain';\r\nimport config from 'config';\r\nimport { LogoIcon } from 'components/logo/LogoIcon';\r\n\r\n// ==============================|| MAIN LOGO ||============================== //\r\n\r\ninterface Props {\r\n reverse?: boolean;\r\n isIcon?: boolean;\r\n sx?: SxProps;\r\n to?: To;\r\n}\r\n\r\nconst LogoSection = ({ reverse, isIcon, sx, to }: Props) => (\r\n \r\n {isIcon ? : }\r\n \r\n);\r\n\r\nexport default LogoSection;\r\n","import * as React from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\n\r\n// material-ui\r\nimport AppBar from '@mui/material/AppBar';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { useMediaQuery, Box, Button, Chip, Container, IconButton, Stack, Toolbar, Typography, useScrollTrigger } from '@mui/material';\r\n\r\n// project import\r\nimport config from 'config';\r\nimport Logo from 'components/logo';\r\n\r\n// assets\r\nimport { MenuOutlined } from '@ant-design/icons';\r\n\r\n// ==============================|| COMPONENTS - APP BAR ||============================== //\r\n\r\n// elevation scroll\r\nfunction ElevationScroll({ layout, children, window }: any) {\r\n const theme = useTheme();\r\n // const theme = useTheme();\r\n\r\n const trigger = useScrollTrigger({\r\n disableHysteresis: true,\r\n threshold: 10,\r\n target: window ? window() : undefined\r\n });\r\n\r\n const backColorScroll = theme.palette.mode === 'dark' ? theme.palette.grey[50] : theme.palette.grey[800];\r\n const backColor = layout !== 'landing' ? backColorScroll : 'transparent';\r\n\r\n return React.cloneElement(children, {\r\n style: {\r\n backgroundColor: trigger ? backColorScroll : backColor\r\n }\r\n });\r\n}\r\n\r\ninterface Props {\r\n handleDrawerOpen?: () => void;\r\n layout?: string;\r\n}\r\n\r\nconst Header = ({ handleDrawerOpen, layout = 'landing', ...others }: Props) => {\r\n const theme = useTheme();\r\n const matchDownMd = useMediaQuery(theme.breakpoints.down('md'));\r\n // const [drawerToggle, setDrawerToggle] = useState();\r\n\r\n const version = process.env.REACT_APP_VERSION;\r\n\r\n /** Method called on multiple components with different event types */\r\n const drawerToggler = (open: boolean) => (event: any) => {\r\n if (event.type! === 'keydown' && (event.key! === 'Tab' || event.key! === 'Shift')) {\r\n return;\r\n }\r\n // setDrawerToggle(open);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n Login\r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n {layout === 'component' && (\r\n \r\n Dashboard\r\n \r\n )}\r\n {layout !== 'component' && (\r\n \r\n All Components\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Header;\r\n","import { forwardRef, useEffect, ForwardRefExoticComponent, RefAttributes } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { useMediaQuery, Avatar, Chip, ListItemButton, ListItemText, Typography } from '@mui/material';\r\n\r\n// types\r\nimport { LinkTarget, NavItemType } from 'types/menu';\r\nimport { RootStateProps } from 'types/root';\r\nimport { activeComponent, openComponentDrawer } from 'store/reducers/menu';\r\n\r\n// ==============================|| NAVIGATION - LIST ITEM ||============================== //\r\n\r\ninterface Props {\r\n item: NavItemType;\r\n level: number;\r\n}\r\n\r\nconst NavItem = ({ item, level }: Props) => {\r\n const theme = useTheme();\r\n const dispatch = useDispatch();\r\n const matchesMD = useMediaQuery(theme.breakpoints.down('md'));\r\n\r\n const menu = useSelector((state: RootStateProps) => state.menu);\r\n const { openComponent } = menu;\r\n\r\n let itemTarget: LinkTarget = '_self';\r\n if (item.target) {\r\n itemTarget = '_blank';\r\n }\r\n\r\n let listItemProps: {\r\n component: ForwardRefExoticComponent> | string;\r\n href?: string;\r\n target?: LinkTarget;\r\n } = { component: forwardRef((props, ref) => ) };\r\n if (item?.external) {\r\n listItemProps = { component: 'a', href: item.url, target: itemTarget };\r\n }\r\n\r\n const itemHandler = (id: string) => {\r\n dispatch(activeComponent({ openComponent: id }));\r\n matchesMD && dispatch(openComponentDrawer({ componentDrawerOpen: false }));\r\n };\r\n\r\n // active menu item on page load\r\n useEffect(() => {\r\n const currentIndex = document.location.pathname\r\n .toString()\r\n .split('/')\r\n .findIndex((id) => id === item.id);\r\n if (currentIndex > -1) {\r\n dispatch(activeComponent({ openComponent: item.id }));\r\n }\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const textColor = theme.palette.mode === 'dark' ? 'grey.400' : 'text.primary';\r\n const iconSelectedColor = theme.palette.mode === 'dark' ? 'text.primary' : 'primary.main';\r\n\r\n return (\r\n itemHandler(item.id!)}\r\n selected={openComponent === item.id}\r\n sx={{\r\n pl: 4,\r\n py: 1,\r\n mb: 0.5,\r\n '&:hover': {\r\n bgcolor: theme.palette.mode === 'dark' ? 'divider' : 'primary.lighter'\r\n },\r\n '&.Mui-selected': {\r\n bgcolor: theme.palette.mode === 'dark' ? 'divider' : 'primary.lighter',\r\n borderRight: `2px solid ${theme.palette.primary.main}`,\r\n '&:hover': {\r\n bgcolor: theme.palette.mode === 'dark' ? 'divider' : 'primary.lighter'\r\n }\r\n }\r\n }}\r\n >\r\n \r\n {item.title}\r\n \r\n }\r\n />\r\n {item.chip && (\r\n {item.chip.avatar}}\r\n />\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default NavItem;\r\n","// material-ui\r\nimport { List, Typography } from '@mui/material';\r\n\r\n// project import\r\nimport NavItem from './NavItem';\r\n\r\n// types\r\nimport { NavItemType } from 'types/menu';\r\n\r\n// ==============================|| NAVIGATION - LIST GROUP ||============================== //\r\n\r\ninterface Props {\r\n item: NavItemType;\r\n}\r\n\r\nconst NavGroup = ({ item }: Props) => {\r\n const navCollapse = item.children?.map((menu) => {\r\n switch (menu.type) {\r\n case 'item':\r\n return ;\r\n default:\r\n return (\r\n \r\n Fix - Group Collapse or Items\r\n \r\n );\r\n }\r\n });\r\n\r\n return (\r\n \r\n {item.title}\r\n \r\n )\r\n }\r\n sx={{ mb: 1 }}\r\n >\r\n {navCollapse}\r\n \r\n );\r\n};\r\n\r\nexport default NavGroup;\r\n","// third-party\r\nimport { FormattedMessage } from 'react-intl';\r\n\r\n// project import\r\nimport { NavItemType } from 'types/menu';\r\n\r\n// ==============================|| MENU ITEMS - COMPONENTS ||============================== //\r\n\r\nconst menuItems: NavItemType[] = [\r\n];\r\n\r\nexport default menuItems;\r\n","// material-ui\r\nimport { Box, Typography } from '@mui/material';\r\n\r\n// project import\r\nimport NavGroup from './NavGroup';\r\nimport menuItem from 'menu-items/components';\r\nimport { NavItemType } from 'types/menu';\r\n\r\n// ==============================|| DRAWER CONTENT - NAVIGATION ||============================== //\r\n\r\nconst Navigation = ({ searchValue }: { searchValue?: string }) => {\r\n let filteredMenuItems: NavItemType[] = [];\r\n\r\n // if no value searched, we will render all menu items\r\n if (searchValue === null || searchValue === undefined || searchValue === '') {\r\n filteredMenuItems = menuItem;\r\n } else {\r\n menuItem.forEach((parentMenu) => {\r\n const matchedChildren: any[] = [];\r\n\r\n parentMenu.children?.forEach((child) => {\r\n if (child.search?.trim().toLowerCase().includes(searchValue!)) {\r\n // todo: consider other filed then id\r\n // if match\r\n matchedChildren.push(child); // get the filter menuitem and push it to children\r\n }\r\n });\r\n\r\n const parent = filteredMenuItems.filter((xx) => xx === parentMenu); // get the parent menu item/header\r\n if (parent.length === 0 && matchedChildren.length > 0) {\r\n const clonedParent = { ...parentMenu }; // clone children as we dont want entire children but just filtered\r\n clonedParent.children = matchedChildren;\r\n filteredMenuItems.push(clonedParent);\r\n }\r\n });\r\n }\r\n\r\n const navGroups = filteredMenuItems.map((item) => {\r\n switch (item.type) {\r\n case 'group':\r\n return ;\r\n default:\r\n return (\r\n \r\n Fix - Navigation Group\r\n \r\n );\r\n }\r\n });\r\n\r\n return {navGroups};\r\n};\r\n\r\nexport default Navigation;\r\n","// project import\r\nimport SimpleBar from 'components/third-party/SimpleBar';\r\nimport Navigation from './Navigation';\r\n\r\n// ==============================|| DRWAER CONTENT ||============================== //\r\n\r\nconst DrawerContent = ({ searchValue }: { searchValue?: string }) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default DrawerContent;\r\n","import { useState } from 'react';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { useMediaQuery, Box, Drawer as MuiDrawer, TextField } from '@mui/material';\r\n\r\n// project import\r\nimport MainCard from 'components/MainCard';\r\nimport DrawerContent from './DrawerContent';\r\nimport { drawerWidth } from 'config';\r\n\r\n// assets\r\nimport { SearchOutlined } from '@ant-design/icons';\r\n\r\n// ==============================|| COMPONENTS - DRAWER ||============================== //\r\n\r\ninterface Props {\r\n handleDrawerOpen: () => void;\r\n open: boolean;\r\n}\r\n\r\nconst Drawer = ({ handleDrawerOpen, open }: Props) => {\r\n const theme = useTheme();\r\n const matchDownMd = useMediaQuery(theme.breakpoints.down('md'));\r\n\r\n const [searchValue, setSearchValue] = useState();\r\n\r\n const handleSearchValue = (event: any) => {\r\n const search = event.target.value.trim().toLowerCase();\r\n setSearchValue(search);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n ,\r\n placeholder: 'Search Components',\r\n type: 'search'\r\n }}\r\n onChange={handleSearchValue}\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Drawer;\r\n","import { useEffect } from 'react';\r\nimport { Outlet } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux';\r\n\r\n// material-ui\r\nimport { styled, useTheme, Theme } from '@mui/material/styles';\r\nimport { useMediaQuery, Box } from '@mui/material';\r\n\r\n// project import\r\nimport Drawer from './Drawer';\r\nimport { drawerWidth } from 'config';\r\nimport { openComponentDrawer } from 'store/reducers/menu';\r\n\r\n// components content\r\nconst Main = styled('main', { shouldForwardProp: (prop) => prop !== 'open' })(({ theme, open }: { theme: Theme; open: boolean }) => ({\r\n minHeight: `calc(100vh - 188px)`,\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n flexGrow: 1,\r\n transition: theme.transitions.create('margin', {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen\r\n }),\r\n [theme.breakpoints.down('md')]: {\r\n paddingLeft: 0\r\n },\r\n ...(open && {\r\n transition: theme.transitions.create('margin', {\r\n easing: theme.transitions.easing.easeOut,\r\n duration: theme.transitions.duration.enteringScreen\r\n })\r\n })\r\n}));\r\n\r\n// ==============================|| COMPONENTS LAYOUT ||============================== //\r\n\r\ninterface Props {\r\n handleDrawerOpen: () => void;\r\n componentDrawerOpen: boolean;\r\n}\r\n\r\nconst ComponentsLayout = ({ handleDrawerOpen, componentDrawerOpen }: Props) => {\r\n const theme = useTheme();\r\n const dispatch = useDispatch();\r\n const matchDownMd = useMediaQuery(theme.breakpoints.down('md'));\r\n\r\n useEffect(() => {\r\n dispatch(openComponentDrawer({ componentDrawerOpen: !matchDownMd }));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [matchDownMd]);\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ComponentsLayout;\r\n","// ==============================|| LANDING - FOOTER PAGE ||============================== //\r\n\r\nimport { Stack } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\n\r\ntype showProps = {\r\n isFull?: boolean;\r\n};\r\n\r\nconst FooterBlock = ({ isFull }: showProps) => {\r\n const year = new Date().getFullYear();\r\n\r\n return (\r\n \r\n }\r\n spacing={5}\r\n >\r\n
© {year}
\r\n \r\n {/* [LANDING FOOTER] */}\r\n
\r\n );\r\n};\r\n\r\nexport default FooterBlock;\r\n","import { Outlet } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\n// material-ui\r\nimport { Container, Toolbar } from '@mui/material';\r\n\r\n// project import\r\nimport Header from './Header';\r\nimport ComponentLayout from './ComponentLayout';\r\nimport FooterBlock from './FooterBlock';\r\nimport { openComponentDrawer } from 'store/reducers/menu';\r\n\r\n// types\r\nimport { RootStateProps } from 'types/root';\r\n\r\n// ==============================|| MINIMAL LAYOUT ||============================== //\r\n\r\nconst CommonLayout = ({ layout = 'blank' }: { layout?: string }) => {\r\n const dispatch = useDispatch();\r\n\r\n const menu = useSelector((state: RootStateProps) => state.menu);\r\n const { componentDrawerOpen } = menu;\r\n\r\n const handleDrawerOpen = () => {\r\n dispatch(openComponentDrawer({ componentDrawerOpen: !componentDrawerOpen }));\r\n };\r\n\r\n return (\r\n <>\r\n {(layout === 'landing' || layout === 'simple') && (\r\n <>\r\n
\r\n \r\n \r\n \r\n )}\r\n {layout === 'component' && (\r\n \r\n
\r\n \r\n \r\n \r\n )}\r\n {layout === 'blank' && }\r\n \r\n );\r\n};\r\n\r\nexport default CommonLayout;\r\n","import { ComponentType, LazyExoticComponent, ReactNode, Suspense } from 'react';\r\n\r\n// project import\r\nimport Loader, { LoaderProps } from './Loader';\r\n\r\n// ==============================|| LOADABLE - LAZY LOADING ||============================== //\r\n\r\nconst Loadable = (Component: LazyExoticComponent<() => JSX.Element> | ComponentType) => (props: LoaderProps) =>\r\n (\r\n }>\r\n \r\n \r\n );\r\n\r\nexport default Loadable;\r\n","import { useEffect } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\n// project import\r\nimport config from 'config';\r\nimport useAuth from 'hooks/useAuth';\r\n\r\n// types\r\nimport { GuardProps } from 'types/auth';\r\n\r\n// ==============================|| GUEST GUARD ||============================== //\r\n\r\nconst GuestGuard = ({ children }: GuardProps) => {\r\n const { isLoggedIn, user } = useAuth();\r\n const navigate = useNavigate();\r\n\r\n useEffect(() => {\r\n if (user && (user.newDealerStatus !== 'C'))\r\n config.defaultPath = '/newdealer/pricelist/list';\r\n else\r\n config.defaultPath = '/subscriptions/pricelist/list';\r\n\r\n if (isLoggedIn)\r\n navigate(config.defaultPath, { replace: true });\r\n }, [isLoggedIn, navigate]);\r\n\r\n return children;\r\n};\r\n\r\nexport default GuestGuard;\r\n","import { lazy } from 'react';\r\n\r\n// project import\r\nimport GuestGuard from 'utils/route-guard/GuestGuard';\r\nimport CommonLayout from 'layout/CommonLayout';\r\nimport Loadable from 'components/Loadable';\r\n\r\n// render - login\r\nconst AuthLogin = Loadable(lazy(() => import('pages/auth/login')));\r\n\r\n// ==============================|| AUTH ROUTING ||============================== //\r\n\r\nconst LoginRoutes = {\r\n path: '/',\r\n children: [\r\n {\r\n path: '/',\r\n element: (\r\n \r\n \r\n \r\n ),\r\n children: [\r\n {\r\n path: 'login',\r\n element: \r\n }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nexport default LoginRoutes;\r\n","// material-ui\r\nimport { styled, Theme } from '@mui/material/styles';\r\nimport { Box } from '@mui/material';\r\n\r\n// ==============================|| DRAWER HEADER - STYLED ||============================== //\r\n\r\ninterface Props {\r\n theme: Theme;\r\n open: boolean;\r\n}\r\n\r\nconst DrawerHeaderStyled = styled(Box, { shouldForwardProp: (prop) => prop !== 'open' })(({ theme, open }: Props) => ({\r\n ...theme.mixins.toolbar,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: open ? 'flex-start' : 'center',\r\n paddingLeft: theme.spacing(open ? 3 : 0)\r\n}));\r\n\r\nexport default DrawerHeaderStyled;\r\n","// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\n// project import\r\nimport DrawerHeaderStyled from './DrawerHeaderStyled';\r\nimport Logo from 'components/logo';\r\n\r\n// ==============================|| DRAWER HEADER ||============================== //\r\n\r\ninterface Props {\r\n open: boolean;\r\n}\r\n\r\nconst DrawerHeader = ({ open }: Props) => {\r\n const theme = useTheme();\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DrawerHeader;\r\n","// react\r\nimport { useEffect } from 'react';\r\n\r\n// material-ui\r\nimport { Button, Stack, Tooltip, Box } from '@mui/material';\r\n\r\n// project import\r\nimport MainCard from 'components/MainCard';\r\n\r\n// assets\r\n\r\n// ==============================|| DRAWER CONTENT - NAVIGATION CARD ||============================== //\r\n\r\nconst NavCard = () => {\r\n const version = process.env.REACT_APP_VERSION;\r\n const dayOfMonth = new Date().getDate();\r\n\r\n let env = process.env.REACT_APP_ENV?.toUpperCase();\r\n\r\n if (env === 'PRODUCTION') env = 'PROD';\r\n else if (env === 'LOCAL') env = 'LOCAL';\r\n else if (env === 'DEV') env = 'DEV';\r\n else env = 'QA';\r\n\r\n useEffect(() => {\r\n console.log('🙌 Price Lists Portal. Version ', version);\r\n\r\n // Every hour, check to see if we passed midnight. If so, refresh the site.\r\n const interval = setInterval(() => {\r\n console.log(' Version Check. DOM', dayOfMonth);\r\n const currentDate = new Date();\r\n\r\n // check between midnight and 1\r\n if (currentDate.getDate() !== dayOfMonth && currentDate.getHours() < 1) {\r\n console.log(' Updating Site');\r\n window.location.reload();\r\n }\r\n }, 3600000);\r\n return (): void => clearInterval(interval);\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default NavCard;\r\n","import { forwardRef, useEffect, ForwardRefExoticComponent, RefAttributes } from 'react';\r\nimport { Link, useLocation } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Avatar, Chip, ListItemButton, ListItemIcon, ListItemText, Typography } from '@mui/material';\r\n\r\n// project import\r\nimport { activeItem } from 'store/reducers/menu';\r\n\r\n// types\r\nimport { LinkTarget, NavItemType } from 'types/menu';\r\nimport { RootStateProps } from 'types/root';\r\n\r\n// ==============================|| NAVIGATION - LIST ITEM ||============================== //\r\n\r\ninterface Props {\r\n item: NavItemType;\r\n level: number;\r\n}\r\n\r\nconst NavItem = ({ item, level }: Props) => {\r\n const theme = useTheme();\r\n const dispatch = useDispatch();\r\n const menu = useSelector((state: RootStateProps) => state.menu);\r\n const { drawerOpen, openItem } = menu;\r\n\r\n let itemTarget: LinkTarget = '_self';\r\n if (item.target) {\r\n itemTarget = '_blank';\r\n }\r\n\r\n let listItemProps: {\r\n component: ForwardRefExoticComponent> | string;\r\n href?: string;\r\n target?: LinkTarget;\r\n } = { component: forwardRef((props, ref) => ) };\r\n if (item?.external) {\r\n listItemProps = { component: 'a', href: item.url, target: itemTarget };\r\n }\r\n\r\n const Icon = item.icon!;\r\n const itemIcon = item.icon ? : false;\r\n\r\n const isSelected = openItem.findIndex((id) => id === item.id) > -1;\r\n\r\n const { pathname } = useLocation();\r\n\r\n // active menu item on page load\r\n useEffect(() => {\r\n if (pathname && pathname.includes('product-details')) {\r\n if (item.url && item.url.includes('product-details')) {\r\n dispatch(activeItem({ openItem: [item.id] }));\r\n }\r\n }\r\n\r\n if (pathname === item.url) {\r\n dispatch(activeItem({ openItem: [item.id] }));\r\n }\r\n // eslint-disable-next-line\r\n }, [pathname]);\r\n\r\n const textColor = theme.palette.mode === 'dark' ? 'grey.400' : 'text.primary';\r\n const iconSelectedColor = theme.palette.mode === 'dark' && drawerOpen ? 'text.primary' : 'primary.main';\r\n\r\n return (\r\n \r\n {itemIcon && (\r\n \r\n {itemIcon}\r\n \r\n )}\r\n {(drawerOpen || (!drawerOpen && level !== 1)) && (\r\n \r\n {item.title}\r\n \r\n }\r\n />\r\n )}\r\n {(drawerOpen || (!drawerOpen && level !== 1)) && item.chip && (\r\n {item.chip.avatar}}\r\n />\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default NavItem;\r\n","import { forwardRef, CSSProperties, ExoticComponent, ReactElement, Ref } from 'react';\r\n\r\n// material-ui\r\nimport { Collapse, Fade, Box, Grow, Slide, Zoom } from '@mui/material';\r\n\r\n// ==============================|| TRANSITIONS ||============================== //\r\n\r\ninterface Props {\r\n children?: ReactElement;\r\n position?: string;\r\n sx?: CSSProperties;\r\n in?: boolean;\r\n type?: string;\r\n direction?: 'up' | 'right' | 'left' | 'down';\r\n [others: string]: any;\r\n}\r\n\r\nconst Transitions = forwardRef(\r\n ({ children, position = 'top-left', sx, type = 'grow', direction = 'up', ...others }: Props, ref: Ref) => {\r\n let positionSX = {\r\n transformOrigin: '0 0 0'\r\n };\r\n\r\n switch (position) {\r\n case 'top-right':\r\n positionSX = {\r\n transformOrigin: 'top right'\r\n };\r\n break;\r\n case 'top':\r\n positionSX = {\r\n transformOrigin: 'top'\r\n };\r\n break;\r\n case 'bottom-left':\r\n positionSX = {\r\n transformOrigin: 'bottom left'\r\n };\r\n break;\r\n case 'bottom-right':\r\n positionSX = {\r\n transformOrigin: 'bottom right'\r\n };\r\n break;\r\n case 'bottom':\r\n positionSX = {\r\n transformOrigin: 'bottom'\r\n };\r\n break;\r\n case 'top-left':\r\n default:\r\n positionSX = {\r\n transformOrigin: '0 0 0'\r\n };\r\n break;\r\n }\r\n\r\n return (\r\n \r\n {type === 'grow' && (\r\n \r\n {children}\r\n \r\n )}\r\n {type === 'collapse' && (\r\n \r\n {children}\r\n \r\n )}\r\n {type === 'fade' && (\r\n \r\n {children}\r\n \r\n )}\r\n {type === 'slide' && (\r\n \r\n {children}\r\n \r\n )}\r\n {type === 'zoom' && (\r\n \r\n {children}\r\n \r\n )}\r\n \r\n );\r\n }\r\n);\r\n\r\nexport default Transitions;\r\n","import { useEffect, useState } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { useSelector } from 'react-redux';\r\n\r\n// material-ui\r\nimport { styled, useTheme } from '@mui/material/styles';\r\nimport {\r\n Box,\r\n Collapse,\r\n ClickAwayListener,\r\n List,\r\n ListItemButton,\r\n ListItemIcon,\r\n ListItemText,\r\n Paper,\r\n Popper,\r\n Typography\r\n} from '@mui/material';\r\n\r\n// project import\r\nimport NavItem from './NavItem';\r\nimport Transitions from 'components/@extended/Transitions';\r\n\r\n// assets\r\nimport { BorderOutlined, DownOutlined, UpOutlined } from '@ant-design/icons';\r\n\r\n// types\r\nimport { NavItemType } from 'types/menu';\r\nimport { RootStateProps } from 'types/root';\r\n\r\ntype VirtualElement = {\r\n getBoundingClientRect: () => ClientRect | DOMRect;\r\n contextElement?: Element;\r\n};\r\n\r\n// mini-menu - wrapper\r\nconst PopperStyled = styled(Popper)(({ theme }) => ({\r\n overflow: 'visible',\r\n zIndex: 1202,\r\n minWidth: 180,\r\n '&:before': {\r\n content: '\"\"',\r\n display: 'block',\r\n position: 'absolute',\r\n top: 38,\r\n left: -5,\r\n width: 10,\r\n height: 10,\r\n backgroundColor: theme.palette.background.paper,\r\n transform: 'translateY(-50%) rotate(45deg)',\r\n zIndex: 120,\r\n borderLeft: `1px solid ${theme.palette.grey.A800}`,\r\n borderBottom: `1px solid ${theme.palette.grey.A800}`\r\n }\r\n}));\r\n\r\n// ==============================|| NAVIGATION - LIST COLLAPSE ||============================== //\r\n\r\ninterface Props {\r\n menu: NavItemType;\r\n level: number;\r\n}\r\n\r\nconst NavCollapse = ({ menu, level }: Props) => {\r\n const theme = useTheme();\r\n\r\n const menuState = useSelector((state: RootStateProps) => state.menu);\r\n const { drawerOpen } = menuState;\r\n\r\n const [open, setOpen] = useState(false);\r\n const [selected, setSelected] = useState(null);\r\n\r\n const [anchorEl, setAnchorEl] = useState VirtualElement) | null | undefined>(null);\r\n\r\n const handleClick = (event: React.MouseEvent | React.MouseEvent | undefined) => {\r\n setAnchorEl(null);\r\n if (drawerOpen) {\r\n setOpen(!open);\r\n setSelected(!selected ? menu.id : null);\r\n } else {\r\n setAnchorEl(event?.currentTarget);\r\n }\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const { pathname } = useLocation();\r\n\r\n useEffect(() => {\r\n const childrens = menu.children ? menu.children : [];\r\n childrens.forEach((item) => {\r\n if (pathname && pathname.includes('product-details')) {\r\n if (item.url && item.url.includes('product-details')) {\r\n setOpen(true);\r\n }\r\n }\r\n\r\n if (item.url === pathname) {\r\n setOpen(true);\r\n setSelected(menu.id);\r\n }\r\n });\r\n }, [pathname, menu]);\r\n\r\n const openMini = Boolean(anchorEl);\r\n\r\n const navCollapse = menu.children?.map((item) => {\r\n switch (item.type) {\r\n case 'collapse':\r\n return ;\r\n case 'item':\r\n return ;\r\n default:\r\n return (\r\n \r\n Fix - Collapse or Item\r\n \r\n );\r\n }\r\n });\r\n\r\n const borderIcon = level === 1 ? : false;\r\n const Icon = menu.icon!;\r\n const menuIcon = menu.icon ? : borderIcon;\r\n const textColor = theme.palette.mode === 'dark' ? 'grey.400' : 'text.primary';\r\n const iconSelectedColor = theme.palette.mode === 'dark' && drawerOpen ? theme.palette.text.primary : theme.palette.primary.main;\r\n\r\n return (\r\n <>\r\n \r\n {menuIcon && (\r\n \r\n {menuIcon}\r\n \r\n )}\r\n {(drawerOpen || (!drawerOpen && level !== 1)) && (\r\n \r\n {menu.title}\r\n \r\n }\r\n secondary={\r\n menu.caption && (\r\n \r\n {menu.caption}\r\n \r\n )\r\n }\r\n />\r\n )}\r\n {(drawerOpen || (!drawerOpen && level !== 1)) &&\r\n (openMini || open ? (\r\n \r\n ) : (\r\n \r\n ))}\r\n\r\n {!drawerOpen && (\r\n \r\n {({ TransitionProps }) => (\r\n \r\n \r\n \r\n {navCollapse}\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n {drawerOpen && (\r\n \r\n {navCollapse}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default NavCollapse;\r\n","import { useSelector } from 'react-redux';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Box, List, Typography } from '@mui/material';\r\n\r\n// project import\r\nimport NavItem from './NavItem';\r\nimport NavCollapse from './NavCollapse';\r\n\r\n// types\r\nimport { NavItemType } from 'types/menu';\r\nimport { RootStateProps } from 'types/root';\r\n\r\n// ==============================|| NAVIGATION - LIST GROUP ||============================== //\r\n\r\ninterface Props {\r\n item: NavItemType;\r\n}\r\n\r\nconst NavGroup = ({ item }: Props) => {\r\n const theme = useTheme();\r\n const menu = useSelector((state: RootStateProps) => state.menu);\r\n const { drawerOpen } = menu;\r\n\r\n const navCollapse = item.children?.map((menuItem) => {\r\n switch (menuItem.type) {\r\n case 'collapse':\r\n return ;\r\n case 'item':\r\n return ;\r\n default:\r\n return (\r\n \r\n Fix - Group Collapse or Items\r\n \r\n );\r\n }\r\n });\r\n\r\n return (\r\n \r\n \r\n {item.title}\r\n \r\n {item.caption && (\r\n \r\n {item.caption}\r\n \r\n )}\r\n \r\n )\r\n }\r\n sx={{ mt: drawerOpen && item.title ? 1.5 : 0, py: 0, zIndex: 0 }}\r\n >\r\n {navCollapse}\r\n \r\n );\r\n};\r\n\r\nexport default NavGroup;\r\n","// third-party\r\nimport { FormattedMessage } from 'react-intl';\r\n\r\n// assets\r\nimport { DollarCircleOutlined } from '@ant-design/icons';\r\n\r\n// type\r\nimport { NavItemType } from 'types/menu';\r\nimport { UserProfile } from 'types/auth';\r\n\r\n// icons\r\nconst icons = { DollarCircleOutlined };\r\n\r\n// ==============================|| MENU ITEMS - DASHBOARD ||============================== //\r\n\r\nfunction GetSubscriptionMenuItems(user: UserProfile): NavItemType[] {\r\n\r\n function GetMyPriceListItems(): NavItemType[] {\r\n if (user?.newDealerStatus !== 'C') {\r\n return [\r\n {\r\n id: 'newdealer-pricelist-inquiry',\r\n title: ,\r\n type: 'item',\r\n url: '/newdealer/pricelist/list'\r\n }\r\n ]\r\n }\r\n else if (!!!user?.isPriceListSubscriptionApproved ?? false) {\r\n return [\r\n {\r\n id: 'pricelist-list-pre-activation',\r\n title: ,\r\n type: 'item',\r\n url: '/subscriptions/pricelist/list'\r\n }\r\n ];\r\n } else {\r\n return [\r\n {\r\n id: 'pricelist-list-post-activation',\r\n title: ,\r\n type: 'item',\r\n url: '/subscriptions/pricelist/list'\r\n }\r\n ]\r\n }\r\n }\r\n\r\n return [\r\n {\r\n id: 'group-subscriptions',\r\n title: ,\r\n breadcrumbs: false,\r\n type: 'group',\r\n children: [\r\n {\r\n id: 'pricelists',\r\n title: ,\r\n type: 'collapse',\r\n icon: icons.DollarCircleOutlined,\r\n children: GetMyPriceListItems()\r\n }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nexport default GetSubscriptionMenuItems;","// project import\r\nimport { UserProfile } from 'types/auth';\r\nimport GetSubscriptions from './subscriptions';\r\n\r\n// ==============================|| MENU ITEMS ||============================== //\r\n\r\n// const menuItems: { items: NavItemType[] } = {\r\n// items: [GetSubscriptions]\r\n// };\r\n\r\ninterface GetNavigationMenuItemsProps {\r\n user: UserProfile\r\n}\r\n\r\n\r\nconst GetNavigationMenuItems = ({ user }: GetNavigationMenuItemsProps) => {\r\n return { items: GetSubscriptions(user) };\r\n}\r\n\r\nexport default GetNavigationMenuItems;\r\n","import { useEffect } from 'react';\r\nimport { useSelector } from 'react-redux';\r\n\r\n// material-ui\r\nimport { Box, Typography } from '@mui/material';\r\n\r\n// types\r\nimport { RootStateProps } from 'types/root';\r\n\r\n// project import\r\nimport NavGroup from './NavGroup';\r\nimport menuItem from 'menu-items';\r\n\r\nimport { UserProfile } from 'types/auth';\r\nimport GetNavigationMenuItems from 'menu-items';\r\n\r\n// ==============================|| DRAWER CONTENT - NAVIGATION ||============================== //\r\n\r\n// create a new interface for prop types\r\ninterface NavigationProps {\r\n user: UserProfile\r\n}\r\n\r\nconst Navigation = (user: NavigationProps) => {\r\n const menu = useSelector((state: RootStateProps) => state.menu);\r\n const { drawerOpen } = menu;\r\n\r\n const navMenu = GetNavigationMenuItems(user);\r\n\r\n const navGroups = navMenu.items.map((item) => {\r\n switch (item.type) {\r\n case 'group':\r\n return ;\r\n default:\r\n return (\r\n \r\n Fix - Navigation Group\r\n \r\n );\r\n }\r\n });\r\n\r\n return ul:first-of-type': { mt: 0 } }}>{navGroups};\r\n};\r\n\r\nexport default Navigation;\r\n","import { useSelector } from 'react-redux';\r\n\r\n// material-ui\r\nimport { useMediaQuery, useTheme } from '@mui/material';\r\n\r\n// project import\r\nimport NavCard from './NavCard';\r\nimport Navigation from './Navigation';\r\nimport SimpleBar from 'components/third-party/SimpleBar';\r\n\r\n// types\r\nimport { RootStateProps } from 'types/root';\r\nimport { UserProfile } from 'types/auth';\r\n\r\n// ==============================|| DRAWER CONTENT ||============================== //\r\n\r\ninterface DrawerContentProps {\r\n user: UserProfile\r\n}\r\n\r\nconst DrawerContent = ({ user }: DrawerContentProps) => {\r\n const theme = useTheme();\r\n const matchDownMD = useMediaQuery(theme.breakpoints.down('lg'));\r\n\r\n const menu = useSelector((state: RootStateProps) => state.menu);\r\n const { drawerOpen } = menu;\r\n // const env = process.env.REACT_APP_ENV?.toUpperCase();\r\n\r\n const props = { user: user };\r\n\r\n return (\r\n \r\n \r\n {drawerOpen && !matchDownMD && }\r\n \r\n );\r\n};\r\n\r\nexport default DrawerContent;\r\n","// material-ui\r\nimport { styled, Theme, CSSObject } from '@mui/material/styles';\r\nimport Drawer from '@mui/material/Drawer';\r\n\r\n// project import\r\nimport { drawerWidth } from 'config';\r\n\r\nconst openedMixin = (theme: Theme): CSSObject => ({\r\n width: drawerWidth,\r\n borderRight: `1px solid ${theme.palette.divider}`,\r\n transition: theme.transitions.create('width', {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.enteringScreen\r\n }),\r\n overflowX: 'hidden',\r\n boxShadow: theme.palette.mode === 'dark' ? theme.customShadows.z1 : 'none'\r\n});\r\n\r\nconst closedMixin = (theme: Theme): CSSObject => ({\r\n transition: theme.transitions.create('width', {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen\r\n }),\r\n overflowX: 'hidden',\r\n width: theme.spacing(7.5),\r\n borderRight: 'none',\r\n boxShadow: theme.customShadows.z1\r\n});\r\n\r\n// ==============================|| DRAWER - MINI STYLED ||============================== //\r\n\r\nconst MiniDrawerStyled = styled(Drawer, { shouldForwardProp: (prop) => prop !== 'open' })(({ theme, open }) => ({\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n whiteSpace: 'nowrap',\r\n boxSizing: 'border-box',\r\n ...(open && {\r\n ...openedMixin(theme),\r\n '& .MuiDrawer-paper': openedMixin(theme)\r\n }),\r\n ...(!open && {\r\n ...closedMixin(theme),\r\n '& .MuiDrawer-paper': closedMixin(theme)\r\n })\r\n}));\r\n\r\nexport default MiniDrawerStyled;\r\n","import { useMemo } from 'react';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Box, Drawer, useMediaQuery } from '@mui/material';\r\n\r\n// project import\r\nimport DrawerHeader from './DrawerHeader';\r\nimport DrawerContent from './DrawerContent';\r\nimport MiniDrawerStyled from './MiniDrawerStyled';\r\nimport { drawerWidth } from 'config';\r\nimport { UserProfile } from 'types/auth';\r\n\r\n// ==============================|| MAIN LAYOUT - DRAWER ||============================== //\r\n\r\ninterface Props {\r\n open: boolean;\r\n window?: () => Window;\r\n handleDrawerToggle?: () => void;\r\n user: UserProfile;\r\n}\r\n\r\nconst MainDrawer = ({ open, handleDrawerToggle, window, user }: Props) => {\r\n const theme = useTheme();\r\n const matchDownMD = useMediaQuery(theme.breakpoints.down('lg'));\r\n\r\n // responsive drawer container\r\n const container = window !== undefined ? () => window().document.body : undefined;\r\n\r\n const props = { user: user };\r\n\r\n // header content\r\n const drawerContent = useMemo(() => , []);\r\n const drawerHeader = useMemo(() => , [open]);\r\n\r\n return (\r\n \r\n {!matchDownMD ? (\r\n \r\n {drawerHeader}\r\n {drawerContent}\r\n \r\n ) : (\r\n \r\n {drawerHeader}\r\n {drawerContent}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MainDrawer;\r\n","// material-ui\r\nimport { styled } from '@mui/material/styles';\r\nimport AppBar, { AppBarProps as MuiAppBarProps } from '@mui/material/AppBar';\r\n\r\n// project import\r\nimport { drawerWidth } from 'config';\r\n\r\n// ==============================|| HEADER - APP BAR STYLED ||============================== //\r\n\r\ninterface Props extends MuiAppBarProps {\r\n open?: boolean;\r\n}\r\n\r\nconst AppBarStyled = styled(AppBar, { shouldForwardProp: (prop) => prop !== 'open' })(({ theme, open }) => ({\r\n zIndex: theme.zIndex.drawer + 1,\r\n transition: theme.transitions.create(['width', 'margin'], {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen\r\n }),\r\n ...(!open && {\r\n width: `calc(100% - ${theme.spacing(7.5)})`\r\n }),\r\n ...(open && {\r\n marginLeft: drawerWidth,\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n transition: theme.transitions.create(['width', 'margin'], {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.enteringScreen\r\n })\r\n })\r\n}));\r\n\r\nexport default AppBarStyled;\r\n","// material-ui\r\nimport { Box } from '@mui/material';\r\n\r\n// ==============================|| HEADER CONTENT - SEARCH ||============================== //\r\n\r\nconst Search = () => (\r\n \r\n {/* \r\n \r\n \r\n \r\n }\r\n aria-describedby=\"header-search-text\"\r\n inputProps={{\r\n 'aria-label': 'weight'\r\n }}\r\n placeholder=\"Ctrl + K\"\r\n />\r\n */}\r\n \r\n);\r\n\r\nexport default Search;\r\n","import { ReactNode } from 'react';\r\n\r\n// material-ui\r\nimport { styled, useTheme, Theme } from '@mui/material/styles';\r\nimport MuiAvatar from '@mui/material/Avatar';\r\nimport { AvatarProps } from '@mui/material';\r\n\r\n// project import\r\nimport getColors from 'utils/getColors';\r\n\r\n// types\r\nimport { AvatarTypeProps, ColorProps, ExtendedStyleProps, SizeProps } from 'types/extended';\r\n\r\n// ==============================|| AVATAR - COLOR STYLE ||============================== //\r\n\r\ninterface AvatarStyleProps extends ExtendedStyleProps {\r\n variant?: AvatarProps['variant'];\r\n type?: AvatarTypeProps;\r\n}\r\n\r\nfunction getColorStyle({ variant, theme, color, type }: AvatarStyleProps) {\r\n const colors = getColors(theme, color);\r\n const { lighter, light, main, contrastText } = colors;\r\n\r\n switch (type) {\r\n case 'filled':\r\n return {\r\n color: contrastText,\r\n backgroundColor: main\r\n };\r\n case 'outlined':\r\n return {\r\n color: main,\r\n border: '1px solid',\r\n borderColor: main,\r\n backgroundColor: 'transparent'\r\n };\r\n case 'combined':\r\n return {\r\n color: main,\r\n border: '1px solid',\r\n borderColor: light,\r\n backgroundColor: lighter\r\n };\r\n default:\r\n return {\r\n color: main,\r\n backgroundColor: lighter\r\n };\r\n }\r\n}\r\n\r\n// ==============================|| AVATAR - SIZE STYLE ||============================== //\r\n\r\nfunction getSizeStyle(size?: SizeProps) {\r\n switch (size) {\r\n case 'badge':\r\n return {\r\n border: '2px solid',\r\n fontSize: '0.675rem',\r\n width: 20,\r\n height: 20\r\n };\r\n case 'xs':\r\n return {\r\n fontSize: '0.75rem',\r\n width: 24,\r\n height: 24\r\n };\r\n case 'sm':\r\n return {\r\n fontSize: '0.875rem',\r\n width: 32,\r\n height: 32\r\n };\r\n case 'lg':\r\n return {\r\n fontSize: '1.2rem',\r\n width: 52,\r\n height: 52\r\n };\r\n case 'xl':\r\n return {\r\n fontSize: '1.5rem',\r\n width: 64,\r\n height: 64\r\n };\r\n case 'md':\r\n default:\r\n return {\r\n fontSize: '1rem',\r\n width: 40,\r\n height: 40\r\n };\r\n }\r\n}\r\n\r\n// ==============================|| STYLED - AVATAR ||============================== //\r\n\r\ninterface StyleProps {\r\n color: ColorProps;\r\n variant?: AvatarProps['variant'];\r\n type?: AvatarTypeProps;\r\n theme: Theme;\r\n size?: SizeProps;\r\n}\r\n\r\nconst AvatarStyle = styled(MuiAvatar, { shouldForwardProp: (prop) => prop !== 'color' && prop !== 'type' && prop !== 'size' })(\r\n ({ theme, variant, color, type, size }: StyleProps) => ({\r\n ...getSizeStyle(size),\r\n ...getColorStyle({ variant, theme, color, type }),\r\n ...(size === 'badge' && {\r\n borderColor: theme.palette.background.default\r\n })\r\n })\r\n);\r\n\r\n// ==============================|| EXTENDED - AVATAR ||============================== //\r\n\r\nexport interface Props extends AvatarProps {\r\n color?: ColorProps;\r\n children?: ReactNode | string;\r\n type?: AvatarTypeProps;\r\n size?: SizeProps;\r\n}\r\n\r\nexport default function Avatar({ variant = 'circular', children, color = 'primary', type, size = 'md', ...others }: Props) {\r\n const theme = useTheme();\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n","// material-ui\r\nimport { List, ListItemButton, ListItemIcon, ListItemText } from '@mui/material';\r\n\r\n// assets\r\nimport { LogoutOutlined } from '@ant-design/icons';\r\nimport useAuth from 'hooks/useAuth';\r\n\r\n// ==============================|| HEADER PROFILE - PROFILE TAB ||============================== //\r\n\r\ninterface Props {\r\n handleLogout: () => void;\r\n}\r\n\r\nconst ProfileTab = ({ handleLogout }: Props) => {\r\n const { user } = useAuth();\r\n const toTitleCase = (str: string) => {\r\n try {\r\n return str.trim().toLowerCase().split(' ').map(function (word) {\r\n return word.replace(word[0], word[0].toUpperCase());\r\n }).join(' ');\r\n }\r\n catch {\r\n return str;\r\n }\r\n }\r\n\r\n if (!!!user)\r\n return (<>);\r\n else\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\nexport default ProfileTab;\r\n","import { useState } from 'react';\r\n\r\n// material-ui\r\nimport { List, ListItemButton, ListItemText } from '@mui/material';\r\n\r\n// ==============================|| HEADER PROFILE - SETTING TAB ||============================== //\r\n\r\nconst SettingTab = () => {\r\n const [selectedIndex, setSelectedIndex] = useState(0);\r\n const handleListItemClick = (event: React.MouseEvent, index: number) => {\r\n setSelectedIndex(index);\r\n };\r\n\r\n return (\r\n \r\n ) => handleListItemClick(event, 0)}>\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SettingTab;\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAIAAAAlC+aJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAANGSURBVGhD7Zo7aBRBGMdnb2/v4p1PNIJWklIkxEKbdNYhgpZiYSNiYWEQJUGEgKD4QNLE3i6FVQqxEYUY0SIhPvCRRAUNRgN5+Lh4+xg3t3+iyd3ezjczu3vg/Zr9fUXC/Hdm9mZm1+BDe1isvP8AYYxvbTMWplFoIoNrImhvvU+iAeJALYC1EZIeCgGszcz+AU8PqQCZHMsWmb2EMlXoAfyme2Xm/ESZNvQADdP0ALVJ3AAIBzBbIMlg5iBRiPcAxzUZ3DIkCrGlhD9xqUO/4wozjBWZfVqpGRu5AdGKQAAzz9zfcBH2X4UErAYI0B1DYAiJt94srG99NZ09LLcJrgN9TyEjy9ovwetz4CSzNsCV0Reg4zJEhIOnIcpoChA5cqrxx5IO9PVASugIIHH7A3R0QrMH0iYkgL9ZEWTvBYgcnecgsoQEcIS3WvltEEk8XGUJCcBV/29iNCdxgvAtNdadygFKsxBJCA0wFv8e8q2iHOD1TYgcI9cgsjTnQNroCDB2HkJFx+6s2QMBEp2gaXOsrwfGKIuix7cgymgcQpyN90HrMzrAuAtXRluAOzPXe9+O9g4dQh1C12BP1/jHU1PPUCuj5x1Z77v1Deo/+iBrVg7zKudCHje6b59dKf9huH03TAHVAC43L04+QVGLiVc2rBZ397XlMssoovDXQtWrCaUhtOwV6rc+kiMvphfdHSii0L8W6p96CFPg2MsJmBTyAarHvTRdEzMwOiEBzIijP42tD4jOYBUgawkJ4JYgDYJhMfsXfC0yQ0j77Q+o1wk89FFGDsDjfFPjcXJ7yH/QNxnL7Q/ofv4JJozMEGooaAEezR+HxcbA10GYGLQA9+bOwGLj/pfDMDH+syGUAIUM7QuYhgvgcAsmBi1A1qC8MJaizPOcVd6Qi0ELkDG0bQXrMG/vhAlACLDg7Cp7tVdUeimY32ECEAIsOaI7DxX8DVpLpva6rSaEANst8u+8BB43YWIQAhTNedNwUMQGdZoRJzGLfRK7PAsTgxDAY1mb51HERoxDaMkhPN2ksYg/NYQA3+w2WJx4zCx5hA+CCQEcVoRRMImT0l9KDM+dQCEAIUBry2eYMK38Td4gnw8UTeFvghn7A4IX0zVBjtCtAAAAAElFTkSuQmCC\"","import { useRef, useState, ReactNode, SyntheticEvent } from 'react';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Box, ButtonBase, CardContent, ClickAwayListener, Grid, Paper, Popper, Stack, Tab, Tabs, Tooltip, Typography } from '@mui/material';\r\n\r\n// project import\r\nimport Avatar from 'components/@extended/Avatar';\r\nimport MainCard from 'components/MainCard';\r\nimport Transitions from 'components/@extended/Transitions';\r\nimport IconButton from 'components/@extended/IconButton';\r\nimport useAuth from 'hooks/useAuth';\r\nimport ProfileTab from './ProfileTab';\r\nimport SettingTab from './SettingTab';\r\n\r\n// assets\r\nimport avatar1 from 'assets/images/users/avatar-1.png';\r\nimport { LogoutOutlined, SettingOutlined, UserOutlined } from '@ant-design/icons';\r\n\r\n// types\r\ninterface TabPanelProps {\r\n children?: ReactNode;\r\n dir?: string;\r\n index: number;\r\n value: number;\r\n}\r\n\r\n// tab panel wrapper\r\nfunction TabPanel(props: TabPanelProps) {\r\n const { children, value, index, ...other } = props;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nfunction a11yProps(index: number) {\r\n return {\r\n id: `profile-tab-${index}`,\r\n 'aria-controls': `profile-tabpanel-${index}`\r\n };\r\n}\r\n\r\n// ==============================|| HEADER CONTENT - PROFILE ||============================== //\r\n\r\nconst Profile = () => {\r\n const theme = useTheme();\r\n\r\n let env = process.env.REACT_APP_ENV?.toUpperCase();\r\n\r\n if (env === 'PRODUCTION') env = 'PROD';\r\n else if (env === 'LOCAL') env = 'LOCAL';\r\n else if (env === 'DEV') env = 'DEV';\r\n else env = 'QA';\r\n\r\n const { logout, user } = useAuth();\r\n const handleLogout = async () => {\r\n try {\r\n await logout();\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n\r\n const anchorRef = useRef(null);\r\n const [open, setOpen] = useState(false);\r\n const handleToggle = () => {\r\n setOpen((prevOpen) => !prevOpen);\r\n };\r\n\r\n const handleClose = (event: MouseEvent | TouchEvent) => {\r\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\r\n return;\r\n }\r\n setOpen(false);\r\n };\r\n\r\n const [value, setValue] = useState(0);\r\n\r\n const handleChange = (event: SyntheticEvent, newValue: number) => {\r\n setValue(newValue);\r\n };\r\n\r\n const iconBackColorOpen = theme.palette.mode === 'dark' ? 'grey.200' : 'grey.300';\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {({ TransitionProps }) => (\r\n \r\n {open && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {user?.name}\r\n {user && (\r\n \r\n User # {user?.userId}\r\n \r\n )}\r\n \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 && (\r\n <>\r\n \r\n \r\n }\r\n label=\"Profile\"\r\n {...a11yProps(0)}\r\n />\r\n }\r\n label=\"Setting\"\r\n {...a11yProps(1)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Name: {user?.name}\r\n
\r\n {env !== 'PROD' && (\r\n <>\r\n Given Name: {user?.givenName}\r\n
\r\n User ID: {user?.userId}\r\n
\r\n DealerId: {user?.dealerId}\r\n
\r\n DmsDealerId: {user?.dmsDealerId}\r\n
\r\n Subscription ID: {user?.priceListSubscriptionId}\r\n
\r\n \r\n )\r\n }\r\n DMS: {user?.dmsType}\r\n
\r\n DMS Company: {user?.dmsCompany}\r\n
\r\n Status: {user?.isPriceListSubscriptionApproved ? 'Approved' : 'Pending Approval'}\r\n
\r\n New Dealer: {user?.newDealerStatus !== 'C' ? 'Yes' : 'No'}\r\n
\r\n Grace Period: {user?.inGracePeriod ? 'Yes' : 'No'}\r\n
\r\n Grace Period Days Remaining: {user?.gracePeriodDays}\r\n
\r\n Category: {user?.isLegacyDealer ? 'Legacy' : 'New'}\r\n
\r\n
\r\n \r\n )}\r\n
\r\n
\r\n \r\n )}\r\n
\r\n )}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Profile;\r\n","export default __webpack_public_path__ + \"static/media/default.bbe7f724.svg\";","export default __webpack_public_path__ + \"static/media/rtl.465b5a8e.svg\";","export default __webpack_public_path__ + \"static/media/mini-menu.5435ab74.svg\";","import { useState, ChangeEvent } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { CardMedia, FormControlLabel, Grid, Radio, RadioGroup, Stack, Typography } from '@mui/material';\r\n\r\n// project import\r\nimport MainCard from 'components/MainCard';\r\nimport useConfig from 'hooks/useConfig';\r\nimport { openDrawer } from 'store/reducers/menu';\r\n\r\n// assets\r\nimport defaultLayout from 'assets/images/customization/default.svg';\r\nimport rtlLayout from 'assets/images/customization/rtl.svg';\r\nimport miniMenu from 'assets/images/customization/mini-menu.svg';\r\n\r\n// types\r\nimport { RootStateProps } from 'types/root';\r\n\r\n// ==============================|| CUSTOMIZATION - LAYOUT ||============================== //\r\n\r\nconst ThemeLayout = () => {\r\n const theme = useTheme();\r\n const dispatch = useDispatch();\r\n\r\n const { miniDrawer, themeDirection, onChangeDirection, onChangeMiniDrawer } = useConfig();\r\n const { drawerOpen } = useSelector((state: RootStateProps) => state.menu);\r\n\r\n let initialTheme = 'default';\r\n if (miniDrawer === true) initialTheme = 'mini';\r\n if (themeDirection === 'rtl') initialTheme = 'rtl';\r\n\r\n const [value, setValue] = useState(initialTheme);\r\n const handleRadioChange = (event: ChangeEvent) => {\r\n const newValue = event.target.value;\r\n setValue(newValue);\r\n if (newValue === 'default') {\r\n onChangeDirection('ltr');\r\n if (!drawerOpen) {\r\n dispatch(openDrawer({ drawerOpen: true }));\r\n }\r\n }\r\n if (newValue === 'mini') {\r\n onChangeMiniDrawer(true);\r\n if (drawerOpen) {\r\n dispatch(openDrawer({ drawerOpen: false }));\r\n }\r\n }\r\n if (newValue === 'rtl') {\r\n onChangeDirection('rtl');\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n }\r\n sx={{ display: 'flex', '& .MuiFormControlLabel-label': { flex: 1 } }}\r\n label={\r\n \r\n \r\n \r\n Default\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n }\r\n sx={{ display: 'flex', '& .MuiFormControlLabel-label': { flex: 1 } }}\r\n label={\r\n \r\n \r\n \r\n Mini Drawer\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n }\r\n sx={{ display: 'flex', '& .MuiFormControlLabel-label': { flex: 1 } }}\r\n label={\r\n \r\n \r\n \r\n RTL\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ThemeLayout;\r\n","export default __webpack_public_path__ + \"static/media/dark.861bdbf5.svg\";","import { ChangeEvent } from 'react';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { CardMedia, FormControlLabel, Grid, Radio, RadioGroup, Stack, Typography } from '@mui/material';\r\n\r\n// project import\r\nimport MainCard from 'components/MainCard';\r\nimport useConfig from 'hooks/useConfig';\r\n\r\n// assets\r\nimport defaultLayout from 'assets/images/customization/default.svg';\r\nimport darkLayout from 'assets/images/customization/dark.svg';\r\n\r\nimport { ThemeMode } from 'types/config';\r\n\r\n// ==============================|| CUSTOMIZATION - MODE ||============================== //\r\n\r\nconst ThemeModeLayout = () => {\r\n const theme = useTheme();\r\n\r\n const { mode, onChangeMode } = useConfig();\r\n\r\n const handleModeChange = (event: ChangeEvent) => {\r\n onChangeMode(event.target.value as ThemeMode);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n }\r\n sx={{ display: 'flex', '& .MuiFormControlLabel-label': { flex: 1 } }}\r\n label={\r\n \r\n \r\n \r\n Light\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n }\r\n sx={{ display: 'flex', '& .MuiFormControlLabel-label': { flex: 1 } }}\r\n label={\r\n \r\n \r\n \r\n Dark\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ThemeModeLayout;\r\n","export default __webpack_public_path__ + \"static/media/theme-color.496e2bf9.svg\";","import { ChangeEvent } from 'react';\r\n\r\n// material-ui\r\nimport { alpha, useTheme } from '@mui/material/styles';\r\nimport { CardMedia, FormControlLabel, Grid, Radio, RadioGroup, Stack, Typography } from '@mui/material';\r\n\r\n// project import\r\nimport MainCard from 'components/MainCard';\r\nimport useConfig from 'hooks/useConfig';\r\n\r\n// third-party\r\nimport { presetDarkPalettes, presetPalettes, PalettesProps } from '@ant-design/colors';\r\n\r\n// assets\r\nimport colorLayout from 'assets/images/customization/theme-color.svg';\r\n\r\nimport { PresetColor } from 'types/config';\r\n\r\ninterface ColorProps {\r\n id: PresetColor;\r\n primary: string;\r\n lighter: string;\r\n label: string;\r\n shadow: string;\r\n}\r\n\r\n// ==============================|| CUSTOMIZATION - COLOR SCHEME ||============================== //\r\n\r\nconst ColorScheme = () => {\r\n const theme = useTheme();\r\n\r\n const { mode, presetColor, onChangePresetColor } = useConfig();\r\n\r\n const colors: PalettesProps = mode === 'dark' ? presetDarkPalettes : presetPalettes;\r\n const { blue } = colors;\r\n const colorOptions: ColorProps[] = [\r\n {\r\n id: 'default',\r\n primary: blue[5],\r\n lighter: blue[0],\r\n label: 'Default',\r\n shadow: `0 0 0 2px ${alpha(blue[5], 0.2)}`\r\n },\r\n {\r\n id: 'theme1',\r\n primary: mode === 'dark' ? '#305bdd' : '#3366FF',\r\n lighter: mode === 'dark' ? '#1c2134' : '#D6E4FF',\r\n label: 'Theme 1',\r\n shadow: `0 0 0 2px ${alpha(mode === 'dark' ? '#305bdd' : '#3366FF', 0.2)}`\r\n },\r\n {\r\n id: 'theme2',\r\n primary: mode === 'dark' ? '#655ac8' : '#7265E6',\r\n lighter: mode === 'dark' ? '#222130' : '#EEEDFC',\r\n label: 'Theme 2',\r\n shadow: `0 0 0 2px ${alpha(mode === 'dark' ? '#655ac8' : '#7265E6', 0.2)}`\r\n },\r\n {\r\n id: 'theme3',\r\n primary: mode === 'dark' ? '#0a7d3e' : '#068e44',\r\n lighter: mode === 'dark' ? '#1a231f' : '#E6F3EC',\r\n label: 'Theme 3',\r\n shadow: `0 0 0 2px ${alpha(mode === 'dark' ? '#0a7d3e' : '#068e44', 0.2)}`\r\n },\r\n {\r\n id: 'theme4',\r\n primary: mode === 'dark' ? '#5d7dcb' : '#3c64d0',\r\n lighter: mode === 'dark' ? '#1d212d' : '#f0f6ff',\r\n label: 'Theme 4',\r\n shadow: `0 0 0 2px ${alpha(mode === 'dark' ? '#5d7dcb' : '#3c64d0', 0.2)}`\r\n },\r\n {\r\n id: 'theme5',\r\n primary: mode === 'dark' ? '#d26415' : '#f27013',\r\n lighter: mode === 'dark' ? '#32221a' : '#fff4e6',\r\n label: 'Theme 5',\r\n shadow: `0 0 0 2px ${alpha(mode === 'dark' ? '#d26415' : '#f27013', 0.2)}`\r\n },\r\n {\r\n id: 'theme6',\r\n primary: mode === 'dark' ? '#288d99' : '#2aa1af',\r\n lighter: mode === 'dark' ? '#1c2628' : '#e1f0ef',\r\n label: 'Theme 6',\r\n shadow: `0 0 0 2px ${alpha(mode === 'dark' ? '#288d99' : '#2aa1af', 0.2)}`\r\n },\r\n {\r\n id: 'theme7',\r\n primary: mode === 'dark' ? '#05934c' : '#00a854',\r\n lighter: mode === 'dark' ? '#1a2721' : '#d1e8d99c',\r\n label: 'Theme 7',\r\n shadow: `0 0 0 2px ${alpha(mode === 'dark' ? '#05934c' : '#00a854', 0.2)}`\r\n },\r\n {\r\n id: 'theme8',\r\n primary: mode === 'dark' ? '#058478' : '#009688',\r\n lighter: mode === 'dark' ? '#1a2524' : '#c1d6d066',\r\n label: 'Theme 8',\r\n shadow: `0 0 0 2px ${alpha(mode === 'dark' ? '#058478' : '#009688', 0.2)}`\r\n }\r\n ];\r\n\r\n const handlePresetColorChange = (event: ChangeEvent) => {\r\n onChangePresetColor(event.target.value as PresetColor);\r\n };\r\n\r\n return (\r\n \r\n \r\n {colorOptions.map((color, index) => (\r\n \r\n }\r\n sx={{ display: 'flex', '& .MuiFormControlLabel-label': { flex: 1 } }}\r\n label={\r\n \r\n \r\n \r\n {color.label}\r\n \r\n \r\n }\r\n />\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ColorScheme;\r\n","export default __webpack_public_path__ + \"static/media/container.2f3c6495.svg\";","// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { CardMedia, FormControlLabel, Grid, Radio, RadioGroup, Stack, Typography } from '@mui/material';\r\n\r\n// project import\r\nimport MainCard from 'components/MainCard';\r\nimport useConfig from 'hooks/useConfig';\r\n\r\n// assets\r\nimport defaultLayout from 'assets/images/customization/default.svg';\r\nimport containerLayout from 'assets/images/customization/container.svg';\r\n\r\n// ==============================|| CUSTOMIZATION - CONTAINER ||============================== //\r\n\r\nconst ThemeWidth = () => {\r\n const theme = useTheme();\r\n\r\n const { container, onChangeContainer } = useConfig();\r\n\r\n const handleContainerChange = () => {\r\n onChangeContainer();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n }\r\n sx={{ display: 'flex', '& .MuiFormControlLabel-label': { flex: 1 } }}\r\n label={\r\n \r\n \r\n \r\n Fluid\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n }\r\n sx={{ display: 'flex', '& .MuiFormControlLabel-label': { flex: 1 } }}\r\n label={\r\n \r\n \r\n \r\n Container\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ThemeWidth;\r\n","import { ChangeEvent } from 'react';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Box, FormControlLabel, Grid, Radio, RadioGroup, Stack, Typography } from '@mui/material';\r\n\r\n// project import\r\nimport MainCard from 'components/MainCard';\r\nimport useConfig from 'hooks/useConfig';\r\n\r\nimport { FontFamily } from 'types/config';\r\n\r\n// ==============================|| CUSTOMIZATION - FONT FAMILY ||============================== //\r\n\r\nconst ThemeFont = () => {\r\n const theme = useTheme();\r\n\r\n const { fontFamily, onChangeFontFamily } = useConfig();\r\n\r\n const handleFontChange = (event: ChangeEvent) => {\r\n onChangeFontFamily(event.target.value as FontFamily);\r\n };\r\n\r\n const fonts = [\r\n {\r\n id: 'inter',\r\n value: `'Inter', sans-serif`,\r\n label: 'Inter'\r\n },\r\n {\r\n id: 'roboto',\r\n value: `'Roboto', sans-serif`,\r\n label: 'Roboto'\r\n },\r\n {\r\n id: 'poppins',\r\n value: `'Poppins', sans-serif`,\r\n label: 'Poppins'\r\n },\r\n {\r\n id: 'public-sans',\r\n value: `'Public Sans', sans-serif`,\r\n label: 'Public Sans'\r\n },\r\n {\r\n id: 'quicksand',\r\n value: `'Quicksand', sans-serif`,\r\n label: 'Quicksand'\r\n }\r\n ];\r\n\r\n return (\r\n \r\n \r\n {fonts.map((item, index) => (\r\n \r\n }\r\n sx={{ display: 'flex', '& .MuiFormControlLabel-label': { flex: 1 } }}\r\n label={\r\n \r\n \r\n \r\n \r\n Aa\r\n \r\n \r\n {item.label}\r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ThemeFont;\r\n","// project import\r\nimport useAuth from 'hooks/useAuth';\r\n\r\n// material-ui\r\nimport { Box, Dialog, DialogTitle, IconButton, Theme, useTheme, Typography } from '@mui/material';\r\n\r\n// assets\r\nimport CancelTwoToneIcon from '@mui/icons-material/CancelTwoTone';\r\n\r\n\r\n// ==============================|| HEADER PROFILE - PROFILE TAB ||============================== //\r\n\r\ninterface Props {\r\n open: boolean,\r\n onClose(): void,\r\n}\r\n\r\nconst ContactDialog = ({ open, onClose }: Props) => {\r\n const { user } = useAuth();\r\n const theme = useTheme();\r\n\r\n if (!!!user)\r\n return (<>);\r\n else\r\n return (\r\n \r\n Contact {user?.dmsCompany}\r\n \r\n onClose()} size=\"medium\">\r\n \r\n \r\n \r\n \r\n Please contact {user?.dmsCompany} at {user?.dmsCompany === 'Ideal' ? 'PriceLists@IdealComputerSystems.com' : 'Pricing@cSystemsSoftware.com'} \r\n if you are unsure which price list you need or if you do not see the price list you would like to order.
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ContactDialog;\r\n","import { useMemo, useState } from 'react';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Accordion, AccordionDetails, AccordionSummary, Box, Dialog, DialogTitle, Drawer, Stack, Typography } from '@mui/material';\r\n\r\n// project import\r\nimport ThemeLayout from './ThemeLayout';\r\nimport ThemeMode from './ThemeMode';\r\nimport ColorScheme from './ColorScheme';\r\nimport ThemeWidth from './ThemeWidth';\r\nimport ThemeFont from './ThemeFont';\r\nimport MainCard from 'components/MainCard';\r\nimport IconButton from 'components/@extended/IconButton';\r\nimport SimpleBar from 'components/third-party/SimpleBar';\r\nimport ContactDialog from 'layout/MainLayout/Header/HeaderContent/Contact/ContactDialog';\r\nimport useConfig from 'hooks/useConfig';\r\nimport useAuth from 'hooks/useAuth';\r\n\r\n// assets\r\nimport {\r\n LayoutOutlined,\r\n HighlightOutlined,\r\n BorderInnerOutlined,\r\n ContactsOutlined,\r\n SettingOutlined,\r\n CloseCircleOutlined,\r\n FontColorsOutlined\r\n} from '@ant-design/icons';\r\n\r\n// ==============================|| HEADER CONTENT - CUSTOMIZATION ||============================== //\r\n\r\nconst Customization = () => {\r\n const theme = useTheme();\r\n const { container, fontFamily, mode, presetColor, miniDrawer, themeDirection } = useConfig();\r\n\r\n // eslint-disable-next-line\r\n const themeLayout = useMemo(() => , [miniDrawer, themeDirection]);\r\n // eslint-disable-next-line\r\n const themeMode = useMemo(() => , [mode]);\r\n // eslint-disable-next-line\r\n const themeColor = useMemo(() => , [presetColor]);\r\n // eslint-disable-next-line\r\n const themeWidth = useMemo(() => , [container]);\r\n // eslint-disable-next-line\r\n const themeFont = useMemo(() => , [fontFamily]);\r\n\r\n const [openSettings, setOpenSettings] = useState(false);\r\n const [openContact, setOpenContact] = useState(false);\r\n\r\n const handleShowSettings = () => {\r\n setOpenSettings(!!!openSettings);\r\n };\r\n\r\n const handleShowContact = () => {\r\n setOpenContact(!!!openContact);\r\n }\r\n\r\n const { user } = useAuth();\r\n\r\n const iconBackColorOpen = theme.palette.mode === 'dark' ? 'grey.200' : 'grey.300';\r\n const iconBackColor = theme.palette.mode === 'dark' ? 'background.default' : 'grey.100';\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 {openSettings && (\r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Theme Layout\r\n \r\n \r\n Choose your layout\r\n \r\n \r\n \r\n \r\n {themeLayout}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Theme Mode\r\n \r\n \r\n Choose light or dark mode\r\n \r\n \r\n \r\n \r\n {themeMode}\r\n \r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Color Scheme\r\n \r\n \r\n Choose your primary theme color\r\n \r\n \r\n \r\n \r\n {themeColor}\r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Layout Width\r\n \r\n \r\n Choose fluid or container layout\r\n \r\n \r\n \r\n \r\n {themeWidth}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Font Family\r\n \r\n \r\n Choose your font family.\r\n \r\n \r\n \r\n \r\n {themeFont}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n {openContact && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Customization;\r\n","import { useRef, useState } from 'react';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Box, ClickAwayListener, Grid, List, ListItemButton, ListItemText, Paper, Popper, Typography, useMediaQuery } from '@mui/material';\r\n\r\n// project import\r\nimport IconButton from 'components/@extended/IconButton';\r\nimport Transitions from 'components/@extended/Transitions';\r\nimport useConfig from 'hooks/useConfig';\r\n\r\n// assets\r\nimport { TranslationOutlined } from '@ant-design/icons';\r\nimport { I18n } from 'types/config';\r\n\r\n// ==============================|| HEADER CONTENT - LOCALIZATION ||============================== //\r\n\r\nconst Localization = () => {\r\n const theme = useTheme();\r\n const matchesXs = useMediaQuery(theme.breakpoints.down('md'));\r\n\r\n const { i18n, onChangeLocalization } = useConfig();\r\n\r\n const anchorRef = useRef(null);\r\n const [open, setOpen] = useState(false);\r\n const handleToggle = () => {\r\n setOpen((prevOpen) => !prevOpen);\r\n };\r\n\r\n const handleClose = (event: MouseEvent | TouchEvent) => {\r\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\r\n return;\r\n }\r\n setOpen(false);\r\n };\r\n\r\n const handleListItemClick = (lang: I18n) => {\r\n onChangeLocalization(lang);\r\n setOpen(false);\r\n };\r\n\r\n const iconBackColorOpen = theme.palette.mode === 'dark' ? 'grey.200' : 'grey.300';\r\n const iconBackColor = theme.palette.mode === 'dark' ? 'background.default' : 'grey.100';\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {({ TransitionProps }) => (\r\n \r\n \r\n \r\n \r\n handleListItemClick('en')}>\r\n \r\n English\r\n \r\n (UK)\r\n \r\n \r\n }\r\n />\r\n \r\n handleListItemClick('fr')}>\r\n \r\n français\r\n \r\n (French)\r\n \r\n \r\n }\r\n />\r\n \r\n handleListItemClick('ro')}>\r\n \r\n Română\r\n \r\n (Romanian)\r\n \r\n \r\n }\r\n />\r\n \r\n handleListItemClick('zh')}>\r\n \r\n 中国人\r\n \r\n (Chinese)\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Localization;\r\n","import { useEffect, useRef, useState } from 'react';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { AppBar, Box, ClickAwayListener, IconButton, Paper, Popper, Toolbar } from '@mui/material';\r\n\r\n// project import\r\nimport Search from './Search';\r\nimport Profile from './Profile';\r\nimport Localization from './Localization';\r\nimport Transitions from 'components/@extended/Transitions';\r\n\r\n// assets\r\nimport { MoreOutlined } from '@ant-design/icons';\r\n\r\n// ==============================|| HEADER CONTENT - MOBILE ||============================== //\r\n\r\nconst MobileSection = () => {\r\n const theme = useTheme();\r\n\r\n const [open, setOpen] = useState(false);\r\n const anchorRef = useRef(null);\r\n\r\n const handleToggle = () => {\r\n setOpen((prevOpen) => !prevOpen);\r\n };\r\n\r\n const handleClose = (event: MouseEvent | TouchEvent) => {\r\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\r\n return;\r\n }\r\n\r\n setOpen(false);\r\n };\r\n\r\n const prevOpen = useRef(open);\r\n useEffect(() => {\r\n if (prevOpen.current === true && open === false) {\r\n anchorRef.current.focus();\r\n }\r\n\r\n prevOpen.current = open;\r\n }, [open]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {({ TransitionProps }) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default MobileSection;\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\nimport { Box, useMediaQuery } from '@mui/material';\r\n\r\n// project import\r\nimport Search from './Search';\r\nimport Profile from './Profile';\r\nimport Customization from './Customization';\r\nimport MobileSection from './MobileSection';\r\n\r\n// ==============================|| HEADER - CONTENT ||============================== //\r\n\r\nconst HeaderContent = () => {\r\n const matchesXs = useMediaQuery((theme: Theme) => theme.breakpoints.down('md'));\r\n\r\n return (\r\n <>\r\n {!matchesXs && }\r\n {matchesXs && }\r\n\r\n \r\n {!matchesXs && }\r\n {matchesXs && }\r\n \r\n );\r\n};\r\n\r\nexport default HeaderContent;\r\n","import { ReactNode, useMemo } from 'react';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { AppBar, Toolbar, useMediaQuery, AppBarProps } from '@mui/material';\r\n\r\n// project import\r\nimport AppBarStyled from './AppBarStyled';\r\nimport HeaderContent from './HeaderContent';\r\nimport IconButton from 'components/@extended/IconButton';\r\n\r\n// assets\r\nimport { MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons';\r\n\r\n// ==============================|| MAIN LAYOUT - HEADER ||============================== //\r\n\r\ninterface Props {\r\n open: boolean;\r\n handleDrawerToggle?: () => void;\r\n}\r\n\r\nconst Header = ({ open, handleDrawerToggle }: Props) => {\r\n const theme = useTheme();\r\n const matchDownMD = useMediaQuery(theme.breakpoints.down('lg'));\r\n\r\n // header content\r\n const headerContent = useMemo(() => , []);\r\n\r\n const iconBackColor = theme.palette.mode === 'dark' ? 'grey.200' : 'grey.100';\r\n const iconBackColorOpen = theme.palette.mode === 'dark' ? 'background.default' : 'grey.200';\r\n\r\n // common header\r\n const mainHeader: ReactNode = (\r\n \r\n \r\n {!open ? : }\r\n \r\n {headerContent}\r\n \r\n );\r\n\r\n // app-bar params\r\n const appBar: AppBarProps = {\r\n position: 'fixed',\r\n color: 'inherit',\r\n elevation: 0,\r\n sx: {\r\n borderBottom: `1px solid ${theme.palette.divider}`\r\n // boxShadow: theme.customShadows.z1\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {!matchDownMD ? (\r\n \r\n {mainHeader}\r\n \r\n ) : (\r\n {mainHeader}\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Header;\r\n","// ---------------------------------------------------\r\n// Breadcrumbs Removed\r\n// ---------------------------------------------------\r\n\r\nimport { CSSProperties, ReactElement, useEffect, useState } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\n// material-ui\r\n// import MuiBreadcrumbs from '@mui/material/Breadcrumbs'; Per Story 109207 - diverting from standard portals and removing breadcrumbs\r\n// import { useTheme } from '@mui/material/styles';\r\nimport { Divider, Grid, Typography } from '@mui/material';\r\n\r\n// project imports\r\nimport MainCard from '../MainCard';\r\n\r\n// assets\r\n// import { ApartmentOutlined, HomeOutlined, HomeFilled } from '@ant-design/icons';\r\n// import { ApartmentOutlined } from '@ant-design/icons';\r\n\r\n// types\r\nimport { NavItemType, OverrideIcon } from 'types/menu';\r\n\r\n// ==============================|| BREADCRUMBS ||============================== //\r\n\r\nexport interface BreadCrumbSxProps extends CSSProperties {\r\n mb?: string;\r\n bgcolor?: string;\r\n}\r\n\r\ninterface Props {\r\n card?: boolean;\r\n divider?: boolean;\r\n icon?: boolean;\r\n icons?: boolean;\r\n maxItems?: number;\r\n navigation?: { items: NavItemType[] };\r\n rightAlign?: boolean;\r\n separator?: OverrideIcon;\r\n title?: boolean;\r\n titleBottom?: boolean;\r\n sx?: BreadCrumbSxProps;\r\n}\r\n\r\nconst Breadcrumbs = ({\r\n card,\r\n divider = true,\r\n icon,\r\n icons,\r\n maxItems,\r\n navigation,\r\n rightAlign,\r\n separator,\r\n title,\r\n titleBottom,\r\n sx,\r\n ...others\r\n}: Props) => {\r\n // const theme = useTheme();\r\n const location = useLocation();\r\n // const [main, setMain] = useState();\r\n const [item, setItem] = useState();\r\n\r\n // const iconSX = {\r\n // marginRight: theme.spacing(0.75),\r\n // marginTop: `-${theme.spacing(0.25)}`,\r\n // width: '1rem',\r\n // height: '1rem',\r\n // color: theme.palette.secondary.main\r\n // };\r\n\r\n useEffect(() => {\r\n navigation?.items?.map((menu: NavItemType, index: number) => {\r\n if (menu.type && menu.type === 'group') {\r\n getCollapse(menu as { children: NavItemType[]; type?: string });\r\n }\r\n return false;\r\n });\r\n });\r\n\r\n // only used for component demo breadcrumbs\r\n if (location.pathname === '/components-overview/breadcrumbs') {\r\n location.pathname = '/dashboard/analytics';\r\n }\r\n\r\n // set active item state\r\n const getCollapse = (menu: NavItemType) => {\r\n if (menu.children) {\r\n menu.children.filter((collapse: NavItemType) => {\r\n if (collapse.type && collapse.type === 'collapse') {\r\n getCollapse(collapse as { children: NavItemType[]; type?: string });\r\n } else if (collapse.type && collapse.type === 'item') {\r\n if (location.pathname === collapse.url) {\r\n // setMain(menu);\r\n setItem(collapse);\r\n }\r\n }\r\n return false;\r\n });\r\n }\r\n };\r\n\r\n // item separator\r\n // const SeparatorIcon = separator!;\r\n // const separatorIcon = separator ? : '|';\r\n\r\n // let mainContent;\r\n // let itemContent;\r\n let breadcrumbContent: ReactElement = ;\r\n //let itemTitle: NavItemType['title'] = '';\r\n //let CollapseIcon;\r\n //let ItemIcon;\r\n\r\n // collapse item\r\n // if (main && main.type === 'collapse') {\r\n // CollapseIcon = main.icon ? main.icon : ApartmentOutlined;\r\n // mainContent = (\r\n // \r\n // {icons && }\r\n // {main.title}\r\n // \r\n // );\r\n // }\r\n\r\n // items\r\n if (item && item.type === 'item') {\r\n //itemTitle = item.title;\r\n //ItemIcon = item.icon ? item.icon : ApartmentOutlined;\r\n // itemContent = (\r\n // \r\n // {icons && }\r\n // {itemTitle}\r\n // \r\n // );\r\n\r\n // main\r\n if (item.breadcrumbs !== false) {\r\n breadcrumbContent = (\r\n \r\n \r\n {title && !titleBottom && (\r\n \r\n {item.title}\r\n \r\n )}\r\n {/* \r\n Per Story 109207 - diverting from standard portals and removing breadcrumbs\r\n ==========================================================================================================\r\n \r\n \r\n \r\n {icons && }\r\n {icon && !icons && }\r\n {(!icon || icons) && 'Home'}\r\n \r\n {mainContent}\r\n {itemContent}\r\n \r\n */}\r\n {title && titleBottom && (\r\n \r\n {item.title}\r\n \r\n )}\r\n \r\n {card === false && divider !== false && }\r\n \r\n );\r\n }\r\n }\r\n\r\n return breadcrumbContent;\r\n};\r\n\r\nexport default Breadcrumbs;\r\n","import { useEffect } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nconst whitelist = [\r\n \"/components/pricelist-subscription/PriceListShoppingCart\",\r\n];\r\n\r\ntype timerProps = {\r\n delayMinutes: number;\r\n};\r\n\r\nexport const IdleTimer = ({ delayMinutes }: timerProps) => {\r\n const location = useLocation();\r\n let timeout: NodeJS.Timeout | null = null;\r\n\r\n const goBackToHome = () => {\r\n console.log('TO|RF');\r\n window.location.reload();\r\n };\r\n\r\n const restartAutoReset = () => {\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n }\r\n timeout = setTimeout(() => {\r\n goBackToHome();\r\n }, delayMinutes * 1000 * 60);\r\n };\r\n\r\n const _onMouseMove = () => {\r\n restartAutoReset();\r\n };\r\n\r\n useEffect(() => {\r\n // Whitelist certain pages\r\n let preventReset = false;\r\n for (const path of whitelist) {\r\n if (path === location.pathname) {\r\n preventReset = true;\r\n }\r\n }\r\n if (preventReset) {\r\n return;\r\n }\r\n\r\n // initiate timeout\r\n restartAutoReset();\r\n\r\n // listen for mouse events\r\n window.addEventListener(\"mousemove\", _onMouseMove);\r\n\r\n // cleanup\r\n return () => {\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n window.removeEventListener(\"mousemove\", _onMouseMove);\r\n }\r\n };\r\n }, [location.pathname]);\r\n return
;\r\n};\r\n","import { useEffect, useState } from 'react';\r\nimport { Outlet } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\n// material-ui\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Box, Container, Toolbar, useMediaQuery } from '@mui/material';\r\n\r\n// project import\r\nimport Drawer from './Drawer';\r\nimport Header from './Header';\r\nimport GetNavigationMenuItems from 'menu-items';\r\nimport useConfig from 'hooks/useConfig';\r\nimport Breadcrumbs from 'components/@extended/Breadcrumbs';\r\nimport { IdleTimer } from 'common/IdleTimer';\r\n\r\n// types\r\nimport { RootStateProps } from 'types/root';\r\nimport { openDrawer } from 'store/reducers/menu';\r\nimport useAuth from 'hooks/useAuth';\r\n\r\n// ==============================|| MAIN LAYOUT ||============================== //\r\n\r\nconst MainLayout = () => {\r\n const theme = useTheme();\r\n const matchDownLG = useMediaQuery(theme.breakpoints.down('xl'));\r\n\r\n const { container, miniDrawer } = useConfig();\r\n const dispatch = useDispatch();\r\n const { user } = useAuth();\r\n\r\n const menu = useSelector((state: RootStateProps) => state.menu);\r\n const { drawerOpen } = menu;\r\n\r\n const delayMinutes = parseInt(process.env.REACT_APP_AUTO_REFRESH_DELAY_MINUTES ?? \"45\");\r\n\r\n // drawer toggler\r\n const [open, setOpen] = useState(!miniDrawer || drawerOpen);\r\n const handleDrawerToggle = () => {\r\n setOpen(!open);\r\n dispatch(openDrawer({ drawerOpen: !open }));\r\n };\r\n\r\n // set media wise responsive drawer\r\n useEffect(() => {\r\n if (!miniDrawer) {\r\n setOpen(!matchDownLG);\r\n dispatch(openDrawer({ drawerOpen: !matchDownLG }));\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [matchDownLG]);\r\n\r\n useEffect(() => {\r\n if (open !== drawerOpen) setOpen(drawerOpen);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [drawerOpen]);\r\n\r\n return (\r\n \r\n
\r\n {user &&\r\n \r\n }\r\n \r\n \r\n {container && user && (\r\n \r\n \r\n \r\n \r\n )}\r\n {!container && user && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MainLayout;\r\n","import { useEffect } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\n// project import\r\nimport useAuth from 'hooks/useAuth';\r\n\r\n// types\r\nimport { GuardProps } from 'types/auth';\r\n\r\n// ==============================|| AUTH GUARD ||============================== //\r\n\r\nconst AuthGuard = ({ children }: GuardProps) => {\r\n const { isLoggedIn } = useAuth();\r\n const navigate = useNavigate();\r\n\r\n useEffect(() => {\r\n if (!isLoggedIn) {\r\n navigate('login', { replace: true });\r\n }\r\n }, [isLoggedIn, navigate]);\r\n\r\n return children;\r\n};\r\n\r\nexport default AuthGuard;\r\n","import { lazy } from 'react';\r\n\r\n// project import\r\nimport MainLayout from 'layout/MainLayout';\r\nimport CommonLayout from 'layout/CommonLayout';\r\nimport Loadable from 'components/Loadable';\r\nimport AuthGuard from 'utils/route-guard/AuthGuard';\r\n\r\n// render - price list subscriptions\r\nconst PriceListInquiry = Loadable(lazy(() => import('pages/subscriptions/pricelist/pricelist-inquiry')));\r\nconst NewDealerInquiry = Loadable(lazy(() => import('pages/newdealer/newdealer-inquiry')));\r\n\r\n// pages routing\r\nconst AuthLogin = Loadable(lazy(() => import('pages/auth/login')));\r\n\r\nconst MaintenanceError = Loadable(lazy(() => import('pages/maintenance/404')));\r\nconst MaintenanceError500 = Loadable(lazy(() => import('pages/maintenance/500')));\r\n\r\n// ==============================|| MAIN ROUTING ||============================== //\r\n\r\nconst MainRoutes = {\r\n path: '/',\r\n children: [\r\n {\r\n path: '/',\r\n element: (\r\n \r\n \r\n \r\n ),\r\n children: [\r\n {\r\n path: 'subscriptions',\r\n children: [\r\n {\r\n path: 'pricelist',\r\n children: [\r\n {\r\n path: 'list',\r\n element: \r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n path: 'newdealer',\r\n children: [\r\n {\r\n path: 'pricelist',\r\n children: [\r\n {\r\n path: 'list',\r\n element: \r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n path: '/maintenance',\r\n element: ,\r\n children: [\r\n {\r\n path: '404',\r\n element: \r\n },\r\n {\r\n path: '500',\r\n element: \r\n }\r\n ]\r\n },\r\n {\r\n path: '/auth',\r\n element: ,\r\n children: [\r\n {\r\n path: 'login',\r\n element: \r\n }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nexport default MainRoutes;\r\n","import React, { lazy } from 'react';\r\n// import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';\r\nimport Loadable from 'components/Loadable';\r\nimport GuestGuard from 'utils/route-guard/GuestGuard';\r\nimport CommonLayout from 'layout/CommonLayout';\r\n\r\nconst ConstConsentHome = Loadable(lazy(() => import('pages/dealerconsent/consent-home')));\r\nconst ConstConsentProgram = Loadable(lazy(() => import('pages/dealerconsent/consent-program')));\r\nconst ConstConsentSubmit = Loadable(lazy(() => import('pages/dealerconsent/consent-submit')));\r\n\r\n\r\nconst ConsentRoutes = {\r\n path: '/',\r\n element: (\r\n \r\n \r\n \r\n ),\r\n children: [\r\n {\r\n path: 'dealerconsent',\r\n children: [\r\n {\r\n path: 'consenthome',\r\n element: \r\n },\r\n {\r\n path: 'consentprogram',\r\n element: \r\n },\r\n {\r\n path: 'consentsubmit',\r\n element: \r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\nexport default ConsentRoutes;","import { lazy } from 'react';\r\nimport { useRoutes } from 'react-router-dom';\r\n\r\n// project import\r\nimport CommonLayout from 'layout/CommonLayout';\r\nimport Loadable from 'components/Loadable';\r\nimport LoginRoutes from './LoginRoutes';\r\nimport MainRoutes from './MainRoutes';\r\nimport ConsentRoutes from './ConsentRoutes';\r\n\r\n// render - landing page\r\nconst PagesLanding = Loadable(lazy(() => import('pages/landing/landing')));\r\n\r\n// ==============================|| ROUTING RENDER ||============================== //\r\n\r\nexport default function ThemeRoutes() {\r\n return useRoutes([\r\n {\r\n path: '/',\r\n element: ,\r\n children: [\r\n {\r\n path: '/',\r\n element: \r\n }\r\n ]\r\n },\r\n LoginRoutes,\r\n MainRoutes,\r\n ConsentRoutes\r\n ]);\r\n}\r\n","// types\r\nimport { PaletteThemeProps } from 'types/theme';\r\nimport { PalettesProps } from '@ant-design/colors';\r\nimport { PaletteColorOptions } from '@mui/material/styles';\r\n\r\n// ==============================|| PRESET THEME - DEFAULT ||============================== //\r\n\r\nconst Default = (colors: PalettesProps): PaletteThemeProps => {\r\n const { blue, red, gold, cyan, green, grey } = colors;\r\n const greyColors: PaletteColorOptions = {\r\n 0: grey[0],\r\n 50: grey[1],\r\n 100: grey[2],\r\n 200: grey[3],\r\n 300: grey[4],\r\n 400: grey[5],\r\n 500: grey[6],\r\n 600: grey[7],\r\n 700: grey[8],\r\n 800: grey[9],\r\n 900: grey[10],\r\n A50: grey[15],\r\n A100: grey[11],\r\n A200: grey[12],\r\n A400: grey[13],\r\n A700: grey[14],\r\n A800: grey[16]\r\n };\r\n const contrastText = '#fff';\r\n\r\n return {\r\n primary: {\r\n lighter: blue[0],\r\n 100: blue[1],\r\n 200: blue[2],\r\n light: blue[3],\r\n 400: blue[4],\r\n main: blue[5],\r\n dark: blue[6],\r\n 700: blue[7],\r\n darker: blue[8],\r\n 900: blue[9],\r\n contrastText\r\n },\r\n secondary: {\r\n lighter: greyColors[100],\r\n 100: greyColors[100],\r\n 200: greyColors[200],\r\n light: greyColors[300],\r\n 400: greyColors[400],\r\n main: greyColors[500]!,\r\n 600: greyColors[600],\r\n dark: greyColors[700],\r\n 800: greyColors[800],\r\n darker: greyColors[900],\r\n A100: greyColors[0],\r\n A200: greyColors.A400,\r\n A300: greyColors.A700,\r\n contrastText: greyColors[0]\r\n },\r\n error: {\r\n lighter: red[0],\r\n light: red[2],\r\n main: red[4],\r\n dark: red[7],\r\n darker: red[9],\r\n contrastText\r\n },\r\n warning: {\r\n lighter: gold[0],\r\n light: gold[3],\r\n main: gold[5],\r\n dark: gold[7],\r\n darker: gold[9],\r\n contrastText: greyColors[100]\r\n },\r\n info: {\r\n lighter: cyan[0],\r\n light: cyan[3],\r\n main: cyan[5],\r\n dark: cyan[7],\r\n darker: cyan[9],\r\n contrastText\r\n },\r\n success: {\r\n lighter: green[0],\r\n light: green[3],\r\n main: green[5],\r\n dark: green[7],\r\n darker: green[9],\r\n contrastText\r\n },\r\n grey: greyColors\r\n };\r\n};\r\n\r\nexport default Default;\r\n","// types\r\nimport { PaletteThemeProps } from 'types/theme';\r\nimport { PalettesProps } from '@ant-design/colors';\r\nimport { PaletteColorOptions } from '@mui/material/styles';\r\nimport { ThemeMode } from 'types/config';\r\n\r\n// ==============================|| PRESET THEME - DEFAULT ||============================== //\r\n\r\nconst Theme1 = (colors: PalettesProps, mode: ThemeMode): PaletteThemeProps => {\r\n const { grey } = colors;\r\n const greyColors: PaletteColorOptions = {\r\n 0: grey[0],\r\n 50: grey[1],\r\n 100: grey[2],\r\n 200: grey[3],\r\n 300: grey[4],\r\n 400: grey[5],\r\n 500: grey[6],\r\n 600: grey[7],\r\n 700: grey[8],\r\n 800: grey[9],\r\n 900: grey[10],\r\n A50: grey[15],\r\n A100: grey[11],\r\n A200: grey[12],\r\n A400: grey[13],\r\n A700: grey[14],\r\n A800: grey[16]\r\n };\r\n const contrastText = '#fff';\r\n\r\n let primaryColors = ['#D6E4FF', '#D6E4FF', '#ADC8FF', '#84A9FF', '#6690FF', '#3366FF', '#254EDB', '#1939B7', '#102693', '#102693'];\r\n let errorColors = ['#FFE7D3', '#FF805D', '#FF4528', '#DB271D', '#930C1A'];\r\n let warningColors = ['#FFF6D0', '#FFCF4E', '#FFB814', '#DB970E', '#935B06'];\r\n let infoColors = ['#DCF0FF', '#7EB9FF', '#549BFF', '#3D78DB', '#1A3D93'];\r\n let successColors = ['#EAFCD4', '#8AE65B', '#58D62A', '#3DB81E', '#137C0D'];\r\n\r\n if (mode === 'dark') {\r\n primaryColors = ['#1c2134', '#1f294d', '#243462', '#273e83', '#2c4db0', '#305bdd', '#567fe9', '#80a4f4', '#a9c5f8', '#d2e2fb'];\r\n errorColors = ['#341d1b', '#b03725', '#dd3f27', '#e9664d', '#fbd6c9'];\r\n warningColors = ['#342a1a', '#83631a', '#dda116', '#e9ba3a', '#fbefb5'];\r\n infoColors = ['#202734', '#416fb0', '#4c88dd', '#74a8e9', '#ecf4fb'];\r\n successColors = ['#1f2e1c', '#449626', '#4fba28', '#74cf4d', '#e3fbd2'];\r\n }\r\n\r\n return {\r\n primary: {\r\n lighter: primaryColors[0],\r\n 100: primaryColors[1],\r\n 200: primaryColors[2],\r\n light: primaryColors[3],\r\n 400: primaryColors[4],\r\n main: primaryColors[5],\r\n dark: primaryColors[6],\r\n 700: primaryColors[7],\r\n darker: primaryColors[8],\r\n 900: primaryColors[9],\r\n contrastText\r\n },\r\n secondary: {\r\n lighter: greyColors[100],\r\n 100: greyColors[100],\r\n 200: greyColors[200],\r\n light: greyColors[300],\r\n 400: greyColors[400],\r\n main: greyColors[500]!,\r\n 600: greyColors[600],\r\n dark: greyColors[700],\r\n 800: greyColors[800],\r\n darker: greyColors[900],\r\n A100: greyColors[0],\r\n A200: greyColors.A400,\r\n A300: greyColors.A700,\r\n contrastText: greyColors[0]\r\n },\r\n error: {\r\n lighter: errorColors[0],\r\n light: errorColors[1],\r\n main: errorColors[2],\r\n dark: errorColors[3],\r\n darker: errorColors[4],\r\n contrastText\r\n },\r\n warning: {\r\n lighter: warningColors[0],\r\n light: warningColors[1],\r\n main: warningColors[2],\r\n dark: warningColors[3],\r\n darker: warningColors[4],\r\n contrastText: greyColors[100]\r\n },\r\n info: {\r\n lighter: infoColors[0],\r\n light: infoColors[1],\r\n main: infoColors[2],\r\n dark: infoColors[3],\r\n darker: infoColors[4],\r\n contrastText\r\n },\r\n success: {\r\n lighter: successColors[0],\r\n light: successColors[1],\r\n main: successColors[2],\r\n dark: successColors[3],\r\n darker: successColors[4],\r\n contrastText\r\n },\r\n grey: greyColors\r\n };\r\n};\r\n\r\nexport default Theme1;\r\n","// types\r\nimport { PaletteThemeProps } from 'types/theme';\r\nimport { PalettesProps } from '@ant-design/colors';\r\nimport { PaletteColorOptions } from '@mui/material/styles';\r\nimport { ThemeMode } from 'types/config';\r\n\r\n// ==============================|| PRESET THEME - DEFAULT ||============================== //\r\n\r\nconst Theme2 = (colors: PalettesProps, mode: ThemeMode): PaletteThemeProps => {\r\n const { grey } = colors;\r\n const greyColors: PaletteColorOptions = {\r\n 0: grey[0],\r\n 50: grey[1],\r\n 100: grey[2],\r\n 200: grey[3],\r\n 300: grey[4],\r\n 400: grey[5],\r\n 500: grey[6],\r\n 600: grey[7],\r\n 700: grey[8],\r\n 800: grey[9],\r\n 900: grey[10],\r\n A50: grey[15],\r\n A100: grey[11],\r\n A200: grey[12],\r\n A400: grey[13],\r\n A700: grey[14],\r\n A800: grey[16]\r\n };\r\n const contrastText = '#fff';\r\n\r\n let primaryColors = ['#EEEDFC', '#D5D1F8', '#B9B2F3', '#9C93EE', '#877CEA', '#7265E6', '#6A5DE3', '#5F53DF', '#5549DB', '#4237D5'];\r\n let errorColors = ['#FDE8E7', '#F25E52', '#F04134', '#EE3B2F', '#E92A21'];\r\n let warningColors = ['#FFF7E0', '#FFC926', '#FFBF00', '#FFB900', '#FFA900'];\r\n let infoColors = ['#E0F4F5', '#26B0BA', '#00A2AE', '#009AA7', '#008694'];\r\n let successColors = ['#E0F5EA', '#26B56E', '#00A854', '#00A04D', '#008D3A'];\r\n\r\n if (mode === 'dark') {\r\n primaryColors = ['#222130', '#2b2946', '#37335a', '#443e78', '#554ca0', '#655ac8', '#9186dd', '#5F53DF', '#c3baf4', '#efecfb'];\r\n errorColors = ['#321d1d', '#7d2e28', '#d13c31', '#e66859', '#f8baaf'];\r\n warningColors = ['#342c1a', '#836611', '#dda705', '#e9bf28', '#f8e577'];\r\n infoColors = ['#1a2628', '#11595f', '#058e98', '#1ea6aa', '#64cfcb'];\r\n successColors = ['#1a2721', '#115c36', '#05934c', '#1da65d', '#61ca8b'];\r\n }\r\n\r\n return {\r\n primary: {\r\n lighter: primaryColors[0],\r\n 100: primaryColors[1],\r\n 200: primaryColors[2],\r\n light: primaryColors[3],\r\n 400: primaryColors[4],\r\n main: primaryColors[5],\r\n dark: primaryColors[6],\r\n 700: primaryColors[7],\r\n darker: primaryColors[8],\r\n 900: primaryColors[9],\r\n contrastText\r\n },\r\n secondary: {\r\n lighter: greyColors[100],\r\n 100: greyColors[100],\r\n 200: greyColors[200],\r\n light: greyColors[300],\r\n 400: greyColors[400],\r\n main: greyColors[500]!,\r\n 600: greyColors[600],\r\n dark: greyColors[700],\r\n 800: greyColors[800],\r\n darker: greyColors[900],\r\n A100: greyColors[0],\r\n A200: greyColors.A400,\r\n A300: greyColors.A700,\r\n contrastText: greyColors[0]\r\n },\r\n error: {\r\n lighter: errorColors[0],\r\n light: errorColors[1],\r\n main: errorColors[2],\r\n dark: errorColors[3],\r\n darker: errorColors[4],\r\n contrastText\r\n },\r\n warning: {\r\n lighter: warningColors[0],\r\n light: warningColors[1],\r\n main: warningColors[2],\r\n dark: warningColors[3],\r\n darker: warningColors[4],\r\n contrastText: greyColors[100]\r\n },\r\n info: {\r\n lighter: infoColors[0],\r\n light: infoColors[1],\r\n main: infoColors[2],\r\n dark: infoColors[3],\r\n darker: infoColors[4],\r\n contrastText\r\n },\r\n success: {\r\n lighter: successColors[0],\r\n light: successColors[1],\r\n main: successColors[2],\r\n dark: successColors[3],\r\n darker: successColors[4],\r\n contrastText\r\n },\r\n grey: greyColors\r\n };\r\n};\r\n\r\nexport default Theme2;\r\n","// types\r\nimport { PaletteThemeProps } from 'types/theme';\r\nimport { PalettesProps } from '@ant-design/colors';\r\nimport { PaletteColorOptions } from '@mui/material/styles';\r\nimport { ThemeMode } from 'types/config';\r\n\r\n// ==============================|| PRESET THEME - DARK GREEN THEME3 ||============================== //\r\n\r\nconst Theme4 = (colors: PalettesProps, mode: ThemeMode): PaletteThemeProps => {\r\n const { grey } = colors;\r\n const greyColors: PaletteColorOptions = {\r\n 0: grey[0],\r\n 50: grey[1],\r\n 100: grey[2],\r\n 200: grey[3],\r\n 300: grey[4],\r\n 400: grey[5],\r\n 500: grey[6],\r\n 600: grey[7],\r\n 700: grey[8],\r\n 800: grey[9],\r\n 900: grey[10],\r\n A50: grey[15],\r\n A100: grey[11],\r\n A200: grey[12],\r\n A400: grey[13],\r\n A700: grey[14],\r\n A800: grey[16]\r\n };\r\n const contrastText = '#fff';\r\n\r\n let primaryColors = ['#E6F3EC', '#84c297', '#5eb57d', '#3da866', '#1f9c53', '#068e44', '#006933', '#004222', '#001c0f', '#000000'];\r\n let errorColors = ['#FDE8E7', '#F25E52', '#F04134', '#EE3B2F', '#E92A21'];\r\n let warningColors = ['#FFF7E0', '#FFC926', '#FFBF00', '#FFB900', '#FFA900'];\r\n let infoColors = ['#E0F4F5', '#26B0BA', '#00A2AE', '#009AA7', '#008694'];\r\n let successColors = ['#E0F5EA', '#26B56E', '#00A854', '#00A04D', '#008D3A'];\r\n\r\n if (mode === 'dark') {\r\n primaryColors = ['#1a231f', '#173123', '#174029', '#13502f', '#0e6737', '#0a7d3e', '#1f8f4e', '#3ba162', '#5cb07a', '#82bf95'];\r\n errorColors = ['#321d1d', '#7d2e28', '#d13c31', '#e66859', '#f8baaf'];\r\n warningColors = ['#342c1a', '#836611', '#dda705', '#e9bf28', '#f8e577'];\r\n infoColors = ['#1a2628', '#11595f', '#058e98', '#1ea6aa', '#64cfcb'];\r\n successColors = ['#1a2721', '#115c36', '#05934c', '#1da65d', '#61ca8b'];\r\n }\r\n\r\n return {\r\n primary: {\r\n lighter: primaryColors[0],\r\n 100: primaryColors[1],\r\n 200: primaryColors[2],\r\n light: primaryColors[3],\r\n 400: primaryColors[4],\r\n main: primaryColors[5],\r\n dark: primaryColors[6],\r\n 700: primaryColors[7],\r\n darker: primaryColors[8],\r\n 900: primaryColors[9],\r\n contrastText\r\n },\r\n secondary: {\r\n lighter: greyColors[100],\r\n 100: greyColors[100],\r\n 200: greyColors[200],\r\n light: greyColors[300],\r\n 400: greyColors[400],\r\n main: greyColors[500]!,\r\n 600: greyColors[600],\r\n dark: greyColors[700],\r\n 800: greyColors[800],\r\n darker: greyColors[900],\r\n A100: greyColors[0],\r\n A200: greyColors.A400,\r\n A300: greyColors.A700,\r\n contrastText: greyColors[0]\r\n },\r\n error: {\r\n lighter: errorColors[0],\r\n light: errorColors[1],\r\n main: errorColors[2],\r\n dark: errorColors[3],\r\n darker: errorColors[4],\r\n contrastText\r\n },\r\n warning: {\r\n lighter: warningColors[0],\r\n light: warningColors[1],\r\n main: warningColors[2],\r\n dark: warningColors[3],\r\n darker: warningColors[4],\r\n contrastText: greyColors[100]\r\n },\r\n info: {\r\n lighter: infoColors[0],\r\n light: infoColors[1],\r\n main: infoColors[2],\r\n dark: infoColors[3],\r\n darker: infoColors[4],\r\n contrastText\r\n },\r\n success: {\r\n lighter: successColors[0],\r\n light: successColors[1],\r\n main: successColors[2],\r\n dark: successColors[3],\r\n darker: successColors[4],\r\n contrastText\r\n },\r\n grey: greyColors\r\n };\r\n};\r\n\r\nexport default Theme4;\r\n","// types\r\nimport { PaletteThemeProps } from 'types/theme';\r\nimport { PalettesProps } from '@ant-design/colors';\r\nimport { PaletteColorOptions } from '@mui/material/styles';\r\nimport { ThemeMode } from 'types/config';\r\n\r\n// ==============================|| PRESET THEME - DARK BLUE THEME4 ||============================== //\r\n\r\nconst Theme4 = (colors: PalettesProps, mode: ThemeMode): PaletteThemeProps => {\r\n const { grey } = colors;\r\n const greyColors: PaletteColorOptions = {\r\n 0: grey[0],\r\n 50: grey[1],\r\n 100: grey[2],\r\n 200: grey[3],\r\n 300: grey[4],\r\n 400: grey[5],\r\n 500: grey[6],\r\n 600: grey[7],\r\n 700: grey[8],\r\n 800: grey[9],\r\n 900: grey[10],\r\n A50: grey[15],\r\n A100: grey[11],\r\n A200: grey[12],\r\n A400: grey[13],\r\n A700: grey[14],\r\n A800: grey[16]\r\n };\r\n const contrastText = '#fff';\r\n\r\n let primaryColors = ['#f0f6ff', '#edf4ff', '#bed3f7', '#8faeeb', '#6488de', '#3c64d0', '#2947ab', '#192f85', '#0d1b5e', '#070e38'];\r\n let errorColors = ['#FDE8E7', '#F25E52', '#F04134', '#EE3B2F', '#E92A21'];\r\n let warningColors = ['#FFF7E0', '#FFC926', '#FFBF00', '#FFB900', '#FFA900'];\r\n let infoColors = ['#E0F4F5', '#26B0BA', '#00A2AE', '#009AA7', '#008694'];\r\n let successColors = ['#E0F5EA', '#26B56E', '#00A854', '#00A04D', '#008D3A'];\r\n\r\n if (mode === 'dark') {\r\n primaryColors = ['#1d212d', '#212841', '#273353', '#2c3e6e', '#324c92', '#385ab5', '#5d7dcb', '#89a7e1', '#b9cef0', '#e9f0fb'];\r\n errorColors = ['#321d1d', '#7d2e28', '#d13c31', '#e66859', '#f8baaf'];\r\n warningColors = ['#342c1a', '#836611', '#dda705', '#e9bf28', '#f8e577'];\r\n infoColors = ['#1a2628', '#11595f', '#058e98', '#1ea6aa', '#64cfcb'];\r\n successColors = ['#1a2721', '#115c36', '#05934c', '#1da65d', '#61ca8b'];\r\n }\r\n\r\n return {\r\n primary: {\r\n lighter: primaryColors[0],\r\n 100: primaryColors[1],\r\n 200: primaryColors[2],\r\n light: primaryColors[3],\r\n 400: primaryColors[4],\r\n main: primaryColors[5],\r\n dark: primaryColors[6],\r\n 700: primaryColors[7],\r\n darker: primaryColors[8],\r\n 900: primaryColors[9],\r\n contrastText\r\n },\r\n secondary: {\r\n lighter: greyColors[100],\r\n 100: greyColors[100],\r\n 200: greyColors[200],\r\n light: greyColors[300],\r\n 400: greyColors[400],\r\n main: greyColors[500]!,\r\n 600: greyColors[600],\r\n dark: greyColors[700],\r\n 800: greyColors[800],\r\n darker: greyColors[900],\r\n A100: greyColors[0],\r\n A200: greyColors.A400,\r\n A300: greyColors.A700,\r\n contrastText: greyColors[0]\r\n },\r\n error: {\r\n lighter: errorColors[0],\r\n light: errorColors[1],\r\n main: errorColors[2],\r\n dark: errorColors[3],\r\n darker: errorColors[4],\r\n contrastText\r\n },\r\n warning: {\r\n lighter: warningColors[0],\r\n light: warningColors[1],\r\n main: warningColors[2],\r\n dark: warningColors[3],\r\n darker: warningColors[4],\r\n contrastText: greyColors[100]\r\n },\r\n info: {\r\n lighter: infoColors[0],\r\n light: infoColors[1],\r\n main: infoColors[2],\r\n dark: infoColors[3],\r\n darker: infoColors[4],\r\n contrastText\r\n },\r\n success: {\r\n lighter: successColors[0],\r\n light: successColors[1],\r\n main: successColors[2],\r\n dark: successColors[3],\r\n darker: successColors[4],\r\n contrastText\r\n },\r\n grey: greyColors\r\n };\r\n};\r\n\r\nexport default Theme4;\r\n","// types\r\nimport { PaletteThemeProps } from 'types/theme';\r\nimport { PalettesProps } from '@ant-design/colors';\r\nimport { PaletteColorOptions } from '@mui/material/styles';\r\nimport { ThemeMode } from 'types/config';\r\n\r\n// ==============================|| PRESET THEME - ORANGE THEME5 ||============================== //\r\n\r\nconst Theme5 = (colors: PalettesProps, mode: ThemeMode): PaletteThemeProps => {\r\n const { grey } = colors;\r\n const greyColors: PaletteColorOptions = {\r\n 0: grey[0],\r\n 50: grey[1],\r\n 100: grey[2],\r\n 200: grey[3],\r\n 300: grey[4],\r\n 400: grey[5],\r\n 500: grey[6],\r\n 600: grey[7],\r\n 700: grey[8],\r\n 800: grey[9],\r\n 900: grey[10],\r\n A50: grey[15],\r\n A100: grey[11],\r\n A200: grey[12],\r\n A400: grey[13],\r\n A700: grey[14],\r\n A800: grey[16]\r\n };\r\n const contrastText = '#fff';\r\n\r\n let primaryColors = ['#fff4e6', '#ffdfb8', '#ffc98f', '#ffb066', '#ff943d', '#f27013', '#cc5206', '#a63a00', '#802800', '#591900'];\r\n let errorColors = ['#FDE8E7', '#F25E52', '#F04134', '#EE3B2F', '#E92A21'];\r\n let warningColors = ['#FFF7E0', '#FFC926', '#FFBF00', '#FFB900', '#FFA900'];\r\n let infoColors = ['#E0F4F5', '#26B0BA', '#00A2AE', '#009AA7', '#008694'];\r\n let successColors = ['#E0F5EA', '#26B56E', '#00A854', '#00A04D', '#008D3A'];\r\n\r\n if (mode === 'dark') {\r\n primaryColors = ['#32221a', '#4a2b18', '#5e371b', '#7d4319', '#a85317', '#d26415', '#e9883a', '#f4a962', '#f8c48c', '#fbdbb5'];\r\n errorColors = ['#321d1d', '#7d2e28', '#d13c31', '#e66859', '#f8baaf'];\r\n warningColors = ['#342c1a', '#836611', '#dda705', '#e9bf28', '#f8e577'];\r\n infoColors = ['#1a2628', '#11595f', '#058e98', '#1ea6aa', '#64cfcb'];\r\n successColors = ['#1a2721', '#115c36', '#05934c', '#1da65d', '#61ca8b'];\r\n }\r\n\r\n return {\r\n primary: {\r\n lighter: primaryColors[0],\r\n 100: primaryColors[1],\r\n 200: primaryColors[2],\r\n light: primaryColors[3],\r\n 400: primaryColors[4],\r\n main: primaryColors[5],\r\n dark: primaryColors[6],\r\n 700: primaryColors[7],\r\n darker: primaryColors[8],\r\n 900: primaryColors[9],\r\n contrastText\r\n },\r\n\r\n secondary: {\r\n lighter: greyColors[100],\r\n 100: greyColors[100],\r\n 200: greyColors[200],\r\n light: greyColors[300],\r\n 400: greyColors[400],\r\n main: greyColors[500]!,\r\n 600: greyColors[600],\r\n dark: greyColors[700],\r\n 800: greyColors[800],\r\n darker: greyColors[900],\r\n A100: greyColors[0],\r\n A200: greyColors.A400,\r\n A300: greyColors.A700,\r\n contrastText: greyColors[0]\r\n },\r\n error: {\r\n lighter: errorColors[0],\r\n light: errorColors[1],\r\n main: errorColors[2],\r\n dark: errorColors[3],\r\n darker: errorColors[4],\r\n contrastText\r\n },\r\n warning: {\r\n lighter: warningColors[0],\r\n light: warningColors[1],\r\n main: warningColors[2],\r\n dark: warningColors[3],\r\n darker: warningColors[4],\r\n contrastText: greyColors[100]\r\n },\r\n info: {\r\n lighter: infoColors[0],\r\n light: infoColors[1],\r\n main: infoColors[2],\r\n dark: infoColors[3],\r\n darker: infoColors[4],\r\n contrastText\r\n },\r\n success: {\r\n lighter: successColors[0],\r\n light: successColors[1],\r\n main: successColors[2],\r\n dark: successColors[3],\r\n darker: successColors[4],\r\n contrastText\r\n },\r\n grey: greyColors\r\n };\r\n};\r\n\r\nexport default Theme5;\r\n","// types\r\nimport { PaletteThemeProps } from 'types/theme';\r\nimport { PalettesProps } from '@ant-design/colors';\r\nimport { PaletteColorOptions } from '@mui/material/styles';\r\nimport { ThemeMode } from 'types/config';\r\n\r\n// ==============================|| PRESET THEME - TEAL THEME6 ||============================== //\r\n\r\nconst Theme6 = (colors: PalettesProps, mode: ThemeMode): PaletteThemeProps => {\r\n const { grey } = colors;\r\n const greyColors: PaletteColorOptions = {\r\n 0: grey[0],\r\n 50: grey[1],\r\n 100: grey[2],\r\n 200: grey[3],\r\n 300: grey[4],\r\n 400: grey[5],\r\n 500: grey[6],\r\n 600: grey[7],\r\n 700: grey[8],\r\n 800: grey[9],\r\n 900: grey[10],\r\n A50: grey[15],\r\n A100: grey[11],\r\n A200: grey[12],\r\n A400: grey[13],\r\n A700: grey[14],\r\n A800: grey[16]\r\n };\r\n const contrastText = '#fff';\r\n\r\n let primaryColors = ['#e1f0ef', '#c8e3e2', '#9ad6d6', '#71c6c9', '#4bb5bd', '#2aa1af', '#1a7b8a', '#0e5563', '#06323d', '#021217'];\r\n let errorColors = ['#FDE8E7', '#F25E52', '#F04134', '#EE3B2F', '#E92A21'];\r\n let warningColors = ['#FFF7E0', '#FFC926', '#FFBF00', '#FFB900', '#FFA900'];\r\n let infoColors = ['#E0F4F5', '#26B0BA', '#00A2AE', '#009AA7', '#008694'];\r\n let successColors = ['#E0F5EA', '#26B56E', '#00A854', '#00A04D', '#008D3A'];\r\n\r\n if (mode === 'dark') {\r\n primaryColors = ['#1c2628', '#1d3539', '#22454a', '#23595f', '#26737c', '#288d99', '#47a6ad', '#6dbec0', '#96d0d0', '#c5dfde'];\r\n errorColors = ['#321d1d', '#7d2e28', '#d13c31', '#e66859', '#f8baaf'];\r\n warningColors = ['#342c1a', '#836611', '#dda705', '#e9bf28', '#f8e577'];\r\n infoColors = ['#1a2628', '#11595f', '#058e98', '#1ea6aa', '#64cfcb'];\r\n successColors = ['#1a2721', '#115c36', '#05934c', '#1da65d', '#61ca8b'];\r\n }\r\n\r\n return {\r\n primary: {\r\n lighter: primaryColors[0],\r\n 100: primaryColors[1],\r\n 200: primaryColors[2],\r\n light: primaryColors[3],\r\n 400: primaryColors[4],\r\n main: primaryColors[5],\r\n dark: primaryColors[6],\r\n 700: primaryColors[7],\r\n darker: primaryColors[8],\r\n 900: primaryColors[9],\r\n contrastText\r\n },\r\n secondary: {\r\n lighter: greyColors[100],\r\n 100: greyColors[100],\r\n 200: greyColors[200],\r\n light: greyColors[300],\r\n 400: greyColors[400],\r\n main: greyColors[500]!,\r\n 600: greyColors[600],\r\n dark: greyColors[700],\r\n 800: greyColors[800],\r\n darker: greyColors[900],\r\n A100: greyColors[0],\r\n A200: greyColors.A400,\r\n A300: greyColors.A700,\r\n contrastText: greyColors[0]\r\n },\r\n error: {\r\n lighter: errorColors[0],\r\n light: errorColors[1],\r\n main: errorColors[2],\r\n dark: errorColors[3],\r\n darker: errorColors[4],\r\n contrastText\r\n },\r\n warning: {\r\n lighter: warningColors[0],\r\n light: warningColors[1],\r\n main: warningColors[2],\r\n dark: warningColors[3],\r\n darker: warningColors[4],\r\n contrastText: greyColors[100]\r\n },\r\n info: {\r\n lighter: infoColors[0],\r\n light: infoColors[1],\r\n main: infoColors[2],\r\n dark: infoColors[3],\r\n darker: infoColors[4],\r\n contrastText\r\n },\r\n success: {\r\n lighter: successColors[0],\r\n light: successColors[1],\r\n main: successColors[2],\r\n dark: successColors[3],\r\n darker: successColors[4],\r\n contrastText\r\n },\r\n grey: greyColors\r\n };\r\n};\r\n\r\nexport default Theme6;\r\n","// types\r\nimport { PaletteThemeProps } from 'types/theme';\r\nimport { PalettesProps } from '@ant-design/colors';\r\nimport { PaletteColorOptions } from '@mui/material/styles';\r\nimport { ThemeMode } from 'types/config';\r\n\r\n// ==============================|| PRESET THEME - GREEN THEME7 ||============================== //\r\n\r\nconst Theme7 = (colors: PalettesProps, mode: ThemeMode): PaletteThemeProps => {\r\n const { grey } = colors;\r\n const greyColors: PaletteColorOptions = {\r\n 0: grey[0],\r\n 50: grey[1],\r\n 100: grey[2],\r\n 200: grey[3],\r\n 300: grey[4],\r\n 400: grey[5],\r\n 500: grey[6],\r\n 600: grey[7],\r\n 700: grey[8],\r\n 800: grey[9],\r\n 900: grey[10],\r\n A50: grey[15],\r\n A100: grey[11],\r\n A200: grey[12],\r\n A400: grey[13],\r\n A700: grey[14],\r\n A800: grey[16]\r\n };\r\n const contrastText = '#fff';\r\n\r\n let primaryColors = ['#d1e8d99c', '#8cdba9', '#63cf8e', '#3ec277', '#1db564', '#00a854', '#008245', '#005c34', '#003620', '#000f0a'];\r\n let errorColors = ['#FDE8E7', '#F25E52', '#F04134', '#EE3B2F', '#E92A21'];\r\n let warningColors = ['#FFF7E0', '#FFC926', '#FFBF00', '#FFB900', '#FFA900'];\r\n let infoColors = ['#E0F4F5', '#26B0BA', '#00A2AE', '#009AA7', '#008694'];\r\n let successColors = ['#E0F5EA', '#26B56E', '#00A854', '#00A04D', '#008D3A'];\r\n\r\n if (mode === 'dark') {\r\n primaryColors = ['#1a2721', '#173728', '#15472e', '#115c36', '#0b7841', '#05934c', '#1da65d', '#3cba73', '#61ca8b', '#8ad7a6'];\r\n errorColors = ['#321d1d', '#7d2e28', '#d13c31', '#e66859', '#f8baaf'];\r\n warningColors = ['#342c1a', '#836611', '#dda705', '#e9bf28', '#f8e577'];\r\n infoColors = ['#1a2628', '#11595f', '#058e98', '#1ea6aa', '#64cfcb'];\r\n successColors = ['#1a2721', '#115c36', '#05934c', '#1da65d', '#61ca8b'];\r\n }\r\n\r\n return {\r\n primary: {\r\n lighter: primaryColors[0],\r\n 100: primaryColors[1],\r\n 200: primaryColors[2],\r\n light: primaryColors[3],\r\n 400: primaryColors[4],\r\n main: primaryColors[5],\r\n dark: primaryColors[6],\r\n 700: primaryColors[7],\r\n darker: primaryColors[8],\r\n 900: primaryColors[9],\r\n contrastText\r\n },\r\n secondary: {\r\n lighter: greyColors[100],\r\n 100: greyColors[100],\r\n 200: greyColors[200],\r\n light: greyColors[300],\r\n 400: greyColors[400],\r\n main: greyColors[500]!,\r\n 600: greyColors[600],\r\n dark: greyColors[700],\r\n 800: greyColors[800],\r\n darker: greyColors[900],\r\n A100: greyColors[0],\r\n A200: greyColors.A400,\r\n A300: greyColors.A700,\r\n contrastText: greyColors[0]\r\n },\r\n error: {\r\n lighter: errorColors[0],\r\n light: errorColors[1],\r\n main: errorColors[2],\r\n dark: errorColors[3],\r\n darker: errorColors[4],\r\n contrastText\r\n },\r\n warning: {\r\n lighter: warningColors[0],\r\n light: warningColors[1],\r\n main: warningColors[2],\r\n dark: warningColors[3],\r\n darker: warningColors[4],\r\n contrastText: greyColors[100]\r\n },\r\n info: {\r\n lighter: infoColors[0],\r\n light: infoColors[1],\r\n main: infoColors[2],\r\n dark: infoColors[3],\r\n darker: infoColors[4],\r\n contrastText\r\n },\r\n success: {\r\n lighter: successColors[0],\r\n light: successColors[1],\r\n main: successColors[2],\r\n dark: successColors[3],\r\n darker: successColors[4],\r\n contrastText\r\n },\r\n grey: greyColors\r\n };\r\n};\r\n\r\nexport default Theme7;\r\n","// types\r\nimport { PaletteThemeProps } from 'types/theme';\r\nimport { PalettesProps } from '@ant-design/colors';\r\nimport { PaletteColorOptions } from '@mui/material/styles';\r\nimport { ThemeMode } from 'types/config';\r\n\r\n// ==============================|| PRESET THEME - PURPLE THEME8 ||============================== //\r\n\r\nconst Theme8 = (colors: PalettesProps, mode: ThemeMode): PaletteThemeProps => {\r\n const { grey } = colors;\r\n const greyColors: PaletteColorOptions = {\r\n 0: grey[0],\r\n 50: grey[1],\r\n 100: grey[2],\r\n 200: grey[3],\r\n 300: grey[4],\r\n 400: grey[5],\r\n 500: grey[6],\r\n 600: grey[7],\r\n 700: grey[8],\r\n 800: grey[9],\r\n 900: grey[10],\r\n A50: grey[15],\r\n A100: grey[11],\r\n A200: grey[12],\r\n A400: grey[13],\r\n A700: grey[14],\r\n A800: grey[16]\r\n };\r\n const contrastText = '#fff';\r\n\r\n let primaryColors = ['#c1d6d066', '#81c9b9', '#5bbda9', '#38b09c', '#1aa391', '#009688', '#007069', '#004a47', '#002424', '#000000'];\r\n let errorColors = ['#FDE8E7', '#F25E52', '#F04134', '#EE3B2F', '#E92A21'];\r\n let warningColors = ['#FFF7E0', '#FFC926', '#FFBF00', '#FFB900', '#FFA900'];\r\n let infoColors = ['#E0F4F5', '#26B0BA', '#00A2AE', '#009AA7', '#008694'];\r\n let successColors = ['#E0F5EA', '#26B56E', '#00A854', '#00A04D', '#008D3A'];\r\n\r\n if (mode === 'dark') {\r\n primaryColors = ['#1a2524', '#173331', '#15423e', '#11544e', '#0b6c63', '#058478', '#1a9686', '#37a996', '#59b8a5', '#7fc6b6'];\r\n errorColors = ['#321d1d', '#7d2e28', '#d13c31', '#e66859', '#f8baaf'];\r\n warningColors = ['#342c1a', '#836611', '#dda705', '#e9bf28', '#f8e577'];\r\n infoColors = ['#1a2628', '#11595f', '#058e98', '#1ea6aa', '#64cfcb'];\r\n successColors = ['#1a2721', '#115c36', '#05934c', '#1da65d', '#61ca8b'];\r\n }\r\n\r\n return {\r\n primary: {\r\n lighter: primaryColors[0],\r\n 100: primaryColors[1],\r\n 200: primaryColors[2],\r\n light: primaryColors[3],\r\n 400: primaryColors[4],\r\n main: primaryColors[5],\r\n dark: primaryColors[6],\r\n 700: primaryColors[7],\r\n darker: primaryColors[8],\r\n 900: primaryColors[9],\r\n contrastText\r\n },\r\n secondary: {\r\n lighter: greyColors[100],\r\n 100: greyColors[100],\r\n 200: greyColors[200],\r\n light: greyColors[300],\r\n 400: greyColors[400],\r\n main: greyColors[500]!,\r\n 600: greyColors[600],\r\n dark: greyColors[700],\r\n 800: greyColors[800],\r\n darker: greyColors[900],\r\n A100: greyColors[0],\r\n A200: greyColors.A400,\r\n A300: greyColors.A700,\r\n contrastText: greyColors[0]\r\n },\r\n error: {\r\n lighter: errorColors[0],\r\n light: errorColors[1],\r\n main: errorColors[2],\r\n dark: errorColors[3],\r\n darker: errorColors[4],\r\n contrastText\r\n },\r\n warning: {\r\n lighter: warningColors[0],\r\n light: warningColors[1],\r\n main: warningColors[2],\r\n dark: warningColors[3],\r\n darker: warningColors[4],\r\n contrastText: greyColors[100]\r\n },\r\n info: {\r\n lighter: infoColors[0],\r\n light: infoColors[1],\r\n main: infoColors[2],\r\n dark: infoColors[3],\r\n darker: infoColors[4],\r\n contrastText\r\n },\r\n success: {\r\n lighter: successColors[0],\r\n light: successColors[1],\r\n main: successColors[2],\r\n dark: successColors[3],\r\n darker: successColors[4],\r\n contrastText\r\n },\r\n grey: greyColors\r\n };\r\n};\r\n\r\nexport default Theme8;\r\n","// project import\r\nimport Default from './default';\r\nimport Theme1 from './theme1';\r\nimport Theme2 from './theme2';\r\nimport Theme3 from './theme3';\r\nimport Theme4 from './theme4';\r\nimport Theme5 from './theme5';\r\nimport Theme6 from './theme6';\r\nimport Theme7 from './theme7';\r\nimport Theme8 from './theme8';\r\n\r\n// types\r\nimport { PaletteThemeProps } from 'types/theme';\r\nimport { PalettesProps } from '@ant-design/colors';\r\nimport { ThemeMode, PresetColor } from 'types/config';\r\n\r\n// ==============================|| PRESET THEME - THEME SELECTOR ||============================== //\r\n\r\nconst Theme = (colors: PalettesProps, presetColor: PresetColor, mode: ThemeMode): PaletteThemeProps => {\r\n switch (presetColor) {\r\n case 'theme1':\r\n return Theme1(colors, mode);\r\n case 'theme2':\r\n return Theme2(colors, mode);\r\n case 'theme3':\r\n return Theme3(colors, mode);\r\n case 'theme4':\r\n return Theme4(colors, mode);\r\n case 'theme5':\r\n return Theme5(colors, mode);\r\n case 'theme6':\r\n return Theme6(colors, mode);\r\n case 'theme7':\r\n return Theme7(colors, mode);\r\n case 'theme8':\r\n return Theme8(colors, mode);\r\n default:\r\n return Default(colors);\r\n }\r\n};\r\n\r\nexport default Theme;\r\n","// material-ui\r\nimport { alpha, createTheme } from \"@mui/material/styles\";\r\n\r\n// third-party\r\nimport { presetDarkPalettes, presetPalettes, PalettesProps } from \"@ant-design/colors\";\r\n\r\n// project import\r\nimport ThemeOption from \"./theme\";\r\n\r\n// types\r\nimport { PaletteThemeProps } from \"types/theme\";\r\nimport { PresetColor, ThemeMode } from \"types/config\";\r\n\r\n// ==============================|| DEFAULT THEME - PALETTE ||============================== //\r\n\r\nconst Palette = (mode: ThemeMode, presetColor: PresetColor) => {\r\n const colors: PalettesProps = mode === \"dark\" ? presetDarkPalettes : presetPalettes;\r\n\r\n let greyPrimary = [\r\n \"#ffffff\",\r\n \"#fafafa\",\r\n \"#f5f5f5\",\r\n \"#f0f0f0\",\r\n \"#d9d9d9\",\r\n \"#bfbfbf\",\r\n \"#8c8c8c\",\r\n \"#595959\",\r\n \"#262626\",\r\n \"#141414\",\r\n \"#000000\"\r\n ];\r\n let greyAscent = [\"#fafafa\", \"#bfbfbf\", \"#434343\", \"#1f1f1f\"];\r\n let greyConstant = [\"#fafafb\", \"#e6ebf1\"];\r\n\r\n if (mode === \"dark\") {\r\n greyPrimary = [\r\n \"#000000\",\r\n \"#141414\",\r\n \"#1e1e1e\",\r\n \"#595959\",\r\n \"#8c8c8c\",\r\n \"#bfbfbf\",\r\n \"#d9d9d9\",\r\n \"#f0f0f0\",\r\n \"#f5f5f5\",\r\n \"#fafafa\",\r\n \"#ffffff\"\r\n ];\r\n // greyPrimary.reverse();\r\n greyAscent = [\"#fafafa\", \"#bfbfbf\", \"#434343\", \"#1f1f1f\"];\r\n greyConstant = [\"#121212\", \"#d3d8db\"];\r\n }\r\n colors.grey = [...greyPrimary, ...greyAscent, ...greyConstant];\r\n\r\n const paletteColor: PaletteThemeProps = ThemeOption(colors, presetColor, mode);\r\n\r\n return createTheme({\r\n palette: {\r\n mode,\r\n common: {\r\n black: \"#000\",\r\n white: \"#fff\"\r\n },\r\n ...paletteColor,\r\n text: {\r\n primary: mode === \"dark\" ? alpha(paletteColor.grey[900]!, 0.87) : paletteColor.grey[700],\r\n secondary: mode === \"dark\" ? alpha(paletteColor.grey[900]!, 0.45) : paletteColor.grey[500],\r\n disabled: mode === \"dark\" ? alpha(paletteColor.grey[900]!, 0.1) : paletteColor.grey[400]\r\n },\r\n action: {\r\n disabled: paletteColor.grey[300]\r\n },\r\n divider: mode === \"dark\" ? alpha(paletteColor.grey[900]!, 0.05) : paletteColor.grey[200],\r\n background: {\r\n paper: mode === \"dark\" ? paletteColor.grey[100] : paletteColor.grey[0],\r\n default: paletteColor.grey.A50\r\n }\r\n }\r\n });\r\n};\r\n\r\nexport default Palette;\r\n","// material-ui\r\nimport { Theme, TypographyVariantsOptions } from '@mui/material/styles';\r\n\r\n// types\r\nimport { FontFamily, ThemeMode } from 'types/config';\r\n\r\n// ==============================|| DEFAULT THEME - TYPOGRAPHY ||============================== //\r\n\r\nconst Typography = (mode: ThemeMode, fontFamily: FontFamily, theme: Theme): TypographyVariantsOptions => ({\r\n htmlFontSize: 16,\r\n fontFamily,\r\n fontWeightLight: 300,\r\n fontWeightRegular: 400,\r\n fontWeightMedium: 500,\r\n fontWeightBold: 600,\r\n h1: {\r\n fontWeight: 600,\r\n fontSize: '2.375rem',\r\n lineHeight: 1.21\r\n },\r\n h2: {\r\n fontWeight: 600,\r\n fontSize: '1.875rem',\r\n lineHeight: 1.27\r\n },\r\n h3: {\r\n fontWeight: 600,\r\n fontSize: '1.5rem',\r\n lineHeight: 1.33\r\n },\r\n h4: {\r\n fontWeight: 600,\r\n fontSize: '1.25rem',\r\n lineHeight: 1.4\r\n },\r\n h5: {\r\n fontWeight: 600,\r\n fontSize: '1rem',\r\n lineHeight: 1.5\r\n },\r\n h6: {\r\n fontWeight: 400,\r\n fontSize: '0.875rem',\r\n lineHeight: 1.57\r\n },\r\n caption: {\r\n fontWeight: 400,\r\n fontSize: '0.75rem',\r\n lineHeight: 1.66\r\n },\r\n body1: {\r\n fontSize: '0.875rem',\r\n lineHeight: 1.57\r\n },\r\n body2: {\r\n fontSize: '0.75rem',\r\n lineHeight: 1.66\r\n },\r\n subtitle1: {\r\n fontSize: '0.875rem',\r\n fontWeight: 600,\r\n lineHeight: 1.57\r\n },\r\n subtitle2: {\r\n fontSize: '0.75rem',\r\n fontWeight: 500,\r\n lineHeight: 1.66\r\n },\r\n overline: {\r\n lineHeight: 1.66\r\n },\r\n button: {\r\n textTransform: 'capitalize'\r\n }\r\n});\r\n\r\nexport default Typography;\r\n","// material-ui\r\nimport { alpha, Theme } from '@mui/material/styles';\r\n\r\n// types\r\nimport { CustomShadowProps } from 'types/theme';\r\n\r\n// ==============================|| DEFAULT THEME - CUSTOM SHADOWS ||============================== //\r\n\r\nconst CustomShadows = (theme: Theme): CustomShadowProps => ({\r\n // z1: `0px 2px 8px rgba(0, 0, 0, 0.15)`,\r\n button: theme.palette.mode === 'dark' ? `0 2px 0 rgb(0 0 0 / 5%)` : `0 2px #0000000b`,\r\n text: `0 -1px 0 rgb(0 0 0 / 12%)`,\r\n z1:\r\n theme.palette.mode === 'dark'\r\n ? `0px 1px 1px rgb(0 0 0 / 14%), 0px 2px 1px rgb(0 0 0 / 12%), 0px 1px 3px rgb(0 0 0 / 20%)`\r\n : `0px 1px 4px ${alpha(theme.palette.grey[900], 0.08)}`,\r\n primary: `0 0 0 2px ${alpha(theme.palette.primary.main, 0.2)}`,\r\n secondary: `0 0 0 2px ${alpha(theme.palette.secondary.main, 0.2)}`,\r\n error: `0 0 0 2px ${alpha(theme.palette.error.main, 0.2)}`,\r\n warning: `0 0 0 2px ${alpha(theme.palette.warning.main, 0.2)}`,\r\n info: `0 0 0 2px ${alpha(theme.palette.info.main, 0.2)}`,\r\n success: `0 0 0 2px ${alpha(theme.palette.success.main, 0.2)}`,\r\n grey: `0 0 0 2px ${alpha(theme.palette.grey[500], 0.2)}`,\r\n primaryButton: `0 14px 12px ${alpha(theme.palette.primary.main, 0.2)}`,\r\n secondaryButton: `0 14px 12px ${alpha(theme.palette.secondary.main, 0.2)}`,\r\n errorButton: `0 14px 12px ${alpha(theme.palette.error.main, 0.2)}`,\r\n warningButton: `0 14px 12px ${alpha(theme.palette.warning.main, 0.2)}`,\r\n infoButton: `0 14px 12px ${alpha(theme.palette.info.main, 0.2)}`,\r\n successButton: `0 14px 12px ${alpha(theme.palette.success.main, 0.2)}`,\r\n greyButton: `0 14px 12px ${alpha(theme.palette.grey[500], 0.2)}`\r\n});\r\n\r\nexport default CustomShadows;\r\n","// material-ui\r\nimport { alpha, Theme } from '@mui/material/styles';\r\n\r\n// project import\r\nimport getColors from 'utils/getColors';\r\n\r\n// types\r\nimport { ExtendedStyleProps } from 'types/extended';\r\n\r\n// ==============================|| ALERT - COLORS ||============================== //\r\n\r\nfunction getColorStyle({ color, theme }: ExtendedStyleProps) {\r\n const colors = getColors(theme, color);\r\n const { lighter, light, main } = colors;\r\n\r\n return {\r\n borderColor: alpha(light, 0.5),\r\n backgroundColor: lighter,\r\n '& .MuiAlert-icon': {\r\n color: main\r\n }\r\n };\r\n}\r\n\r\n// ==============================|| OVERRIDES - ALERT ||============================== //\r\n\r\nexport default function Alert(theme: Theme) {\r\n const primaryDashed = getColorStyle({ color: 'primary', theme });\r\n\r\n return {\r\n MuiAlert: {\r\n styleOverrides: {\r\n root: {\r\n color: theme.palette.text.primary,\r\n fontSize: '0.875rem'\r\n },\r\n icon: {\r\n fontSize: '1rem'\r\n },\r\n message: {\r\n padding: 0,\r\n marginTop: 3\r\n },\r\n filled: {\r\n color: theme.palette.grey[0]\r\n },\r\n border: {\r\n padding: '10px 16px',\r\n border: '1px solid',\r\n ...primaryDashed,\r\n '&.MuiAlert-borderPrimary': getColorStyle({ color: 'primary', theme }),\r\n '&.MuiAlert-borderSecondary': getColorStyle({ color: 'secondary', theme }),\r\n '&.MuiAlert-borderError': getColorStyle({ color: 'error', theme }),\r\n '&.MuiAlert-borderSuccess': getColorStyle({ color: 'success', theme }),\r\n '&.MuiAlert-borderInfo': getColorStyle({ color: 'info', theme }),\r\n '&.MuiAlert-borderWarning': getColorStyle({ color: 'warning', theme })\r\n },\r\n action: {\r\n '& .MuiButton-root': {\r\n padding: 2,\r\n height: 'auto',\r\n fontSize: '0.75rem',\r\n marginTop: -2\r\n },\r\n '& .MuiIconButton-root': {\r\n width: 'auto',\r\n height: 'auto',\r\n padding: 2,\r\n marginRight: 6,\r\n '& .MuiSvgIcon-root': {\r\n fontSize: '1rem'\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// project import\r\nimport getColors from 'utils/getColors';\r\n\r\n// types\r\nimport { ExtendedStyleProps } from 'types/extended';\r\n\r\n// ==============================|| BADGE - COLORS ||============================== //\r\n\r\nfunction getColorStyle({ color, theme }: ExtendedStyleProps) {\r\n const colors = getColors(theme, color);\r\n const { lighter, main } = colors;\r\n\r\n return {\r\n color: main,\r\n backgroundColor: lighter\r\n };\r\n}\r\n\r\n// ==============================|| OVERRIDES - BADGE ||============================== //\r\n\r\nexport default function Badge(theme: Theme) {\r\n const defaultLightBadge = getColorStyle({ color: 'primary', theme });\r\n\r\n return {\r\n MuiBadge: {\r\n styleOverrides: {\r\n standard: {\r\n minWidth: theme.spacing(2),\r\n height: theme.spacing(2),\r\n padding: theme.spacing(0.5)\r\n },\r\n light: {\r\n ...defaultLightBadge,\r\n '&.MuiBadge-colorPrimary': getColorStyle({ color: 'primary', theme }),\r\n '&.MuiBadge-colorSecondary': getColorStyle({ color: 'secondary', theme }),\r\n '&.MuiBadge-colorError': getColorStyle({ color: 'error', theme }),\r\n '&.MuiBadge-colorInfo': getColorStyle({ color: 'info', theme }),\r\n '&.MuiBadge-colorSuccess': getColorStyle({ color: 'success', theme }),\r\n '&.MuiBadge-colorWarning': getColorStyle({ color: 'warning', theme })\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { alpha, Theme } from '@mui/material/styles';\r\n\r\n// project import\r\nimport getColors from 'utils/getColors';\r\nimport getShadow from 'utils/getShadow';\r\n\r\n// types\r\nimport { ButtonVariantProps, ExtendedStyleProps } from 'types/extended';\r\n\r\n// ==============================|| BUTTON - COLORS ||============================== //\r\n\r\ninterface ButtonStyleProps extends ExtendedStyleProps {\r\n variant: ButtonVariantProps;\r\n}\r\n\r\nfunction getColorStyle({ variant, color, theme }: ButtonStyleProps) {\r\n const colors = getColors(theme, color);\r\n const { lighter, main, dark, contrastText } = colors;\r\n\r\n const buttonShadow = `${color}Button`;\r\n const shadows = getShadow(theme, buttonShadow);\r\n\r\n const commonShadow = {\r\n '&::after': {\r\n boxShadow: `0 0 5px 5px ${alpha(main, 0.9)}`\r\n },\r\n '&:active::after': {\r\n boxShadow: `0 0 0 0 ${alpha(main, 0.9)}`\r\n }\r\n };\r\n\r\n switch (variant) {\r\n case 'contained':\r\n return {\r\n '&:hover': {\r\n backgroundColor: dark\r\n },\r\n ...commonShadow\r\n };\r\n case 'shadow':\r\n return {\r\n color: contrastText,\r\n backgroundColor: main,\r\n boxShadow: shadows,\r\n '&:hover': {\r\n boxShadow: 'none',\r\n backgroundColor: dark\r\n },\r\n ...commonShadow\r\n };\r\n case 'outlined':\r\n return {\r\n borderColor: main,\r\n '&:hover': {\r\n color: dark,\r\n backgroundColor: 'transparent',\r\n borderColor: main\r\n },\r\n ...commonShadow\r\n };\r\n case 'dashed':\r\n return {\r\n color: main,\r\n borderColor: main,\r\n backgroundColor: lighter,\r\n '&:hover': {\r\n color: dark,\r\n borderColor: dark\r\n },\r\n ...commonShadow\r\n };\r\n case 'text':\r\n default:\r\n return {\r\n '&:hover': {\r\n color: dark\r\n },\r\n ...commonShadow\r\n };\r\n }\r\n}\r\n\r\n// ==============================|| OVERRIDES - BUTTON ||============================== //\r\n\r\nexport default function Button(theme: Theme) {\r\n const primaryDashed = getColorStyle({ variant: 'dashed', color: 'primary', theme });\r\n const primaryShadow = getColorStyle({ variant: 'shadow', color: 'primary', theme });\r\n\r\n const disabledStyle = {\r\n '&.Mui-disabled': {\r\n backgroundColor: theme.palette.grey[200]\r\n }\r\n };\r\n const iconStyle = {\r\n '&>*:nth-of-type(1)': {\r\n fontSize: 'inherit'\r\n }\r\n };\r\n\r\n return {\r\n MuiButton: {\r\n defaultProps: {\r\n disableElevation: true\r\n },\r\n styleOverrides: {\r\n root: {\r\n fontWeight: 400,\r\n '&::after': {\r\n content: '\"\"',\r\n display: 'block',\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n width: '100%',\r\n height: '100%',\r\n borderRadius: 4,\r\n opacity: 0,\r\n transition: 'all 0.5s'\r\n },\r\n\r\n '&:active::after': {\r\n position: 'absolute',\r\n borderRadius: 4,\r\n left: 0,\r\n top: 0,\r\n opacity: 1,\r\n transition: '0s'\r\n }\r\n },\r\n contained: {\r\n ...disabledStyle\r\n },\r\n outlined: {\r\n ...disabledStyle\r\n },\r\n text: {\r\n boxShadow: 'none',\r\n '&:hover': {\r\n boxShadow: 'none'\r\n }\r\n },\r\n endIcon: {\r\n ...iconStyle\r\n },\r\n startIcon: {\r\n ...iconStyle\r\n },\r\n dashed: {\r\n border: '1px dashed',\r\n ...primaryDashed,\r\n '&.MuiButton-dashedPrimary': getColorStyle({ variant: 'dashed', color: 'primary', theme }),\r\n '&.MuiButton-dashedSecondary': getColorStyle({ variant: 'dashed', color: 'secondary', theme }),\r\n '&.MuiButton-dashedError': getColorStyle({ variant: 'dashed', color: 'error', theme }),\r\n '&.MuiButton-dashedSuccess': getColorStyle({ variant: 'dashed', color: 'success', theme }),\r\n '&.MuiButton-dashedInfo': getColorStyle({ variant: 'dashed', color: 'info', theme }),\r\n '&.MuiButton-dashedWarning': getColorStyle({ variant: 'dashed', color: 'warning', theme }),\r\n '&.Mui-disabled': {\r\n color: `${theme.palette.grey[300]} !important`,\r\n borderColor: `${theme.palette.grey[400]} !important`,\r\n backgroundColor: `${theme.palette.grey[200]} !important`\r\n }\r\n },\r\n shadow: {\r\n ...primaryShadow,\r\n '&.MuiButton-shadowPrimary': getColorStyle({ variant: 'shadow', color: 'primary', theme }),\r\n '&.MuiButton-shadowSecondary': getColorStyle({ variant: 'shadow', color: 'secondary', theme }),\r\n '&.MuiButton-shadowError': getColorStyle({ variant: 'shadow', color: 'error', theme }),\r\n '&.MuiButton-shadowSuccess': getColorStyle({ variant: 'shadow', color: 'success', theme }),\r\n '&.MuiButton-shadowInfo': getColorStyle({ variant: 'shadow', color: 'info', theme }),\r\n '&.MuiButton-shadowWarning': getColorStyle({ variant: 'shadow', color: 'warning', theme }),\r\n '&.Mui-disabled': {\r\n color: `${theme.palette.grey[300]} !important`,\r\n borderColor: `${theme.palette.grey[400]} !important`,\r\n backgroundColor: `${theme.palette.grey[200]} !important`\r\n }\r\n },\r\n containedPrimary: getColorStyle({ variant: 'contained', color: 'primary', theme }),\r\n containedSecondary: getColorStyle({ variant: 'contained', color: 'secondary', theme }),\r\n containedError: getColorStyle({ variant: 'contained', color: 'error', theme }),\r\n containedSuccess: getColorStyle({ variant: 'contained', color: 'success', theme }),\r\n containedInfo: getColorStyle({ variant: 'contained', color: 'info', theme }),\r\n containedWarning: getColorStyle({ variant: 'contained', color: 'warning', theme }),\r\n outlinedPrimary: getColorStyle({ variant: 'outlined', color: 'primary', theme }),\r\n outlinedSecondary: getColorStyle({ variant: 'outlined', color: 'secondary', theme }),\r\n outlinedError: getColorStyle({ variant: 'outlined', color: 'error', theme }),\r\n outlinedSuccess: getColorStyle({ variant: 'outlined', color: 'success', theme }),\r\n outlinedInfo: getColorStyle({ variant: 'outlined', color: 'info', theme }),\r\n outlinedWarning: getColorStyle({ variant: 'outlined', color: 'warning', theme }),\r\n textPrimary: getColorStyle({ variant: 'text', color: 'primary', theme }),\r\n textSecondary: getColorStyle({ variant: 'text', color: 'secondary', theme }),\r\n textError: getColorStyle({ variant: 'text', color: 'error', theme }),\r\n textSuccess: getColorStyle({ variant: 'text', color: 'success', theme }),\r\n textInfo: getColorStyle({ variant: 'text', color: 'info', theme }),\r\n textWarning: getColorStyle({ variant: 'text', color: 'warning', theme }),\r\n sizeExtraSmall: {\r\n minWidth: 56,\r\n fontSize: '0.625rem',\r\n padding: '2px 8px'\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\nimport { Box, CheckboxProps } from '@mui/material';\r\n\r\n// assets\r\nimport { CheckSquareFilled, MinusSquareFilled } from '@ant-design/icons';\r\n\r\n// ==============================|| CHECKBOX - SIZE STYLE ||============================== //\r\n\r\ninterface CheckboxSizeProps {\r\n size: number;\r\n fontSize: number;\r\n position: number;\r\n}\r\n\r\nfunction getSizeStyle(size?: CheckboxProps['size']): CheckboxSizeProps {\r\n switch (size) {\r\n case 'small':\r\n return { size: 16, fontSize: 1, position: 1 };\r\n case 'large':\r\n return { size: 24, fontSize: 1.6, position: 2 };\r\n case 'medium':\r\n default:\r\n return { size: 20, fontSize: 1.35, position: 2 };\r\n }\r\n}\r\n\r\n// ==============================|| CHECKBOX - STYLE ||============================== //\r\n\r\nfunction checkboxStyle(size?: CheckboxProps['size']) {\r\n const sizes: CheckboxSizeProps = getSizeStyle(size);\r\n\r\n return {\r\n '& .icon': {\r\n width: sizes.size,\r\n height: sizes.size,\r\n '& .filled': {\r\n fontSize: `${sizes.fontSize}rem`,\r\n top: -sizes.position,\r\n left: -sizes.position\r\n }\r\n }\r\n };\r\n}\r\n\r\n// ==============================|| OVERRIDES - CHECKBOX ||============================== //\r\n\r\nexport default function Checkbox(theme: Theme) {\r\n const { palette } = theme;\r\n\r\n return {\r\n MuiCheckbox: {\r\n defaultProps: {\r\n className: 'size-small',\r\n icon: ,\r\n checkedIcon: (\r\n \r\n \r\n \r\n ),\r\n indeterminateIcon: (\r\n \r\n \r\n \r\n )\r\n },\r\n styleOverrides: {\r\n root: {\r\n color: palette.secondary[300],\r\n '&.size-small': {\r\n ...checkboxStyle('small')\r\n },\r\n '&.size-medium': {\r\n ...checkboxStyle('medium')\r\n },\r\n '&.size-large': {\r\n ...checkboxStyle('large')\r\n }\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// project import\r\nimport getColors from 'utils/getColors';\r\n\r\n// types\r\nimport { ExtendedStyleProps } from 'types/extended';\r\n\r\n// ==============================|| CHIP - COLORS ||============================== //\r\n\r\nfunction getColorStyle({ color, theme }: ExtendedStyleProps) {\r\n const colors = getColors(theme, color);\r\n const { light, lighter, main } = colors;\r\n\r\n return {\r\n color: main,\r\n backgroundColor: lighter,\r\n borderColor: light,\r\n '& .MuiChip-deleteIcon': {\r\n color: main,\r\n '&:hover': {\r\n color: light\r\n }\r\n }\r\n };\r\n}\r\n\r\n// ==============================|| OVERRIDES - CHIP ||============================== //\r\n\r\nexport default function Chip(theme: Theme) {\r\n const defaultLightChip = getColorStyle({ color: 'secondary', theme });\r\n return {\r\n MuiChip: {\r\n styleOverrides: {\r\n root: {\r\n borderRadius: 4,\r\n '&:active': {\r\n boxShadow: 'none'\r\n }\r\n },\r\n sizeLarge: {\r\n fontSize: '1rem',\r\n height: 40\r\n },\r\n light: {\r\n ...defaultLightChip,\r\n '&.MuiChip-lightPrimary': getColorStyle({ color: 'primary', theme }),\r\n '&.MuiChip-lightSecondary': getColorStyle({ color: 'secondary', theme }),\r\n '&.MuiChip-lightError': getColorStyle({ color: 'error', theme }),\r\n '&.MuiChip-lightInfo': getColorStyle({ color: 'info', theme }),\r\n '&.MuiChip-lightSuccess': getColorStyle({ color: 'success', theme }),\r\n '&.MuiChip-lightWarning': getColorStyle({ color: 'warning', theme })\r\n },\r\n combined: {\r\n border: '1px solid',\r\n ...defaultLightChip,\r\n '&.MuiChip-combinedPrimary': getColorStyle({ color: 'primary', theme }),\r\n '&.MuiChip-combinedSecondary': getColorStyle({ color: 'secondary', theme }),\r\n '&.MuiChip-combinedError': getColorStyle({ color: 'error', theme }),\r\n '&.MuiChip-combinedInfo': getColorStyle({ color: 'info', theme }),\r\n '&.MuiChip-combinedSuccess': getColorStyle({ color: 'success', theme }),\r\n '&.MuiChip-combinedWarning': getColorStyle({ color: 'warning', theme })\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\nimport { ColorProps } from 'types/extended';\r\n\r\n// project import\r\nimport getColors from 'utils/getColors';\r\nimport getShadow from 'utils/getShadow';\r\n\r\n// types\r\ninterface Props {\r\n variant: ColorProps;\r\n theme: Theme;\r\n}\r\n\r\n// ==============================|| OVERRIDES - INPUT BORDER & SHADOWS ||============================== //\r\n\r\nfunction getColor({ variant, theme }: Props) {\r\n const colors = getColors(theme, variant);\r\n const { light } = colors;\r\n\r\n const shadows = getShadow(theme, `${variant}`);\r\n\r\n return {\r\n '&:hover .MuiOutlinedInput-notchedOutline': {\r\n borderColor: light\r\n },\r\n '&.Mui-focused': {\r\n boxShadow: shadows,\r\n '& .MuiOutlinedInput-notchedOutline': {\r\n border: `1px solid ${light}`\r\n }\r\n }\r\n };\r\n}\r\n\r\n// ==============================|| OVERRIDES - OUTLINED INPUT ||============================== //\r\n\r\nexport default function OutlinedInput(theme: Theme) {\r\n return {\r\n MuiOutlinedInput: {\r\n styleOverrides: {\r\n input: {\r\n padding: '10.5px 14px 10.5px 12px'\r\n },\r\n notchedOutline: {\r\n borderColor: theme.palette.mode === 'dark' ? theme.palette.grey[200] : theme.palette.grey[300]\r\n },\r\n root: {\r\n ...getColor({ variant: 'primary', theme }),\r\n '&.Mui-error': {\r\n ...getColor({ variant: 'error', theme })\r\n }\r\n },\r\n inputSizeSmall: {\r\n padding: '7.5px 8px 7.5px 12px'\r\n },\r\n inputMultiline: {\r\n padding: 0\r\n },\r\n colorSecondary: getColor({ variant: 'secondary', theme }),\r\n colorError: getColor({ variant: 'error', theme }),\r\n colorWarning: getColor({ variant: 'warning', theme }),\r\n colorInfo: getColor({ variant: 'info', theme }),\r\n colorSuccess: getColor({ variant: 'success', theme })\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\nimport { PaginationProps } from '@mui/material';\r\n\r\n// project import\r\nimport getColors from 'utils/getColors';\r\n\r\n// types\r\nimport { ExtendedStyleProps } from 'types/extended';\r\n\r\n// ==============================|| PAGINATION ITEM - COLORS ||============================== //\r\n\r\ninterface PaginationStyleProps extends ExtendedStyleProps {\r\n variant: PaginationProps['variant'];\r\n}\r\n\r\nfunction getColorStyle({ variant, color, theme }: PaginationStyleProps) {\r\n const colors = getColors(theme, color);\r\n const { lighter, light, main, contrastText } = colors;\r\n\r\n switch (variant) {\r\n case 'combined':\r\n case 'contained':\r\n return {\r\n color: contrastText,\r\n backgroundColor: main,\r\n '&:hover': {\r\n backgroundColor: light\r\n }\r\n };\r\n case 'outlined':\r\n return {\r\n borderColor: main,\r\n '&:hover': {\r\n backgroundColor: lighter,\r\n borderColor: light\r\n }\r\n };\r\n case 'text':\r\n default:\r\n return {\r\n color: main,\r\n '&:hover': {\r\n backgroundColor: main,\r\n color: lighter\r\n }\r\n };\r\n }\r\n}\r\n\r\n// ==============================|| OVERRIDES - PAGINATION ITEM ||============================== //\r\n\r\nexport default function PaginationItem(theme: Theme) {\r\n return {\r\n MuiPaginationItem: {\r\n styleOverrides: {\r\n text: {\r\n '&.Mui-selected': {\r\n backgroundColor: 'transparent',\r\n fontSize: '1rem',\r\n fontWeight: 500,\r\n '&.MuiPaginationItem-textPrimary': getColorStyle({ variant: 'text', color: 'primary', theme }),\r\n '&.MuiPaginationItem-textSecondary': getColorStyle({ variant: 'text', color: 'secondary', theme }),\r\n '&.MuiPaginationItem-textError': getColorStyle({ variant: 'text', color: 'error', theme }),\r\n '&.MuiPaginationItem-textSuccess': getColorStyle({ variant: 'text', color: 'success', theme }),\r\n '&.MuiPaginationItem-textInfo': getColorStyle({ variant: 'text', color: 'info', theme }),\r\n '&.MuiPaginationItem-textWarning': getColorStyle({ variant: 'text', color: 'warning', theme })\r\n }\r\n },\r\n contained: {\r\n '&.Mui-selected': {\r\n '&.MuiPaginationItem-containedPrimary': getColorStyle({ variant: 'contained', color: 'primary', theme }),\r\n '&.MuiPaginationItem-containedSecondary': getColorStyle({ variant: 'contained', color: 'secondary', theme }),\r\n '&.MuiPaginationItem-containedError': getColorStyle({ variant: 'contained', color: 'error', theme }),\r\n '&.MuiPaginationItem-containedSuccess': getColorStyle({ variant: 'contained', color: 'success', theme }),\r\n '&.MuiPaginationItem-containedInfo': getColorStyle({ variant: 'contained', color: 'info', theme }),\r\n '&.MuiPaginationItem-containedWarning': getColorStyle({ variant: 'contained', color: 'warning', theme })\r\n }\r\n },\r\n combined: {\r\n border: '1px solid',\r\n borderColor: theme.palette.divider,\r\n '&.MuiPaginationItem-ellipsis': {\r\n border: 'none'\r\n },\r\n '&.Mui-selected': {\r\n '&.MuiPaginationItem-combinedPrimary': getColorStyle({ variant: 'combined', color: 'primary', theme }),\r\n '&.MuiPaginationItem-combinedSecondary': getColorStyle({ variant: 'combined', color: 'secondary', theme }),\r\n '&.MuiPaginationItem-combinedError': getColorStyle({ variant: 'combined', color: 'error', theme }),\r\n '&.MuiPaginationItem-combinedSuccess': getColorStyle({ variant: 'combined', color: 'success', theme }),\r\n '&.MuiPaginationItem-combinedInfo': getColorStyle({ variant: 'combined', color: 'info', theme }),\r\n '&.MuiPaginationItem-combinedWarning': getColorStyle({ variant: 'combined', color: 'warning', theme })\r\n }\r\n },\r\n outlined: {\r\n borderColor: theme.palette.divider,\r\n '&.Mui-selected': {\r\n backgroundColor: 'transparent',\r\n '&.MuiPaginationItem-outlinedPrimary': getColorStyle({ variant: 'outlined', color: 'primary', theme }),\r\n '&.MuiPaginationItem-outlinedSecondary': getColorStyle({ variant: 'outlined', color: 'secondary', theme }),\r\n '&.MuiPaginationItem-outlinedError': getColorStyle({ variant: 'outlined', color: 'error', theme }),\r\n '&.MuiPaginationItem-outlinedSuccess': getColorStyle({ variant: 'outlined', color: 'success', theme }),\r\n '&.MuiPaginationItem-outlinedInfo': getColorStyle({ variant: 'outlined', color: 'info', theme }),\r\n '&.MuiPaginationItem-outlinedWarning': getColorStyle({ variant: 'outlined', color: 'warning', theme })\r\n }\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\nimport { Box, CheckboxProps } from '@mui/material';\r\n\r\n// project import\r\nimport getColors from 'utils/getColors';\r\n\r\n// types\r\nimport { ExtendedStyleProps } from 'types/extended';\r\n\r\n// ==============================|| RADIO - COLORS ||============================== //\r\n\r\nfunction getColorStyle({ color, theme }: ExtendedStyleProps) {\r\n const colors = getColors(theme, color);\r\n const { main } = colors;\r\n\r\n return {\r\n '& .dot': {\r\n backgroundColor: main\r\n }\r\n };\r\n}\r\n\r\n// ==============================|| CHECKBOX - SIZE STYLE ||============================== //\r\n\r\ninterface RadioSizeProps {\r\n size: number;\r\n dotSize: number;\r\n position: number;\r\n}\r\n\r\nfunction getSizeStyle(size?: CheckboxProps['size']): RadioSizeProps {\r\n switch (size) {\r\n case 'small':\r\n return { size: 16, dotSize: 8, position: 3 };\r\n case 'large':\r\n return { size: 24, dotSize: 12, position: 5 };\r\n case 'medium':\r\n default:\r\n return { size: 20, dotSize: 10, position: 4 };\r\n }\r\n}\r\n\r\n// ==============================|| CHECKBOX - STYLE ||============================== //\r\n\r\nfunction radioStyle(size?: CheckboxProps['size']) {\r\n const sizes: RadioSizeProps = getSizeStyle(size);\r\n\r\n return {\r\n '& .icon': {\r\n width: sizes.size,\r\n height: sizes.size,\r\n '& .dot': {\r\n width: sizes.dotSize,\r\n height: sizes.dotSize,\r\n top: sizes.position,\r\n left: sizes.position\r\n }\r\n }\r\n };\r\n}\r\n\r\n// ==============================|| OVERRIDES - CHECKBOX ||============================== //\r\n\r\nexport default function Radio(theme: Theme) {\r\n const { palette } = theme;\r\n\r\n return {\r\n MuiRadio: {\r\n defaultProps: {\r\n className: 'size-small',\r\n icon: ,\r\n checkedIcon: (\r\n \r\n \r\n \r\n )\r\n },\r\n styleOverrides: {\r\n root: {\r\n color: palette.secondary[300],\r\n '&.size-small': {\r\n ...radioStyle('small')\r\n },\r\n '&.size-medium': {\r\n ...radioStyle('medium')\r\n },\r\n '&.size-large': {\r\n ...radioStyle('large')\r\n }\r\n },\r\n colorPrimary: getColorStyle({ color: 'primary', theme }),\r\n colorSecondary: getColorStyle({ color: 'secondary', theme }),\r\n colorSuccess: getColorStyle({ color: 'success', theme }),\r\n colorWarning: getColorStyle({ color: 'warning', theme }),\r\n colorInfo: getColorStyle({ color: 'info', theme }),\r\n colorError: getColorStyle({ color: 'error', theme })\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\nimport { SwitchProps } from '@mui/material/Switch';\r\n\r\n// ==============================|| SWITCH - SIZE STYLE ||============================== //\r\n\r\ninterface SwitchSizeProps {\r\n width: number;\r\n height: number;\r\n base: number;\r\n thumb: number;\r\n trackRadius: number;\r\n}\r\n\r\nfunction getSizeStyle(size?: SwitchProps['size']): SwitchSizeProps {\r\n switch (size) {\r\n case 'small':\r\n return { width: 28, height: 16, base: 12, thumb: 10, trackRadius: 8 };\r\n case 'large':\r\n return { width: 60, height: 28, base: 32, thumb: 22, trackRadius: 24 };\r\n case 'medium':\r\n default:\r\n return { width: 44, height: 22, base: 22, thumb: 16, trackRadius: 16 };\r\n }\r\n}\r\n\r\nfunction switchStyle(theme: Theme, size?: SwitchProps['size']) {\r\n const sizes: SwitchSizeProps = getSizeStyle(size);\r\n\r\n return {\r\n width: sizes.width,\r\n height: sizes.height,\r\n '& .MuiSwitch-switchBase': {\r\n padding: 3,\r\n '&.Mui-checked': {\r\n transform: `translateX(${sizes.base}px)`\r\n }\r\n },\r\n '& .MuiSwitch-thumb': {\r\n width: sizes.thumb,\r\n height: sizes.thumb\r\n },\r\n '& .MuiSwitch-track': {\r\n borderRadius: sizes.trackRadius\r\n }\r\n };\r\n}\r\n\r\n// ==============================|| OVERRIDES - TAB ||============================== //\r\n\r\nexport default function Switch(theme: Theme) {\r\n return {\r\n MuiSwitch: {\r\n styleOverrides: {\r\n track: {\r\n opacity: 1,\r\n backgroundColor: theme.palette.secondary[400],\r\n boxSizing: 'border-box'\r\n },\r\n thumb: {\r\n borderRadius: '50%',\r\n transition: theme.transitions.create(['width'], {\r\n duration: 200\r\n })\r\n },\r\n switchBase: {\r\n '&.Mui-checked': {\r\n color: '#fff',\r\n '& + .MuiSwitch-track': {\r\n opacity: 1\r\n },\r\n '&.Mui-disabled': {\r\n color: theme.palette.background.paper\r\n }\r\n },\r\n '&.Mui-disabled': {\r\n color: theme.palette.background.paper,\r\n '+.MuiSwitch-track': {\r\n opacity: 0.3\r\n }\r\n }\r\n },\r\n root: {\r\n color: theme.palette.text.primary,\r\n padding: 0,\r\n margin: 8,\r\n display: 'flex',\r\n '& ~ .MuiFormControlLabel-label': {\r\n margin: 6\r\n },\r\n ...switchStyle(theme, 'medium')\r\n },\r\n sizeLarge: { ...switchStyle(theme, 'large') },\r\n sizeSmall: {\r\n ...switchStyle(theme, 'small')\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// third-party\r\nimport { merge } from 'lodash';\r\n\r\n// project import\r\nimport Accordion from './Accordion';\r\nimport AccordionDetails from './AccordionDetails';\r\nimport AccordionSummary from './AccordionSummary';\r\nimport Alert from './Alert';\r\nimport AlertTitle from './AlertTitle';\r\nimport Autocomplete from './Autocomplete';\r\nimport Badge from './Badge';\r\nimport Button from './Button';\r\nimport ButtonBase from './ButtonBase';\r\nimport CardContent from './CardContent';\r\nimport Checkbox from './Checkbox';\r\nimport Chip from './Chip';\r\nimport Dialog from './Dialog';\r\nimport DialogContentText from './DialogContentText';\r\nimport DialogTitle from './DialogTitle';\r\nimport IconButton from './IconButton';\r\nimport InputBase from './InputBase';\r\nimport InputLabel from './InputLabel';\r\nimport LinearProgress from './LinearProgress';\r\nimport Link from './Link';\r\nimport ListItemButton from './ListItemButton';\r\nimport ListItemIcon from './ListItemIcon';\r\nimport LoadingButton from './LoadingButton';\r\nimport OutlinedInput from './OutlinedInput';\r\nimport Pagination from './Pagination';\r\nimport PaginationItem from './PaginationItem';\r\nimport Popover from './Popover';\r\nimport Radio from './Radio';\r\nimport Switch from './Switch';\r\nimport Tab from './Tab';\r\nimport TableBody from './TableBody';\r\nimport TableCell from './TableCell';\r\nimport TableFooter from './TableFooter';\r\nimport TableHead from './TableHead';\r\nimport TablePagination from './TablePagination';\r\nimport TableRow from './TableRow';\r\nimport Tabs from './Tabs';\r\nimport Tooltip from './Tooltip';\r\nimport ToggleButton from './ToggleButton';\r\nimport TreeItem from './TreeItem';\r\nimport Typography from './Typography';\r\n\r\n// ==============================|| OVERRIDES - MAIN ||============================== //\r\n\r\nexport default function ComponentsOverrides(theme: Theme) {\r\n return merge(\r\n Accordion(theme),\r\n AccordionDetails(theme),\r\n AccordionSummary(theme),\r\n Alert(theme),\r\n AlertTitle(),\r\n Autocomplete(),\r\n Badge(theme),\r\n Button(theme),\r\n ButtonBase(),\r\n CardContent(),\r\n Checkbox(theme),\r\n Chip(theme),\r\n Dialog(),\r\n DialogContentText(theme),\r\n DialogTitle(),\r\n IconButton(theme),\r\n InputBase(),\r\n InputLabel(theme),\r\n LinearProgress(),\r\n Link(),\r\n ListItemButton(theme),\r\n ListItemIcon(theme),\r\n LoadingButton(),\r\n OutlinedInput(theme),\r\n Pagination(),\r\n PaginationItem(theme),\r\n Popover(theme),\r\n Radio(theme),\r\n Switch(theme),\r\n Tab(theme),\r\n TableBody(theme),\r\n TableCell(theme),\r\n TableFooter(theme),\r\n TableHead(theme),\r\n TablePagination(),\r\n TableRow(),\r\n Tabs(),\r\n ToggleButton(theme),\r\n Tooltip(),\r\n TreeItem(),\r\n Typography()\r\n );\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// ==============================|| OVERRIDES - ALERT TITLE ||============================== //\r\n\r\nexport default function Accordion(theme: Theme) {\r\n return {\r\n MuiAccordion: {\r\n defaultProps: {\r\n disableGutters: true,\r\n square: true,\r\n elevation: 0\r\n },\r\n styleOverrides: {\r\n root: {\r\n border: `1px solid ${theme.palette.secondary.light}`,\r\n '&:not(:last-child)': {\r\n borderBottom: 0\r\n },\r\n '&:before': {\r\n display: 'none'\r\n },\r\n '&.Mui-disabled': {\r\n backgroundColor: theme.palette.secondary.lighter\r\n }\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// ==============================|| OVERRIDES - ALERT TITLE ||============================== //\r\n\r\nexport default function AccordionDetails(theme: Theme) {\r\n return {\r\n MuiAccordionDetails: {\r\n styleOverrides: {\r\n root: {\r\n padding: theme.spacing(2),\r\n borderTop: `1px solid ${theme.palette.secondary.light}`\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// assets\r\nimport { RightOutlined } from '@ant-design/icons';\r\n\r\n// ==============================|| OVERRIDES - ALERT TITLE ||============================== //\r\n\r\nexport default function AccordionSummary(theme: Theme) {\r\n const { palette, spacing } = theme;\r\n\r\n return {\r\n MuiAccordionSummary: {\r\n defaultProps: {\r\n expandIcon: \r\n },\r\n styleOverrides: {\r\n root: {\r\n backgroundColor: palette.secondary.lighter,\r\n flexDirection: 'row-reverse',\r\n minHeight: 46\r\n },\r\n expandIconWrapper: {\r\n '&.Mui-expanded': {\r\n transform: 'rotate(90deg)'\r\n }\r\n },\r\n content: {\r\n marginTop: spacing(1.25),\r\n marginBottom: spacing(1.25),\r\n marginLeft: spacing(1)\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// ==============================|| OVERRIDES - ALERT TITLE ||============================== //\r\n\r\nexport default function AlertTitle() {\r\n return {\r\n MuiAlertTitle: {\r\n styleOverrides: {\r\n root: {\r\n marginBottom: 4,\r\n marginTop: 0,\r\n fontWeight: 400\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// ==============================|| OVERRIDES - AUTOCOMPLETE ||============================== //\r\n\r\nexport default function Autocomplete() {\r\n return {\r\n MuiAutocomplete: {\r\n styleOverrides: {\r\n root: {\r\n '& .MuiOutlinedInput-root': {\r\n padding: '3px 9px'\r\n }\r\n },\r\n popupIndicator: {\r\n width: 'auto',\r\n height: 'auto'\r\n },\r\n clearIndicator: {\r\n width: 'auto',\r\n height: 'auto'\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// ==============================|| OVERRIDES - BUTTON ||============================== //\r\n\r\nexport default function ButtonBase() {\r\n return {\r\n MuiButtonBase: {\r\n defaultProps: {\r\n disableRipple: true\r\n }\r\n }\r\n };\r\n}\r\n","// ==============================|| OVERRIDES - CARD CONTENT ||============================== //\r\n\r\nexport default function CardContent() {\r\n return {\r\n MuiCardContent: {\r\n styleOverrides: {\r\n root: {\r\n padding: 20,\r\n '&:last-child': {\r\n paddingBottom: 20\r\n }\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { alpha } from '@mui/material/styles';\r\n\r\n// ==============================|| OVERRIDES - DIALOG ||============================== //\r\n\r\nexport default function Dialog() {\r\n return {\r\n MuiDialog: {\r\n styleOverrides: {\r\n root: {\r\n '& .MuiBackdrop-root': {\r\n backgroundColor: alpha('#000', 0.7)\r\n }\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// ==============================|| OVERRIDES - DIALOG CONTENT TEXT ||============================== //\r\n\r\nexport default function DialogContentText(theme: Theme) {\r\n return {\r\n MuiDialogContentText: {\r\n styleOverrides: {\r\n root: {\r\n fontSize: '0.875rem',\r\n color: theme.palette.text.primary\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// ==============================|| OVERRIDES - DIALOG TITLE ||============================== //\r\n\r\nexport default function DialogTitle() {\r\n return {\r\n MuiDialogTitle: {\r\n styleOverrides: {\r\n root: {\r\n fontSize: '1rem',\r\n fontWeight: 500\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// ==============================|| OVERRIDES - ICON BUTTON ||============================== //\r\n\r\nexport default function IconButton(theme: Theme) {\r\n return {\r\n MuiIconButton: {\r\n styleOverrides: {\r\n root: {\r\n borderRadius: 4\r\n },\r\n sizeLarge: {\r\n width: theme.spacing(5.5),\r\n height: theme.spacing(5.5),\r\n fontSize: '1.25rem'\r\n },\r\n sizeMedium: {\r\n width: theme.spacing(4.5),\r\n height: theme.spacing(4.5),\r\n fontSize: '1rem'\r\n },\r\n sizeSmall: {\r\n width: theme.spacing(3.75),\r\n height: theme.spacing(3.75),\r\n fontSize: '0.75rem'\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// ==============================|| OVERRIDES - INPUT BASE ||============================== //\r\n\r\nexport default function InputBase() {\r\n return {\r\n MuiInputBase: {\r\n styleOverrides: {\r\n sizeSmall: {\r\n fontSize: '0.75rem'\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// ==============================|| OVERRIDES - INPUT LABEL ||============================== //\r\n\r\nexport default function InputLabel(theme: Theme) {\r\n return {\r\n MuiInputLabel: {\r\n styleOverrides: {\r\n root: {\r\n color: theme.palette.grey[600]\r\n },\r\n outlined: {\r\n lineHeight: '0.8em',\r\n '&.MuiInputLabel-sizeSmall': {\r\n lineHeight: '1em'\r\n },\r\n '&.MuiInputLabel-shrink': {\r\n background: theme.palette.background.paper,\r\n padding: '0 8px',\r\n marginLeft: -6,\r\n lineHeight: '1.4375em'\r\n }\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// ==============================|| OVERRIDES - LINER PROGRESS ||============================== //\r\n\r\nexport default function LinearProgress() {\r\n return {\r\n MuiLinearProgress: {\r\n styleOverrides: {\r\n root: {\r\n height: 6,\r\n borderRadius: 100\r\n },\r\n bar: {\r\n borderRadius: 100\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// ==============================|| OVERRIDES - LINK ||============================== //\r\n\r\nexport default function Link() {\r\n return {\r\n MuiLink: {\r\n defaultProps: {\r\n underline: 'hover'\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// ==============================|| OVERRIDES - LIST ITEM ICON ||============================== //\r\n\r\nexport default function ListItemButton(theme: Theme) {\r\n return {\r\n MuiListItemButton: {\r\n styleOverrides: {\r\n root: {\r\n '&.Mui-selected': {\r\n color: theme.palette.primary.main,\r\n '& .MuiListItemIcon-root': {\r\n color: theme.palette.primary.main\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// ==============================|| OVERRIDES - LIST ITEM ICON ||============================== //\r\n\r\nexport default function ListItemIcon(theme: Theme) {\r\n return {\r\n MuiListItemIcon: {\r\n styleOverrides: {\r\n root: {\r\n minWidth: 24,\r\n color: theme.palette.text.primary\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// ==============================|| OVERRIDES - LOADING BUTTON ||============================== //\r\n\r\nexport default function LoadingButton() {\r\n return {\r\n MuiLoadingButton: {\r\n styleOverrides: {\r\n root: {\r\n padding: '6px 16px',\r\n '&.MuiLoadingButton-loading': {\r\n opacity: 0.6,\r\n textShadow: 'none'\r\n }\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// ==============================|| OVERRIDES - PAGINATION ||============================== //\r\n\r\nexport default function Pagination() {\r\n return {\r\n MuiPagination: {\r\n defaultProps: {\r\n shape: 'rounded'\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// ==============================|| OVERRIDES - DIALOG CONTENT TEXT ||============================== //\r\n\r\nexport default function Popover(theme: Theme) {\r\n return {\r\n MuiPopover: {\r\n styleOverrides: {\r\n paper: {\r\n boxShadow: theme.customShadows.z1\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// ==============================|| OVERRIDES - TAB ||============================== //\r\n\r\nexport default function Tab(theme: Theme) {\r\n return {\r\n MuiTab: {\r\n styleOverrides: {\r\n root: {\r\n minHeight: 46,\r\n color: theme.palette.text.primary\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// ==============================|| OVERRIDES - TABLE ROW ||============================== //\r\n\r\nexport default function TableBody(theme: Theme) {\r\n const hoverStyle = {\r\n '&:hover': {\r\n backgroundColor: theme.palette.secondary.lighter\r\n }\r\n };\r\n\r\n return {\r\n MuiTableBody: {\r\n styleOverrides: {\r\n root: {\r\n '&.striped .MuiTableRow-root': {\r\n '&:nth-of-type(even)': {\r\n backgroundColor: theme.palette.grey[50]\r\n },\r\n ...hoverStyle\r\n },\r\n '& .MuiTableRow-root': {\r\n ...hoverStyle\r\n }\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// ==============================|| OVERRIDES - TABLE CELL ||============================== //\r\n\r\nexport default function TableCell(theme: Theme) {\r\n const commonCell = {\r\n '&:not(:last-of-type)': {\r\n position: 'relative',\r\n '&:after': {\r\n position: 'absolute',\r\n content: '\"\"',\r\n backgroundColor: theme.palette.divider,\r\n width: 1,\r\n height: 'calc(100% - 30px)',\r\n right: 0,\r\n top: 16\r\n }\r\n }\r\n };\r\n\r\n return {\r\n MuiTableCell: {\r\n styleOverrides: {\r\n root: {\r\n fontSize: '0.875rem',\r\n padding: 12,\r\n borderColor: theme.palette.divider\r\n },\r\n sizeSmall: {\r\n padding: 8\r\n },\r\n head: {\r\n fontSize: '0.75rem',\r\n fontWeight: 700,\r\n textTransform: 'uppercase',\r\n ...commonCell\r\n },\r\n footer: {\r\n fontSize: '0.75rem',\r\n textTransform: 'uppercase',\r\n ...commonCell\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// ==============================|| OVERRIDES - TABLE CELL ||============================== //\r\n\r\nexport default function TableFooter(theme: Theme) {\r\n return {\r\n MuiTableFooter: {\r\n styleOverrides: {\r\n root: {\r\n backgroundColor: theme.palette.grey[50],\r\n borderTop: `2px solid ${theme.palette.divider}`,\r\n borderBottom: `1px solid ${theme.palette.divider}`\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// ==============================|| OVERRIDES - TABLE CELL ||============================== //\r\n\r\nexport default function TableHead(theme: Theme) {\r\n return {\r\n MuiTableHead: {\r\n styleOverrides: {\r\n root: {\r\n backgroundColor: theme.palette.grey[50],\r\n borderTop: `1px solid ${theme.palette.divider}`,\r\n borderBottom: `2px solid ${theme.palette.divider}`\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// ==============================|| OVERRIDES - TABLE PAGINATION ||============================== //\r\n\r\nexport default function TablePagination() {\r\n return {\r\n MuiTablePagination: {\r\n styleOverrides: {\r\n selectLabel: {\r\n fontSize: '0.875rem'\r\n },\r\n displayedRows: {\r\n fontSize: '0.875rem'\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// ==============================|| OVERRIDES - TABLE ROW ||============================== //\r\n\r\nexport default function TableRow() {\r\n return {\r\n MuiTableRow: {\r\n styleOverrides: {\r\n root: {\r\n '&:last-of-type': {\r\n '& .MuiTableCell-root': {\r\n borderBottom: 'none'\r\n }\r\n },\r\n '& .MuiTableCell-root': {\r\n '&:last-of-type': {\r\n paddingRight: 24\r\n },\r\n '&:first-of-type': {\r\n paddingLeft: 24\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// ==============================|| OVERRIDES - TABS ||============================== //\r\n\r\nexport default function Tabs() {\r\n return {\r\n MuiTabs: {\r\n styleOverrides: {\r\n vertical: {\r\n overflow: 'visible'\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// material-ui\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// ==============================|| OVERRIDES - TABS ||============================== //\r\n\r\nexport default function ToggleButton(theme: Theme) {\r\n return {\r\n MuiToggleButton: {\r\n styleOverrides: {\r\n root: {\r\n '&.Mui-disabled': {\r\n borderColor: theme.palette.divider,\r\n color: theme.palette.text.disabled\r\n }\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// ==============================|| OVERRIDES - LINK ||============================== //\r\n\r\nexport default function Tooltip() {\r\n return {\r\n MuiTooltip: {\r\n styleOverrides: {\r\n tooltip: {\r\n fontSize: '1em',\r\n color: 'black',\r\n backgroundColor: '#b6a19e'\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// ==============================|| OVERRIDES - TREE ITEM ||============================== //\r\n\r\nexport default function TreeItem() {\r\n return {\r\n MuiTreeItem: {\r\n styleOverrides: {\r\n content: {\r\n padding: 8\r\n },\r\n iconContainer: {\r\n '& svg': {\r\n fontSize: '0.625rem'\r\n }\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","// ==============================|| OVERRIDES - TYPOGRAPHY ||============================== //\r\n\r\nexport default function Typography() {\r\n return {\r\n MuiTypography: {\r\n styleOverrides: {\r\n gutterBottom: {\r\n marginBottom: 12\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","import { ReactNode, useMemo } from 'react';\r\n\r\n// material-ui\r\nimport { CssBaseline, StyledEngineProvider } from '@mui/material';\r\nimport { createTheme, ThemeOptions, ThemeProvider, Theme, TypographyVariantsOptions } from '@mui/material/styles';\r\n\r\n// project import\r\nimport useConfig from 'hooks/useConfig';\r\nimport Palette from './palette';\r\nimport Typography from './typography';\r\nimport CustomShadows from './shadows';\r\nimport componentsOverride from './overrides';\r\n\r\n// types\r\nimport { CustomShadowProps } from 'types/theme';\r\n\r\n// types\r\ntype ThemeCustomizationProps = {\r\n children: ReactNode;\r\n};\r\n\r\n// ==============================|| DEFAULT THEME - MAIN ||============================== //\r\n\r\nexport default function ThemeCustomization({ children }: ThemeCustomizationProps) {\r\n const { themeDirection, mode, presetColor, fontFamily } = useConfig();\r\n\r\n const theme: Theme = useMemo(() => Palette(mode, presetColor), [mode, presetColor]);\r\n\r\n const themeTypography: TypographyVariantsOptions = useMemo(\r\n () => Typography(mode, fontFamily, theme),\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [mode, fontFamily]\r\n );\r\n const themeCustomShadows: CustomShadowProps = useMemo(() => CustomShadows(theme), [theme]);\r\n\r\n const themeOptions: ThemeOptions = useMemo(\r\n () => ({\r\n breakpoints: {\r\n values: {\r\n xs: 0,\r\n sm: 768,\r\n md: 1024,\r\n lg: 1266,\r\n xl: 1536\r\n }\r\n },\r\n direction: themeDirection,\r\n mixins: {\r\n toolbar: {\r\n minHeight: 60,\r\n paddingTop: 8,\r\n paddingBottom: 8\r\n }\r\n },\r\n palette: theme.palette,\r\n customShadows: themeCustomShadows,\r\n typography: themeTypography\r\n }),\r\n [themeDirection, theme, themeTypography, themeCustomShadows]\r\n );\r\n\r\n const themes: Theme = createTheme(themeOptions);\r\n themes.components = componentsOverride(themes);\r\n\r\n return (\r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n}\r\n","import { ReactNode, useEffect, useState } from 'react';\r\n\r\n// third-party\r\nimport { IntlProvider, MessageFormatElement } from 'react-intl';\r\n\r\n// project import\r\nimport useConfig from 'hooks/useConfig';\r\nimport { I18n } from 'types/config';\r\n\r\n// load locales files\r\nconst loadLocaleData = (locale: I18n) => {\r\n switch (locale) {\r\n case 'fr':\r\n return import('utils/locales/fr.json');\r\n case 'ro':\r\n return import('utils/locales/ro.json');\r\n case 'zh':\r\n return import('utils/locales/zh.json');\r\n case 'en':\r\n default:\r\n return import('utils/locales/en.json');\r\n }\r\n};\r\n\r\n// ==============================|| LOCALIZATION ||============================== //\r\n\r\ninterface Props {\r\n children: ReactNode;\r\n}\r\n\r\nconst Locales = ({ children }: Props) => {\r\n const { i18n } = useConfig();\r\n\r\n const [messages, setMessages] = useState | Record | undefined>();\r\n\r\n useEffect(() => {\r\n loadLocaleData(i18n).then((d: { default: Record | Record | undefined }) => {\r\n setMessages(d.default);\r\n });\r\n }, [i18n]);\r\n\r\n return (\r\n <>\r\n {messages && (\r\n \r\n {children}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Locales;\r\n","import { useEffect, ReactNode } from 'react';\r\n\r\n// material-ui\r\nimport { CacheProvider } from '@emotion/react';\r\nimport createCache, { StylisPlugin } from '@emotion/cache';\r\n\r\n// third-party\r\nimport rtlPlugin from 'stylis-plugin-rtl';\r\n\r\n// project import\r\nimport useConfig from 'hooks/useConfig';\r\n\r\n// ==============================|| RTL LAYOUT ||============================== //\r\n\r\ninterface Props {\r\n children: ReactNode;\r\n}\r\n\r\nconst RTLLayout = ({ children }: Props) => {\r\n const { themeDirection } = useConfig();\r\n\r\n useEffect(() => {\r\n document.dir = themeDirection;\r\n }, [themeDirection]);\r\n\r\n const cacheRtl = createCache({\r\n key: themeDirection === 'rtl' ? 'rtl' : 'css',\r\n prepend: true,\r\n stylisPlugins: themeDirection === 'rtl' ? [rtlPlugin as StylisPlugin] : []\r\n });\r\n\r\n return {children};\r\n};\r\n\r\nexport default RTLLayout;\r\n","import { ReactElement, useEffect } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\n// ==============================|| NAVIGATION - SCROLL TO TOP ||============================== //\r\n\r\nconst ScrollTop = ({ children }: { children: ReactElement | null }) => {\r\n const location = useLocation();\r\n const { pathname } = location;\r\n\r\n useEffect(() => {\r\n window.scrollTo({\r\n top: 0,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }, [pathname]);\r\n\r\n return children || null;\r\n};\r\n\r\nexport default ScrollTop;\r\n","import { SyntheticEvent } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\n// material-ui\r\nimport { Alert, Button, Fade, Grow, Slide, SlideProps } from '@mui/material';\r\nimport MuiSnackbar from '@mui/material/Snackbar';\r\n\r\n// project-import\r\nimport IconButton from './IconButton';\r\n\r\n// assets\r\nimport { CloseOutlined } from '@ant-design/icons';\r\n\r\nimport { KeyedObject, RootStateProps } from 'types/root';\r\nimport { closeSnackbar } from 'store/reducers/snackbar';\r\n\r\n// animation function\r\nfunction TransitionSlideLeft(props: SlideProps) {\r\n return ;\r\n}\r\n\r\nfunction TransitionSlideUp(props: SlideProps) {\r\n return ;\r\n}\r\n\r\nfunction TransitionSlideRight(props: SlideProps) {\r\n return ;\r\n}\r\n\r\nfunction TransitionSlideDown(props: SlideProps) {\r\n return ;\r\n}\r\n\r\nfunction GrowTransition(props: SlideProps) {\r\n return ;\r\n}\r\n\r\n// animation options\r\nconst animation: KeyedObject = {\r\n SlideLeft: TransitionSlideLeft,\r\n SlideUp: TransitionSlideUp,\r\n SlideRight: TransitionSlideRight,\r\n SlideDown: TransitionSlideDown,\r\n Grow: GrowTransition,\r\n Fade\r\n};\r\n\r\n// ==============================|| SNACKBAR ||============================== //\r\n\r\nconst Snackbar = () => {\r\n const dispatch = useDispatch();\r\n const snackbar = useSelector((state: RootStateProps) => state.snackbar);\r\n const { actionButton, anchorOrigin, alert, close, message, open, transition, variant, autoHideDuration } = snackbar;\r\n\r\n const handleClose = (event: SyntheticEvent | Event, reason?: string) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n dispatch(closeSnackbar());\r\n };\r\n\r\n return (\r\n <>\r\n {/* default snackbar */}\r\n {variant === 'default' && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n )}\r\n\r\n {/* alert snackbar */}\r\n {variant === 'alert' && (\r\n \r\n \r\n {actionButton !== false && (\r\n \r\n )}\r\n {close !== false && (\r\n \r\n \r\n \r\n )}\r\n \r\n }\r\n sx={{\r\n ...(alert.variant === 'outlined' && {\r\n bgcolor: 'grey.0'\r\n })\r\n }}\r\n >\r\n {message}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Snackbar;\r\n","// project import\r\nimport Routes from 'routes';\r\nimport ThemeCustomization from 'themes';\r\nimport Locales from 'components/Locales';\r\nimport RTLLayout from 'components/RTLLayout';\r\nimport ScrollTop from 'components/ScrollTop';\r\nimport Snackbar from 'components/@extended/Snackbar';\r\n\r\n// auth provider\r\nimport { JWTProvider as AuthProvider } from 'contexts/UserContext';\r\n\r\n// ==============================|| APP - THEME, ROUTER, LOCAL ||============================== //\r\n\r\nconst App = () => (\r\n \r\n \r\n \r\n \r\n \r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default App;\r\n","import ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\n\r\n// third-party\r\nimport { Provider as ReduxProvider } from 'react-redux';\r\n\r\n// scroll bar\r\nimport 'simplebar/src/simplebar.css';\r\nimport 'slick-carousel/slick/slick.css';\r\nimport 'slick-carousel/slick/slick-theme.css';\r\n\r\n// project import\r\nimport App from './App';\r\nimport { store } from 'store';\r\nimport { ConfigProvider } from 'contexts/ConfigContext';\r\n\r\n// ==============================|| MAIN - REACT DOM RENDER ||============================== //\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n"],"sourceRoot":""}