{"version":3,"sources":["services/authService.js","components/Logo.js","context/SocketContext.js","utils/axios.js","utils/analytics.js","components/Page.js","components/LoadingScreen.js","constants/index.js","actions/accountActions.js","mixins/chartjs.js","utils/settings.js","context/SettingsContext.js","reducers/accountReducer.js","reducers/notificationsReducer.js","actions/notificationsActions.js","utils/objFromArray.js","reducers/chatReducer.js","actions/chatActions.js","reducers/mailReducer.js","actions/mailActions.js","reducers/kanbanReducer.js","actions/kanbanActions.js","reducers/index.js","store/index.js","components/SplashScreen.js","components/Auth.js","components/CookiesNotification.js","hooks/useSettings.js","components/SettingsNotification.js","components/ScrollReset.js","theme/shadows.js","theme/index.js","theme/typography.js","layouts/DashboardLayout/NavBar/NavItem.js","layouts/DashboardLayout/NavBar/UsersSubItems.js","layouts/DashboardLayout/NavBar/EngineeringSubItem.js","layouts/DashboardLayout/NavBar/ReviewerSubItem.js","layouts/DashboardLayout/NavBar/FireSubItem.js","layouts/DashboardLayout/NavBar/MpdoSubItem.js","layouts/DashboardLayout/NavBar/AdministratorSubItem.js","layouts/DashboardLayout/NavBar/TreasurySubItem.js","layouts/DashboardLayout/NavBar/RequirementsReviewerSubItem.js","layouts/DashboardLayout/NavBar/StructuralReviewerSubItem.js","layouts/DashboardLayout/NavBar/ElectricalReviewerSubitem.js","layouts/DashboardLayout/NavBar/ArcheticturalReviewerSubitem.js","layouts/DashboardLayout/NavBar/PlumbingReviewerSubitem.js","layouts/DashboardLayout/NavBar/index.js","layouts/DashboardLayout/TopBar/Account.js","components/OnlineIndicator.js","layouts/DashboardLayout/TopBar/Contacts.js","layouts/DashboardLayout/TopBar/Notifications.js","layouts/DashboardLayout/TopBar/Search.js","layouts/DashboardLayout/TopBar/Settings.js","layouts/DashboardLayout/TopBar/index.js","layouts/DashboardLayout/index.js","components/AuthGuard.js","components/GuestGuard.js","views/pages/HomeView/Hero.js","views/pages/HomeView/index.js","layouts/MainLayout/TopBar.js","layouts/MainLayout/index.js","components/guard/EngineeringGuard.js","components/guard/ReviewerGuard.js","components/guard/FireGuard.js","components/guard/MpdoGuard.js","components/guard/AdministratorGuard.js","components/guard/TreasuryGuard.js","components/guard/RequirementsReviewerGuard.js","components/guard/StructuralReviewerGuard.js","components/guard/ArchitecturalReviewerGuard.js","components/guard/PlumbingReviewerGuard.js","components/guard/ElectricalReviewerGuard.js","components/guard/LineAndGradeGuard.js","Routes.js","App.js","index.js"],"names":["authService","AuthService","_this","_classCallCheck","setAxiosInterceptors","_ref","onLogout","axios","interceptors","response","use","error","status","setSession","Promise","reject","loginWithEmailAndPassword","email","password","resolve","post","then","data","user","accessToken","catch","loginInWithToken","get","logout","localStorage","setItem","defaults","headers","common","Authorization","concat","removeItem","getAccessToken","getItem","isValidToken","decoded","jwtDecode","currentTime","Date","now","exp","isAuthenticated","_createClass","key","value","this","Logo","props","React","createElement","Object","assign","alt","src","width","SocketContext","createContext","instance","create","track","_window","window","gtag","apply","arguments","pageview","process","REACT_APP_GA_MEASUREMENT_ID","event","type","Page","forwardRef","ref","title","children","rest","_objectWithoutProperties","_excluded","location","useLocation","sendPageViewEvent","useCallback","page_path","pathname","useEffect","Helmet","useStyles","makeStyles","theme","root","alignItems","backgroundColor","palette","background","default","display","flexDirection","height","justifyContent","minHeight","padding","spacing","LoadingScreen","classes","NProgress","start","done","className","Box","LinearProgress","THEMES","LIGHT","ONE_DARK","UNICORN","socketBaseURL","offices","role_id","name","LOGIN_REQUEST","LOGIN_SUCCESS","LOGIN_FAILURE","SILENT_LOGIN","LOGOUT","REGISTER","UPDATE_PROFILE","setUserData","dispatch","payload","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","wrap","_context2","prev","next","stop","_x2","register","request","Chart","helpers","extend","elements","Rectangle","prototype","draw","left","right","top","bottom","signX","signY","borderSkipped","radius","ctx","_chart","vm","_view","borderWidth","cornerRadius","config","options","horizontal","base","x","y","barSize","Math","min","abs","halfStroke","borderLeft","borderRight","borderTop","borderBottom","beginPath","fillStyle","strokeStyle","borderColor","lineWidth","corners","startCorner","indexOf","cornerAt","index","corner","moveTo","i","nextCornerId","floor","xTl","xTr","yTl","yTr","xBl","xBr","yBl","yBr","lineTo","quadraticCurveTo","fill","stroke","storeSettings","settings","JSON","stringify","SettingsContext","defaultSettings","direction","responsiveFontSizes","SettingsProvider","_useState","useState","_useState2","_slicedToArray","currentSettings","setCurrentSettings","document","dir","Provider","saveSettings","updatedSettings","length","undefined","mergedSettings","_","merge","Consumer","initialState","accountReducer","state","action","produce","draft","notifications","notificationsReducer","objFromArray","arr","reduce","accumulator","current","contacts","byId","allIds","threads","byKey","allKeys","sidebarOpen","chatReducer","keys","thread","includes","push","threadKey","unreadCount","_action$payload","message","userId","otherUserId","messages","participantIds","mails","labels","newMessageOpen","mailReducer","mail","id","isLoaded","lists","cards","members","kanbanReducer","board","list","listId","cardIds","omit","pull","_toConsumableArray","card","cardId","position","sourceListId","splice","comment","comments","_action$payload2","checklist","checklists","_action$payload3","map","_checklist","_action$payload4","checklistId","_action$payload5","checkItem","checkItems","_action$payload6","checkItemId","_checkItem","_action$payload7","rootReducer","combineReducers","account","chat","kanban","form","formReducer","createLogger","zIndex","logo","maxWidth","SlashScreen","mb","CircularProgress","Auth","useDispatch","isLoading","setLoading","setSocket","useContext","_callee","newsocket","_context","handleAuthentication","sent","socketio","connect","query","token","initAuth","SplashScreen","black","color","white","margin","outline","CookiesNotification","open","setOpen","Cookies","Portal","Typography","variant","Link","component","underline","href","target","mt","Button","onClick","set","useSettings","SettingsNotification","isOpen","Paper","elevation","gutterBottom","ScrollReset","scrollTo","strongShadows","baseConfig","typography","h1","fontWeight","fontSize","letterSpacing","h2","h3","h4","h5","h6","overline","overrides","MuiLinearProgress","borderRadius","overflow","MuiListItemIcon","minWidth","MuiChip","themeConfigs","MuiInputBase","input","opacity","colors","blueGrey","active","dark","paper","primary","main","indigo","secondary","text","shadows","hover","selected","disabled","disabledBackground","focus","createTheme","themeConfig","find","console","warn","Error","createMuiTheme","item","paddingTop","paddingBottom","itemLeaf","button","textTransform","buttonLeaf","fontWeightRegular","fontWeightMedium","icon","marginRight","NavItem","enabled","depth","Icon","openProp","Info","info","paddingLeft","style","ListItem","clsx","disableGutters","prevOpen","size","ExpandLessIcon","ExpandMoreIcon","Collapse","in","activeClassName","RouterLink","exact","to","defaultProps","UsersSubItems","owner","items","EngineeringSubItem","subheader","Print","ListAltIcon","ReviewerSubItem","DvrIcon","FireSubItem","DoneAll","MpdoSubItem","AdministratorSubItem","List","ChevronsRight","Users","Layout","TreasurySubItem","RequirementsReviewerSubItem","StructuralReviewerSubItem","ElectricalReviewerSubitem","ArcheticturalReviewerSubitem","PlumbingReviewerSubitem","renderNavItems","disablePadding","acc","_ref2$depth","matchPath","path","Boolean","reduceChildRoutes","_objectSpread","mobileDrawer","desktopDrawer","transition","desktopDrawerClose","avatar","cursor","NavBar","_ref3","openMobile","isDesktopHideSidebar","onMobileClose","useSelector","userlink","engineeringlink","reviewerlink","firelink","mpdolink","adminLink","treasuryLink","requirementsReviewierLink","srs","ers","ars","prs","navConfig","roles","PieChartIcon","content","PerfectScrollbar","suppressScrollX","p","textDecoration","Avatar","firstname","textAlign","lastname","bio","Divider","ListSubheader","disableSticky","Hidden","xsUp","xsDown","bgcolor","align","fullWidth","Fragment","Drawer","anchor","onClose","mdDown","popover","Account","history","useHistory","useRef","enqueueSnackbar","useSnackbar","handleClose","handleLogout","t0","ButtonBase","smDown","Menu","anchorOrigin","vertical","keepMounted","PaperProps","getContentAnchorEl","anchorEl","MenuItem","flexGrow","flexShrink","small","medium","large","offline","grey","away","orange","busy","red","online","green","OnlineIndicator","_clsx","rootClassName","_defineProperty","listItemText","lastActivity","whiteSpace","Contacts","getContacts","Tooltip","IconButton","SvgIcon","UsersIcon","Popover","contactId","contact","ListItemAvatar","ListItemText","disableTypography","noWrap","isActive","moment","fromNow","contrastText","Notifications","_user$roles","_user$roles$","_user$roles2","_user$roles2$","_user$roles3","socket","_useState3","_useState4","setNotifications","user_type","getNotifications","params","emit","on","navigate","Badge","badgeContent","BellIcon","ExternalLink","notification","_notification$type","_extras$inquiry_id","extras","trim","parse","inquiry_id","url","listItem","divider","ListItemIcon","MessageIcon","primaryTypographyProps","e","preventDefault","handleSetNotificationAsRead","drawer","Search","setValue","_useState5","_useState6","_useState7","_useState8","results","setResults","handleSearch","finish","SearchIcon","ModalProps","BackdropProps","invisible","XIcon","TextField","queryField","InputProps","startAdornment","InputAdornment","onChange","placeholder","result","description","badge","marginTop","Settings","_useSettings","values","setValues","handleChange","field","SettingsIcon","px","FormControlLabel","control","Switch","checked","edge","label","select","SelectProps","native","capitalCase","boxShadow","toolbar","TopBar","onMobileNavOpen","onHideDesktopSidebar","module","AppBar","Toolbar","lgUp","menuButton","MenuIcon","marginLeft","ml","wrapper","flex","breakpoints","up","wrapperClose","contentContainer","DashboardLayout","isMobileNavOpen","setMobileNavOpen","setIsDesktopHideSidebar","AuthGuard","Redirect","GuestGuard","down","image","perspectiveOrigin","transformStyle","perspective","transform","backfaceVisibility","shape","Hero","Container","Grid","container","xs","md","HomeView","link","MainLayout","EngineeringGuard","ReviewerGuard","FireGuard","MpdoGuard","AdministratorGuard","TreasuryGuard","RequirementsReviewerGuard","StructuralReviewerGuard","ArchitecturalReviewerGuard","PlumbingReviewerGuard","ElectricalReviewerGuard","LineAndGradeGuard","routesConfig","lazy","guard","layout","routes","Routes","renderRoutes","Suspense","fallback","route","Guard","Component","Route","render","createBrowserHistory","jss","plugins","jssPreset","rtl","baseURL","createStyles","boxSizing","html","body","App","_React$useState","_React$useState2","ThemeProvider","StylesProvider","MuiPickersUtilsProvider","utils","MomentUtils","SnackbarProvider","maxSnack","Router","enableES5","store","preloadedState","middlewares","thunkMiddleware","middlewareEnhancer","composeWithDevTools","applyMiddleware","enhancers","composedEnhancers","compose","createStore","configureStore","storedData","err","restoreSettings","ReactDOM","getElementById"],"mappings":"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","file":"static/js/main.e1e8d00f.chunk.js","sourcesContent":["import jwtDecode from 'jwt-decode';\r\n// import axios from 'src/utils/axios';\r\nimport axios from 'axios';\r\n\r\nclass AuthService {\r\n setAxiosInterceptors = ({ onLogout }) => {\r\n axios.interceptors.response.use(\r\n response => response,\r\n error => {\r\n if (error.response && error.response.status === 401) {\r\n this.setSession(null);\r\n\r\n if (onLogout) {\r\n onLogout();\r\n }\r\n }\r\n\r\n return Promise.reject(error);\r\n }\r\n );\r\n };\r\n\r\n handleAuthentication() {\r\n const accessToken = this.getAccessToken();\r\n\r\n if (!accessToken) {\r\n return;\r\n }\r\n\r\n if (this.isValidToken(accessToken)) {\r\n this.setSession(accessToken);\r\n } else {\r\n this.setSession(null);\r\n }\r\n }\r\n\r\n loginWithEmailAndPassword = (email, password) =>\r\n new Promise((resolve, reject) => {\r\n axios\r\n .post('/api/auth/signin', { email, password })\r\n .then(response => {\r\n if (response.data.user) {\r\n this.setSession(response.data.accessToken);\r\n resolve(response.data);\r\n } else {\r\n reject(response.data.error);\r\n }\r\n })\r\n .catch(error => {\r\n reject(error);\r\n });\r\n });\r\n\r\n loginInWithToken = () =>\r\n new Promise((resolve, reject) => {\r\n axios\r\n .get('/api/account/me')\r\n .then(response => {\r\n if (response.data) {\r\n resolve(response.data);\r\n } else {\r\n reject(response.data);\r\n }\r\n })\r\n .catch(error => {\r\n reject(error);\r\n });\r\n });\r\n\r\n logout = () => {\r\n this.setSession(null);\r\n };\r\n\r\n setSession = accessToken => {\r\n if (accessToken) {\r\n localStorage.setItem('accessToken', accessToken);\r\n axios.defaults.headers.common.Authorization = `Bearer ${accessToken}`;\r\n } else {\r\n localStorage.removeItem('accessToken');\r\n delete axios.defaults.headers.common.Authorization;\r\n }\r\n };\r\n\r\n getAccessToken = () => localStorage.getItem('accessToken');\r\n\r\n isValidToken = accessToken => {\r\n if (!accessToken) {\r\n return false;\r\n }\r\n\r\n const decoded = jwtDecode(accessToken);\r\n const currentTime = Date.now() / 1000;\r\n\r\n return decoded.exp > currentTime;\r\n };\r\n\r\n isAuthenticated = () => !!this.getAccessToken();\r\n}\r\n\r\nconst authService = new AuthService();\r\n\r\nexport default authService;\r\n","import React from 'react';\r\n\r\nfunction Logo(props) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default Logo;\r\n","import { createContext } from 'react';\r\n\r\nexport const SocketContext = createContext();\r\n","import axios from 'axios';\r\n\r\nconst instance = axios.create();\r\n\r\nexport default instance;\r\n","function track(...args) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n return;\r\n }\r\n\r\n if (!window.gtag) {\r\n return;\r\n }\r\n\r\n window.gtag(...args);\r\n}\r\n\r\nfunction pageview(props) {\r\n track('config', process.env.REACT_APP_GA_MEASUREMENT_ID, props);\r\n}\r\n\r\nfunction event(type, props) {\r\n track('event', type, props);\r\n}\r\n\r\nexport default {\r\n pageview,\r\n event\r\n};\r\n","import React, {\r\n forwardRef,\r\n useEffect, useCallback\r\n} from 'react';\r\nimport { Helmet } from 'react-helmet';\r\nimport { useLocation } from 'react-router';\r\nimport PropTypes from 'prop-types';\r\nimport track from 'src/utils/analytics';\r\n\r\nconst Page = forwardRef(({\r\n title,\r\n children,\r\n ...rest\r\n}, ref) => {\r\n const location = useLocation();\r\n\r\n const sendPageViewEvent = useCallback(() => {\r\n track.pageview({\r\n page_path: location.pathname\r\n });\r\n }, [location]);\r\n\r\n useEffect(() => {\r\n sendPageViewEvent();\r\n }, [sendPageViewEvent]);\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n {children}\r\n \r\n );\r\n});\r\n\r\nPage.propTypes = {\r\n children: PropTypes.node,\r\n title: PropTypes.string\r\n};\r\n\r\nexport default Page;\r\n","import React, { useEffect } from 'react';\r\nimport NProgress from 'nprogress';\r\nimport { Box, LinearProgress, makeStyles } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n alignItems: 'center',\r\n backgroundColor: theme.palette.background.default,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n height: '100%',\r\n justifyContent: 'center',\r\n minHeight: '100%',\r\n padding: theme.spacing(3)\r\n }\r\n}));\r\n\r\nfunction LoadingScreen() {\r\n const classes = useStyles();\r\n\r\n useEffect(() => {\r\n NProgress.start();\r\n\r\n return () => {\r\n NProgress.done();\r\n };\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default LoadingScreen;\r\n","/* eslint-disable import/prefer-default-export */\r\nexport const THEMES = {\r\n LIGHT: 'LIGHT',\r\n ONE_DARK: 'ONE_DARK',\r\n UNICORN: 'UNICORN'\r\n};\r\n\r\nexport const socketBaseURL = process.env.REACT_APP_SOCKETBASEURL;\r\nexport const offices = [\r\n { role_id: 6, name: 'ENGINEERING' },\r\n { role_id: 8, name: 'FIRE' },\r\n { role_id: 9, name: 'MPDO' },\r\n { role_id: 12, name: 'TREASURY' },\r\n { role_id: 7, name: 'REVIEWER' },\r\n { role_id: 13, name: 'REQUIREMENTS REVIEWER' },\r\n { role_id: 14, name: 'ELECTRICAL REVIEWER' },\r\n { role_id: 15, name: 'ARCHITECTURAL REVIEWER' },\r\n { role_id: 16, name: 'STRUCTURAL REVIEWER' },\r\n { role_id: 17, name: 'PLUMBING REVIEWER' }\r\n];\r\n","import axios from 'axios';\r\nimport authService from 'src/services/authService';\r\n\r\nexport const LOGIN_REQUEST = '@account/login-request';\r\nexport const LOGIN_SUCCESS = '@account/login-success';\r\nexport const LOGIN_FAILURE = '@account/login-failure';\r\nexport const SILENT_LOGIN = '@account/silent-login';\r\nexport const LOGOUT = '@account/logout';\r\nexport const REGISTER = '@account/register'; \r\nexport const UPDATE_PROFILE = '@account/updateProfile'; \r\n\r\nexport function login(email, password) {\r\n return async (dispatch) => {\r\n try {\r\n dispatch({ type: LOGIN_REQUEST });\r\n\r\n const user = await authService.loginWithEmailAndPassword(email, password);\r\n\r\n dispatch({\r\n type: LOGIN_SUCCESS,\r\n payload: {\r\n user\r\n }\r\n });\r\n } catch (error) {\r\n dispatch({ type: LOGIN_FAILURE });\r\n throw error;\r\n }\r\n };\r\n}\r\n\r\nexport function setUserData(user) {\r\n return (dispatch) => dispatch({\r\n type: SILENT_LOGIN,\r\n payload: {\r\n user\r\n }\r\n });\r\n}\r\n\r\nexport function logout() {\r\n return async (dispatch) => {\r\n authService.logout();\r\n\r\n dispatch({\r\n type: LOGOUT\r\n });\r\n };\r\n}\r\n\r\nexport function register(data) { \r\n const request = axios.post('/api/auth/signup', data); \r\n return (dispatch) => {\r\n request.then((response) => dispatch({\r\n type: REGISTER,\r\n payload: response.data\r\n }));\r\n };\r\n}\r\n\r\nexport function updateProfile(update) { \r\n const request = axios.post('/api/account/update-profile', { update }); \r\n return (dispatch) => {\r\n request.then((response) => dispatch({\r\n type: UPDATE_PROFILE,\r\n payload: response.data\r\n }));\r\n };\r\n};\r\n ","/* eslint-disable */\r\nimport { Chart } from 'react-chartjs-2';\r\n\r\n// ChartJS extension rounded bar chart\r\n// https://codepen.io/jedtrow/full/ygRYgo\r\nfunction draw() {\r\n const { ctx } = this._chart;\r\n const vm = this._view;\r\n let { borderWidth } = vm;\r\n\r\n let left;\r\n let right;\r\n let top;\r\n let bottom;\r\n let signX;\r\n let signY;\r\n let borderSkipped;\r\n let radius;\r\n\r\n // If radius is less than 0 or is large enough to cause drawing errors a max\r\n // radius is imposed. If cornerRadius is not defined set it to 0.\r\n let { cornerRadius } = this._chart.config.options;\r\n if (cornerRadius < 0) {\r\n cornerRadius = 0;\r\n }\r\n\r\n if (typeof cornerRadius === 'undefined') {\r\n cornerRadius = 0;\r\n }\r\n\r\n if (!vm.horizontal) {\r\n // bar\r\n left = vm.x - vm.width / 2;\r\n right = vm.x + vm.width / 2;\r\n top = vm.y;\r\n bottom = vm.base;\r\n signX = 1;\r\n signY = bottom > top ? 1 : -1;\r\n borderSkipped = vm.borderSkipped || 'bottom';\r\n } else {\r\n // horizontal bar\r\n left = vm.base;\r\n right = vm.x;\r\n top = vm.y - vm.height / 2;\r\n bottom = vm.y + vm.height / 2;\r\n signX = right > left ? 1 : -1;\r\n signY = 1;\r\n borderSkipped = vm.borderSkipped || 'left';\r\n }\r\n\r\n // Canvas doesn't allow us to stroke inside the width so we can\r\n // adjust the sizes to fit if we're setting a stroke on the line\r\n if (borderWidth) {\r\n // borderWidth shold be less than bar width and bar height.\r\n const barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\r\n borderWidth = borderWidth > barSize ? barSize : borderWidth;\r\n const halfStroke = borderWidth / 2;\r\n // Adjust borderWidth when bar top position is near vm.base(zero).\r\n const borderLeft = left + (borderSkipped !== 'left' ? halfStroke * signX : 0);\r\n const borderRight = right + (borderSkipped !== 'right' ? -halfStroke * signX : 0);\r\n const borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0);\r\n const borderBottom = bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0);\r\n // not become a vertical line?\r\n if (borderLeft !== borderRight) {\r\n top = borderTop;\r\n bottom = borderBottom;\r\n }\r\n // not become a horizontal line?\r\n if (borderTop !== borderBottom) {\r\n left = borderLeft;\r\n right = borderRight;\r\n }\r\n }\r\n\r\n ctx.beginPath();\r\n ctx.fillStyle = vm.backgroundColor;\r\n ctx.strokeStyle = vm.borderColor;\r\n ctx.lineWidth = borderWidth;\r\n\r\n // Corner points, from bottom-left to bottom-right clockwise\r\n // | 1 2 |\r\n // | 0 3 |\r\n const corners = [[left, bottom], [left, top], [right, top], [right, bottom]];\r\n\r\n // Find first (starting) corner with fallback to 'bottom'\r\n const borders = ['bottom', 'left', 'top', 'right'];\r\n let startCorner = borders.indexOf(borderSkipped, 0);\r\n if (startCorner === -1) {\r\n startCorner = 0;\r\n }\r\n\r\n function cornerAt(index) {\r\n return corners[(startCorner + index) % 4];\r\n }\r\n\r\n // Draw rectangle from 'startCorner'\r\n let corner = cornerAt(0);\r\n ctx.moveTo(corner[0], corner[1]);\r\n\r\n for (let i = 1; i < 4; i += 1) {\r\n corner = cornerAt(i);\r\n let nextCornerId = i + 1;\r\n if (nextCornerId === 4) {\r\n nextCornerId = 0;\r\n }\r\n\r\n const width = corners[2][0] - corners[1][0];\r\n const height = corners[0][1] - corners[1][1];\r\n const x = corners[1][0];\r\n const y = corners[1][1];\r\n\r\n radius = cornerRadius;\r\n // Fix radius being too large\r\n if (radius > Math.abs(height) / 2) {\r\n radius = Math.floor(Math.abs(height) / 2);\r\n }\r\n if (radius > Math.abs(width) / 2) {\r\n radius = Math.floor(Math.abs(width) / 2);\r\n }\r\n\r\n if (height < 0) {\r\n // Negative values in a standard bar chart\r\n const xTl = x;\r\n const xTr = x + width;\r\n const yTl = y + height;\r\n const yTr = y + height;\r\n\r\n const xBl = x;\r\n const xBr = x + width;\r\n const yBl = y;\r\n const yBr = y;\r\n\r\n // Draw\r\n ctx.moveTo(xBl + radius, yBl);\r\n ctx.lineTo(xBr - radius, yBr);\r\n ctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\r\n ctx.lineTo(xTr, yTr + radius);\r\n ctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\r\n ctx.lineTo(xTl + radius, yTl);\r\n ctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\r\n ctx.lineTo(xBl, yBl - radius);\r\n ctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\r\n } else if (width < 0) {\r\n // Negative values in a horizontal bar chart\r\n const xTl = x + width;\r\n const xTr = x;\r\n const yTl = y;\r\n const yTr = y;\r\n\r\n const xBl = x + width;\r\n const xBr = x;\r\n const yBl = y + height;\r\n const yBr = y + height;\r\n\r\n // Draw\r\n ctx.moveTo(xBl + radius, yBl);\r\n ctx.lineTo(xBr - radius, yBr);\r\n ctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\r\n ctx.lineTo(xTr, yTr + radius);\r\n ctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\r\n ctx.lineTo(xTl + radius, yTl);\r\n ctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\r\n ctx.lineTo(xBl, yBl - radius);\r\n ctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\r\n } else {\r\n // Positive Value\r\n ctx.moveTo(x + radius, y);\r\n ctx.lineTo(x + width - radius, y);\r\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\r\n ctx.lineTo(x + width, y + height - radius);\r\n ctx.quadraticCurveTo(\r\n x + width,\r\n y + height,\r\n x + width - radius,\r\n y + height\r\n );\r\n ctx.lineTo(x + radius, y + height);\r\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\r\n ctx.lineTo(x, y + radius);\r\n ctx.quadraticCurveTo(x, y, x + radius, y);\r\n }\r\n }\r\n\r\n ctx.fill();\r\n if (borderWidth) {\r\n ctx.stroke();\r\n }\r\n}\r\n\r\nChart.helpers.extend(Chart.elements.Rectangle.prototype, {\r\n draw\r\n});\r\n","export function restoreSettings() {\r\n let settings = null;\r\n\r\n try {\r\n const storedData = localStorage.getItem('settings');\r\n\r\n if (storedData) {\r\n settings = JSON.parse(storedData);\r\n }\r\n } catch (err) {\r\n // If stored data is not a strigified JSON this might fail,\r\n // that's why we catch the error\r\n }\r\n\r\n return settings;\r\n}\r\n\r\nexport function storeSettings(settings) {\r\n localStorage.setItem('settings', JSON.stringify(settings));\r\n}\r\n","import React, { createContext, useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'lodash';\r\nimport { THEMES } from 'src/constants';\r\nimport { storeSettings } from 'src/utils/settings';\r\n\r\nconst SettingsContext = createContext();\r\n\r\nconst defaultSettings = {\r\n direction: 'ltr',\r\n responsiveFontSizes: true,\r\n theme: THEMES.LIGHT\r\n};\r\n\r\nexport function SettingsProvider({ settings, children }) {\r\n const [currentSettings, setCurrentSettings] = useState(\r\n settings || defaultSettings\r\n );\r\n\r\n const handleSaveSettings = (updatedSettings = {}) => {\r\n const mergedSettings = _.merge({}, currentSettings, updatedSettings);\r\n\r\n setCurrentSettings(mergedSettings);\r\n storeSettings(mergedSettings);\r\n };\r\n\r\n useEffect(() => {\r\n document.dir = currentSettings.direction;\r\n }, [currentSettings]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nSettingsProvider.propTypes = {\r\n children: PropTypes.node.isRequired,\r\n settings: PropTypes.object\r\n};\r\n\r\nexport const SettingsConsumer = SettingsContext.Consumer;\r\n\r\nexport default SettingsContext;\r\n","/* eslint-disable no-param-reassign */\r\nimport produce from 'immer';\r\nimport {\r\n LOGIN_REQUEST,\r\n LOGIN_SUCCESS,\r\n LOGIN_FAILURE,\r\n LOGOUT,\r\n SILENT_LOGIN,\r\n UPDATE_PROFILE,\r\n REGISTER\r\n} from 'src/actions/accountActions';\r\n\r\nconst initialState = {\r\n user: null\r\n};\r\n\r\nconst accountReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case LOGIN_REQUEST: {\r\n return produce(state, (draft) => {\r\n // Ensure we clear current session\r\n draft.user = null;\r\n });\r\n }\r\n\r\n case LOGIN_SUCCESS: {\r\n const { user } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n draft.user = user;\r\n });\r\n }\r\n\r\n case LOGIN_FAILURE: {\r\n return produce(state, () => {\r\n // Maybe store error\r\n });\r\n }\r\n\r\n case LOGOUT: {\r\n return produce(state, (draft) => {\r\n draft.user = null;\r\n });\r\n }\r\n\r\n case SILENT_LOGIN: {\r\n const { user } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n draft.user = user;\r\n });\r\n }\r\n\r\n case UPDATE_PROFILE: {\r\n const { user } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n draft.user = user;\r\n });\r\n }\r\n\r\n case REGISTER: {\r\n const { user } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n draft.user = user;\r\n });\r\n }\r\n \r\n default: {\r\n return state;\r\n }\r\n }\r\n};\r\n\r\nexport default accountReducer;\r\n","/* eslint-disable no-param-reassign */\r\nimport produce from 'immer';\r\nimport { GET_NOTIFICATIONS } from 'src/actions/notificationsActions';\r\n\r\nconst initialState = {\r\n notifications: []\r\n};\r\n\r\nconst notificationsReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case GET_NOTIFICATIONS: {\r\n const { notifications } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n draft.notifications = notifications;\r\n });\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n};\r\n\r\nexport default notificationsReducer;\r\n","import axios from 'src/utils/axios';\r\n\r\nexport const GET_NOTIFICATIONS = '@notifications/get-notifications';\r\n\r\nexport function getNotifications() {\r\n const request = axios.get('/api/notifications');\r\n\r\n return (dispatch) => {\r\n request.then((response) => dispatch({\r\n type: GET_NOTIFICATIONS,\r\n payload: response.data\r\n }));\r\n };\r\n}\r\n","const objFromArray = (arr, key = 'id') => arr.reduce((accumulator, current) => {\r\n accumulator[current[key]] = current;\r\n return accumulator;\r\n}, {});\r\n\r\nexport default objFromArray;\r\n","/* eslint-disable no-param-reassign */\r\nimport produce from 'immer';\r\nimport {\r\n GET_CONTACTS,\r\n GET_THREADS,\r\n GET_THREAD,\r\n MARK_THREAD_AS_SEEN,\r\n ADD_MESSAGE,\r\n OPEN_SIDEBAR,\r\n CLOSE_SIDEBAR\r\n} from 'src/actions/chatActions';\r\nimport objFromArray from 'src/utils/objFromArray';\r\n\r\nconst initialState = {\r\n contacts: {\r\n byId: {},\r\n allIds: []\r\n },\r\n threads: {\r\n byKey: {},\r\n allKeys: []\r\n },\r\n sidebarOpen: false\r\n};\r\n\r\nconst chatReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case GET_CONTACTS: {\r\n const { contacts } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n draft.contacts.byId = objFromArray(contacts);\r\n draft.contacts.allIds = Object.keys(draft.contacts.byId);\r\n });\r\n }\r\n\r\n case GET_THREADS: {\r\n const { threads } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n draft.threads.byKey = objFromArray(threads, 'key');\r\n draft.threads.allKeys = Object.keys(draft.threads.byKey);\r\n });\r\n }\r\n\r\n case GET_THREAD: {\r\n const { thread } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n draft.threads.byKey[thread.key] = thread;\r\n\r\n if (!draft.threads.allKeys.includes(thread.key)) {\r\n draft.threads.allKeys.push(thread.key);\r\n }\r\n });\r\n }\r\n\r\n case MARK_THREAD_AS_SEEN: {\r\n const { threadKey } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n const thread = draft.threads.byKey[threadKey];\r\n\r\n if (thread) {\r\n thread.unreadCount = 0;\r\n }\r\n });\r\n }\r\n\r\n case ADD_MESSAGE: {\r\n const {\r\n threadKey,\r\n message,\r\n userId,\r\n otherUserId\r\n } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n let thread = draft.threads.byKey[threadKey];\r\n\r\n if (!thread) {\r\n thread = {\r\n key: threadKey,\r\n messages: [message],\r\n participantIds: [otherUserId, userId],\r\n unreadCount: 0\r\n };\r\n\r\n draft.threads.byKey[threadKey] = thread;\r\n draft.threads.allKeys.push(threadKey);\r\n } else {\r\n thread.messages.push(message);\r\n }\r\n });\r\n }\r\n\r\n case OPEN_SIDEBAR: {\r\n return produce(state, (draft) => {\r\n draft.sidebarOpen = true;\r\n });\r\n }\r\n\r\n case CLOSE_SIDEBAR: {\r\n return produce(state, (draft) => {\r\n draft.sidebarOpen = false;\r\n });\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n};\r\n\r\nexport default chatReducer;\r\n","import axios from 'src/utils/axios';\r\n\r\nexport const GET_CONTACTS = '@chat/get-contacts';\r\nexport const GET_THREADS = '@chat/get-threads';\r\nexport const GET_THREAD = '@chat/get-thread';\r\nexport const MARK_THREAD_AS_SEEN = '@chat/mark-thread-as-seen';\r\nexport const ADD_MESSAGE = '@chat/add-message';\r\nexport const OPEN_SIDEBAR = '@chat/open-sidebar';\r\nexport const CLOSE_SIDEBAR = '@chat/close-sidebar';\r\n\r\nexport function getContacts() {\r\n const request = axios.get('/api/chat/contacts');\r\n\r\n return (dispatch) => {\r\n request.then((response) => dispatch({\r\n type: GET_CONTACTS,\r\n payload: response.data\r\n }));\r\n };\r\n}\r\n\r\nexport function getThreads() {\r\n const request = axios.get('/api/chat/threads');\r\n\r\n return (dispatch) => {\r\n request.then((response) => dispatch({\r\n type: GET_THREADS,\r\n payload: response.data\r\n }));\r\n };\r\n}\r\n\r\nexport function getThread(threadKey) {\r\n const request = axios.get('/api/chat/thread', {\r\n params: {\r\n threadKey\r\n }\r\n });\r\n\r\n return (dispatch) => {\r\n request.then((response) => {\r\n if (response.data.thread) {\r\n dispatch({\r\n type: GET_THREAD,\r\n payload: response.data\r\n });\r\n }\r\n });\r\n };\r\n}\r\n\r\nexport function markThreadAsSeen(threadKey) {\r\n const request = axios.get('/api/chat/thread/mark-as-seen', {\r\n params: {\r\n threadKey\r\n }\r\n });\r\n\r\n return (dispatch) => {\r\n request.then(() => dispatch({\r\n type: MARK_THREAD_AS_SEEN,\r\n payload: {\r\n threadKey\r\n }\r\n }));\r\n };\r\n}\r\n\r\nexport function addMessage({\r\n userId,\r\n threadKey,\r\n body,\r\n attachments\r\n}) {\r\n const request = axios.post('/api/chat/messages/new', {\r\n userId,\r\n threadKey,\r\n body,\r\n attachments\r\n });\r\n\r\n return (dispatch) => {\r\n request.then((response) => dispatch({\r\n type: ADD_MESSAGE,\r\n payload: {\r\n userId,\r\n ...response.data\r\n }\r\n }));\r\n };\r\n}\r\n\r\nexport function openSidebar() {\r\n return {\r\n type: OPEN_SIDEBAR\r\n };\r\n}\r\n\r\nexport function closeSidebar() {\r\n return {\r\n type: CLOSE_SIDEBAR\r\n };\r\n}\r\n","/* eslint-disable no-param-reassign */\r\nimport produce from 'immer';\r\nimport {\r\n GET_LABELS,\r\n GET_MAILS,\r\n GET_MAIL,\r\n OPEN_SIDEBAR,\r\n CLOSE_SIDEBAR,\r\n OPEN_NEW_MESSAGE,\r\n CLOSE_NEW_MESSAGE\r\n} from 'src/actions/mailActions';\r\nimport objFromArray from 'src/utils/objFromArray';\r\n\r\nconst initialState = {\r\n mails: {\r\n byId: {},\r\n allIds: []\r\n },\r\n labels: [],\r\n sidebarOpen: false,\r\n newMessageOpen: false\r\n};\r\n\r\nconst mailReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case GET_LABELS: {\r\n const { labels } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n draft.labels = labels;\r\n });\r\n }\r\n\r\n case GET_MAILS: {\r\n const { mails } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n draft.mails.byId = objFromArray(mails);\r\n draft.mails.allIds = Object.keys(draft.mails.byId);\r\n });\r\n }\r\n\r\n case GET_MAIL: {\r\n const { mail } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n draft.mails.byId[mail.id] = mail;\r\n\r\n if (!draft.mails.allIds.includes(mail.id)) {\r\n draft.mails.allIds.push(mail.id);\r\n }\r\n });\r\n }\r\n\r\n case OPEN_SIDEBAR: {\r\n return produce(state, (draft) => {\r\n draft.sidebarOpen = true;\r\n });\r\n }\r\n\r\n case CLOSE_SIDEBAR: {\r\n return produce(state, (draft) => {\r\n draft.sidebarOpen = false;\r\n });\r\n }\r\n\r\n case OPEN_NEW_MESSAGE: {\r\n return produce(state, (draft) => {\r\n draft.newMessageOpen = true;\r\n });\r\n }\r\n\r\n case CLOSE_NEW_MESSAGE: {\r\n return produce(state, (draft) => {\r\n draft.newMessageOpen = false;\r\n });\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n};\r\n\r\nexport default mailReducer;\r\n","import axios from 'src/utils/axios';\r\n\r\nexport const GET_LABELS = '@mail/get-labels';\r\nexport const GET_MAILS = '@mail/get-mails';\r\nexport const GET_MAIL = '@mail/get-mail';\r\nexport const OPEN_SIDEBAR = '@mail/open-sidebar';\r\nexport const CLOSE_SIDEBAR = '@mail/close-sidebar';\r\nexport const OPEN_NEW_MESSAGE = '@mail/open-new-message';\r\nexport const CLOSE_NEW_MESSAGE = '@mail/close-new-message';\r\n\r\nexport function getLabels() {\r\n const request = axios.get('/api/mail/labels');\r\n\r\n return (dispatch) => {\r\n request.then((response) => dispatch({\r\n type: GET_LABELS,\r\n payload: response.data\r\n }));\r\n };\r\n}\r\n\r\nexport function getMails(params) {\r\n const request = axios.get('/api/mail/mails', {\r\n params\r\n });\r\n\r\n return (dispatch) => {\r\n request.then((response) => dispatch({\r\n type: GET_MAILS,\r\n payload: response.data\r\n }));\r\n };\r\n}\r\n\r\nexport function getMail(mailId) {\r\n const request = axios.get('/api/mail/mail', {\r\n params: {\r\n mailId\r\n }\r\n });\r\n\r\n return (dispatch) => {\r\n request.then((response) => dispatch({\r\n type: GET_MAIL,\r\n payload: response.data\r\n }));\r\n };\r\n}\r\n\r\nexport function openSidebar() {\r\n return {\r\n type: OPEN_SIDEBAR\r\n };\r\n}\r\n\r\nexport function closeSidebar() {\r\n return {\r\n type: CLOSE_SIDEBAR\r\n };\r\n}\r\n\r\nexport function openNewMessage() {\r\n return {\r\n type: OPEN_NEW_MESSAGE\r\n };\r\n}\r\n\r\nexport function closeNewMessage() {\r\n return {\r\n type: CLOSE_NEW_MESSAGE\r\n };\r\n}\r\n","/* eslint-disable no-param-reassign */\r\nimport produce from 'immer';\r\nimport _ from 'lodash';\r\nimport {\r\n GET_BOARD,\r\n CREATE_LIST,\r\n UPDATE_LIST,\r\n CLEAR_LIST,\r\n DELETE_LIST,\r\n CREATE_CARD,\r\n UPDATE_CARD,\r\n MOVE_CARD,\r\n DELETE_CARD,\r\n ADD_COMMENT,\r\n ADD_CHECKLIST,\r\n UPDATE_CHECKLIST,\r\n DELETE_CHECKLIST,\r\n ADD_CHECK_ITEM,\r\n UPDATE_CHECK_ITEM,\r\n DELETE_CHECK_ITEM\r\n} from 'src/actions/kanbanActions';\r\nimport objFromArray from 'src/utils/objFromArray';\r\n\r\nconst initialState = {\r\n isLoaded: false,\r\n lists: {\r\n byId: {},\r\n allIds: []\r\n },\r\n cards: {\r\n byId: {},\r\n allIds: []\r\n },\r\n members: {\r\n byId: {},\r\n allIds: []\r\n }\r\n};\r\n\r\nconst kanbanReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case GET_BOARD: {\r\n const { board } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n draft.lists.byId = objFromArray(board.lists);\r\n draft.lists.allIds = Object.keys(draft.lists.byId);\r\n draft.cards.byId = objFromArray(board.cards);\r\n draft.cards.allIds = Object.keys(draft.cards.byId);\r\n draft.members.byId = objFromArray(board.members);\r\n draft.members.allIds = Object.keys(draft.members.byId);\r\n draft.isLoaded = true;\r\n });\r\n }\r\n\r\n case CREATE_LIST: {\r\n const { list } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n draft.lists.byId[list.id] = list;\r\n draft.lists.allIds.push(list.id);\r\n });\r\n }\r\n\r\n case UPDATE_LIST: {\r\n const { list } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n _.merge(draft.lists.byId[list.id], list);\r\n });\r\n }\r\n\r\n case CLEAR_LIST: {\r\n const { listId } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n const { cardIds } = draft.lists.byId[listId];\r\n\r\n draft.lists.byId[listId].cardIds = [];\r\n draft.cards.byId = _.omit(draft.cards.byId, cardIds);\r\n _.pull(draft.cards.allIds, ...cardIds);\r\n });\r\n }\r\n\r\n case DELETE_LIST: {\r\n const { listId } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n draft.lists.byId = _.omit(draft.lists.byId, listId);\r\n _.pull(draft.lists.allIds, listId);\r\n });\r\n }\r\n\r\n case CREATE_CARD: {\r\n const { card } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n draft.cards.byId[card.id] = card;\r\n draft.cards.allIds.push(card.id);\r\n draft.lists.byId[card.listId].cardIds.push(card.id);\r\n });\r\n }\r\n\r\n case UPDATE_CARD: {\r\n const { card } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n _.merge(draft.cards.byId[card.id], card);\r\n });\r\n }\r\n\r\n case MOVE_CARD: {\r\n const { cardId, position, listId } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n const { listId: sourceListId } = draft.cards.byId[cardId];\r\n\r\n // Remove card from source list\r\n _.pull(draft.lists.byId[sourceListId].cardIds, cardId);\r\n\r\n // If listId arg exists, it means that\r\n // we have to add the card to the new list\r\n if (listId) {\r\n draft.cards.byId[cardId].listId = listId;\r\n draft.lists.byId[listId].cardIds.splice(position, 0, cardId);\r\n } else {\r\n draft.lists.byId[sourceListId].cardIds.splice(position, 0, cardId);\r\n }\r\n });\r\n }\r\n\r\n case DELETE_CARD: {\r\n const { cardId } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n const { listId } = draft.cards.byId[cardId];\r\n\r\n draft.cards.byId = _.omit(draft.cards.byId, cardId);\r\n _.pull(draft.cards.allIds, cardId);\r\n _.pull(draft.lists.byId[listId].cardIds, cardId);\r\n });\r\n }\r\n\r\n case ADD_COMMENT: {\r\n const { comment } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n draft.cards.byId[comment.cardId].comments.push(comment);\r\n });\r\n }\r\n\r\n case ADD_CHECKLIST: {\r\n const { cardId, checklist } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n draft.cards.byId[cardId].checklists.push(checklist);\r\n });\r\n }\r\n\r\n case UPDATE_CHECKLIST: {\r\n const { cardId, checklist } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n const card = draft.cards.byId[cardId];\r\n\r\n card.checklists = _.map(card.checklists, (_checklist) => {\r\n if (_checklist.id === checklist.id) {\r\n return checklist;\r\n }\r\n\r\n return _checklist;\r\n });\r\n });\r\n }\r\n\r\n case DELETE_CHECKLIST: {\r\n const { cardId, checklistId } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n const card = draft.cards.byId[cardId];\r\n\r\n card.checklists = _.reject(card.checklists, { id: checklistId });\r\n });\r\n }\r\n\r\n case ADD_CHECK_ITEM: {\r\n const { cardId, checklistId, checkItem } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n const card = draft.cards.byId[cardId];\r\n\r\n _.assign(card, {\r\n checklists: _.map(card.checklists, (checklist) => {\r\n if (checklist.id === checklistId) {\r\n _.assign(checklist, {\r\n checkItems: [...checklist.checkItems, checkItem]\r\n });\r\n }\r\n\r\n return checklist;\r\n })\r\n });\r\n });\r\n }\r\n\r\n case UPDATE_CHECK_ITEM: {\r\n const {\r\n cardId,\r\n checklistId,\r\n checkItemId,\r\n checkItem\r\n } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n const card = draft.cards.byId[cardId];\r\n\r\n card.checklists = _.map(card.checklists, (checklist) => {\r\n if (checklist.id === checklistId) {\r\n _.assign(checklist, {\r\n checkItems: _.map(checklist.checkItems, (_checkItem) => {\r\n if (_checkItem.id === checkItemId) {\r\n return checkItem;\r\n }\r\n\r\n return _checkItem;\r\n })\r\n });\r\n }\r\n\r\n return checklist;\r\n });\r\n });\r\n }\r\n\r\n case DELETE_CHECK_ITEM: {\r\n const { cardId, checklistId, checkItemId } = action.payload;\r\n\r\n return produce(state, (draft) => {\r\n const card = draft.cards.byId[cardId];\r\n\r\n card.checklists = _.map(card.checklists, (checklist) => {\r\n if (checklist.id === checklistId) {\r\n _.assign(checklist, {\r\n checkItems: _.reject(checklist.checkItems, { id: checkItemId })\r\n });\r\n }\r\n\r\n return checklist;\r\n });\r\n });\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n};\r\n\r\nexport default kanbanReducer;\r\n","import axios from 'src/utils/axios';\r\n\r\nexport const GET_BOARD = '@kanban/get-board';\r\nexport const CREATE_LIST = '@kanban/create-list';\r\nexport const UPDATE_LIST = '@kanban/update-list';\r\nexport const CLEAR_LIST = '@kanban/clear-list';\r\nexport const DELETE_LIST = '@kanban/delete-list';\r\nexport const CREATE_CARD = '@kanban/create-card';\r\nexport const UPDATE_CARD = '@kanban/update-card';\r\nexport const MOVE_CARD = '@kanban/move-card';\r\nexport const DELETE_CARD = '@kanban/delete-card';\r\nexport const ADD_COMMENT = '@kanban/add-comment';\r\nexport const ADD_CHECKLIST = '@kanban/add-checklist';\r\nexport const UPDATE_CHECKLIST = '@kanban/update-checklist';\r\nexport const DELETE_CHECKLIST = '@kanban/delete-checklist';\r\nexport const ADD_CHECK_ITEM = '@kanban/add-check-item';\r\nexport const UPDATE_CHECK_ITEM = '@kanban/update-check-item';\r\nexport const DELETE_CHECK_ITEM = '@kanban/delete-check-item';\r\n\r\nexport function getBoard() {\r\n const request = axios.get('/api/kanban/board');\r\n\r\n return (dispatch) => {\r\n request.then((response) => dispatch({\r\n type: GET_BOARD,\r\n payload: response.data\r\n }));\r\n };\r\n}\r\n\r\nexport function createList(name) {\r\n const request = axios.post('/api/kanban/board/lists/new', {\r\n name\r\n });\r\n\r\n return (dispatch) => {\r\n request.then((response) => dispatch({\r\n type: CREATE_LIST,\r\n payload: response.data\r\n }));\r\n };\r\n}\r\n\r\nexport function updateList(listId, update) {\r\n const request = axios.post('/api/kanban/board/list/update', {\r\n listId,\r\n update\r\n });\r\n\r\n return (dispatch) => {\r\n request.then((response) => dispatch({\r\n type: UPDATE_LIST,\r\n payload: response.data\r\n }));\r\n };\r\n}\r\n\r\nexport function clearList(listId) {\r\n const request = axios.post('/api/kanban/board/lists/clear', {\r\n listId\r\n });\r\n\r\n return (dispatch) => {\r\n request.then(() => dispatch({\r\n type: CLEAR_LIST,\r\n payload: {\r\n listId\r\n }\r\n }));\r\n };\r\n}\r\n\r\nexport function deleteList(listId) {\r\n const request = axios.post('/api/kanban/board/lists/remove', {\r\n listId\r\n });\r\n\r\n return (dispatch) => {\r\n request.then(() => dispatch({\r\n type: DELETE_LIST,\r\n payload: {\r\n listId\r\n }\r\n }));\r\n };\r\n}\r\n\r\nexport function createCard(listId, name) {\r\n const request = axios.post('/api/kanban/board/cards/new', {\r\n listId,\r\n name\r\n });\r\n\r\n return (dispatch) => {\r\n request.then((response) => dispatch({\r\n type: CREATE_CARD,\r\n payload: response.data\r\n }));\r\n };\r\n}\r\n\r\nexport function updateCard(cardId, update) {\r\n const request = axios.post('/api/kanban/board/cards/update', {\r\n cardId,\r\n update\r\n });\r\n\r\n return (dispatch) => {\r\n request.then((response) => dispatch({\r\n type: UPDATE_CARD,\r\n payload: response.data\r\n }));\r\n };\r\n}\r\n\r\nexport function moveCard(cardId, position, listId) {\r\n const request = axios.post('/api/kanban/board/cards/move', {\r\n cardId,\r\n position,\r\n listId\r\n });\r\n\r\n return (dispatch) => {\r\n request.then(() => dispatch({\r\n type: MOVE_CARD,\r\n payload: {\r\n cardId,\r\n position,\r\n listId\r\n }\r\n }));\r\n };\r\n}\r\n\r\nexport function deleteCard(cardId) {\r\n const request = axios.post('/api/kanban/board/cards/remove', {\r\n cardId\r\n });\r\n\r\n return (dispatch) => {\r\n request.then(() => dispatch({\r\n type: DELETE_CARD,\r\n payload: {\r\n cardId\r\n }\r\n }));\r\n };\r\n}\r\n\r\nexport function addComment(userId, cardId, message) {\r\n const request = axios.post('/api/kanban/board/cards/comments', {\r\n userId,\r\n cardId,\r\n message\r\n });\r\n\r\n return (dispatch) => {\r\n request.then((response) => dispatch({\r\n type: ADD_COMMENT,\r\n payload: response.data\r\n }));\r\n };\r\n}\r\n\r\nexport function addChecklist(cardId, name) {\r\n const request = axios.post('/api/kanban/board/checklists/new', {\r\n cardId,\r\n name\r\n });\r\n\r\n return (dispatch) => {\r\n request.then((response) => dispatch({\r\n type: ADD_CHECKLIST,\r\n payload: {\r\n cardId,\r\n ...response.data\r\n }\r\n }));\r\n };\r\n}\r\n\r\nexport function updateChecklist(cardId, checklistId, update) {\r\n const request = axios.post('/api/kanban/board/checklists/update', {\r\n cardId,\r\n checklistId,\r\n update\r\n });\r\n\r\n return (dispatch) => {\r\n request.then((response) => dispatch({\r\n type: UPDATE_CHECKLIST,\r\n payload: {\r\n cardId,\r\n checklistId,\r\n ...response.data\r\n }\r\n }));\r\n };\r\n}\r\n\r\nexport function deleteChecklist(cardId, checklistId) {\r\n const request = axios.post('/api/kanban/board/checklists/remove', {\r\n cardId,\r\n checklistId\r\n });\r\n\r\n return (dispatch) => {\r\n request.then(() => dispatch({\r\n type: DELETE_CHECKLIST,\r\n payload: {\r\n cardId,\r\n checklistId\r\n }\r\n }));\r\n };\r\n}\r\n\r\nexport function addCheckItem(cardId, checklistId, name) {\r\n const request = axios.post('/api/kanban/board/checkitems/new', {\r\n cardId,\r\n checklistId,\r\n name\r\n });\r\n\r\n return (dispatch) => {\r\n request.then((response) => dispatch({\r\n type: ADD_CHECK_ITEM,\r\n payload: {\r\n cardId,\r\n checklistId,\r\n ...response.data\r\n }\r\n }));\r\n };\r\n}\r\n\r\nexport function updateCheckItem(cardId, checklistId, checkItemId, update) {\r\n const request = axios.post('/api/kanban/board/checkitems/update', {\r\n cardId,\r\n checklistId,\r\n checkItemId,\r\n update\r\n });\r\n\r\n return (dispatch) => {\r\n request.then((response) => dispatch({\r\n type: UPDATE_CHECK_ITEM,\r\n payload: {\r\n cardId,\r\n checklistId,\r\n checkItemId,\r\n ...response.data\r\n }\r\n }));\r\n };\r\n}\r\n\r\nexport function deleteCheckItem(cardId, checklistId, checkItemId) {\r\n const request = axios.post('/api/kanban/board/checkitems/remove', {\r\n cardId,\r\n checklistId,\r\n checkItemId\r\n });\r\n\r\n return (dispatch) => {\r\n request.then(() => dispatch({\r\n type: DELETE_CHECK_ITEM,\r\n payload: {\r\n cardId,\r\n checklistId,\r\n checkItemId\r\n }\r\n }));\r\n };\r\n}\r\n","import { combineReducers } from 'redux';\r\nimport { reducer as formReducer } from 'redux-form';\r\nimport accountReducer from './accountReducer';\r\nimport notificationsReducer from './notificationsReducer';\r\nimport chatReducer from './chatReducer';\r\nimport mailReducer from './mailReducer';\r\nimport kanbanReducer from './kanbanReducer';\r\n\r\nconst rootReducer = combineReducers({\r\n account: accountReducer,\r\n notifications: notificationsReducer,\r\n chat: chatReducer,\r\n mail: mailReducer,\r\n kanban: kanbanReducer,\r\n form: formReducer\r\n});\r\n\r\nexport default rootReducer;\r\n","/* eslint-disable import/prefer-default-export */\r\nimport { applyMiddleware, createStore, compose } from 'redux';\r\nimport thunkMiddleware from 'redux-thunk';\r\nimport { composeWithDevTools } from 'redux-devtools-extension';\r\nimport { createLogger } from 'redux-logger';\r\nimport rootReducer from 'src/reducers';\r\nimport { ENABLE_REDUX_LOGGER } from 'src/config';\r\n\r\nconst loggerMiddleware = createLogger();\r\n\r\nexport function configureStore(preloadedState = {}) {\r\n const middlewares = [thunkMiddleware];\r\n\r\n if (ENABLE_REDUX_LOGGER) {\r\n middlewares.push(loggerMiddleware);\r\n }\r\n\r\n const middlewareEnhancer = composeWithDevTools(\r\n applyMiddleware(...middlewares)\r\n );\r\n\r\n const enhancers = [middlewareEnhancer];\r\n const composedEnhancers = compose(...enhancers);\r\n\r\n const store = createStore(rootReducer, preloadedState, composedEnhancers);\r\n\r\n return store;\r\n}\r\n","import React from 'react';\r\nimport {\r\n Box,\r\n CircularProgress,\r\n makeStyles\r\n} from '@material-ui/core';\r\nimport Logo from 'src/components/Logo';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n alignItems: 'center',\r\n backgroundColor: theme.palette.background.default,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n height: '100%',\r\n justifyContent: 'center',\r\n left: 0,\r\n padding: theme.spacing(3),\r\n position: 'fixed',\r\n top: 0,\r\n width: '100%',\r\n zIndex: 2000\r\n },\r\n logo: {\r\n width: 200,\r\n maxWidth: '100%'\r\n }\r\n}));\r\n\r\nfunction SlashScreen() {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default SlashScreen;\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport SplashScreen from 'src/components/SplashScreen';\r\nimport { setUserData, logout } from 'src/actions/accountActions';\r\nimport authService from 'src/services/authService';\r\nimport { socketBaseURL } from 'src/constants';\r\nimport socketio from 'socket.io-client';\r\nimport { SocketContext } from 'src/context/SocketContext';\r\nfunction Auth({ children }) {\r\n const dispatch = useDispatch();\r\n const [isLoading, setLoading] = useState(true);\r\n const { setSocket } = useContext(SocketContext);\r\n\r\n useEffect(() => {\r\n const initAuth = async () => {\r\n authService.setAxiosInterceptors({\r\n onLogout: () => dispatch(logout())\r\n });\r\n\r\n authService.handleAuthentication();\r\n\r\n if (authService.isAuthenticated()) {\r\n const user = await authService.loginInWithToken();\r\n\r\n let newsocket = socketio.connect(socketBaseURL, {\r\n query: {\r\n token: localStorage.getItem('accessToken')\r\n }\r\n });\r\n setSocket(newsocket);\r\n\r\n await dispatch(setUserData(user));\r\n }\r\n\r\n setLoading(false);\r\n };\r\n\r\n initAuth();\r\n\r\n // eslint-disable-next-line\r\n }, [dispatch]);\r\n\r\n if (isLoading) {\r\n return ;\r\n }\r\n\r\n return children;\r\n}\r\n\r\nAuth.propTypes = {\r\n children: PropTypes.any\r\n};\r\n\r\nexport default Auth;\r\n","import React, {\r\n useState,\r\n useEffect\r\n} from 'react';\r\nimport Cookies from 'js-cookie';\r\nimport {\r\n Box,\r\n Button,\r\n Link,\r\n Portal,\r\n Typography,\r\n makeStyles\r\n} from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n backgroundColor: theme.palette.common.black,\r\n color: theme.palette.common.white,\r\n maxWidth: 600,\r\n position: 'fixed',\r\n bottom: 0,\r\n left: 0,\r\n margin: theme.spacing(3),\r\n padding: theme.spacing(3),\r\n outline: 'none',\r\n zIndex: 2000\r\n },\r\n action: {\r\n backgroundColor: theme.palette.common.white,\r\n color: theme.palette.common.black,\r\n }\r\n}));\r\n\r\nfunction CookiesNotification() {\r\n const classes = useStyles();\r\n const [open, setOpen] = useState(false);\r\n\r\n const handleClose = () => {\r\n Cookies.set('consent', 'true');\r\n setOpen(false);\r\n };\r\n\r\n useEffect(() => {\r\n const consent = Cookies.get('consent');\r\n\r\n if (!consent) {\r\n setOpen(true);\r\n }\r\n }, []);\r\n\r\n if (!open) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n We use Cookies to ensure that we give you the best experience on our\r\n website. Read our\r\n {' '}\r\n \r\n Privacy Policy\r\n \r\n .\r\n \r\n \r\n \r\n I Agree\r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default CookiesNotification;\r\n","import { useContext } from 'react';\r\nimport SettingsContext from 'src/context/SettingsContext';\r\n\r\nexport default function useSettings() {\r\n const context = useContext(SettingsContext);\r\n\r\n return context;\r\n}\r\n","import React, {\r\n useState,\r\n useEffect\r\n} from 'react';\r\nimport Cookies from 'js-cookie';\r\nimport {\r\n Box,\r\n Button,\r\n Paper,\r\n Portal,\r\n Typography,\r\n makeStyles\r\n} from '@material-ui/core';\r\nimport useSettings from 'src/hooks/useSettings';\r\nimport { THEMES } from 'src/constants';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n maxWidth: 420,\r\n position: 'fixed',\r\n top: 0,\r\n right: 0,\r\n margin: theme.spacing(3),\r\n outline: 'none',\r\n zIndex: 2000,\r\n padding: theme.spacing(2)\r\n }\r\n}));\r\n\r\nfunction SettingsNotification() {\r\n const classes = useStyles();\r\n const [isOpen, setOpen] = useState(false);\r\n const { saveSettings } = useSettings();\r\n\r\n const handleSwitch = () => {\r\n saveSettings({ theme: THEMES.LIGHT });\r\n Cookies.set('settingsUpdated', 'true');\r\n setOpen(false);\r\n };\r\n\r\n const handleClose = () => {\r\n Cookies.set('settingsUpdated', 'true');\r\n setOpen(false);\r\n };\r\n\r\n useEffect(() => {\r\n const settingsUpdated = Cookies.get('settingsUpdated');\r\n\r\n if (!settingsUpdated) {\r\n setOpen(true);\r\n }\r\n }, []);\r\n\r\n if (!isOpen) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n Settings Updated\r\n \r\n \r\n We automatically updated your settings.\r\n You change the settings any time from your dashboard settings.\r\n \r\n \r\n \r\n \r\n Switch\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SettingsNotification;\r\n","import { useEffect } from 'react';\r\nimport { useLocation } from 'react-router';\r\n\r\nfunction ScrollReset() {\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, [location.pathname]);\r\n\r\n return null;\r\n}\r\n\r\nexport default ScrollReset;\r\n","export const softShadows = [\r\n 'none',\r\n '0 0 0 1px rgba(63,63,68,0.05), 0 1px 2px 0 rgba(63,63,68,0.15)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 2px 2px -2px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 3px 4px -2px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 3px 4px -2px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 4px 6px -2px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 4px 6px -2px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 4px 8px -2px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 5px 8px -2px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 6px 12px -4px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 7px 12px -4px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 6px 16px -4px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 7px 16px -4px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 8px 18px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 9px 18px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 10px 20px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 11px 20px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 12px 22px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 13px 22px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 14px 24px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 16px 28px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 18px 30px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 20px 32px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 22px 34px -8px rgba(0,0,0,0.25)',\r\n '0 0 1px 0 rgba(0,0,0,0.31), 0 24px 36px -8px rgba(0,0,0,0.25)'\r\n];\r\n\r\nexport const strongShadows = [\r\n 'none',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 3px 4px -2px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 2px 2px -2px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 3px 4px -2px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 3px 4px -2px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 4px 6px -2px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 4px 6px -2px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 4px 8px -2px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 5px 8px -2px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 6px 12px -4px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 7px 12px -4px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 6px 16px -4px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 7px 16px -4px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 8px 18px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 9px 18px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 10px 20px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 11px 20px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 12px 22px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 13px 22px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 14px 24px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 16px 28px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 18px 30px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 20px 32px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 22px 34px -8px rgba(0,0,0,0.50)',\r\n '0 0 1px 0 rgba(0,0,0,0.70), 0 24px 36px -8px rgba(0,0,0,0.50)'\r\n];\r\n","/* eslint-disable no-console */\r\n/* eslint-disable import/prefer-default-export */\r\nimport _ from 'lodash';\r\nimport { colors, createMuiTheme, responsiveFontSizes } from '@material-ui/core';\r\nimport typography from './typography';\r\nimport { softShadows, strongShadows } from './shadows';\r\nimport { THEMES } from '../constants';\r\n\r\nconst baseConfig = {\r\n direction: 'ltr',\r\n typography,\r\n overrides: {\r\n MuiLinearProgress: {\r\n root: {\r\n borderRadius: 3,\r\n overflow: 'hidden'\r\n }\r\n },\r\n MuiListItemIcon: {\r\n root: {\r\n minWidth: 32\r\n }\r\n },\r\n MuiChip: {\r\n root: {\r\n backgroundColor: 'rgba(0,0,0,0.075)'\r\n }\r\n }\r\n }\r\n};\r\n\r\nconst themeConfigs = [\r\n {\r\n name: THEMES.LIGHT,\r\n overrides: {\r\n MuiInputBase: {\r\n input: {\r\n '&::placeholder': {\r\n opacity: 1,\r\n color: colors.blueGrey[600]\r\n }\r\n }\r\n }\r\n },\r\n palette: {\r\n type: 'light',\r\n action: {\r\n active: colors.blueGrey[600]\r\n },\r\n background: {\r\n default: colors.common.white,\r\n dark: '#f4f6f8',\r\n paper: colors.common.white\r\n },\r\n primary: {\r\n main: colors.indigo[600]\r\n },\r\n secondary: {\r\n main: '#5850EC'\r\n },\r\n text: {\r\n primary: colors.blueGrey[900],\r\n secondary: colors.blueGrey[600]\r\n }\r\n },\r\n shadows: softShadows\r\n },\r\n {\r\n name: THEMES.ONE_DARK,\r\n palette: {\r\n type: 'dark',\r\n action: {\r\n active: 'rgba(255, 255, 255, 0.54)',\r\n hover: 'rgba(255, 255, 255, 0.04)',\r\n selected: 'rgba(255, 255, 255, 0.08)',\r\n disabled: 'rgba(255, 255, 255, 0.26)',\r\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\r\n focus: 'rgba(255, 255, 255, 0.12)'\r\n },\r\n background: {\r\n default: '#282C34',\r\n dark: '#1c2025',\r\n paper: '#282C34'\r\n },\r\n primary: {\r\n main: '#8a85ff'\r\n },\r\n secondary: {\r\n main: '#8a85ff'\r\n },\r\n text: {\r\n primary: '#e6e5e8',\r\n secondary: '#adb0bb'\r\n }\r\n },\r\n shadows: strongShadows\r\n },\r\n {\r\n name: THEMES.UNICORN,\r\n palette: {\r\n type: 'dark',\r\n action: {\r\n active: 'rgba(255, 255, 255, 0.54)',\r\n hover: 'rgba(255, 255, 255, 0.04)',\r\n selected: 'rgba(255, 255, 255, 0.08)',\r\n disabled: 'rgba(255, 255, 255, 0.26)',\r\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\r\n focus: 'rgba(255, 255, 255, 0.12)'\r\n },\r\n background: {\r\n default: '#2a2d3d',\r\n dark: '#222431',\r\n paper: '#2a2d3d'\r\n },\r\n primary: {\r\n main: '#a67dff'\r\n },\r\n secondary: {\r\n main: '#a67dff'\r\n },\r\n text: {\r\n primary: '#f6f5f8',\r\n secondary: '#9699a4'\r\n }\r\n },\r\n shadows: strongShadows\r\n }\r\n];\r\n\r\nexport function createTheme(settings = {}) {\r\n let themeConfig = themeConfigs.find((theme) => theme.name === settings.theme);\r\n\r\n if (!themeConfig) {\r\n console.warn(new Error(`The theme ${settings.theme} is not valid`));\r\n [themeConfig] = themeConfigs;\r\n }\r\n\r\n let theme = createMuiTheme(\r\n _.merge(\r\n {},\r\n baseConfig,\r\n themeConfig,\r\n { direction: settings.direction }\r\n )\r\n );\r\n\r\n if (settings.responsiveFontSizes) {\r\n theme = responsiveFontSizes(theme);\r\n }\r\n\r\n return theme;\r\n}\r\n","export default {\r\n h1: {\r\n fontWeight: 500,\r\n fontSize: 35,\r\n letterSpacing: '-0.24px'\r\n },\r\n h2: {\r\n fontWeight: 500,\r\n fontSize: 29,\r\n letterSpacing: '-0.24px'\r\n },\r\n h3: {\r\n fontWeight: 500,\r\n fontSize: 24,\r\n letterSpacing: '-0.06px'\r\n },\r\n h4: {\r\n fontWeight: 500,\r\n fontSize: 20,\r\n letterSpacing: '-0.06px'\r\n },\r\n h5: {\r\n fontWeight: 500,\r\n fontSize: 16,\r\n letterSpacing: '-0.05px'\r\n },\r\n h6: {\r\n fontWeight: 500,\r\n fontSize: 14,\r\n letterSpacing: '-0.05px'\r\n },\r\n overline: {\r\n fontWeight: 500\r\n }\r\n};\r\n","import React, { useState } from 'react';\r\nimport { NavLink as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, Collapse, ListItem, makeStyles } from '@material-ui/core';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n item: {\r\n display: 'block',\r\n paddingTop: 0,\r\n paddingBottom: 0\r\n },\r\n itemLeaf: {\r\n display: 'flex',\r\n paddingTop: 0,\r\n paddingBottom: 0\r\n },\r\n button: {\r\n color: theme.palette.text.secondary,\r\n padding: '10px 8px',\r\n justifyContent: 'flex-start',\r\n textTransform: 'none',\r\n letterSpacing: 0,\r\n width: '100%'\r\n },\r\n buttonLeaf: {\r\n color: theme.palette.text.secondary,\r\n padding: '10px 8px',\r\n justifyContent: 'flex-start',\r\n textTransform: 'none',\r\n letterSpacing: 0,\r\n width: '100%',\r\n fontWeight: theme.typography.fontWeightRegular,\r\n '&.depth-0': {\r\n '& $title': {\r\n fontWeight: theme.typography.fontWeightMedium\r\n }\r\n }\r\n },\r\n icon: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginRight: theme.spacing(1)\r\n },\r\n title: {\r\n marginRight: 'auto'\r\n },\r\n active: {\r\n color: theme.palette.secondary.main,\r\n '& $title': {\r\n fontWeight: theme.typography.fontWeightMedium\r\n },\r\n '& $icon': {\r\n color: theme.palette.secondary.main\r\n }\r\n }\r\n}));\r\n\r\nfunction NavItem({\r\n title,\r\n href,\r\n enabled,\r\n depth,\r\n children,\r\n icon: Icon,\r\n className,\r\n open: openProp,\r\n info: Info,\r\n ...rest\r\n}) {\r\n const classes = useStyles();\r\n const [open, setOpen] = useState(openProp);\r\n\r\n const handleToggle = () => {\r\n setOpen(prevOpen => !prevOpen);\r\n };\r\n\r\n let paddingLeft = 8;\r\n\r\n if (depth > 0) {\r\n paddingLeft = 32 + 8 * depth;\r\n }\r\n\r\n const style = { paddingLeft };\r\n\r\n if (children) {\r\n return (\r\n // Certificates\r\n \r\n \r\n {children}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {Icon && }\r\n {title}\r\n {Info && }\r\n \r\n \r\n );\r\n}\r\n\r\nNavItem.propTypes = {\r\n children: PropTypes.node,\r\n className: PropTypes.string,\r\n depth: PropTypes.number.isRequired,\r\n href: PropTypes.string,\r\n icon: PropTypes.any,\r\n info: PropTypes.any,\r\n open: PropTypes.bool,\r\n title: PropTypes.string.isRequired\r\n};\r\n\r\nNavItem.defaultProps = {\r\n open: false\r\n};\r\n\r\nexport default NavItem;\r\n","import {\r\n Business as BusinessIcon,\r\n FeaturedPlayList,\r\n Payment,\r\n AccountBalance\r\n} from '@material-ui/icons';\r\nimport ListAltIcon from '@material-ui/icons/ShortText';\r\nimport DeviceHubIcon from '@material-ui/icons/DeviceHub';\r\n\r\nconst UsersSubItems = () => {\r\n const links = {\r\n // subheader: 'Sub Menu',\r\n owner: 'user',\r\n items: []\r\n\r\n // [\r\n // {\r\n // title: 'Building Permit',\r\n // icon: BusinessIcon,\r\n // href: '/app/building-permit/new',\r\n // enabled: true\r\n // },\r\n // {\r\n // title: 'Permit List',\r\n // icon: FeaturedPlayList,\r\n // enabled: true,\r\n // items: [\r\n // {\r\n // title: 'List',\r\n // href: '/app/users/request/permit-list',\r\n // enabled: true,\r\n // icon: ListAltIcon\r\n // },\r\n // {\r\n // title: 'Draft',\r\n // href: '/app/building-permit/draft',\r\n // enabled: true,\r\n // icon: ListAltIcon\r\n // }\r\n // ]\r\n // },\r\n // {\r\n // title: 'Permit For Payment',\r\n // icon: Payment,\r\n // href: '/app/users/request/permit-forpayment',\r\n // enabled: true\r\n // },\r\n // {\r\n // title: 'Occupancy Permit',\r\n // icon: AccountBalance,\r\n // enabled: true,\r\n // items: [\r\n // {\r\n // title: 'New',\r\n // href: '/app/users/request/permit-foroccupancy',\r\n // enabled: true,\r\n // icon: ListAltIcon\r\n // },\r\n // {\r\n // title: 'List',\r\n // href: '/app/users/request/permit-foroccupancy/list',\r\n // enabled: true,\r\n // icon: ListAltIcon\r\n // }\r\n // ]\r\n // },\r\n\r\n // {\r\n // title: 'Electrical Permit',\r\n // icon: DeviceHubIcon,\r\n // items: [\r\n // {\r\n // title: 'List',\r\n // icon: ListAltIcon,\r\n // href: '/app/users/electrical-permit/request-list',\r\n // enabled: true\r\n // }\r\n // ]\r\n // }\r\n // ]\r\n };\r\n\r\n return links;\r\n};\r\n\r\nexport default UsersSubItems;\r\n","import Print from '@material-ui/icons/Print';\r\nimport ListAltIcon from '@material-ui/icons/ShortText';\r\n\r\nconst EngineeringSubItem = () => {\r\n const links = {\r\n subheader: 'Engineering Submenu',\r\n owner: 'engineering',\r\n items: [\r\n // {\r\n // title: 'Processed',\r\n // icon: DoneAll,\r\n // enabled: true,\r\n // items: [\r\n // {\r\n // title: 'Building Permit',\r\n // icon: Domain,\r\n // href: '/engineering/reviewed/request/permit/approved-list',\r\n // enabled: true\r\n // }\r\n // ]\r\n // },\r\n\r\n {\r\n title: 'For Print',\r\n icon: Print,\r\n enabled: true,\r\n items: [\r\n {\r\n title: 'Building Permits',\r\n icon: ListAltIcon,\r\n href: '/engineering/reviewed/request/permit/for-print',\r\n enabled: true\r\n },\r\n {\r\n title: 'Occupancy Permits',\r\n icon: ListAltIcon,\r\n href: '/engineering/reviewed/request/occupancy/permit/for-print',\r\n enabled: true\r\n },\r\n {\r\n title: 'Electrical Permits',\r\n icon: ListAltIcon,\r\n href: '/engineering/electrical-permit/completed',\r\n enabled: true\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n return links;\r\n};\r\n\r\nexport default EngineeringSubItem;\r\n","// import DoneAll from '@material-ui/icons/DoneAll';\r\nimport DvrIcon from '@material-ui/icons/Dvr';\r\nimport ListAltIcon from '@material-ui/icons/ShortText';\r\n\r\nconst ReviewerSubItem = () => {\r\n const links = {\r\n subheader: 'Reviewer Submenu',\r\n owner: 'reviewer',\r\n items: [\r\n {\r\n title: 'For Engineering',\r\n icon: DvrIcon,\r\n href: '/reviewer/reviewed/request/for-engineering',\r\n enabled: true\r\n },\r\n\r\n {\r\n title: 'Processed Permits',\r\n icon: ListAltIcon,\r\n href: '/reviewer/reviewed/request/permit/approved-list',\r\n enabled: true\r\n },\r\n {\r\n title: 'Processed Permits For Occupancy',\r\n icon: ListAltIcon,\r\n href: '/reviewer/reviewed/request/occupancy/permit/approved-list',\r\n enabled: true\r\n },\r\n\r\n {\r\n title: 'Processed Permits For Electrical',\r\n icon: ListAltIcon,\r\n href: '/reviewer/electrical-permit/request/completed-list',\r\n enabled: true\r\n }\r\n ]\r\n };\r\n\r\n return links;\r\n};\r\n\r\nexport default ReviewerSubItem;\r\n","import DoneAll from '@material-ui/icons/DoneAll';\r\n\r\nconst FireSubItem = () => {\r\n const links = {\r\n subheader: 'Fire Submenu',\r\n owner: 'fire',\r\n items: [\r\n {\r\n title: 'Processed Permits',\r\n icon: DoneAll,\r\n href: '/fire/approved/request/permit/approved-list',\r\n enabled: true\r\n },\r\n\r\n {\r\n title: 'Processed Permits For Occupancy',\r\n icon: DoneAll,\r\n href: '/fire/reviewed/request/occupancy/permit/approved-list',\r\n enabled: true\r\n }\r\n ]\r\n };\r\n\r\n return links;\r\n};\r\n\r\nexport default FireSubItem;\r\n","import DoneAll from '@material-ui/icons/DoneAll';\r\n\r\nconst MpdoSubItem = () => {\r\n const links = {\r\n subheader: 'MPDO Submenu',\r\n owner: 'mpdo',\r\n items: [\r\n {\r\n title: 'Approved Permits',\r\n icon: DoneAll,\r\n href: '/mpdo/approved/request/permit/approved-list',\r\n enabled: true\r\n }\r\n ]\r\n };\r\n\r\n return links;\r\n};\r\n\r\nexport default MpdoSubItem;\r\n","import { ChevronsRight, Layout, List, Users } from 'react-feather';\r\n\r\nconst AdministratorSubItem = () => {\r\n const links = {\r\n subheader: 'Administrator Submenu',\r\n owner: 'admin',\r\n items: [\r\n {\r\n title: 'Reports',\r\n icon: List,\r\n enabled: true,\r\n items: [\r\n {\r\n title: 'Payments',\r\n href: '/administrator/reports/payments',\r\n enabled: true,\r\n icon: ChevronsRight\r\n }\r\n ]\r\n },\r\n {\r\n title: 'Users',\r\n icon: Users,\r\n enabled: true,\r\n items: [\r\n {\r\n title: 'User',\r\n href: '/administrator/users',\r\n enabled: true,\r\n icon: ChevronsRight\r\n },\r\n {\r\n title: 'Roles',\r\n href: '/administrator/users/roles',\r\n enabled: true,\r\n icon: ChevronsRight\r\n }\r\n ]\r\n },\r\n\r\n {\r\n title: 'Building Permit',\r\n icon: Layout,\r\n enabled: true,\r\n items: [\r\n {\r\n title: 'Municipality',\r\n href: '/administrator/building/permit/municipality',\r\n enabled: true,\r\n icon: ChevronsRight\r\n },\r\n {\r\n title: 'Barangay',\r\n href: '/administrator/building/permit/barangay',\r\n enabled: true,\r\n icon: ChevronsRight\r\n },\r\n {\r\n title: 'Application Type',\r\n href: '/administrator/building/permit/type',\r\n enabled: true,\r\n icon: ChevronsRight\r\n },\r\n {\r\n title: 'Scope of Work',\r\n href: '/administrator/building/permit/scope',\r\n enabled: true,\r\n icon: ChevronsRight\r\n },\r\n {\r\n title: 'Form of Ownership',\r\n href: '/administrator/building/permit/ownership',\r\n enabled: true,\r\n icon: ChevronsRight\r\n },\r\n {\r\n title: 'Group Use',\r\n href: '/administrator/building/permit/group-use',\r\n enabled: true,\r\n icon: ChevronsRight\r\n },\r\n {\r\n title: 'Character of Occupancy',\r\n href: '/administrator/building/permit/occupancy-character',\r\n enabled: true,\r\n icon: ChevronsRight\r\n },\r\n {\r\n title: 'Application Status',\r\n href: '/administrator/building/permit/status',\r\n enabled: true,\r\n icon: ChevronsRight\r\n },\r\n {\r\n title: 'Fees Type',\r\n href: '/administrator/building/permit/fees-type',\r\n enabled: true,\r\n icon: ChevronsRight\r\n },\r\n {\r\n title: 'Fees Account',\r\n href: '/administrator/building/permit/fees-account',\r\n enabled: true,\r\n icon: ChevronsRight\r\n },\r\n {\r\n title: 'Grouping of Requirements',\r\n href: '/administrator/building/permit/requirements/grouping',\r\n enabled: true,\r\n icon: ChevronsRight\r\n },\r\n {\r\n title: 'List of Requirements',\r\n href: '/administrator/building/permit/requirements/list',\r\n enabled: true,\r\n icon: ChevronsRight\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n return links;\r\n};\r\n\r\nexport default AdministratorSubItem;\r\n","import DoneAll from '@material-ui/icons/DoneAll';\r\n\r\nconst TreasurySubItem = () => {\r\n const links = {\r\n subheader: 'Treasury Submenu',\r\n owner: 'treasury',\r\n items: [\r\n {\r\n title: 'Paid Bldg Permit',\r\n icon: DoneAll,\r\n href: '/treasury/approved/request/permit/paid-list',\r\n enabled: true\r\n },\r\n {\r\n title: 'Paid Occupancy Permit',\r\n icon: DoneAll,\r\n href: '/treasury/approved/request/occupancy/permit/paid-list',\r\n enabled: true\r\n },\r\n\r\n {\r\n title: 'Paid Electrical Permit',\r\n icon: DoneAll,\r\n href: '/treasury/electrical-permit/completed',\r\n enabled: true\r\n }\r\n ]\r\n };\r\n\r\n return links;\r\n};\r\n\r\nexport default TreasurySubItem;\r\n","// import DoneAll from '@material-ui/icons/DoneAll';\r\n// import DvrIcon from '@material-ui/icons/Dvr';\r\nimport ListAltIcon from '@material-ui/icons/ShortText';\r\n\r\nconst RequirementsReviewerSubItem = () => {\r\n const links = {\r\n subheader: 'Requirements Reviewer Submenu',\r\n owner: 'requirements-reviewer',\r\n items: [\r\n // {\r\n // title: 'For Engineering',\r\n // icon: DvrIcon,\r\n // href: '/requirements-reviewer/reviewed/request/for-engineering',\r\n // enabled: true\r\n // },\r\n\r\n {\r\n title: 'Processed Permits',\r\n icon: ListAltIcon,\r\n href: '/requirements-reviewer/reviewed/request/permit/approved-list',\r\n enabled: true\r\n },\r\n\r\n {\r\n title: 'Processed Permits For Occupancy',\r\n icon: ListAltIcon,\r\n href:\r\n '/requirements-reviewer/reviewed/request/occupancy/permit/approved-list',\r\n enabled: true\r\n }\r\n\r\n // {\r\n // title: 'Processed Permits For Electrical',\r\n // icon: ListAltIcon,\r\n // href: '/requirements-reviewer/electrical-permit/request/completed-list',\r\n // enabled: true\r\n // }\r\n ]\r\n };\r\n\r\n return links;\r\n};\r\n\r\nexport default RequirementsReviewerSubItem;\r\n","import ListAltIcon from '@material-ui/icons/ShortText';\r\n\r\nconst StructuralReviewerSubItem = () => {\r\n const links = {\r\n subheader: 'Structural Reviewer Submenu',\r\n owner: 'structural-reviewer',\r\n items: [\r\n {\r\n title: 'Processed Permits',\r\n icon: ListAltIcon,\r\n href: '/structural-reviewer/reviewed/request/permit/approved-list',\r\n enabled: true\r\n },\r\n\r\n {\r\n title: 'Processed Permits For Occupancy',\r\n icon: ListAltIcon,\r\n href:\r\n '/structural-reviewer/reviewed/request/occupancy/permit/approved-list',\r\n enabled: true\r\n }\r\n ]\r\n };\r\n\r\n return links;\r\n};\r\n\r\nexport default StructuralReviewerSubItem;\r\n","import ListAltIcon from '@material-ui/icons/ShortText';\r\n\r\nconst ElectricalReviewerSubitem = () => {\r\n const links = {\r\n subheader: 'Electrical Reviewer Submenu',\r\n owner: 'electrical-reviewer',\r\n items: [\r\n {\r\n title: 'Processed Permits',\r\n icon: ListAltIcon,\r\n href: '/electrical-reviewer/reviewed/request/permit/approved-list',\r\n enabled: true\r\n },\r\n\r\n {\r\n title: 'Processed Permits For Occupancy',\r\n icon: ListAltIcon,\r\n href:\r\n '/electrical-reviewer/reviewed/request/occupancy/permit/approved-list',\r\n enabled: true\r\n }\r\n ]\r\n };\r\n\r\n return links;\r\n};\r\n\r\nexport default ElectricalReviewerSubitem;\r\n","import ListAltIcon from '@material-ui/icons/ShortText';\r\n\r\nconst ArcheticturalReviewerSubitem = () => {\r\n const links = {\r\n subheader: 'Architectural Reviewer Submenu',\r\n owner: 'architectural-reviewer',\r\n items: [\r\n {\r\n title: 'Processed Permits',\r\n icon: ListAltIcon,\r\n href: '/architectural-reviewer/reviewed/request/permit/approved-list',\r\n enabled: true\r\n },\r\n\r\n {\r\n title: 'Processed Permits For Occupancy',\r\n icon: ListAltIcon,\r\n href:\r\n '/architectural-reviewer/reviewed/request/occupancy/permit/approved-list',\r\n enabled: true\r\n }\r\n ]\r\n };\r\n\r\n return links;\r\n};\r\n\r\nexport default ArcheticturalReviewerSubitem;\r\n","import ListAltIcon from '@material-ui/icons/ShortText';\r\n\r\nconst PlumbingReviewerSubitem = () => {\r\n const links = {\r\n subheader: 'Plumbing Reviewer Submenu',\r\n owner: 'plumbing-reviewer',\r\n items: [\r\n {\r\n title: 'Processed Permits',\r\n icon: ListAltIcon,\r\n href: '/plumbing-reviewer/reviewed/request/permit/approved-list',\r\n enabled: true\r\n },\r\n\r\n {\r\n title: 'Processed Permits For Occupancy',\r\n icon: ListAltIcon,\r\n href:\r\n '/plumbing-reviewer/reviewed/request/occupancy/permit/approved-list',\r\n enabled: true\r\n }\r\n ]\r\n };\r\n\r\n return links;\r\n};\r\n\r\nexport default PlumbingReviewerSubitem;\r\n","// eslint-disable no-use-before-define\r\n// eslint-disable react/prop-types\r\nimport React, { useEffect } from 'react';\r\nimport { useLocation, matchPath } from 'react-router';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport { useSelector } from 'react-redux';\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Avatar,\r\n Box,\r\n Divider,\r\n Drawer,\r\n Hidden,\r\n Link,\r\n List,\r\n ListSubheader,\r\n Typography,\r\n Button,\r\n makeStyles\r\n} from '@material-ui/core';\r\nimport { PieChart as PieChartIcon } from 'react-feather';\r\nimport NavItem from './NavItem';\r\nimport UsersSubItems from './UsersSubItems';\r\nimport EngineeringSubItem from './EngineeringSubItem';\r\nimport ReviewerSubItem from './ReviewerSubItem';\r\nimport FireSubItem from './FireSubItem';\r\nimport MpdoSubItem from './MpdoSubItem';\r\nimport AdministratorSubItem from './AdministratorSubItem';\r\nimport TreasurySubItem from './TreasurySubItem';\r\nimport RequirementsReviewerSubItem from './RequirementsReviewerSubItem';\r\nimport StructuralReviewerSubItem from './StructuralReviewerSubItem';\r\nimport ElectricalReviewerSubitem from './ElectricalReviewerSubitem';\r\nimport ArcheticturalReviewerSubitem from './ArcheticturalReviewerSubitem';\r\nimport PlumbingReviewerSubitem from './PlumbingReviewerSubitem';\r\n\r\nfunction renderNavItems({ items, ...rest }) {\r\n return (\r\n \r\n {items.reduce(\r\n (acc, item) => reduceChildRoutes({ acc, item, ...rest }),\r\n []\r\n )}\r\n \r\n );\r\n}\r\n\r\nfunction reduceChildRoutes({ acc, pathname, item, depth = 0 }) {\r\n const key = item.title + depth;\r\n if (item.items) {\r\n const open = matchPath(pathname, {\r\n path: item.href,\r\n exact: false\r\n });\r\n acc.push(\r\n \r\n {renderNavItems({\r\n depth: depth + 1,\r\n pathname,\r\n items: item.items\r\n })}\r\n \r\n );\r\n } else {\r\n acc.push(\r\n \r\n );\r\n }\r\n\r\n return acc;\r\n}\r\n\r\nconst imageLocation = process.env.REACT_APP_IMAGE;\r\n\r\nconst useStyles = makeStyles(() => ({\r\n mobileDrawer: {\r\n width: 256\r\n },\r\n desktopDrawer: {\r\n width: 256,\r\n top: 64,\r\n height: 'calc(100% - 64px)',\r\n transition: 'width 0.3s ease'\r\n },\r\n desktopDrawerClose: {\r\n width: 0,\r\n top: 64,\r\n height: 'calc(100% - 64px)',\r\n\r\n transition: 'width 0.3s ease'\r\n },\r\n avatar: {\r\n cursor: 'pointer',\r\n width: 64,\r\n height: 64\r\n }\r\n}));\r\n\r\nfunction NavBar({ openMobile, isDesktopHideSidebar, onMobileClose }) {\r\n const classes = useStyles();\r\n const location = useLocation();\r\n const { user } = useSelector(state => state.account);\r\n const userlink = UsersSubItems();\r\n const engineeringlink = EngineeringSubItem();\r\n const reviewerlink = ReviewerSubItem();\r\n const firelink = FireSubItem();\r\n const mpdolink = MpdoSubItem();\r\n const adminLink = AdministratorSubItem();\r\n const treasuryLink = TreasurySubItem();\r\n const requirementsReviewierLink = RequirementsReviewerSubItem();\r\n const srs = StructuralReviewerSubItem();\r\n const ers = ElectricalReviewerSubitem();\r\n const ars = ArcheticturalReviewerSubitem();\r\n const prs = PlumbingReviewerSubitem();\r\n\r\n const navConfig = [\r\n {\r\n subheader: '',\r\n owner: user.roles[0].name,\r\n items: [\r\n {\r\n title: 'Dashboard',\r\n icon: PieChartIcon,\r\n href: '/app/reports/dashboard',\r\n enabled: true\r\n }\r\n ]\r\n },\r\n userlink,\r\n engineeringlink,\r\n reviewerlink,\r\n firelink,\r\n mpdolink,\r\n adminLink,\r\n treasuryLink,\r\n requirementsReviewierLink,\r\n srs,\r\n ers,\r\n ars,\r\n prs\r\n ];\r\n\r\n useEffect(() => {\r\n if (openMobile && onMobileClose) {\r\n onMobileClose();\r\n }\r\n // eslint-disable-next-line\r\n }, [location.pathname]);\r\n\r\n const content = (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {`${user.firstname} ${user.lastname}`}\r\n \r\n \r\n {user.bio}\r\n \r\n \r\n \r\n \r\n \r\n {navConfig.map((config, index) => (\r\n \r\n {config.subheader}\r\n \r\n }\r\n >\r\n {renderNavItems({\r\n items: config.items,\r\n pathname: location.pathname\r\n })}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n To register your property? Click{' '}\r\n \r\n\r\n \r\n \r\n {' '}\r\n Register{' '}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n {content}\r\n \r\n \r\n\r\n \r\n \r\n {content}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nNavBar.propTypes = {\r\n onMobileClose: PropTypes.func,\r\n openMobile: PropTypes.bool\r\n};\r\n\r\nexport default NavBar;\r\n","import React, { useRef, useState } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport { useHistory } from 'react-router';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useSnackbar } from 'notistack';\r\nimport {\r\n Avatar,\r\n Box,\r\n ButtonBase,\r\n Hidden,\r\n Menu,\r\n MenuItem,\r\n Typography,\r\n makeStyles\r\n} from '@material-ui/core';\r\nimport { logout } from 'src/actions/accountActions';\r\n\r\nconst imageLocation = process.env.REACT_APP_IMAGE;\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n avatar: {\r\n height: 32,\r\n width: 32,\r\n marginRight: theme.spacing(1)\r\n },\r\n popover: {\r\n width: 200\r\n }\r\n}));\r\n\r\nfunction Account() {\r\n const classes = useStyles();\r\n const history = useHistory();\r\n const ref = useRef(null);\r\n const dispatch = useDispatch();\r\n const account = useSelector(state => state.account);\r\n const { enqueueSnackbar } = useSnackbar();\r\n const [isOpen, setOpen] = useState(false);\r\n\r\n const handleOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleLogout = async () => {\r\n try {\r\n handleClose();\r\n await dispatch(logout());\r\n history.push('/');\r\n } catch (error) {\r\n enqueueSnackbar('Unable to logout', {\r\n variant: 'error'\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {`${account.user.firstname} ${account.user.lastname}`}\r\n \r\n \r\n \r\n\r\n \r\n {/* \r\n Profile\r\n */}\r\n\r\n \r\n Account\r\n \r\n\r\n Logout\r\n \r\n \r\n );\r\n}\r\n\r\nexport default Account;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { colors, makeStyles } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'inline-block',\r\n borderRadius: '50%',\r\n flexGrow: 0,\r\n flexShrink: 0\r\n },\r\n small: {\r\n height: theme.spacing(1),\r\n width: theme.spacing(1)\r\n },\r\n medium: {\r\n height: theme.spacing(2),\r\n width: theme.spacing(2)\r\n },\r\n large: {\r\n height: theme.spacing(3),\r\n width: theme.spacing(3)\r\n },\r\n offline: {\r\n backgroundColor: colors.grey[50]\r\n },\r\n away: {\r\n backgroundColor: colors.orange[600]\r\n },\r\n busy: {\r\n backgroundColor: colors.red[600]\r\n },\r\n online: {\r\n backgroundColor: colors.green[600]\r\n }\r\n}));\r\n\r\nfunction OnlineIndicator({\r\n className,\r\n size,\r\n status,\r\n ...rest\r\n}) {\r\n const classes = useStyles();\r\n const rootClassName = clsx(\r\n {\r\n [classes.root]: true,\r\n [classes[size]]: size,\r\n [classes[status]]: status\r\n },\r\n className\r\n );\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nOnlineIndicator.propTypes = {\r\n className: PropTypes.string,\r\n size: PropTypes.oneOf(['small', 'medium', 'large']),\r\n status: PropTypes.oneOf(['online', 'offline', 'away', 'busy'])\r\n};\r\n\r\nOnlineIndicator.defaultProps = {\r\n size: 'medium',\r\n status: 'offline'\r\n};\r\n\r\nexport default OnlineIndicator;\r\n","import React, {\r\n useRef,\r\n useState,\r\n useEffect\r\n} from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport moment from 'moment';\r\nimport {\r\n useDispatch,\r\n useSelector\r\n} from 'react-redux';\r\nimport {\r\n Avatar,\r\n Box,\r\n IconButton,\r\n Link,\r\n List,\r\n ListItem,\r\n ListItemAvatar,\r\n ListItemText,\r\n Popover,\r\n SvgIcon,\r\n Tooltip,\r\n Typography,\r\n makeStyles\r\n} from '@material-ui/core';\r\nimport { Users as UsersIcon } from 'react-feather';\r\nimport OnlineIndicator from 'src/components/OnlineIndicator';\r\nimport { getContacts } from 'src/actions/chatActions';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n popover: {\r\n width: 320,\r\n padding: theme.spacing(2)\r\n },\r\n list: {\r\n padding: theme.spacing(1, 3)\r\n },\r\n listItemText: {\r\n marginRight: theme.spacing(1)\r\n },\r\n lastActivity: {\r\n whiteSpace: 'nowrap'\r\n }\r\n}));\r\n\r\nfunction Contacts() {\r\n const classes = useStyles();\r\n const ref = useRef(null);\r\n const dispatch = useDispatch();\r\n const { contacts } = useSelector((state) => state.chat);\r\n const [isOpen, setOpen] = useState(false);\r\n\r\n const handleOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n useEffect(() => {\r\n dispatch(getContacts());\r\n }, [dispatch]);\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 Contacts\r\n \r\n \r\n \r\n {contacts.allIds.map((contactId) => {\r\n const contact = contacts.byId[contactId];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {contact.name}\r\n \r\n )}\r\n />\r\n {contact.isActive ? (\r\n \r\n ) : (\r\n \r\n {moment(contact.lastActivity).fromNow()}\r\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 Contacts;\r\n","import React, { useRef, useState, useEffect } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport {\r\n Badge,\r\n Box,\r\n Button,\r\n IconButton,\r\n List,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n Popover,\r\n SvgIcon,\r\n Tooltip,\r\n Typography,\r\n makeStyles\r\n} from '@material-ui/core';\r\nimport {\r\n Bell as BellIcon,\r\n MessageCircle as MessageIcon,\r\n ExternalLink\r\n} from 'react-feather';\r\nimport { SocketContext } from 'src/context/SocketContext';\r\nimport { useContext } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport axios from 'axios';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n popover: {\r\n width: 320\r\n },\r\n icon: {\r\n backgroundColor: theme.palette.secondary.main,\r\n color: theme.palette.secondary.contrastText\r\n }\r\n}));\r\n\r\nfunction Notifications() {\r\n const classes = useStyles();\r\n const ref = useRef(null);\r\n const dispatch = useDispatch();\r\n const [isOpen, setOpen] = useState(false);\r\n const { socket } = useContext(SocketContext);\r\n const { user } = useSelector(state => state.account);\r\n const history = useHistory();\r\n const [notifications, setNotifications] = useState([]);\r\n const user_type = user?.roles?.[0]?.name;\r\n const userId = user_type === 'user' ? user?.id : user?.roles?.[0]?.id;\r\n\r\n const getNotifications = async () => {\r\n const response = await axios.get('/api/notifications', {\r\n params: {\r\n userId: userId\r\n }\r\n });\r\n setNotifications(response.data);\r\n };\r\n\r\n const handleOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleSetNotificationAsRead = e => {\r\n e.preventDefault();\r\n\r\n socket.emit('notifications-setas-read', {\r\n userId: userId\r\n });\r\n setNotifications([]);\r\n };\r\n\r\n useEffect(() => {\r\n socket.emit('join', {\r\n userId: userId\r\n });\r\n\r\n socket.on('received-notification', data => {\r\n setNotifications(prev => prev.concat(data));\r\n });\r\n\r\n getNotifications();\r\n\r\n // eslint-disable-next-line\r\n }, [dispatch]);\r\n\r\n const roles = user?.roles?.[0].name;\r\n const navigate =\r\n roles === 'user' ? '/app/users/inquiries' : `/${roles}/inquiries`;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {' '}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Notifications\r\n \r\n \r\n\r\n \r\n history.push(navigate)}>\r\n \r\n \r\n \r\n \r\n {notifications.length === 0 ? (\r\n \r\n \r\n There are no notifications\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n {notifications.map(notification => {\r\n let extras =\r\n notification.type?.trim() === 'inquiry-message'\r\n ? JSON.parse(notification.extras)\r\n : null;\r\n\r\n let inquiry_id = extras?.inquiry_id ?? '';\r\n let url = `/${\r\n user_type === 'user' ? 'app/users' : 'requirements-reviewer'\r\n }/inquiries?inquiry_id=${inquiry_id}`;\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 handleSetNotificationAsRead(e)}\r\n >\r\n Mark all as read\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default Notifications;\r\n","import React, { useState } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\nimport { useSnackbar } from 'notistack';\r\nimport {\r\n Box,\r\n Button,\r\n CircularProgress,\r\n Drawer,\r\n IconButton,\r\n InputAdornment,\r\n Link,\r\n SvgIcon,\r\n TextField,\r\n Tooltip,\r\n Typography,\r\n makeStyles\r\n} from '@material-ui/core';\r\nimport {\r\n Search as SearchIcon,\r\n XCircle as XIcon\r\n} from 'react-feather';\r\nimport axios from 'src/utils/axios';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n drawer: {\r\n width: 500,\r\n maxWidth: '100%'\r\n }\r\n}));\r\n\r\nfunction Search() {\r\n const classes = useStyles();\r\n const [value, setValue] = useState('');\r\n const [isOpen, setOpen] = useState(false);\r\n const [isLoading, setLoading] = useState(false);\r\n const [results, setResults] = useState(null);\r\n const { enqueueSnackbar } = useSnackbar();\r\n\r\n const handleOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleSearch = async () => {\r\n try {\r\n setLoading(true);\r\n\r\n const response = await axios.get('/api/search');\r\n\r\n setResults(response.data.results);\r\n } catch (error) {\r\n enqueueSnackbar('Something went wrong', {\r\n variant: 'error'\r\n });\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Search\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }}\r\n onChange={(event) => setValue(event.target.value)}\r\n placeholder=\"Search people & places\"\r\n value={value}\r\n variant=\"outlined\"\r\n />\r\n \r\n \r\n \r\n Search\r\n \r\n \r\n \r\n {isLoading ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n {results && results.map((result) => (\r\n \r\n \r\n {result.title}\r\n \r\n \r\n {result.description}\r\n \r\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 Search;\r\n","import React, { useState, useRef } from 'react';\r\nimport { capitalCase } from 'change-case';\r\nimport {\r\n Badge,\r\n Box,\r\n Button,\r\n FormControlLabel,\r\n IconButton,\r\n Popover,\r\n SvgIcon,\r\n Switch,\r\n TextField,\r\n Tooltip,\r\n Typography,\r\n makeStyles\r\n} from '@material-ui/core';\r\nimport { Settings as SettingsIcon } from 'react-feather';\r\nimport useSettings from 'src/hooks/useSettings';\r\nimport { THEMES } from 'src/constants';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n badge: {\r\n height: 10,\r\n width: 10,\r\n borderRadius: 5,\r\n marginTop: 10,\r\n marginRight: 5\r\n },\r\n popover: {\r\n width: 320,\r\n padding: theme.spacing(2)\r\n }\r\n}));\r\n\r\nfunction Settings() {\r\n const classes = useStyles();\r\n const ref = useRef(null);\r\n const { settings, saveSettings } = useSettings();\r\n const [isOpen, setOpen] = useState(false);\r\n const [values, setValues] = useState({\r\n direction: settings.direction,\r\n responsiveFontSizes: settings.responsiveFontSizes,\r\n theme: settings.theme\r\n });\r\n\r\n const handleOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleChange = (field, value) => {\r\n setValues({\r\n ...values,\r\n [field]: value\r\n });\r\n };\r\n\r\n const handleSave = () => {\r\n saveSettings(values);\r\n setOpen(false);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Settings\r\n \r\n \r\n handleChange('direction', event.target.checked ? 'rtl' : 'ltr')}\r\n />\r\n )}\r\n label=\"RTL\"\r\n />\r\n \r\n \r\n handleChange('responsiveFontSizes', event.target.checked)}\r\n />\r\n )}\r\n label=\"Responsive font sizes\"\r\n />\r\n \r\n \r\n handleChange('theme', event.target.value)}\r\n select\r\n SelectProps={{ native: true }}\r\n value={values.theme}\r\n variant=\"outlined\"\r\n >\r\n {Object.keys(THEMES).map((theme) => (\r\n \r\n {capitalCase(theme)}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n Save Settings\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Settings;\r\n","import React from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport {\r\n AppBar,\r\n Box,\r\n Hidden,\r\n IconButton,\r\n Toolbar,\r\n makeStyles,\r\n SvgIcon,\r\n Typography\r\n} from '@material-ui/core';\r\nimport { Menu as MenuIcon } from 'react-feather';\r\nimport Logo from 'src/components/Logo';\r\nimport { THEMES } from 'src/constants';\r\nimport Account from './Account';\r\nimport Contacts from './Contacts';\r\nimport Notifications from './Notifications';\r\nimport Search from './Search';\r\nimport Settings from './Settings';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n zIndex: theme.zIndex.drawer + 100,\r\n ...(theme.name === THEMES.LIGHT\r\n ? {\r\n boxShadow: 'none',\r\n backgroundColor: theme.palette.primary.main\r\n }\r\n : {}),\r\n ...(theme.name === THEMES.ONE_DARK\r\n ? {\r\n backgroundColor: theme.palette.background.default\r\n }\r\n : {})\r\n },\r\n toolbar: {\r\n minHeight: 64\r\n }\r\n}));\r\n\r\nfunction TopBar({ className, onMobileNavOpen, onHideDesktopSidebar, ...rest }) {\r\n const classes = useStyles();\r\n const { user } = useSelector(state => state.account);\r\n const module =\r\n user.roles.length && user.roles[0].name.trim() === 'engineering'\r\n ? 'BUILDING OFFICIAL'\r\n : user.roles[0].name === 'fire'\r\n ? 'FIRE'\r\n : user.roles[0].name === 'admin'\r\n ? 'ADMINISTRATOR'\r\n : user.roles[0].name === 'mpdo'\r\n ? 'ZONING'\r\n : user.roles[0].name === 'reviewer'\r\n ? 'REVIEWER'\r\n : user.roles[0].name === 'treasury'\r\n ? 'TREASURY'\r\n : user.roles[0].name === 'structural-reviewer'\r\n ? 'STRUCTURAL'\r\n : user.roles[0].name === 'electrical-reviewer'\r\n ? 'ELECTRICAL'\r\n : user.roles[0].name === 'plumbing-reviewer'\r\n ? 'PLUMBING'\r\n : user.roles[0].name === 'architectural-reviewer'\r\n ? 'ARCHITECTURAL'\r\n : user.roles[0].name === 'requirements-reviewer'\r\n ? 'MODERATOR'\r\n : user.roles[0].name === 'moderator'\r\n ? 'MODETOR'\r\n : user.roles[0].name === 'line-and-grade-reviewer'\r\n ? 'LINE AND GRADE'\r\n : user.roles[0].name === 'zoning-reviewer'\r\n ? 'ZONING'\r\n : 'APPLICANT';\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 {module}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {module}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* notifications */}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nTopBar.propTypes = {\r\n className: PropTypes.string,\r\n onMobileNavOpen: PropTypes.func\r\n};\r\n\r\nexport default TopBar;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core';\r\nimport NavBar from './NavBar';\r\nimport TopBar from './TopBar';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n backgroundColor: theme.palette.background.dark,\r\n display: 'flex',\r\n height: '100%',\r\n overflow: 'hidden',\r\n width: '100%'\r\n },\r\n wrapper: {\r\n display: 'flex',\r\n flex: '1 1 auto',\r\n overflow: 'hidden',\r\n paddingTop: 64,\r\n transition: 'padding-left 0.3s ease',\r\n [theme.breakpoints.up('lg')]: {\r\n paddingLeft: 256\r\n }\r\n },\r\n\r\n wrapperClose: {\r\n display: 'flex',\r\n flex: '1 1 auto',\r\n overflow: 'hidden',\r\n paddingTop: 64,\r\n transition: 'padding-left 0.3s ease',\r\n [theme.breakpoints.up('lg')]: {\r\n paddingLeft: 0\r\n }\r\n },\r\n\r\n contentContainer: {\r\n display: 'flex',\r\n flex: '1 1 auto',\r\n overflow: 'hidden'\r\n },\r\n content: {\r\n flex: '1 1 auto',\r\n height: '100%',\r\n overflow: 'auto'\r\n }\r\n}));\r\n\r\nfunction DashboardLayout({ children }) {\r\n const classes = useStyles();\r\n const [isMobileNavOpen, setMobileNavOpen] = useState(false);\r\n const [isDesktopHideSidebar, setIsDesktopHideSidebar] = useState(true);\r\n\r\n return (\r\n
\r\n setMobileNavOpen(!isMobileNavOpen)}\r\n onHideDesktopSidebar={() =>\r\n setIsDesktopHideSidebar(!isDesktopHideSidebar)\r\n }\r\n />\r\n\r\n setMobileNavOpen(false)}\r\n openMobile={isMobileNavOpen}\r\n isDesktopHideSidebar={isDesktopHideSidebar}\r\n />\r\n\r\n \r\n
\r\n
{children}
\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nDashboardLayout.propTypes = {\r\n children: PropTypes.any\r\n};\r\n\r\nexport default DashboardLayout;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction AuthGuard({ children }) {\r\n const account = useSelector(state => state.account);\r\n\r\n if (!account.user) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'engineering'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'fire') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'mpdo') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'admin') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'treasury'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'requirements-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'structural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'plumbing-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'electrical-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'architectural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'requirements-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'line-and-grade-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n return children;\r\n}\r\n\r\nAuthGuard.propTypes = {\r\n children: PropTypes.any\r\n};\r\n\r\nexport default AuthGuard;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction GuestGuard({ children }) {\r\n const account = useSelector(state => state.account);\r\n\r\n if (account.user) {\r\n return ;\r\n }\r\n\r\n return children;\r\n}\r\n\r\nGuestGuard.propTypes = {\r\n children: PropTypes.any\r\n};\r\n\r\nexport default GuestGuard;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport {\r\n Box,\r\n Container,\r\n Grid,\r\n Typography,\r\n makeStyles,\r\n Button\r\n} from '@material-ui/core';\r\nimport { useHistory } from 'react-router';\r\n// import { useHistory } from 'react-router';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n backgroundColor: theme.palette.background.dark,\r\n paddingTop: 200,\r\n paddingBottom: 200,\r\n [theme.breakpoints.down('md')]: {\r\n paddingTop: 60,\r\n paddingBottom: 60\r\n }\r\n },\r\n image: {\r\n perspectiveOrigin: 'left center',\r\n transformStyle: 'preserve-3d',\r\n perspective: 1500,\r\n '& > img': {\r\n maxWidth: '90%',\r\n height: 'auto',\r\n transform: 'rotateY(-35deg) rotateX(15deg)',\r\n backfaceVisibility: 'hidden',\r\n boxShadow: theme.shadows[16]\r\n }\r\n },\r\n shape: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n '& > img': {\r\n maxWidth: '90%',\r\n height: 'auto'\r\n }\r\n }\r\n}));\r\n\r\nfunction Hero({ className, ...rest }) {\r\n const classes = useStyles();\r\n const history = useHistory();\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Introducing\r\n \r\n \r\n Building Permit and Certificate of Occupancy System\r\n \r\n \r\n \r\n Makabagong paraan ng pagkuha ng permiso sa pagtatayo ng gusali\r\n sa bayan ng Guiguinto.\r\n {''}\r\n \r\n \r\n \r\n \r\n {' '}\r\n Para sa huwarang pamamahala at paglilingkod.{' '}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Sugod Makabagong Guiguinto!\r\n \r\n\r\n \r\n history.push('/guides')}\r\n >\r\n Paano kumuha ng building permit\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \"Shapes\"\r\n
\r\n
\r\n \"Presentation\"\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nHero.propTypes = {\r\n className: PropTypes.string\r\n};\r\n\r\nexport default Hero;\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core';\r\nimport Page from 'src/components/Page';\r\nimport Hero from './Hero'; \r\nconst useStyles = makeStyles(() => ({\r\n root: {}\r\n}));\r\n\r\nfunction HomeView() {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n {/* \r\n \r\n \r\n */}\r\n \r\n );\r\n}\r\n\r\nexport default HomeView;\r\n","import React from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n AppBar,\r\n Box,\r\n // Button,\r\n // Divider,\r\n Toolbar,\r\n Link,\r\n makeStyles\r\n} from '@material-ui/core';\r\nimport Logo from 'src/components/Logo';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n backgroundColor: theme.palette.background.default\r\n },\r\n toolbar: {\r\n height: 64\r\n },\r\n logo: {\r\n marginRight: theme.spacing(2)\r\n },\r\n link: {\r\n fontWeight: theme.typography.fontWeightMedium,\r\n '& + &': {\r\n marginLeft: theme.spacing(2)\r\n }\r\n },\r\n divider: {\r\n width: 1,\r\n height: 32,\r\n marginLeft: theme.spacing(2),\r\n marginRight: theme.spacing(2)\r\n }\r\n}));\r\n\r\nfunction TopBar({ className, ...rest }) {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Dashboard\r\n \r\n {/* \r\n \r\n official website\r\n */}\r\n \r\n \r\n );\r\n}\r\n\r\nTopBar.propTypes = {\r\n className: PropTypes.string\r\n};\r\n\r\nexport default TopBar;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core';\r\nimport TopBar from './TopBar';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n backgroundColor: theme.palette.background.default,\r\n display: 'flex',\r\n height: '100%',\r\n overflow: 'hidden',\r\n width: '100%'\r\n },\r\n wrapper: {\r\n display: 'flex',\r\n flex: '1 1 auto',\r\n overflow: 'hidden',\r\n paddingTop: 64\r\n },\r\n contentContainer: {\r\n display: 'flex',\r\n flex: '1 1 auto',\r\n overflow: 'hidden'\r\n },\r\n content: {\r\n flex: '1 1 auto',\r\n height: '100%',\r\n overflow: 'auto'\r\n }\r\n}));\r\n\r\nfunction MainLayout({ children }) {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n {children}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nMainLayout.propTypes = {\r\n children: PropTypes.any\r\n};\r\n\r\nexport default MainLayout;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction EngineeringGuard({ children }) {\r\n const account = useSelector(state => state.account);\r\n\r\n if (!account.user) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'user') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'fire') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'mpdo') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'admin') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'treasury'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'requirements-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'structural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'plumbing-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'electrical-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'architectural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'line-and-grade-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n return children;\r\n}\r\n\r\nEngineeringGuard.propTypes = {\r\n children: PropTypes.any\r\n};\r\n\r\nexport default EngineeringGuard;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction ReviewerGuard({ children }) {\r\n const account = useSelector(state => state.account);\r\n\r\n if (!account.user) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'user') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'engineering'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'fire') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'mpdo') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'admin') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'treasury'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'requirements-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'structural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'plumbing-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'electrical-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'architectural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'line-and-grade-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n return children;\r\n}\r\n\r\nReviewerGuard.propTypes = {\r\n children: PropTypes.any\r\n};\r\n\r\nexport default ReviewerGuard;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction FireGuard({ children }) {\r\n const account = useSelector(state => state.account);\r\n\r\n if (!account.user) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'user') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'engineering'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'mpdo') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'admin') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'treasury'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'requirements-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'structural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'plumbing-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'electrical-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'architectural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'line-and-grade-reviewer'\r\n ) {\r\n return ;\r\n }\r\n return children;\r\n}\r\n\r\nFireGuard.propTypes = {\r\n children: PropTypes.any\r\n};\r\n\r\nexport default FireGuard;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction MpdoGuard({ children }) {\r\n const account = useSelector(state => state.account);\r\n\r\n if (!account.user) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'user') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'engineering'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'fire') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'admin') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'treasury'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'requirements-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'structural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'plumbing-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'electrical-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'architectural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'line-and-grade-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n return children;\r\n}\r\n\r\nMpdoGuard.propTypes = {\r\n children: PropTypes.any\r\n};\r\n\r\nexport default MpdoGuard;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction AdministratorGuard({ children }) {\r\n const account = useSelector(state => state.account);\r\n\r\n if (!account.user) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'user') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'fire') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'mpdo') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'engineering'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'treasury'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'requirements-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'structural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'plumbing-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'electrical-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'architectural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'architectural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'line-and-grade-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n return children;\r\n}\r\n\r\nAdministratorGuard.propTypes = {\r\n children: PropTypes.any\r\n};\r\n\r\nexport default AdministratorGuard;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction TreasuryGuard({ children }) {\r\n const account = useSelector(state => state.account);\r\n\r\n if (!account.user) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'user') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'fire') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'mpdo') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'engineering'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'admin') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'requirements-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'structural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'plumbing-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'electrical-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'architectural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'line-and-grade-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n return children;\r\n}\r\n\r\nTreasuryGuard.propTypes = {\r\n children: PropTypes.any\r\n};\r\n\r\nexport default TreasuryGuard;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction RequirementsReviewerGuard({ children }) {\r\n const account = useSelector(state => state.account);\r\n\r\n if (!account.user) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'user') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'engineering'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'fire') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'mpdo') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'admin') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'treasury'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'structural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'plumbing-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'electrical-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'architectural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'line-and-grade-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n return children;\r\n}\r\n\r\nRequirementsReviewerGuard.propTypes = {\r\n children: PropTypes.any\r\n};\r\n\r\nexport default RequirementsReviewerGuard;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction StructuralReviewerGuard({ children }) {\r\n const account = useSelector(state => state.account);\r\n\r\n if (!account.user) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'user') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'engineering'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'fire') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'mpdo') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'admin') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'treasury'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'requirements-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n // if (\r\n // account.user.roles.length > 0 &&\r\n // account.user.roles[0].name === 'reviewer-structural'\r\n // ) {\r\n // return ;\r\n // }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'plumbing-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'electrical-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'architectural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'line-and-grade-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n return children;\r\n}\r\n\r\nStructuralReviewerGuard.propTypes = {\r\n children: PropTypes.any\r\n};\r\n\r\nexport default StructuralReviewerGuard;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction ArchitecturalReviewerGuard({ children }) {\r\n const account = useSelector(state => state.account);\r\n\r\n if (!account.user) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'user') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'engineering'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'fire') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'mpdo') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'admin') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'treasury'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'requirements-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'structural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'plumbing-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'electrical-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'line-and-grade-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n return children;\r\n}\r\n\r\nArchitecturalReviewerGuard.propTypes = {\r\n children: PropTypes.any\r\n};\r\n\r\nexport default ArchitecturalReviewerGuard;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction PlumbingReviewerGuard({ children }) {\r\n const account = useSelector(state => state.account);\r\n\r\n if (!account.user) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'user') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'engineering'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'fire') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'mpdo') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'admin') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'treasury'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'requirements-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'structural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'electrical-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'architectural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'line-and-grade-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n return children;\r\n}\r\n\r\nPlumbingReviewerGuard.propTypes = {\r\n children: PropTypes.any\r\n};\r\n\r\nexport default PlumbingReviewerGuard;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction ElectricalReviewerGuard({ children }) {\r\n const account = useSelector(state => state.account);\r\n\r\n if (!account.user) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'user') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'engineering'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'fire') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'mpdo') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'admin') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'treasury'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'requirements-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'structural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'plumbing-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'architectural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'line-and-grade-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n return children;\r\n}\r\n\r\nElectricalReviewerGuard.propTypes = {\r\n children: PropTypes.any\r\n};\r\n\r\nexport default ElectricalReviewerGuard;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction LineAndGradeGuard({ children }) {\r\n const account = useSelector(state => state.account);\r\n\r\n if (!account.user) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'user') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'engineering'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'fire') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'mpdo') {\r\n return ;\r\n }\r\n\r\n if (account.user.roles.length > 0 && account.user.roles[0].name === 'admin') {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'treasury'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'requirements-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'reviewer-structural'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'plumbing-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'electrical-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n if (\r\n account.user.roles.length > 0 &&\r\n account.user.roles[0].name === 'architectural-reviewer'\r\n ) {\r\n return ;\r\n }\r\n\r\n return children;\r\n}\r\n\r\nLineAndGradeGuard.propTypes = {\r\n children: PropTypes.any\r\n};\r\n\r\nexport default LineAndGradeGuard;\r\n","/* eslint-disable react/no-array-index-key */\r\nimport React, { lazy, Suspense, Fragment } from 'react';\r\nimport { Switch, Redirect, Route } from 'react-router-dom';\r\nimport DashboardLayout from 'src/layouts/DashboardLayout';\r\nimport LoadingScreen from 'src/components/LoadingScreen';\r\nimport AuthGuard from 'src/components/AuthGuard';\r\nimport GuestGuard from 'src/components/GuestGuard';\r\nimport HomeView from './views/pages/HomeView';\r\nimport MainLayout from './layouts/MainLayout';\r\nimport EngineeringGuard from './components/guard/EngineeringGuard';\r\nimport ReviewerGuard from './components/guard/ReviewerGuard';\r\nimport FireGuard from './components/guard/FireGuard';\r\nimport MpdoGuard from './components/guard/MpdoGuard';\r\nimport AdministratorGuard from './components/guard/AdministratorGuard';\r\nimport TreasuryGuard from './components/guard/TreasuryGuard';\r\nimport RequirementsReviewerGuard from './components/guard/RequirementsReviewerGuard';\r\nimport StructuralReviewerGuard from './components/guard/StructuralReviewerGuard';\r\nimport ArchitecturalReviewerGuard from './components/guard/ArchitecturalReviewerGuard';\r\nimport PlumbingReviewerGuard from './components/guard/PlumbingReviewerGuard';\r\nimport ElectricalReviewerGuard from './components/guard/ElectricalReviewerGuard';\r\nimport LineAndGradeGuard from './components/guard/LineAndGradeGuard';\r\n\r\nconst routesConfig = [\r\n {\r\n exact: true,\r\n path: '/',\r\n component: () => \r\n },\r\n {\r\n exact: true,\r\n path: '/404',\r\n component: lazy(() => import('src/views/pages/Error404View'))\r\n },\r\n {\r\n exact: true,\r\n guard: GuestGuard,\r\n path: '/login',\r\n component: lazy(() => import('src/views/auth/LoginView'))\r\n },\r\n {\r\n exact: true,\r\n path: '/login-unprotected',\r\n component: lazy(() => import('src/views/auth/LoginView'))\r\n },\r\n {\r\n exact: true,\r\n guard: GuestGuard,\r\n path: '/register',\r\n component: lazy(() => import('src/views/auth/RegisterView'))\r\n },\r\n\r\n {\r\n exact: true,\r\n guard: GuestGuard,\r\n path: '/register/sample-page',\r\n component: () =>

Sample Page 2nd build

\r\n },\r\n {\r\n exact: true,\r\n guard: GuestGuard,\r\n path: '/recover/password',\r\n component: lazy(() => import('src/views/auth/RecoverPasswordView'))\r\n },\r\n\r\n {\r\n exact: true,\r\n guard: GuestGuard,\r\n path: '/recover/password/reset-form/:email/:token',\r\n component: lazy(() =>\r\n import('src/views/auth/RecoverPasswordView/NewPasswordView/')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/register-unprotected',\r\n component: lazy(() => import('src/views/auth/RegisterView'))\r\n },\r\n\r\n // users route\r\n {\r\n path: '/app',\r\n guard: AuthGuard,\r\n layout: DashboardLayout,\r\n routes: [\r\n {\r\n exact: true,\r\n path: '/app',\r\n component: () => \r\n },\r\n {\r\n exact: true,\r\n path: '/app/dashboard',\r\n component: () => \r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/app/account',\r\n component: lazy(() => import('src/views/pages/AccountView'))\r\n },\r\n {\r\n exact: true,\r\n path: '/app/users/request/building-permit',\r\n component: lazy(() => import('src/views/users/request/building-permit'))\r\n },\r\n\r\n // new building permit request - stepper\r\n {\r\n exact: true,\r\n path: '/app/building-permit/new',\r\n component: lazy(() =>\r\n import('src/views/users/request/building-permit-stepper')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/app/users/request/permit-list',\r\n component: lazy(() => import('src/views/users/request/PermitList'))\r\n },\r\n {\r\n exact: true,\r\n path: '/app/users/request/permit-forpayment',\r\n component: lazy(() => import('src/views/users/forpayment'))\r\n },\r\n {\r\n exact: true,\r\n path: '/app/users/request/permit-foroccupancy',\r\n component: lazy(() => import('src/views/users/foroccupancy'))\r\n },\r\n {\r\n exact: true,\r\n path: '/app/users/request/permit-foroccupancy/request/:application_no',\r\n component: lazy(() =>\r\n import('src/views/users/foroccupancy/certificate/Request')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path: '/app/users/request/permit-foroccupancy/list',\r\n component: lazy(() =>\r\n import('src/views/users/foroccupancy/certificate/RequestList')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path: '/app/users/request/permit/requirements/:application_no',\r\n component: lazy(() => import('src/views/users/requirements'))\r\n },\r\n // {\r\n // exact: true,\r\n // path: '/app/reports/dashboard',\r\n // component: lazy(() => import('src/views/users'))\r\n // },\r\n\r\n {\r\n exact: true,\r\n path: '/app/building-permit/draft',\r\n component: lazy(() => import('src/views/users'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/app/reports/dashboard',\r\n component: lazy(() => import('src/views/users/dashboard'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/app/users/request/permit/assessment/:application_no',\r\n component: lazy(() =>\r\n import('src/views/users/request/PermitAssessment')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/app/users/request/permit/update/:application_no',\r\n component: lazy(() => import('src/views/users/request/Edit'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path:\r\n '/app/users/request/occupancy/permit/assessment/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import('src/views/users/assessment/PermitForOccupancyAssessment')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path:\r\n '/app/users/request/occupancy/permit/requirements/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import('src/views/users/requirements/PermitForOccupancyRequirements')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/app/users/building/permit/electrical/request/:application_no',\r\n component: lazy(() =>\r\n import('src/views/users/electical-permit/request-form/index')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path: '/app/users/electrical-permit/request-list',\r\n component: lazy(() => import('src/views/users/electical-permit'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/app/users/electrical-permit/printable-from/:electrical_no',\r\n component: lazy(() => import('src/views/pages/PrintableElectricalForm'))\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/app/users/electrical-permit/edit-from/:application_no/:electrical_no',\r\n component: lazy(() => import('src/views/users/electical-permit/edit'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/app/users/electrical-permit/online/payment/payment-callback',\r\n component: lazy(() =>\r\n import('src/views/users/request/online-payment/SuccessPayment')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/app/users/inquiries',\r\n component: lazy(() => import('src/views/pages/inquiries'))\r\n // component: lazy(() => import('src/views/users/inquiries'))\r\n },\r\n\r\n {\r\n component: () => \r\n }\r\n ]\r\n },\r\n // engineering route\r\n {\r\n path: '/engineering',\r\n guard: EngineeringGuard,\r\n layout: DashboardLayout,\r\n routes: [\r\n {\r\n exact: true,\r\n path: '/engineering',\r\n component: () => \r\n },\r\n {\r\n exact: true,\r\n path: '/engineering/account',\r\n component: lazy(() => import('src/views/pages/AccountView'))\r\n },\r\n {\r\n exact: true,\r\n path: '/engineering/reports/dashboard',\r\n component: lazy(() => import('src/views/engineering'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/engineering/request/permit/requirements/:application_no',\r\n component: lazy(() => import('src/views/engineering/requirements'))\r\n },\r\n {\r\n exact: true,\r\n path: '/engineering/reviewed/request/permit/approved-list',\r\n component: lazy(() => import('src/views/engineering/approved-list'))\r\n },\r\n {\r\n exact: true,\r\n path: '/engineering/request/permit/assessment-list/:application_no',\r\n component: lazy(() => import('src/views/engineering/assessment'))\r\n },\r\n {\r\n exact: true,\r\n path: '/engineering/reviewed/request/permit/for-print',\r\n component: lazy(() => import('src/views/engineering/permits-forprint'))\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/engineering/request/occupancy/permit/requirements/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/engineering/requirements/PermitForOccupancyRequirements'\r\n )\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/engineering/request/occupancy/permit/assessment/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import('src/views/engineering/assessment/OccupancyPermit')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/engineering/request/occupancy/permit/assessment/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import('src/views/engineering/assessment/OccupancyPermit')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/engineering/request/occupancy/permit/details/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import('src/views/engineering/for-review/PermitForOccupancyDetails')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/engineering/reviewed/request/occupancy/permit/for-print',\r\n component: lazy(() =>\r\n import('src/views/engineering/permits-forprint/OccupancyPermit')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/engineering/reviewed/request/permit/electrical/list',\r\n component: lazy(() => import('src/views/engineering/electrical'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/engineering/electrical-permit/printable-from/:electrical_no',\r\n component: lazy(() => import('src/views/pages/PrintableElectricalForm'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/engineering/electrical-permit/details/:electrical_no',\r\n component: lazy(() =>\r\n import('src/views/engineering/electrical/Details')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/engineering/electrical-permit/completed',\r\n component: lazy(() =>\r\n import('src/views/engineering/electrical/Completed')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/engineering/inquiries',\r\n component: lazy(() => import('src/views/pages/inquiries'))\r\n },\r\n\r\n {\r\n component: () => \r\n }\r\n ]\r\n },\r\n {\r\n path: '/reviewer',\r\n guard: ReviewerGuard,\r\n layout: DashboardLayout,\r\n routes: [\r\n {\r\n exact: true,\r\n path: '/reviewer',\r\n component: () => \r\n },\r\n {\r\n exact: true,\r\n path: '/reviewer/reports/dashboard',\r\n component: lazy(() => import('src/views/reviewer'))\r\n },\r\n {\r\n exact: true,\r\n path: '/reviewer/request/permit/requirements/:application_no',\r\n component: lazy(() => import('src/views/reviewer/requirements'))\r\n },\r\n {\r\n exact: true,\r\n path: '/reviewer/reviewed/request/permit/approved-list',\r\n component: lazy(() => import('src/views/reviewer/reviewed'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/reviewer/reviewed/request/for-engineering',\r\n component: lazy(() => import('src/views/reviewer/for-engineering'))\r\n },\r\n {\r\n exact: true,\r\n path: '/reviewer/reviewed/request/occupancy/permit/approved-list',\r\n component: lazy(() =>\r\n import('src/views/reviewer/reviewed/PermitForOccupancyReviewed')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/reviewer/electrical-permit/printable-from/:electrical_no',\r\n component: lazy(() => import('src/views/pages/PrintableElectricalForm'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/reviewer/electrical-permit/details/:electrical_no',\r\n component: lazy(() =>\r\n import('src/views/reviewer/electical-permit/request-list/Details')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/reviewer/electrical-permit/:type',\r\n component: lazy(() => import('src/views/reviewer/electical-permit'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/reviewer/account',\r\n component: lazy(() => import('src/views/pages/AccountView'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/reviewer/request/permit/assessment/:application_no',\r\n component: lazy(() => import('src/views/reviewer/assessment'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path:\r\n '/reviewer/request/occupancy/permit/assessment/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import('src/views/reviewer/assessment/OccupancyAssessment')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/reviewer/request/occupancy/permit/requirements/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/reviewer/requirements/PermitForOccupancyRequirements'\r\n )\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/reviewer/request/occupancy/permit/details/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import('src/views/reviewer/for-review/PermitForOccupancyDetails')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/reviewer/electrical-permit/request/completed-list',\r\n component: lazy(() =>\r\n import('src/views/reviewer/electical-permit/request-list/Completed')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/reviewer/inquiries',\r\n component: lazy(() => import('src/views/pages/inquiries'))\r\n },\r\n\r\n {\r\n component: () => \r\n }\r\n ]\r\n },\r\n\r\n {\r\n path: '/requirements-reviewer',\r\n guard: RequirementsReviewerGuard,\r\n layout: DashboardLayout,\r\n routes: [\r\n {\r\n exact: true,\r\n path: '/requirements-reviewer',\r\n component: () => (\r\n \r\n )\r\n },\r\n {\r\n exact: true,\r\n path: '/requirements-reviewer/reports/dashboard',\r\n component: lazy(() => import('src/views/requirements-reviewer'))\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/requirements-reviewer/request/permit/requirements/:application_no',\r\n component: lazy(() =>\r\n import('src/views/requirements-reviewer/requirements')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path: '/requirements-reviewer/reviewed/request/permit/approved-list',\r\n component: lazy(() =>\r\n import('src/views/requirements-reviewer/reviewed')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/requirements-reviewer/reviewed/request/for-engineering',\r\n component: lazy(() =>\r\n import('src/views/requirements-reviewer/for-engineering')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/requirements-reviewer/reviewed/request/occupancy/permit/approved-list',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/requirements-reviewer/reviewed/PermitForOccupancyReviewed'\r\n )\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path:\r\n '/requirements-reviewer/electrical-permit/printable-from/:electrical_no',\r\n component: lazy(() => import('src/views/pages/PrintableElectricalForm'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/requirements-reviewer/electrical-permit/details/:electrical_no',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/requirements-reviewer/electical-permit/request-list/Details'\r\n )\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/requirements-reviewer/electrical-permit/:type',\r\n component: lazy(() =>\r\n import('src/views/requirements-reviewer/electical-permit')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/requirements-reviewer/account',\r\n component: lazy(() => import('src/views/pages/AccountView'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path:\r\n '/requirements-reviewer/request/permit/assessment/:application_no',\r\n component: lazy(() =>\r\n import('src/views/requirements-reviewer/assessment')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path:\r\n '/requirements-reviewer/request/occupancy/permit/assessment/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/requirements-reviewer/assessment/OccupancyAssessment'\r\n )\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/requirements-reviewer/request/occupancy/permit/requirements/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/requirements-reviewer/requirements/PermitForOccupancyRequirements'\r\n )\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/requirements-reviewer/request/occupancy/permit/details/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/requirements-reviewer/for-review/PermitForOccupancyDetails'\r\n )\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/requirements-reviewer/electrical-permit/request/completed-list',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/requirements-reviewer/electical-permit/request-list/Completed'\r\n )\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/requirements-reviewer/inquiries',\r\n component: lazy(() => import('src/views/pages/inquiries'))\r\n },\r\n\r\n {\r\n component: () => \r\n }\r\n ]\r\n },\r\n\r\n {\r\n path: '/fire',\r\n guard: FireGuard,\r\n layout: DashboardLayout,\r\n routes: [\r\n {\r\n exact: true,\r\n path: '/fire',\r\n component: () => \r\n },\r\n {\r\n exact: true,\r\n path: '/fire/reports/dashboard',\r\n component: lazy(() => import('src/views/fire'))\r\n },\r\n {\r\n exact: true,\r\n path: '/fire/request/permit/assessment/:application_no',\r\n component: lazy(() => import('src/views/fire/assessment'))\r\n },\r\n {\r\n exact: true,\r\n path: '/fire/request/permit/requirements/:application_no',\r\n component: lazy(() => import('src/views/fire/requirements'))\r\n },\r\n {\r\n exact: true,\r\n path: '/fire/approved/request/permit/approved-list',\r\n component: lazy(() => import('src/views/fire/reviewed'))\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/fire/request/occupancy/permit/assessment/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import('src/views/fire/assessment/OccupancyAssessment')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/fire/request/occupancy/permit/requirements/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import('src/views/fire/requirements/PermitForOccupancyRequirements')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/fire/request/occupancy/permit/details/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import('src/views/fire/for-review/PermitForOccupancyDetails')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path: '/fire/reviewed/request/occupancy/permit/approved-list',\r\n component: lazy(() =>\r\n import('src/views/fire/reviewed/PermitForOccupancyReviewed')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/fire/inquiries',\r\n component: lazy(() => import('src/views/pages/inquiries'))\r\n },\r\n {\r\n component: () => \r\n }\r\n ]\r\n },\r\n {\r\n path: '/mpdo',\r\n guard: MpdoGuard,\r\n layout: DashboardLayout,\r\n routes: [\r\n {\r\n exact: true,\r\n path: '/mpdo',\r\n component: () => \r\n },\r\n {\r\n exact: true,\r\n path: '/mpdo/reports/dashboard',\r\n component: lazy(() => import('src/views/mpdo'))\r\n },\r\n {\r\n exact: true,\r\n path: '/mpdo/request/permit/assessment/:application_no',\r\n component: lazy(() => import('src/views/mpdo/assessment'))\r\n },\r\n {\r\n exact: true,\r\n path: '/mpdo/request/permit/requirements/:application_no',\r\n component: lazy(() => import('src/views/mpdo/requirements'))\r\n },\r\n {\r\n exact: true,\r\n path: '/mpdo/approved/request/permit/approved-list',\r\n component: lazy(() => import('src/views/mpdo/reviewed'))\r\n },\r\n {\r\n exact: true,\r\n path: '/mpdo/inquiries',\r\n component: lazy(() => import('src/views/pages/inquiries'))\r\n },\r\n {\r\n component: () => \r\n }\r\n ]\r\n },\r\n {\r\n path: '/administrator',\r\n guard: AdministratorGuard,\r\n layout: DashboardLayout,\r\n routes: [\r\n {\r\n exact: true,\r\n path: '/administrator',\r\n component: () => \r\n },\r\n {\r\n exact: true,\r\n path: '/administrator/reports/dashboard',\r\n component: lazy(() => import('src/views/administrator'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/administrator/users/roles',\r\n component: lazy(() => import('src/views/administrator/roles'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/administrator/users',\r\n component: lazy(() => import('src/views/administrator/users'))\r\n },\r\n {\r\n exact: true,\r\n path: '/administrator/building/permit/municipality',\r\n component: lazy(() => import('src/views/administrator/municipality'))\r\n },\r\n {\r\n exact: true,\r\n path: '/administrator/building/permit/barangay',\r\n component: lazy(() => import('src/views/administrator/barangay'))\r\n },\r\n {\r\n exact: true,\r\n path: '/administrator/building/permit/type',\r\n component: lazy(() =>\r\n import('src/views/administrator/application-type')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/administrator/building/permit/status',\r\n component: lazy(() =>\r\n import('src/views/administrator/application-status')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/administrator/building/permit/fees-type',\r\n component: lazy(() =>\r\n import('src/views/administrator/application-feestype')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/administrator/building/permit/scope',\r\n component: lazy(() => import('src/views/administrator/scopeof-work'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/administrator/building/permit/ownership',\r\n component: lazy(() =>\r\n import('src/views/administrator/formof-ownership')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/administrator/building/permit/group-use',\r\n component: lazy(() => import('src/views/administrator/group-use'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/administrator/building/permit/requirements/grouping',\r\n component: lazy(() =>\r\n import('src/views/administrator/requirements-group')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/administrator/building/permit/fees-account',\r\n component: lazy(() =>\r\n import('src/views/administrator/application-feesaccount')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/administrator/building/permit/occupancy-character',\r\n component: lazy(() =>\r\n import('src/views/administrator/group-use-occupancy')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path: '/administrator/building/permit/requirements/list',\r\n component: lazy(() =>\r\n import('src/views/administrator/application-requirements-list')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/administrator/reports/payments',\r\n component: lazy(() =>\r\n import('src/views/administrator/reports/payments')\r\n )\r\n },\r\n\r\n {\r\n component: () => \r\n }\r\n ]\r\n },\r\n {\r\n path: '/treasury',\r\n guard: TreasuryGuard,\r\n layout: DashboardLayout,\r\n routes: [\r\n {\r\n exact: true,\r\n path: '/treasury',\r\n component: () => \r\n },\r\n {\r\n exact: true,\r\n path: '/treasury/reports/dashboard',\r\n component: lazy(() => import('src/views/treasury'))\r\n },\r\n {\r\n exact: true,\r\n path: '/treasury/approved/request/permit/paid-list',\r\n component: lazy(() => import('src/views/treasury/permit-paid'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/treasury/approved/request/occupancy/permit/paid-list',\r\n component: lazy(() =>\r\n import('src/views/treasury/permit-paid/OccupancyPermitPaid')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/treasury/electrical-permit/details/:electrical_no',\r\n component: lazy(() =>\r\n import('src/views/treasury/permit-forpayment/electrical/Details')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/treasury/electrical-permit/completed',\r\n component: lazy(() =>\r\n import('src/views/treasury/permit-paid/ElectricalPermit')\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/treasury/electrical-permit/printable-from/:electrical_no',\r\n component: lazy(() => import('src/views/pages/PrintableElectricalForm'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/treasury/inquiries',\r\n component: lazy(() => import('src/views/pages/inquiries'))\r\n },\r\n\r\n {\r\n component: () => \r\n }\r\n ]\r\n },\r\n\r\n // strutural routes\r\n {\r\n path: '/structural-reviewer',\r\n guard: StructuralReviewerGuard,\r\n layout: DashboardLayout,\r\n routes: [\r\n {\r\n exact: true,\r\n path: '/structural-reviewer',\r\n component: () => (\r\n \r\n )\r\n },\r\n {\r\n exact: true,\r\n path: '/structural-reviewer/reports/dashboard',\r\n component: lazy(() =>\r\n import('src/views/building-plans-reviewer/structural')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/structural-reviewer/request/permit/requirements/:application_no',\r\n component: lazy(() =>\r\n import('src/views/building-plans-reviewer/structural/requirements')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path: '/structural-reviewer/reviewed/request/permit/approved-list',\r\n component: lazy(() =>\r\n import('src/views/building-plans-reviewer/structural/reviewed')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/structural-reviewer/reviewed/request/occupancy/permit/approved-list',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/building-plans-reviewer/structural/reviewed/PermitForOccupancyReviewed'\r\n )\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path:\r\n '/structural-reviewer/electrical-permit/printable-from/:electrical_no',\r\n component: lazy(() => import('src/views/pages/PrintableElectricalForm'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/structural-reviewer/account',\r\n component: lazy(() => import('src/views/pages/AccountView'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path:\r\n '/structural-reviewer/request/occupancy/permit/requirements/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/building-plans-reviewer/structural/requirements/PermitForOccupancyRequirements'\r\n )\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/structural-reviewer/request/occupancy/permit/details/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/building-plans-reviewer/structural/for-review/PermitForOccupancyDetails'\r\n )\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/structural-reviewer/inquiries',\r\n component: lazy(() => import('src/views/pages/inquiries'))\r\n },\r\n\r\n {\r\n component: () => \r\n }\r\n ]\r\n },\r\n\r\n // architectural routes\r\n {\r\n path: '/architectural-reviewer',\r\n guard: ArchitecturalReviewerGuard,\r\n layout: DashboardLayout,\r\n routes: [\r\n {\r\n exact: true,\r\n path: '/architectural-reviewer',\r\n component: () => (\r\n \r\n )\r\n },\r\n {\r\n exact: true,\r\n path: '/architectural-reviewer/reports/dashboard',\r\n component: lazy(() =>\r\n import('src/views/building-plans-reviewer/architectural')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/architectural-reviewer/request/permit/requirements/:application_no',\r\n component: lazy(() =>\r\n import('src/views/building-plans-reviewer/architectural/requirements')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path: '/architectural-reviewer/reviewed/request/permit/approved-list',\r\n component: lazy(() =>\r\n import('src/views/building-plans-reviewer/architectural/reviewed')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/architectural-reviewer/reviewed/request/occupancy/permit/approved-list',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/building-plans-reviewer/architectural/reviewed/PermitForOccupancyReviewed'\r\n )\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path:\r\n '/architectural-reviewer/electrical-permit/printable-from/:electrical_no',\r\n component: lazy(() => import('src/views/pages/PrintableElectricalForm'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/architectural-reviewer/account',\r\n component: lazy(() => import('src/views/pages/AccountView'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path:\r\n '/architectural-reviewer/request/occupancy/permit/requirements/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/building-plans-reviewer/architectural/requirements/PermitForOccupancyRequirements'\r\n )\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/architectural-reviewer/request/occupancy/permit/details/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/building-plans-reviewer/architectural/for-review/PermitForOccupancyDetails'\r\n )\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/architectural-reviewer/inquiries',\r\n component: lazy(() => import('src/views/pages/inquiries'))\r\n },\r\n\r\n {\r\n component: () => \r\n }\r\n ]\r\n },\r\n\r\n // electrical routes\r\n {\r\n path: '/electrical-reviewer',\r\n guard: ElectricalReviewerGuard,\r\n layout: DashboardLayout,\r\n routes: [\r\n {\r\n exact: true,\r\n path: '/electrical-reviewer',\r\n component: () => (\r\n \r\n )\r\n },\r\n {\r\n exact: true,\r\n path: '/electrical-reviewer/reports/dashboard',\r\n component: lazy(() =>\r\n import('src/views/building-plans-reviewer/electrical')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/electrical-reviewer/request/permit/requirements/:application_no',\r\n component: lazy(() =>\r\n import('src/views/building-plans-reviewer/electrical/requirements')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path: '/electrical-reviewer/reviewed/request/permit/approved-list',\r\n component: lazy(() =>\r\n import('src/views/building-plans-reviewer/electrical/reviewed')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/electrical-reviewer/reviewed/request/occupancy/permit/approved-list',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/building-plans-reviewer/electrical/reviewed/PermitForOccupancyReviewed'\r\n )\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path:\r\n '/electrical-reviewer/electrical-permit/printable-from/:electrical_no',\r\n component: lazy(() => import('src/views/pages/PrintableElectricalForm'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/electrical-reviewer/account',\r\n component: lazy(() => import('src/views/pages/AccountView'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path:\r\n '/electrical-reviewer/request/occupancy/permit/requirements/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/building-plans-reviewer/electrical/requirements/PermitForOccupancyRequirements'\r\n )\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/electrical-reviewer/request/occupancy/permit/details/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/building-plans-reviewer/electrical/for-review/PermitForOccupancyDetails'\r\n )\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/electrical-reviewer/inquiries',\r\n component: lazy(() => import('src/views/pages/inquiries'))\r\n },\r\n\r\n {\r\n component: () => \r\n }\r\n ]\r\n },\r\n\r\n // plumbing routes\r\n {\r\n path: '/plumbing-reviewer',\r\n guard: PlumbingReviewerGuard,\r\n layout: DashboardLayout,\r\n routes: [\r\n {\r\n exact: true,\r\n path: '/plumbing-reviewer',\r\n component: () => \r\n },\r\n {\r\n exact: true,\r\n path: '/plumbing-reviewer/reports/dashboard',\r\n component: lazy(() =>\r\n import('src/views/building-plans-reviewer/plumbing')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path: '/plumbing-reviewer/request/permit/requirements/:application_no',\r\n component: lazy(() =>\r\n import('src/views/building-plans-reviewer/plumbing/requirements')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path: '/plumbing-reviewer/reviewed/request/permit/approved-list',\r\n component: lazy(() =>\r\n import('src/views/building-plans-reviewer/plumbing/reviewed')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/plumbing-reviewer/reviewed/request/occupancy/permit/approved-list',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/building-plans-reviewer/plumbing/reviewed/PermitForOccupancyReviewed'\r\n )\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path:\r\n '/plumbing-reviewer/electrical-permit/printable-from/:electrical_no',\r\n component: lazy(() => import('src/views/pages/PrintableElectricalForm'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/plumbing-reviewer/account',\r\n component: lazy(() => import('src/views/pages/AccountView'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path:\r\n '/plumbing-reviewer/request/occupancy/permit/requirements/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/building-plans-reviewer/plumbing/requirements/PermitForOccupancyRequirements'\r\n )\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/plumbing-reviewer/request/occupancy/permit/details/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/building-plans-reviewer/plumbing/for-review/PermitForOccupancyDetails'\r\n )\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/plumbing-reviewer/inquiries',\r\n component: lazy(() => import('src/views/pages/inquiries'))\r\n },\r\n\r\n {\r\n component: () => \r\n }\r\n ]\r\n },\r\n\r\n // line-and-grade-reviewer routes\r\n {\r\n path: '/line-and-grade-reviewer',\r\n guard: LineAndGradeGuard,\r\n layout: DashboardLayout,\r\n routes: [\r\n {\r\n exact: true,\r\n path: '/line-and-grade-reviewer',\r\n component: () => (\r\n \r\n )\r\n },\r\n {\r\n exact: true,\r\n path: '/line-and-grade-reviewer/reports/dashboard',\r\n component: lazy(() =>\r\n import('src/views/building-plans-reviewer/line-and-grade')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/line-and-grade-reviewer/request/permit/requirements/:application_no',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/building-plans-reviewer/line-and-grade/requirements'\r\n )\r\n )\r\n },\r\n {\r\n exact: true,\r\n path: '/line-and-grade-reviewer/reviewed/request/permit/approved-list',\r\n component: lazy(() =>\r\n import('src/views/building-plans-reviewer/line-and-grade/reviewed')\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/line-and-grade-reviewer/reviewed/request/occupancy/permit/approved-list',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/building-plans-reviewer/line-and-grade/reviewed/PermitForOccupancyReviewed'\r\n )\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path:\r\n '/line-and-grade-reviewer/electrical-permit/printable-from/:electrical_no',\r\n component: lazy(() => import('src/views/pages/PrintableElectricalForm'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/line-and-grade-reviewer/account',\r\n component: lazy(() => import('src/views/pages/AccountView'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path:\r\n '/line-and-grade-reviewer/request/occupancy/permit/requirements/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/building-plans-reviewer/line-and-grade/requirements/PermitForOccupancyRequirements'\r\n )\r\n )\r\n },\r\n {\r\n exact: true,\r\n path:\r\n '/line-and-grade-reviewer/request/occupancy/permit/details/:application_no/:occupancy_id',\r\n component: lazy(() =>\r\n import(\r\n 'src/views/building-plans-reviewer/line-and-grade/for-review/PermitForOccupancyDetails'\r\n )\r\n )\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/line-and-grade-reviewer/inquiries',\r\n component: lazy(() => import('src/views/pages/inquiries'))\r\n },\r\n\r\n {\r\n component: () => \r\n }\r\n ]\r\n },\r\n\r\n {\r\n path: '*',\r\n layout: MainLayout,\r\n routes: [\r\n {\r\n exact: true,\r\n path: '/home',\r\n component: HomeView\r\n },\r\n // {\r\n // exact: true,\r\n // path: '/pricing',\r\n // component: lazy(() => import('src/views/pages/PricingView'))\r\n // },\r\n\r\n {\r\n exact: true,\r\n path: '/guides',\r\n component: lazy(() => import('src/views/pages/HomeView/guides'))\r\n },\r\n\r\n {\r\n exact: true,\r\n path: '/home/terms-and-conditions',\r\n component: lazy(() => import('src/views/pages/TermsAndConditions'))\r\n },\r\n\r\n {\r\n component: () => \r\n }\r\n ]\r\n }\r\n];\r\n\r\nconst renderRoutes = routes =>\r\n routes ? (\r\n }>\r\n \r\n {routes.map((route, i) => {\r\n const Guard = route.guard || Fragment;\r\n const Layout = route.layout || Fragment;\r\n const Component = route.component;\r\n\r\n return (\r\n (\r\n \r\n \r\n {route.routes ? (\r\n renderRoutes(route.routes)\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n )}\r\n />\r\n );\r\n })}\r\n \r\n \r\n ) : null;\r\n\r\nfunction Routes() {\r\n return renderRoutes(routesConfig);\r\n}\r\n\r\nexport default Routes;\r\n","import React from 'react';\r\nimport { Router } from 'react-router-dom';\r\nimport { createBrowserHistory } from 'history';\r\nimport { create } from 'jss';\r\nimport rtl from 'jss-rtl';\r\nimport MomentUtils from '@date-io/moment';\r\nimport { SnackbarProvider } from 'notistack';\r\nimport {\r\n createStyles,\r\n jssPreset,\r\n makeStyles,\r\n StylesProvider,\r\n ThemeProvider\r\n} from '@material-ui/core';\r\nimport { MuiPickersUtilsProvider } from '@material-ui/pickers';\r\nimport Auth from 'src/components/Auth';\r\nimport CookiesNotification from 'src/components/CookiesNotification';\r\nimport SettingsNotification from 'src/components/SettingsNotification';\r\n// import GoogleAnalytics from 'src/components/GoogleAnalytics';\r\nimport ScrollReset from 'src/components/ScrollReset';\r\nimport useSettings from 'src/hooks/useSettings';\r\nimport { createTheme } from 'src/theme';\r\nimport Routes from 'src/Routes';\r\nimport axios from 'axios';\r\nimport { SocketContext } from './context/SocketContext';\r\nconst history = createBrowserHistory();\r\nconst jss = create({ plugins: [...jssPreset().plugins, rtl()] });\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API;\r\n\r\nconst useStyles = makeStyles(() =>\r\n createStyles({\r\n '@global': {\r\n '*': {\r\n boxSizing: 'border-box',\r\n margin: 0,\r\n padding: 0\r\n },\r\n html: {\r\n '-webkit-font-smoothing': 'antialiased',\r\n '-moz-osx-font-smoothing': 'grayscale',\r\n height: '100%',\r\n width: '100%'\r\n },\r\n body: {\r\n height: '100%',\r\n width: '100%'\r\n },\r\n '#root': {\r\n height: '100%',\r\n width: '100%'\r\n }\r\n }\r\n })\r\n);\r\n\r\nfunction App() {\r\n useStyles();\r\n\r\n const [socket, setSocket] = React.useState(null);\r\n const { settings } = useSettings();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default App;\r\n","import 'react-app-polyfill/ie11';\r\nimport 'react-app-polyfill/stable';\r\nimport 'react-perfect-scrollbar/dist/css/styles.css';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\nimport 'react-quill/dist/quill.snow.css';\r\nimport 'nprogress/nprogress.css';\r\nimport 'src/assets/css/prism.css';\r\nimport 'src/mixins/chartjs';\r\nimport 'src/mixins/prismjs';\r\nimport './index.css';\r\nimport { enableES5 } from 'immer';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { SettingsProvider } from 'src/context/SettingsContext';\r\nimport { configureStore } from 'src/store';\r\nimport { restoreSettings } from 'src/utils/settings';\r\nimport App from 'src/App';\r\n\r\nenableES5();\r\n\r\nconst store = configureStore();\r\nconst settings = restoreSettings();\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n"],"sourceRoot":""}