{"version":3,"sources":["assets/img/logo-white.svg","authConfig.js","useFilterStore.js","components/display/Navbars/AdminNavbarLinks.js","assets/jss/colours.js","assets/jss/material-dashboard-pro-react.js","assets/jss/material-dashboard-pro-react/components/adminNavbarStyle.js","components/display/Navbars/AdminNavbar.js","components/display/Footer/Footer.js","assets/jss/material-dashboard-pro-react/components/sidebarStyle.js","services/tokenService.js","services/azureGatewayService.js","services/userService.js","components/display/Badge/AhrAvatar.js","components/display/Sidebar/Sidebar.js","assets/img/logo.png","enums.js","services/taskService.js","components/display/Grid/GridContainer.js","components/display/Grid/GridItem.js","assets/jss/material-dashboard-pro-react/components/cardStyle.js","components/display/Card/Card.js","assets/jss/material-dashboard-pro-react/components/cardBodyStyle.js","components/display/Card/CardBody.js","assets/jss/material-dashboard-pro-react/components/cardHeaderStyle.js","components/display/Card/CardHeader.js","assets/jss/material-dashboard-pro-react/components/cardIconStyle.js","components/display/Card/CardIcon.js","components/display/Tasks/TaskIcon.js","components/display/Tasks/TaskTypeCard.js","services/loggingService.js","components/display/Tasks/TaskTypes.js","components/display/Tasks/TaskCommentRow.js","components/display/Tasks/TaskComments.js","components/display/Tasks/TaskActionItemCustom.js","components/display/Tasks/TaskActionItem.js","components/display/Tasks/TaskActionItems.js","useMultiSelectStore.js","components/display/Notifications/AhrNotification.js","components/display/Tasks/SidebarFilter.js","services/filtersService.js","components/display/Tasks/TaskFilters.js","components/display/Tasks/TaskList.js","layouts/Admin.js","routes.js","views/Pages/Notifications.js","assets/jss/material-dashboard-pro-react/layouts/adminStyle.js","App.jsx","index.js","lib/lscache.js"],"names":["msalConfig","auth","clientId","authority","redirectUri","cache","cacheLocation","storeAuthStateInCookie","system","loggerOptions","loggerCallback","level","message","containsPii","LogLevel","Error","console","error","Info","Verbose","Warning","warn","loginRequest","scopes","protectedResources","endpoint","useFilterStore","create","set","newTask","setNewTask","filterToggle","setFilterToggle","taskListStatusFilter","setTaskListStatusFilter","taskListTypeFilter","setTaskListTypeFilter","officeListFilter","setOfficeListFilter","searchText","setFilters","HeaderLinks","props","_React$useState","React","useState","_React$useState2","_slicedToArray","openNotification","setOpenNotification","_useState","_useState2","notifications","setNotifications","_useState3","_useState4","notificationsAmt","setNotificationsAmt","state","handleCloseNotification","event","task","splice","indexOf","find","n","id","_toConsumableArray","useEffect","filter","notification","newlyAdded","length","SignalRTaskContext","useSignalREffect","user","map","taskNotification","includes","push","_jsx","_Fragment","children","_jsxs","AuthenticatedTemplate","IconButton","onClick","contains","target","currentTarget","Badge","badgeContent","color","overlap","variant","Notifications","Popper","open","anchorEl","placement","sx","zIndex","marginTop","Paper","ClickAwayListener","onClickAway","MenuList","role","MenuItem","style","fontWeight","description","concat","updated","COLOURS","RED","BLUE","DARK_BLUE","YELLOW","GREEN","hexToRgb","input","replace","test","first","second","last","toUpperCase","parseInt","drawerWidth","transition","containerFluid","paddingRight","paddingLeft","marginRight","marginLeft","display","content","clear","defaultFont","fontFamily","lineHeight","warningColor","dangerColor","successColor","infoColor","fadeBlueColor","primaryColor","darkBlueColor","Array","fill","roseColor","grayColor","blackColor","whiteColor","boxShadow","primaryBoxShadow","infoBoxShadow","successBoxShadow","warningBoxShadow","dangerBoxShadow","roseBoxShadow","darkBlueBoxShadow","warningCardHeader","_objectSpread","background","successCardHeader","dangerCardHeader","infoCardHeader","primaryCardHeader","roseCardHeader","darkBlueCardHeader","defaultBoxShadow","margin","paddingTop","borderTop","height","border","borderRadius","padding","title","textDecoration","marginBottom","minHeight","fontSize","headerStyle","appBar","backgroundColor","borderBottom","position","width","container","flex","textTransform","paddingBottom","letterSpacing","primary","info","success","warning","danger","sidebarMinimize","float","sidebarMinimizeRTL","sidebarMiniIcon","useStyles","makeStyles","styles","AdminNavbar","classes","rtlActive","brandText","appBarClasses","cx","_defineProperty","iconStyle","AppBar","className","Toolbar","Hidden","smDown","implementation","miniActive","ViewList","MoreVert","Button","AdminNavbarLinks","Footer","bottom","Date","getYear","sidebarStyle","theme","_drawerPaperRTL","_objectSpread2","drawerPaperRTL","breakpoints","up","left","right","down","drawerPaper","top","transitionProperty","transitionDuration","transitionTimingFunction","visibility","overflowY","textAlign","transform","blackBackground","opacity","blueBackground","whiteBackground","whiteAfter","drawerPaperMini","drawerMiniWidth","logo","logoMini","maxHeight","logoMiniRTL","logoNormal","whiteSpace","overflow","logoNormalRTL","logoNormalSidebarMini","logoNormalSidebarMiniRTL","img","verticalAlign","backgroundSize","backgroundPosition","list","listStyle","item","userItem","itemLink","outline","itemIcon","itemIconRTL","itemText","userItemText","itemTextRTL","itemTextMini","itemTextMiniRTL","collapseList","collapseItem","collapseActive","collapseItemLink","collapseItemMini","collapseItemMiniRTL","collapseItemText","collapseItemTextRTL","collapseItemTextMiniRTL","collapseItemTextMini","caret","borderRight","borderLeft","userCaret","caretRTL","caretActive","purple","blue","green","orange","red","white","rose","sidebarWrapper","overflowScrolling","sidebarWrapperWithPerfectScrollbar","photo","flexDirection","justifyContent","alignItems","photoRTL","avatarImg","userCollapseButton","userCollapseLinks","getToken","_getToken","_asyncToGenerator","_regeneratorRuntime","mark","_callee","activeAccount","wrap","_context","prev","next","publicClientApplication","getActiveAccount","abrupt","acquireTokenSilent","account","then","tokenResponse","accessToken","headers","Headers","bearer","append","method","stop","_x","apply","arguments","getTasksToken","_getTasksToken","_callee2","_context2","getGraphToken","_getGraphToken","_callee3","_context3","baseGatewayUrl","scopeFn","get","_get","url","addOptions","options","_fetch","_x2","put","_put","body","JSON","stringify","_x3","_x4","_x5","post","_post","_x6","_x7","_x8","del","_del","_callee4","_context4","_x9","_x10","_ref","_callee5","_context5","fetch","res","ok","status","statusText","contentType","json","text","_x11","_x12","getGraphData","azureGatewayService","_getGraphData","code","getProfilePic","_getProfilePic","userId","toLowerCase","Promise","resolve","reject","blob","picBlob","reader","FileReader","readAsDataURL","onload","result","err","AhrAvatar","_ref$userId","_ref$sidebar","sidebar","_ref$style","_ref$inline","inline","undefined","data","useQuery","refetchOnWindowFocus","refetchOnMount","refetchOnReconnect","staleTime","src","Person","ListItemAvatar","Avatar","alt","ps","SidebarWrapper","headerLinks","links","useRef","navigator","platform","PerfectScrollbar","current","suppressScrollX","suppressScrollY","destroy","ref","Sidebar","_cx24","_cx25","_cx26","log","graphData","location","useLocation","_React$useState3","_React$useState4","setState","getCollapseStates","routes","mainPanel","initialState","prop","collapse","getCollapseInitialState","views","i","pathname","layout","path","activeRoute","routeName","image","bgColor","userWrapperClass","userPrincipalName","displayName","List","createLinks","key","redirect","_cx2","st","ListItem","NavLink","to","e","preventDefault","icon","Icon","rtlMini","mini","ListItemText","name","secondary","disableTypography","Collapse","in","unmountOnExit","innerNavLinkClasses","navLinkClasses","href","minWidth","brand","Drawer","paper","backgroundImage","defaultProps","TaskType","NewStarter","ProjectCreated","ProjectOnboarding","ProjectUpdate","DocumentPosted","DocumentApproved","DocumentRejected","MilestoneAchieved","MilestoneDue","MilestoneMissed","RiskAdded","StageDates","BidProjectWin","ProjectHandover","FunctionalGroup","SoftwareUpdate","NewsUpdate","DisasterRecoveryUpdate","ConfirmedLeaver","PolicyUpdate","ActionItemType","AcknowledgeOccupationalRisk","OccupationalRisk","ExistsInMyProjects","AddToMyProjects","TaskStatus","NEW","ONHOLD","DELETED","DISMISSED","UPDATED","Colors","Red","Blue","DarkBlue","Green","Background","_azureGatewayService","acknowledgeRisk","taskId","sent","updateTask","_updateTask","statusTypeId","updateTasks","_updateTask2","taskIds","getTasks","_getTasks","page","itemSize","taskTypes","statusTypes","officeIds","_args4","getTasksSummary","_getTasksSummary","taskStatuses","_args5","join","encodeURIComponent","getCommentsTaskId","_getCommentsTaskId","_callee6","_context6","postComment","_postComment","_callee7","comment","_context7","updateComment","_updateComment","_callee8","_context8","deleteComment","_deleteComment","_callee9","_context9","addToMyProjects","_addToMyProjects2","_callee12","_context12","TaskId","updateTaskPinned","_addToMyProjects3","_callee13","isPinned","_context13","pinned","_x13","_x14","getTaskActionItems","_getTaskActionItems","_callee14","_context14","_x15","getTaskActionItemCustoms","_getTaskActionItemCustoms","_callee15","_context15","_x16","grid","GridContainer","rest","_objectWithoutProperties","_excluded","Grid","GridItem","cardStyle","card","wordWrap","cardPlain","cardProfile","cardBlog","cardRaised","cardBackground","cardPricing","maxWidth","cardPricingColor","borderColor","cardProduct","cardChart","cardLogin","Card","_classNames","plain","profile","blog","raised","pricing","product","testimonial","chart","login","onMouseEnter","onMouseLeave","cardClasses","classNames","cardBodyStyle","cardBody","WebkitBoxFlex","cardBodyBackground","cardBodyPlain","cardBodyFormHorizontal","cardSignup","cardBodyColor","cardBodyProfile","cardBodyCalendar","CardBody","formHorizontal","signup","calendar","cardBodyClasses","cardHeaderStyle","cardHeader","cardHeaderPlain","cardHeaderImage","pointerEvents","cardHeaderContact","cardHeaderSignup","cardHeaderStats","cardHeaderIcon","cardHeaderText","CardHeader","contact","stats","cardHeaderClasses","cardIconStyle","cardIcon","CardIcon","cardIconClasses","TaskIcon","taskType","PersonIcon","BusinessIcon","CallMerge","PostAdd","ThumbUp","ThumbDown","EventAvailable","Event","EventBusy","Report","CalendarMonth","Gavel","Handshake","Group","SystemUpdate","BrowserUpdated","Newspaper","Storage","DoorBack","Policy","TaskTypeCard","taskSummary","cardColor","setCardColor","setBorderColor","_useState5","_useState6","borderColorFaded","setBorderColorFaded","_useState7","_useState8","isSelected","setIsSelected","defaultStyling","cursor","_useState9","_useState10","cardStyling","setCardStyling","x","toString","count","logError","origin","table","fixA","fixB","fixC","TaskTypes","setTaskSummary","isTasksSummaryLoading","setIsTasksSummaryLoading","func","Skeleton","summaryItem","valueOf","TaskNoteRow","taskNote","setTaskNote","userEmail","isDeleting","setIsDeleting","isPosting","setIsPosting","isEditing","setIsEditing","_useState11","_useState12","commentEditString","setCommentEditString","itemsToBeDeleted","Fragment","Typography","component","note","Edit","taskNoteId","deleteEvent","Delete","CircularProgress","FormControl","Input","type","disabled","value","onKeyDown","keyCode","updatedNote","comments","handleSendComment","onChange","endAdornment","InputAdornment","edge","Cancel","Divider","TaskComments","taskNotes","sort","sortByDateDescending","setTaskNotes","setItemsToBeDeleted","SignalRTaskNoteContext","updatedTaskNote","noteInputSpacing","handleDeleteComment","TaskCommentBox","commentText","setCommentText","newNote","InputLabel","htmlFor","FilledInput","Send","bgcolor","mail","TaskCommentRow","a","b","TaskActionItemCustom","actionItem","addToProjectsEvent","acknowledgeRiskEvent","riskAcknowedgeLoading","setRiskAcknowedgeLoading","uri","actionItemTypeId","ListItemButton","action","ev","stopPropagation","size","Check","BookmarkAdd","light","TaskActionItem","actionItemType","TaskActionItems","taskActionItems","taskActionItemCustoms","dense","disablePadding","useMultiSelectStore","enableMultiSelect","setEnableMultiSelect","selectedTasks","setSelectedTasks","lastSelectedTask","index","checked","setLastSelectedTask","currentlyHoveredTask","setCurrentHoveredTask","currentTasksHovered","setCurrentTasksHovered","isTaskDismissed","setIsTaskDismissed","isDismissing","setIsDismissing","selectCurrentTasksHovered","getSelectedTasks","AhrNotification","_ref$index","_ref$currentTasksHove","taskIndexMappingRef","shiftPressed","setOpen","manualToggle","setManualToggle","setIsPinned","isHoverPinned","setIsHoverPinned","taskStatus","setTaskStatus","commentsDisabled","setCommentsDisabled","_useState13","_useState14","actionItemsLoading","setActionItemsLoading","_useState15","_useState16","taskActionItemsLoading","setTaskActionItemsLoading","_useState17","_useState18","setTaskActionItems","_useState19","_useState20","customActionItemsLoading","setCustomActionItemsLoading","_useState21","_useState22","setTaskActionItemCustoms","enableMultiselect","setEnableMultiselect","subTaskPaperStyle","iconButtonPadding","listItemStyle","toggleTaskChecked","allTrue","allFalse","tempSelectedTasks","_i","_Object$keys","Object","keys","taskToCheck","_i2","_Object$keys2","_i3","_Object$keys3","taskToDismiss","values","newSelectedTasks","handleDismissClick","taskIsDismissing","_i4","_Object$keys4","taskDismissedTemp","_i5","_Object$keys5","CircularProgressRowItem","commentsDisabledCheck","taskMembers","setTimeout","ListItemIcon","Checkbox","taskTypeId","AvatarGroup","max","tm","taskMember","Done","onMouseOver","PushPin","PushPinOutlined","ExpandLess","ExpandMore","actionItemId","SidebarFilter","ListItemButtonStyling","paddingHSize","ListItemStyling","assign","lockOpen","handleClick","getOfficeFilters","TaskFilters","useShallow","noFiltersApplied","setNoFiltersApplied","statusIds","setStatusIds","setOfficeIds","filterSearchText","setFilterSearchText","_useQuery","officeFilters","isOfficeFiltersLoading","isLoading","iconButtonStyle","drawerStyling","handleToggle","taskStatusId","newArr","Business","SearchTextFilter","Search","TextField","onBlur","label","defaultValue","fullWidth","FilterButtons","onMouseUp","KeyboardDoubleArrowRight","KeyboardDoubleArrowLeft","anchor","onClose","subheader","ListSubheader","FilterAlt","disableGutters","office","officeId","officeName","TaskList","_marked","getIndex","taskList","setTaskList","taskDates","setTaskDates","pageCount","setPageCount","paginationNumber","setPaginationNumber","taskPagination","setTaskPagination","isTasksLoading","setIsTasksLoading","currentHoveredTask","handleSelectAll","reduce","acc","SelectAllCheckbox","FormControlLabel","control","indeterminate","handleCancelDismiss","tasks","taskDatesRes","_construct","Set","created","localeCompare","t","toLocaleDateString","startIdx","Math","min","endIdx","currentTasksHoveredTemp","entries","forEach","_ref2","from","_","indexGenerator","itr","shiftKey","onKeyUp","taskDate","listItem","Pagination","boundaryCount","_event","pageNumber","Stack","direction","spacing","ToggleButtonGroup","exclusive","pcVal","pageCountValue","ToggleButton","CardContent","dashRoutes","Apartment","Dashboard","Language","appStyle","wrapper","mainPanelSidebarMini","mainPanelWithPerfectScrollbar","_cx","mobileOpen","setMobileOpen","setMiniActive","_React$useState5","require","_React$useState6","mainPanelClasses","createRef","document","window","addEventListener","resizeFunction","removeEventListener","handleDrawerToggle","getRoute","getActiveRoute","collapseActiveRoute","activeState","setActiveState","getRoutes","Route","innerWidth","bind","this","Switch","Redirect","fluid","createSignalRContext","App","instance","taskTypeParam","URLSearchParams","search","accounts","getAllAccounts","isAuthenticated","setIsAuthenticated","tokenHeaders","setTokenHeaders","getBearerToken","token","slice","setActiveAccount","lscache","setBucket","localAccountId","loginRedirect","addEventCallback","eventType","EventType","LOGIN_SUCCESS","payload","handleRedirectPromise","authResult","username","Sentry","createTheme","palette","main","BrowserRouter","ThemeProvider","MsalProvider","Provider","accessTokenFactory","dependencies","AdminLayout","msalInstance","PublicClientApplication","dsn","integrations","BrowserTracing","environment","tracesSampleRate","queryClient","QueryClient","ReactDOM","render","QueryClientProvider","client","ReactQueryDevtools","initialIsOpen","getElementById","define","cachedStorage","cachedJSON","CACHE_PREFIX","CACHE_SUFFIX","EXPIRY_RADIX","expiryMilliseconds","maxDate","calculateMaxDate","cacheBucket","warnings","supportsStorage","localStorage","ex","setItem","removeItem","isOutOfSpace","supportsJSON","escapeRegExpSpecialCharacters","expirationKey","currentTime","floor","getTime","getItem","eachKey","fn","prefixRegExp","RegExp","match","flushItem","exprKey","flushExpiredItem","expr","expirationTime","time","storedKey","storedKeys","expiration","targetSize","pop","parse","remove","supported","flush","flushExpired","bucket","resetBucket","getExpiryMilliseconds","setExpiryMilliseconds","milliseconds","enableWarnings","enabled"],"mappings":"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","file":"static/js/main.3d840039.chunk.js","sourcesContent":["export default __webpack_public_path__ + \"static/media/logo-white.cf9143d2.svg\";","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { LogLevel } from \"@azure/msal-browser\";\r\n\r\n/**\r\n * Configuration object to be passed to MSAL instance on creation. \r\n * For a full list of MSAL.js configuration parameters, visit:\r\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/configuration.md \r\n */\r\nexport const msalConfig = {\r\n auth: {\r\n clientId: \"d1a2637c-d3b6-47bb-aaf8-5e9131e7cfe8\",\r\n authority: \"https://login.microsoftonline.com/45756575-5aab-4150-987d-57467fcc3733\",\r\n redirectUri: \"https://notify.ahr.co.uk/admin/notifications\"\r\n },\r\n cache: {\r\n cacheLocation: \"sessionStorage\", // This configures where your cache will be stored\r\n storeAuthStateInCookie: true, // Set this to \"true\" if you are having issues on IE11 or Edge\r\n },\r\n system: {\t\r\n loggerOptions: {\t\r\n loggerCallback: (level, message, containsPii) => {\t\r\n if (containsPii) {\t\t\r\n return;\t\t\r\n }\t\t\r\n switch (level) {\t\t\r\n case LogLevel.Error:\t\t\r\n console.error(message);\t\t\r\n return;\t\t\r\n case LogLevel.Info:\t\t\r\n // console.info(message);\t\t\r\n return;\t\t\r\n case LogLevel.Verbose:\t\t\r\n // console.debug(message);\t\t\r\n return;\t\t\r\n case LogLevel.Warning:\t\t\r\n console.warn(message);\t\t\r\n return;\t\t\r\n }\t\r\n }\t\r\n }\t\r\n }\r\n};\r\n\r\n/**\r\n * Scopes you add here will be prompted for user consent during sign-in.\r\n * By default, MSAL.js will add OIDC scopes (openid, profile, email) to any login request.\r\n * For more information about OIDC scopes, visit: \r\n * https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent#openid-connect-scopes\r\n */\r\nexport const loginRequest = {\r\n scopes: [\"api://d1a2637c-d3b6-47bb-aaf8-5e9131e7cfe8/access_as_user\"]\r\n};\r\n\r\n/**\r\n * Add here the scopes to request when obtaining an access token for MS Graph API. For more information, see:\r\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/resources-and-scopes.md\r\n */\r\n export const protectedResources = {\r\n graphMe: {\r\n endpoint: \"https://graph.microsoft.com/v1.0/me\",\r\n scopes: [\"User.Read\",\"User.ReadBasic.All\"],\r\n },\r\n tasksApi: {\r\n endpoint: \"https://login.microsoftonline.com/45756575-5aab-4150-987d-57467fcc3733\",\r\n scopes: [\"api://d1a2637c-d3b6-47bb-aaf8-5e9131e7cfe8/access_as_user\"], // e.g. api://xxxxxx/access_as_user\r\n },\r\n}\r\n\r\n\r\nexport const graphConfig = {\r\n graphMeEndpoint: \"https://graph.microsoft.com/v1.0/me\"\r\n};\r\n","import { create } from 'zustand'\r\n\r\nconst useFilterStore = create((set)=>({\r\n newTask: null,\r\n setNewTask: (newTask) => set({newTask}),\r\n filterToggle: false,\r\n setFilterToggle: (filterToggle) => set({filterToggle}),\r\n taskListStatusFilter: [],\r\n setTaskListStatusFilter: (taskListStatusFilter) => set({taskListStatusFilter}),\r\n taskListTypeFilter: [],\r\n setTaskListTypeFilter: (taskListTypeFilter) => set({taskListTypeFilter}),\r\n officeListFilter: [],\r\n setOfficeListFilter: (officeListFilter) => set({officeListFilter}),\r\n searchText: \"\",\r\n setFilters: (taskListStatusFilter, officeListFilter, searchText) => set({taskListStatusFilter, officeListFilter, searchText})\r\n}))\r\n\r\nexport default useFilterStore;","import React, { useEffect, useState } from \"react\";\r\n\r\n// core components\r\nimport { AuthenticatedTemplate } from \"@azure/msal-react\";\r\nimport { Badge, ClickAwayListener, IconButton, MenuItem, MenuList, Paper, Popper } from \"@mui/material\";\r\nimport { Notifications } from \"@mui/icons-material\";\r\nimport { SignalRTaskContext } from \"App\";\r\nimport useFilterStore from \"useFilterStore\";\r\n\r\nexport default function HeaderLinks(props) {\r\n const [openNotification, setOpenNotification] = React.useState(null);\r\n /**\r\n * @type {[Task[],React.Dispatch]}\r\n */\r\n const [notifications, setNotifications] = useState([])\r\n /**\r\n * @type {[number,React.Dispatch]}\r\n */\r\n const [notificationsAmt, setNotificationsAmt] = useState(0);\r\n const setNewTask = useFilterStore(state => state.setNewTask)\r\n\r\n const handleClickNotification = (event) => {\r\n if (openNotification && openNotification.contains(event.target)) {\r\n setOpenNotification(null);\r\n } else {\r\n setOpenNotification(event.currentTarget);\r\n }\r\n };\r\n\r\n const handleCloseNotification = (event, task) => {\r\n if(task){\r\n // @ts-ignore\r\n setNewTask(task);\r\n setNotificationsAmt(0);\r\n notifications.splice(notifications.indexOf(notifications.find(n => n.id === task.id)),1)\r\n setNotifications([...notifications]);\r\n }\r\n setOpenNotification(null);\r\n };\r\n\r\n\r\n useEffect(() => {\r\n setNotificationsAmt(notifications.filter(notification => notification.newlyAdded).length)\r\n }, [notifications])\r\n\r\n SignalRTaskContext.useSignalREffect(\"ReceiveTask\", /***\r\n * @param {Task} task\r\n */\r\n (user, task) => {\r\n let notificationAlreadyInList = notifications\r\n .map(taskNotification => taskNotification.id)\r\n .includes(task.id);\r\n\r\n if (!notificationAlreadyInList) {\r\n task.newlyAdded = true;\r\n notifications.push(task)\r\n setNotifications([...notifications])\r\n }\r\n }, [])\r\n\r\n return (<>\r\n \r\n \r\n {notifications && notifications.length > 0 &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n {\r\n notifications.map(notification =>\r\n handleCloseNotification(event, notification)} style={{ fontWeight: 400 }}>\r\n {notification.description}\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n\r\n \r\n );\r\n}","const COLOURS = {\r\n RED: \"#D25D48\",\r\n BLUE: \"#4799B2\",\r\n DARK_BLUE: \"#00566F\",\r\n YELLOW: \"#E5A120\",\r\n GREEN: \"#22905D\"\r\n}\r\n\r\nexport default COLOURS;","/*!\r\n\r\n=========================================================\r\n* Material Dashboard PRO React - v1.10.0\r\n=========================================================\r\n\r\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\r\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\r\n\r\n* Coded by Creative Tim\r\n\r\n=========================================================\r\n\r\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\n\r\n*/\r\n\r\nimport COLOURS from \"./colours\";\r\n\r\n// ##############################\r\n// // // Function that converts from hex color to rgb color\r\n// // // Example: input = #9c27b0 => output = 156, 39, 176\r\n// // // Example: input = 9c27b0 => output = 156, 39, 176\r\n// // // Example: input = #999 => output = 153, 153, 153\r\n// // // Example: input = 999 => output = 153, 153, 153\r\n// #############################\r\nconst hexToRgb = (input) => {\r\n input = input + \"\";\r\n input = input.replace(\"#\", \"\");\r\n let hexRegex = /[0-9A-Fa-f]/g;\r\n if (!hexRegex.test(input) || (input.length !== 3 && input.length !== 6)) {\r\n throw new Error(\"input is not a valid hex color.\");\r\n }\r\n if (input.length === 3) {\r\n let first = input[0];\r\n let second = input[1];\r\n let last = input[2];\r\n input = first + first + second + second + last + last;\r\n }\r\n input = input.toUpperCase(input);\r\n let first = input[0] + input[1];\r\n let second = input[2] + input[3];\r\n let last = input[4] + input[5];\r\n return (\r\n parseInt(first, 16) +\r\n \", \" +\r\n parseInt(second, 16) +\r\n \", \" +\r\n parseInt(last, 16)\r\n );\r\n};\r\n\r\n// ##############################\r\n// // // Variables - Styles that are used on more than one component\r\n// #############################\r\n\r\nconst drawerWidth = 260;\r\n\r\nconst drawerMiniWidth = 80;\r\n\r\nconst transition = {\r\n transition: \"all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1)\",\r\n};\r\n\r\nconst containerFluid = {\r\n paddingRight: \"15px\",\r\n paddingLeft: \"15px\",\r\n marginRight: \"auto\",\r\n marginLeft: \"auto\",\r\n \"&:before,&:after\": {\r\n display: \"table\",\r\n content: '\" \"',\r\n },\r\n \"&:after\": {\r\n clear: \"both\",\r\n },\r\n};\r\n\r\nconst container = {\r\n paddingRight: \"15px\",\r\n paddingLeft: \"15px\",\r\n marginRight: \"auto\",\r\n marginLeft: \"auto\",\r\n \"@media (min-width: 768px)\": {\r\n width: \"750px\",\r\n },\r\n \"@media (min-width: 992px)\": {\r\n width: \"970px\",\r\n },\r\n \"@media (min-width: 1200px)\": {\r\n width: \"1170px\",\r\n },\r\n \"&:before,&:after\": {\r\n display: \"table\",\r\n content: '\" \"',\r\n },\r\n \"&:after\": {\r\n clear: \"both\",\r\n },\r\n};\r\n\r\nconst defaultFont = {\r\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif',\r\n fontWeight: \"300\",\r\n lineHeight: \"1.5em\",\r\n};\r\n\r\nconst warningColor = [\r\n \"#E5A120\",\r\n \"#E5A120\",\r\n \"#E5A120\",\r\n \"#E5A120\",\r\n \"#E5A120\",\r\n \"#E5A120\",\r\n \"#E5A120\",\r\n];\r\nconst dangerColor = [\r\n \"#D25D48\",\r\n \"#D25D48\",\r\n \"#D25D48\",\r\n \"#D25D48\",\r\n \"#D25D48\",\r\n \"#D25D48\",\r\n \"#D25D48\",\r\n];\r\nconst successColor = [\r\n \"#22905D\",\r\n \"#22905D\",\r\n \"#22905D\",\r\n \"#22905D\",\r\n \"#22905D\",\r\n \"#22905D\",\r\n \"#22905D\",\r\n];\r\nconst infoColor = [\r\n \"#4799B2\",\r\n \"#4799B2\",\r\n \"#4799B2\",\r\n \"#4799B2\",\r\n \"#4799B2\",\r\n \"#4799B2\",\r\n \"#4799B2\",\r\n];\r\n\r\nconst fadeBlueColor = [\r\n \"#b7c0cb\",\r\n \"#b7c0cb\",\r\n \"#b7c0cb\",\r\n \"#b7c0cb\",\r\n \"#b7c0cb\",\r\n \"#b7c0cb\",\r\n \"#b7c0cb\",\r\n];\r\n\r\nconst primaryColor = [dangerColor[0], warningColor[0], successColor[0], infoColor[0], \"#7b1fa2\"];\r\nconst darkBlueColor = new Array(7).fill(COLOURS.DARK_BLUE);\r\n\r\nconst roseColor = [\"#e91e63\", \"#ec407a\", \"#d81b60\", \"#eb3573\", \"#c2185b\"];\r\nconst grayColor = [\r\n \"#999\",\r\n \"#777\",\r\n \"#3C4858\",\r\n \"#AAAAAA\",\r\n \"#D2D2D2\",\r\n \"#DDD\",\r\n \"#555555\",\r\n \"#333\",\r\n \"#eee\",\r\n \"#ccc\",\r\n \"#e4e4e4\",\r\n \"#E5E5E5\",\r\n \"#f9f9f9\",\r\n \"#f5f5f5\",\r\n \"#495057\",\r\n \"#e7e7e7\",\r\n \"#212121\",\r\n \"#c8c8c8\",\r\n \"#505050\",\r\n];\r\nconst blackColor = \"#000\";\r\nconst whiteColor = \"#FFF\";\r\nconst twitterColor = \"#55acee\";\r\nconst facebookColor = \"#3b5998\";\r\nconst googleColor = \"#dd4b39\";\r\nconst linkedinColor = \"#0976b4\";\r\nconst pinterestColor = \"#cc2127\";\r\nconst youtubeColor = \"#e52d27\";\r\nconst tumblrColor = \"#35465c\";\r\nconst behanceColor = \"#1769ff\";\r\nconst dribbbleColor = \"#ea4c89\";\r\nconst redditColor = \"#ff4500\";\r\n\r\nconst boxShadow = {\r\n boxShadow:\r\n \"0 10px 30px -12px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.42), 0 4px 25px 0px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.12), 0 8px 10px -5px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.2)\",\r\n};\r\n\r\nconst primaryBoxShadow = {\r\n boxShadow:\r\n \"0 4px 20px 0 rgba(\" +\r\n hexToRgb(blackColor) +\r\n \",.14), 0 7px 10px -5px rgba(\" +\r\n hexToRgb(primaryColor[0]) +\r\n \",.4)\",\r\n};\r\nconst infoBoxShadow = {\r\n boxShadow:\r\n \"0 4px 20px 0 rgba(\" +\r\n hexToRgb(blackColor) +\r\n \",.14), 0 7px 10px -5px rgba(\" +\r\n hexToRgb(infoColor[0]) +\r\n \",.4)\",\r\n};\r\nconst successBoxShadow = {\r\n boxShadow:\r\n \"0 4px 20px 0 rgba(\" +\r\n hexToRgb(blackColor) +\r\n \",.14), 0 7px 10px -5px rgba(\" +\r\n hexToRgb(successColor[0]) +\r\n \",.4)\",\r\n};\r\nconst warningBoxShadow = {\r\n boxShadow:\r\n \"0 4px 20px 0 rgba(\" +\r\n hexToRgb(blackColor) +\r\n \",.14), 0 7px 10px -5px rgba(\" +\r\n hexToRgb(warningColor[0]) +\r\n \",.4)\",\r\n};\r\nconst dangerBoxShadow = {\r\n boxShadow:\r\n \"0 4px 20px 0 rgba(\" +\r\n hexToRgb(blackColor) +\r\n \",.14), 0 7px 10px -5px rgba(\" +\r\n hexToRgb(dangerColor[0]) +\r\n \",.4)\",\r\n};\r\nconst roseBoxShadow = {\r\n boxShadow:\r\n \"0 4px 20px 0 rgba(\" +\r\n hexToRgb(blackColor) +\r\n \",.14), 0 7px 10px -5px rgba(\" +\r\n hexToRgb(roseColor[0]) +\r\n \",.4)\",\r\n};\r\n\r\nconst darkBlueBoxShadow = {\r\n boxShadow:\r\n \"0 4px 20px 0 rgba(\" +\r\n hexToRgb(blackColor) +\r\n \",.14), 0 7px 10px -5px rgba(\" +\r\n hexToRgb(darkBlueColor[0]) +\r\n \",.4)\",\r\n};\r\n\r\nconst warningCardHeader = {\r\n background:\r\n \"linear-gradient(60deg, \" + warningColor[1] + \", \" + warningColor[2] + \")\",\r\n ...warningBoxShadow,\r\n};\r\nconst successCardHeader = {\r\n background:\r\n \"linear-gradient(60deg, \" + successColor[1] + \", \" + successColor[2] + \")\",\r\n ...successBoxShadow,\r\n};\r\nconst dangerCardHeader = {\r\n background:\r\n \"linear-gradient(60deg, \" + dangerColor[1] + \", \" + dangerColor[2] + \")\",\r\n ...dangerBoxShadow,\r\n};\r\nconst infoCardHeader = {\r\n background:\r\n \"linear-gradient(60deg, \" + infoColor[1] + \", \" + infoColor[2] + \")\",\r\n ...infoBoxShadow,\r\n};\r\nconst primaryCardHeader = {\r\n background:\r\n \"linear-gradient(60deg, \" + primaryColor[1] + \", \" + primaryColor[2] + \")\",\r\n ...primaryBoxShadow,\r\n};\r\nconst roseCardHeader = {\r\n background:\r\n \"linear-gradient(60deg, \" + roseColor[1] + \", \" + roseColor[2] + \")\",\r\n ...roseBoxShadow,\r\n};\r\n\r\nconst darkBlueCardHeader = {\r\n background:\r\n \"linear-gradient(60deg, \" + darkBlueColor[1] + \", \" + darkBlueColor[2] + \")\",\r\n ...darkBlueBoxShadow,\r\n};\r\n\r\nconst card = {\r\n display: \"inline-block\",\r\n position: \"relative\",\r\n width: \"100%\",\r\n margin: \"25px 0\",\r\n boxShadow: \"0 1px 4px 0 rgba(\" + hexToRgb(blackColor) + \", 0.14)\",\r\n borderRadius: \"6px\",\r\n color: \"rgba(\" + hexToRgb(blackColor) + \", 0.87)\",\r\n background: whiteColor,\r\n};\r\n\r\nconst cardActions = {\r\n margin: \"0 20px 10px\",\r\n paddingTop: \"10px\",\r\n borderTop: \"1px solid \" + grayColor[8],\r\n height: \"auto\",\r\n ...defaultFont,\r\n};\r\n\r\nconst cardHeader = {\r\n margin: \"-20px 15px 0\",\r\n borderRadius: \"3px\",\r\n padding: \"15px\",\r\n};\r\n\r\nconst defaultBoxShadow = {\r\n border: \"0\",\r\n borderRadius: \"3px\",\r\n boxShadow:\r\n \"0 10px 20px -12px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.42), 0 3px 20px 0px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.12), 0 8px 10px -5px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.2)\",\r\n padding: \"10px 0\",\r\n transition: \"all 150ms ease 0s\",\r\n};\r\n\r\nconst tooltip = {\r\n padding: \"10px 15px\",\r\n minWidth: \"130px\",\r\n color: whiteColor,\r\n lineHeight: \"1.7em\",\r\n background: \"rgba(\" + hexToRgb(grayColor[6]) + \",0.9)\",\r\n border: \"none\",\r\n borderRadius: \"3px\",\r\n opacity: \"1!important\",\r\n boxShadow:\r\n \"0 8px 10px 1px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.14), 0 3px 14px 2px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.12), 0 5px 5px -3px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.2)\",\r\n maxWidth: \"200px\",\r\n textAlign: \"center\",\r\n fontFamily: '\"Helvetica Neue\",Helvetica,Arial,sans-serif',\r\n fontSize: \"12px\",\r\n fontStyle: \"normal\",\r\n fontWeight: \"400\",\r\n textShadow: \"none\",\r\n textTransform: \"none\",\r\n letterSpacing: \"normal\",\r\n wordBreak: \"normal\",\r\n wordSpacing: \"normal\",\r\n wordWrap: \"normal\",\r\n whiteSpace: \"normal\",\r\n lineBreak: \"auto\",\r\n};\r\n\r\nconst title = {\r\n color: grayColor[2],\r\n textDecoration: \"none\",\r\n fontWeight: \"300\",\r\n marginTop: \"30px\",\r\n marginBottom: \"25px\",\r\n minHeight: \"32px\",\r\n fontFamily: \"'Roboto', 'Helvetica', 'Arial', sans-serif\",\r\n \"& small\": {\r\n color: grayColor[1],\r\n fontSize: \"65%\",\r\n fontWeight: \"400\",\r\n lineHeight: \"1\",\r\n },\r\n};\r\n\r\nconst cardTitle = {\r\n ...title,\r\n marginTop: \"0\",\r\n marginBottom: \"3px\",\r\n minHeight: \"auto\",\r\n \"& a\": {\r\n ...title,\r\n marginTop: \".625rem\",\r\n marginBottom: \"0.75rem\",\r\n minHeight: \"auto\",\r\n },\r\n};\r\n\r\nconst cardSubtitle = {\r\n marginTop: \"-.375rem\",\r\n};\r\n\r\nconst cardLink = {\r\n \"& + $cardLink\": {\r\n marginLeft: \"1.25rem\",\r\n },\r\n};\r\n\r\nexport {\r\n hexToRgb,\r\n //variables\r\n drawerWidth,\r\n drawerMiniWidth,\r\n transition,\r\n container,\r\n containerFluid,\r\n boxShadow,\r\n card,\r\n defaultFont,\r\n primaryColor,\r\n warningColor,\r\n dangerColor,\r\n successColor,\r\n darkBlueColor,\r\n infoColor,\r\n fadeBlueColor,\r\n roseColor,\r\n grayColor,\r\n blackColor,\r\n whiteColor,\r\n twitterColor,\r\n facebookColor,\r\n googleColor,\r\n linkedinColor,\r\n pinterestColor,\r\n youtubeColor,\r\n tumblrColor,\r\n behanceColor,\r\n dribbbleColor,\r\n redditColor,\r\n primaryBoxShadow,\r\n infoBoxShadow,\r\n successBoxShadow,\r\n warningBoxShadow,\r\n dangerBoxShadow,\r\n roseBoxShadow,\r\n warningCardHeader,\r\n successCardHeader,\r\n dangerCardHeader,\r\n infoCardHeader,\r\n primaryCardHeader,\r\n roseCardHeader,\r\n darkBlueCardHeader,\r\n cardActions,\r\n cardHeader,\r\n defaultBoxShadow,\r\n tooltip,\r\n title,\r\n cardTitle,\r\n cardSubtitle,\r\n cardLink,\r\n};\r\n","import {\r\n containerFluid,\r\n defaultFont,\r\n primaryColor,\r\n defaultBoxShadow,\r\n infoColor,\r\n successColor,\r\n warningColor,\r\n dangerColor,\r\n whiteColor,\r\n grayColor,\r\n} from \"assets/jss/material-dashboard-pro-react.js\";\r\n\r\nconst headerStyle = () => ({\r\n appBar: {\r\n backgroundColor: \"transparent\",\r\n boxShadow: \"none\",\r\n borderBottom: \"0\",\r\n marginBottom: \"0\",\r\n position: \"absolute\",\r\n width: \"100%\",\r\n paddingTop: \"10px\",\r\n zIndex: \"1029\",\r\n color: grayColor[6],\r\n border: \"0\",\r\n borderRadius: \"3px\",\r\n padding: \"10px 0\",\r\n transition: \"all 150ms ease 0s\",\r\n minHeight: \"50px\",\r\n display: \"block\",\r\n },\r\n container: {\r\n ...containerFluid,\r\n minHeight: \"50px\",\r\n },\r\n flex: {\r\n flex: 1,\r\n },\r\n title: {\r\n ...defaultFont,\r\n lineHeight: \"30px\",\r\n fontSize: \"18px\",\r\n borderRadius: \"3px\",\r\n textTransform: \"none\",\r\n color: \"inherit\",\r\n paddingTop: \"0.625rem\",\r\n paddingBottom: \"0.625rem\",\r\n margin: \"0 !important\",\r\n letterSpacing: \"unset\",\r\n \"&:hover,&:focus\": {\r\n background: \"transparent\",\r\n },\r\n },\r\n primary: {\r\n backgroundColor: primaryColor[0],\r\n color: whiteColor,\r\n ...defaultBoxShadow,\r\n },\r\n info: {\r\n backgroundColor: infoColor[0],\r\n color: whiteColor,\r\n ...defaultBoxShadow,\r\n },\r\n success: {\r\n backgroundColor: successColor[0],\r\n color: whiteColor,\r\n ...defaultBoxShadow,\r\n },\r\n warning: {\r\n backgroundColor: warningColor[0],\r\n color: whiteColor,\r\n ...defaultBoxShadow,\r\n },\r\n danger: {\r\n backgroundColor: dangerColor[0],\r\n color: whiteColor,\r\n ...defaultBoxShadow,\r\n },\r\n sidebarMinimize: {\r\n float: \"left\",\r\n padding: \"0 0 0 15px\",\r\n display: \"block\",\r\n color: grayColor[6],\r\n },\r\n sidebarMinimizeRTL: {\r\n padding: \"0 15px 0 0 !important\",\r\n },\r\n sidebarMiniIcon: {\r\n width: \"20px\",\r\n height: \"17px\",\r\n },\r\n});\r\n\r\nexport default headerStyle;\r\n","import React from \"react\";\r\n// nodejs library to set properties for components\r\nimport PropTypes from \"prop-types\";\r\nimport cx from \"classnames\";\r\n\r\n// @material-ui/core components\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\n\r\n// core components\r\nimport AdminNavbarLinks from \"./AdminNavbarLinks\";\r\nimport styles from \"assets/jss/material-dashboard-pro-react/components/adminNavbarStyle.js\";\r\nimport MoreVert from \"@mui/icons-material/MoreVert\";\r\nimport ViewList from \"@mui/icons-material/ViewList\";\r\nimport Button from \"@mui/material/Button\";\r\nimport Hidden from \"@mui/material/Hidden\";\r\nimport { IconButton } from \"@mui/material\";\r\n\r\nconst useStyles = makeStyles(styles);\r\n\r\nexport default function AdminNavbar(props) {\r\n const classes = useStyles();\r\n const { color, rtlActive, brandText } = props;\r\n const appBarClasses = cx({\r\n [\" \" + classes[color]]: color,\r\n });\r\n const sidebarMinimize =\r\n classes.sidebarMinimize +\r\n \" \" +\r\n cx({\r\n [classes.sidebarMinimizeRTL]: rtlActive,\r\n });\r\n\r\n const iconStyle={\r\n fontSize: \"24px\",\r\n fontWeight: 400,\r\n height: \"18px\",\r\n width: \"18px\",\r\n color: \"rgb(153, 153, 153)\",\r\n fill: \"rgb(153, 153, 153)\"\r\n }\r\n return (\r\n \r\n \r\n \r\n
\r\n {props.miniActive ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {/* \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n );\r\n}\r\n\r\nAdminNavbar.propTypes = {\r\n color: PropTypes.oneOf([\"primary\", \"info\", \"success\", \"warning\", \"danger\"]),\r\n rtlActive: PropTypes.bool,\r\n brandText: PropTypes.string,\r\n miniActive: PropTypes.bool,\r\n handleDrawerToggle: PropTypes.func,\r\n sidebarMinimize: PropTypes.func,\r\n};\r\n","/*eslint-disable*/\r\nimport React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nexport default function Footer(props) {\r\n return (\r\n
\r\n
\r\n

\r\n © {1900 + new Date().getYear()}{\" \"}\r\n AHR\r\n

\r\n
\r\n
\r\n );\r\n}\r\n\r\nFooter.propTypes = {\r\n fluid: PropTypes.bool,\r\n white: PropTypes.bool,\r\n rtlActive: PropTypes.bool,\r\n};\r\n","import COLOURS from \"assets/jss/colours\";\r\nimport {\r\n drawerWidth,\r\n drawerMiniWidth,\r\n transition,\r\n boxShadow,\r\n defaultFont,\r\n primaryColor,\r\n primaryBoxShadow,\r\n infoColor,\r\n successColor,\r\n warningColor,\r\n dangerColor,\r\n roseColor,\r\n whiteColor,\r\n blackColor,\r\n grayColor,\r\n hexToRgb,\r\n fadeBlueColor,\r\n} from \"assets/jss/material-dashboard-pro-react.js\";\r\n\r\nconst sidebarStyle = (theme) => ({\r\n drawerPaperRTL: {\r\n [theme.breakpoints.up(\"md\")]: {\r\n left: \"auto !important\",\r\n right: \"0 !important\",\r\n },\r\n [theme.breakpoints.down(\"sm\")]: {\r\n left: \"0 !important\",\r\n right: \"auto !important\",\r\n },\r\n },\r\n drawerPaper: {\r\n border: \"none\",\r\n position: \"fixed\",\r\n top: \"0\",\r\n bottom: \"0\",\r\n left: \"0\",\r\n zIndex: \"1032\",\r\n transitionProperty: \"top, bottom, width\",\r\n transitionDuration: \".2s, .2s, .35s\",\r\n transitionTimingFunction: \"linear, linear, ease\",\r\n // overflow: 'auto',\r\n ...boxShadow,\r\n width: drawerWidth,\r\n [theme.breakpoints.up(\"md\")]: {\r\n width: drawerWidth,\r\n position: \"fixed\",\r\n height: \"100%\",\r\n },\r\n [theme.breakpoints.down(\"sm\")]: {\r\n width: drawerWidth,\r\n ...boxShadow,\r\n position: \"fixed\",\r\n display: \"block\",\r\n top: \"0\",\r\n height: \"100vh\",\r\n right: \"0\",\r\n left: \"auto\",\r\n zIndex: \"1032\",\r\n visibility: \"visible\",\r\n overflowY: \"visible\",\r\n borderTop: \"none\",\r\n textAlign: \"left\",\r\n paddingRight: \"0px\",\r\n paddingLeft: \"0\",\r\n transform: `translate3d(${drawerWidth}px, 0, 0)`,\r\n ...transition,\r\n },\r\n \"&:before,&:after\": {\r\n position: \"absolute\",\r\n zIndex: \"3\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n content: '\"\"',\r\n display: \"block\",\r\n top: \"0\",\r\n },\r\n },\r\n blackBackground: {\r\n color: whiteColor,\r\n \"&:after\": {\r\n background: blackColor,\r\n opacity: \".8\",\r\n },\r\n },\r\n blueBackground: {\r\n color: whiteColor,\r\n \"&:after\": {\r\n background: COLOURS.DARK_BLUE,\r\n },\r\n },\r\n whiteBackground: {\r\n color: grayColor[2],\r\n \"&:after\": {\r\n background: whiteColor,\r\n opacity: \".93\",\r\n },\r\n },\r\n whiteAfter: {\r\n \"&:after\": {\r\n backgroundColor: \"hsla(0,0%,71%,.3) !important\",\r\n },\r\n },\r\n drawerPaperMini: {\r\n [theme.breakpoints.up(\"md\")]: {\r\n width: drawerMiniWidth + \"px!important\",\r\n },\r\n },\r\n logo: {\r\n padding: \"15px 0px\",\r\n margin: \"0\",\r\n display: \"block\",\r\n position: \"relative\",\r\n zIndex: \"4\",\r\n \"&:after\": {\r\n content: '\"\"',\r\n position: \"absolute\",\r\n bottom: \"0\",\r\n height: \"1px\",\r\n right: \"15px\",\r\n width: \"calc(100% - 30px)\",\r\n backgroundColor: \"hsla(0,0%,100%,.3)\",\r\n },\r\n },\r\n logoMini: {\r\n transition: \"all 300ms linear\",\r\n opacity: 1,\r\n float: \"left\",\r\n textAlign: \"center\",\r\n width: \"30px\",\r\n display: \"inline-block\",\r\n maxHeight: \"30px\",\r\n marginLeft: \"22px\",\r\n marginRight: \"18px\",\r\n marginTop: \"7px\",\r\n color: \"inherit\",\r\n },\r\n logoMiniRTL: {\r\n float: \"right\",\r\n marginRight: \"30px\",\r\n marginLeft: \"26px\",\r\n },\r\n logoNormal: {\r\n ...defaultFont,\r\n transition: \"all 300ms linear\",\r\n display: \"block\",\r\n opacity: \"1\",\r\n transform: \"translate3d(0px, 0, 0)\",\r\n textTransform: \"capitalize\",\r\n padding: \"5px 0px\",\r\n fontSize: \"18px\",\r\n whiteSpace: \"nowrap\",\r\n fontWeight: \"400\",\r\n lineHeight: \"30px\",\r\n overflow: \"hidden\",\r\n \"&,&:hover,&:focus\": {\r\n color: \"inherit\",\r\n },\r\n },\r\n logoNormalRTL: {\r\n textAlign: \"right\",\r\n },\r\n logoNormalSidebarMini: {\r\n [theme.breakpoints.up(\"md\")]: {\r\n opacity: \"0\",\r\n transform: \"translate3d(-25px, 0, 0)\",\r\n },\r\n },\r\n logoNormalSidebarMiniRTL: {\r\n [theme.breakpoints.up(\"md\")]: {\r\n transform: \"translate3d(25px, 0, 0)\",\r\n },\r\n },\r\n img: {\r\n width: \"35px\",\r\n verticalAlign: \"middle\",\r\n border: \"0\",\r\n },\r\n background: {\r\n position: \"absolute\",\r\n zIndex: \"1\",\r\n height: \"100%\",\r\n width: \"100%\",\r\n display: \"block\",\r\n top: \"0\",\r\n left: \"0\",\r\n backgroundSize: \"cover\",\r\n backgroundPosition: \"center center\",\r\n transition: \"all 300ms linear\",\r\n },\r\n list: {\r\n marginTop: \"15px\",\r\n paddingLeft: \"0\",\r\n paddingTop: \"0\",\r\n paddingBottom: \"0\",\r\n marginBottom: \"0\",\r\n listStyle: \"none\",\r\n color: \"inherit\",\r\n \"&:before,&:after\": {\r\n display: \"table\",\r\n content: '\" \"',\r\n },\r\n \"&:after\": {\r\n clear: \"both\",\r\n },\r\n },\r\n item: {\r\n color: \"inherit\",\r\n position: \"relative\",\r\n display: \"block\",\r\n textDecoration: \"none\",\r\n margin: \"0\",\r\n padding: \"0\",\r\n },\r\n userItem: {\r\n \"&:last-child\": {\r\n paddingBottom: \"0px\",\r\n },\r\n },\r\n itemLink: {\r\n paddingLeft: \"25px\",\r\n paddingRight: \"10px\",\r\n transition: \"all 300ms linear\",\r\n margin: \"10px 15px 0\",\r\n borderRadius: \"3px\",\r\n position: \"relative\",\r\n display: \"block\",\r\n padding: \"10px 15px\",\r\n backgroundColor: \"transparent\",\r\n ...defaultFont,\r\n width: \"auto\",\r\n \"&:hover\": {\r\n outline: \"none\",\r\n backgroundColor: \"rgba(\" + hexToRgb(grayColor[17]) + \", 0.2)\",\r\n boxShadow: \"none\",\r\n },\r\n \"&,&:hover,&:focus\": {\r\n color: \"inherit\",\r\n },\r\n },\r\n itemIcon: {\r\n color: \"inherit\",\r\n width: \"30px\",\r\n height: \"24px\",\r\n float: \"left\",\r\n position: \"inherit\",\r\n top: \"3px\",\r\n marginRight: \"15px\",\r\n textAlign: \"center\",\r\n verticalAlign: \"middle\",\r\n opacity: \"0.8\",\r\n },\r\n itemIconRTL: {\r\n float: \"right\",\r\n marginLeft: \"15px\",\r\n marginRight: \"1px\",\r\n },\r\n itemText: {\r\n color: \"inherit\",\r\n ...defaultFont,\r\n margin: \"0\",\r\n lineHeight: \"30px\",\r\n fontSize: \"14px\",\r\n transform: \"translate3d(0px, 0, 0)\",\r\n opacity: \"1\",\r\n transition: \"transform 300ms ease 0s, opacity 300ms ease 0s\",\r\n position: \"relative\",\r\n display: \"block\",\r\n height: \"auto\",\r\n whiteSpace: \"nowrap\",\r\n padding: \"0 16px !important\",\r\n },\r\n userItemText: {\r\n lineHeight: \"22px\",\r\n },\r\n itemTextRTL: {\r\n marginRight: \"45px\",\r\n textAlign: \"right\",\r\n },\r\n itemTextMini: {\r\n [theme.breakpoints.up(\"md\")]: {\r\n transform: \"translate3d(-25px, 0, 0)\",\r\n opacity: \"0\",\r\n },\r\n },\r\n itemTextMiniRTL: {\r\n [theme.breakpoints.up(\"md\")]: {\r\n transform: \"translate3d(25px, 0, 0) !important\",\r\n },\r\n },\r\n collapseList: {\r\n marginTop: \"0\",\r\n \"& $caret\": {\r\n marginTop: \"8px\",\r\n },\r\n },\r\n collapseItem: {\r\n position: \"relative\",\r\n display: \"block\",\r\n textDecoration: \"none\",\r\n margin: \"10px 0 0 0\",\r\n padding: \"0\",\r\n },\r\n collapseActive: {\r\n outline: \"none\",\r\n backgroundColor: \"rgba(\" + hexToRgb(grayColor[17]) + \", 0.2)\",\r\n boxShadow: \"none\",\r\n },\r\n collapseItemLink: {\r\n transition: \"all 300ms linear\",\r\n margin: \"0 15px\",\r\n borderRadius: \"3px\",\r\n position: \"relative\",\r\n display: \"block\",\r\n padding: \"10px\",\r\n backgroundColor: \"transparent\",\r\n ...defaultFont,\r\n width: \"auto\",\r\n \"&:hover\": {\r\n outline: \"none\",\r\n backgroundColor: \"rgba(\" + hexToRgb(grayColor[17]) + \", 0.2)\",\r\n boxShadow: \"none\",\r\n },\r\n \"&,&:hover,&:focus\": {\r\n color: \"inherit\",\r\n },\r\n },\r\n collapseItemMini: {\r\n color: \"inherit\",\r\n ...defaultFont,\r\n textTransform: \"uppercase\",\r\n width: \"30px\",\r\n marginRight: \"15px\",\r\n textAlign: \"center\",\r\n letterSpacing: \"1px\",\r\n position: \"relative\",\r\n float: \"left\",\r\n display: \"inherit\",\r\n transition: \"transform 300ms ease 0s, opacity 300ms ease 0s\",\r\n fontSize: \"14px\",\r\n },\r\n collapseItemMiniRTL: {\r\n float: \"right\",\r\n marginLeft: \"30px\",\r\n marginRight: \"1px\",\r\n },\r\n collapseItemText: {\r\n color: \"inherit\",\r\n ...defaultFont,\r\n margin: \"0\",\r\n position: \"relative\",\r\n transform: \"translateX(0px)\",\r\n opacity: \"1\",\r\n whiteSpace: \"nowrap\",\r\n display: \"block\",\r\n transition: \"transform 300ms ease 0s, opacity 300ms ease 0s\",\r\n fontSize: \"14px\",\r\n },\r\n collapseItemTextRTL: {\r\n textAlign: \"right\",\r\n },\r\n collapseItemTextMiniRTL: {\r\n [theme.breakpoints.up(\"md\")]: {\r\n transform: \"translate3d(25px, 0, 0) !important\",\r\n },\r\n },\r\n collapseItemTextMini: {\r\n [theme.breakpoints.up(\"md\")]: {\r\n transform: \"translate3d(-25px, 0, 0)\",\r\n opacity: \"0\",\r\n },\r\n },\r\n caret: {\r\n marginTop: \"13px\",\r\n position: \"absolute\",\r\n right: \"18px\",\r\n transition: \"all 150ms ease-in\",\r\n display: \"inline-block\",\r\n width: \"0\",\r\n height: \"0\",\r\n marginLeft: \"2px\",\r\n verticalAlign: \"middle\",\r\n borderTop: \"4px solid\",\r\n borderRight: \"4px solid transparent\",\r\n borderLeft: \"4px solid transparent\",\r\n },\r\n userCaret: {\r\n marginTop: \"10px\",\r\n },\r\n caretRTL: {\r\n left: \"11px\",\r\n right: \"auto\",\r\n },\r\n caretActive: {\r\n transform: \"rotate(180deg)\",\r\n },\r\n purple: {\r\n \"&,&:hover,&:focus\": {\r\n color: whiteColor,\r\n backgroundColor: primaryColor[0],\r\n ...primaryBoxShadow,\r\n },\r\n },\r\n blue: {\r\n \"&,&:hover,&:focus\": {\r\n color: whiteColor,\r\n backgroundColor: fadeBlueColor[0],\r\n boxShadow:\r\n \"0 12px 20px -10px rgba(\" +\r\n hexToRgb(fadeBlueColor[0]) +\r\n \",.28), 0 4px 20px 0 rgba(\" +\r\n hexToRgb(blackColor) +\r\n \",.12), 0 7px 8px -5px rgba(\" +\r\n hexToRgb(fadeBlueColor[0]) +\r\n \",.2)\",\r\n },\r\n },\r\n green: {\r\n \"&,&:hover,&:focus\": {\r\n color: whiteColor,\r\n backgroundColor: successColor[0],\r\n boxShadow:\r\n \"0 12px 20px -10px rgba(\" +\r\n hexToRgb(successColor[0]) +\r\n \",.28), 0 4px 20px 0 rgba(\" +\r\n hexToRgb(blackColor) +\r\n \",.12), 0 7px 8px -5px rgba(\" +\r\n hexToRgb(successColor[0]) +\r\n \",.2)\",\r\n },\r\n },\r\n orange: {\r\n \"&,&:hover,&:focus\": {\r\n color: whiteColor,\r\n backgroundColor: warningColor[0],\r\n boxShadow:\r\n \"0 12px 20px -10px rgba(\" +\r\n hexToRgb(warningColor[0]) +\r\n \",.28), 0 4px 20px 0 rgba(\" +\r\n hexToRgb(blackColor) +\r\n \",.12), 0 7px 8px -5px rgba(\" +\r\n hexToRgb(warningColor[0]) +\r\n \",.2)\",\r\n },\r\n },\r\n red: {\r\n \"&,&:hover,&:focus\": {\r\n color: whiteColor,\r\n backgroundColor: dangerColor[0],\r\n boxShadow:\r\n \"0 12px 20px -10px rgba(\" +\r\n hexToRgb(dangerColor[0]) +\r\n \",.28), 0 4px 20px 0 rgba(\" +\r\n hexToRgb(blackColor) +\r\n \",.12), 0 7px 8px -5px rgba(\" +\r\n hexToRgb(dangerColor[0]) +\r\n \",.2)\",\r\n },\r\n },\r\n white: {\r\n \"&,&:hover,&:focus\": {\r\n color: grayColor[2],\r\n backgroundColor: whiteColor,\r\n boxShadow:\r\n \"0 4px 20px 0 rgba(\" +\r\n hexToRgb(blackColor) +\r\n \",.14), 0 7px 10px -5px rgba(\" +\r\n hexToRgb(grayColor[2]) +\r\n \",.4)\",\r\n },\r\n },\r\n rose: {\r\n \"&,&:hover,&:focus\": {\r\n color: whiteColor,\r\n backgroundColor: roseColor[0],\r\n boxShadow:\r\n \"0 4px 20px 0 rgba(\" +\r\n hexToRgb(blackColor) +\r\n \",.14), 0 7px 10px -5px rgba(\" +\r\n hexToRgb(roseColor[0]) +\r\n \",.4)\",\r\n },\r\n },\r\n sidebarWrapper: {\r\n position: \"relative\",\r\n height: \"calc(100vh - 75px)\",\r\n overflow: \"auto\",\r\n width: \"260px\",\r\n zIndex: \"4\",\r\n overflowScrolling: \"touch\",\r\n transitionProperty: \"top, bottom, width\",\r\n transitionDuration: \".2s, .2s, .35s\",\r\n transitionTimingFunction: \"linear, linear, ease\",\r\n color: \"inherit\",\r\n paddingBottom: \"30px\",\r\n },\r\n sidebarWrapperWithPerfectScrollbar: {\r\n overflow: \"hidden !important\",\r\n },\r\n user: {\r\n paddingBottom: \"6px\",\r\n display: \"flex\",\r\n margin: \"6px auto 0\",\r\n position: \"relative\",\r\n \"&:after\": {\r\n content: '\"\"',\r\n position: \"absolute\",\r\n bottom: \"0\",\r\n right: \"15px\",\r\n height: \"1px\",\r\n width: \"calc(100% - 30px)\",\r\n backgroundColor: \"hsla(0,0%,100%,.3)\",\r\n },\r\n },\r\n photo: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n transition: \"all 300ms linear\",\r\n width: \"34px\",\r\n height: \"34px\",\r\n overflow: \"hidden\",\r\n zIndex: \"5\",\r\n marginRight: \"11px\",\r\n borderRadius: \"50%\",\r\n marginLeft: \"23px\",\r\n ...boxShadow,\r\n },\r\n photoRTL: {\r\n float: \"right\",\r\n marginLeft: \"12px\",\r\n marginRight: \"24px\",\r\n },\r\n avatarImg: {\r\n width: \"100%\",\r\n verticalAlign: \"middle\",\r\n border: \"0\",\r\n },\r\n userCollapseButton: {\r\n margin: \"0\",\r\n padding: \"6px 15px\",\r\n \"&:hover\": {\r\n background: \"none\",\r\n },\r\n },\r\n userCollapseLinks: {\r\n marginTop: \"-4px\",\r\n },\r\n});\r\n\r\nexport default sidebarStyle;\r\n","import { msalInstance as publicClientApplication } from \"../index\"\r\nimport { protectedResources } from \"../authConfig\"\r\n\r\nexport const getToken = async function getToken(scopes) { \r\n let activeAccount = publicClientApplication.getActiveAccount();\r\n return publicClientApplication.acquireTokenSilent({\r\n scopes,\r\n account: activeAccount\r\n })\r\n .then(tokenResponse => {\r\n let accessToken = tokenResponse.accessToken\r\n const headers = new Headers();\r\n const bearer = `Bearer ${accessToken}`;\r\n\r\n headers.append(\"Authorization\", bearer);\r\n headers.append(\"Accept\", '*/*');\r\n headers.append(\"Content-Type\", 'application/json; charset=utf-8');\r\n\r\n const options = {\r\n method: \"GET\",\r\n headers: headers,\r\n };\r\n\r\n return options\r\n })\r\n}\r\n\r\nexport const getTasksToken = async function getTasksToken() { \r\n return getToken(protectedResources.tasksApi.scopes);\r\n}\r\n\r\nexport const getGraphToken = async function getGraphToken() { \r\n return getToken(protectedResources.graphMe.scopes);\r\n}","const baseGatewayUrl = \"https://ahrgatewayapi.azurewebsites.net\"\r\n\r\n/**\r\n * @param {function} scopeFn The GetToken function to be used by the factory\r\n * @returns {ApiMethods} param0\r\n */\r\nexport default function(scopeFn){\r\n return {\r\n get: async function(url, addOptions){\r\n return scopeFn()\r\n .then(options => _fetch(`${baseGatewayUrl}${url}`, {\r\n ...options,\r\n ...addOptions,\r\n method: \"GET\"\r\n }))\r\n },\r\n put: async function(url, body, addOptions){\r\n return scopeFn()\r\n .then(options => _fetch(`${baseGatewayUrl}${url}`, {\r\n ...options,\r\n ...addOptions,\r\n body: JSON.stringify(body),\r\n method: \"PUT\"\r\n }))\r\n },\r\n post: async function(url, body, addOptions){\r\n return scopeFn()\r\n .then(options => _fetch(`${baseGatewayUrl}${url}`, {\r\n ...options,\r\n ...addOptions,\r\n body: JSON.stringify(body),\r\n method: \"POST\"\r\n }))\r\n },\r\n del: async function(url, addOptions){\r\n return scopeFn()\r\n .then(options => _fetch(`${baseGatewayUrl}${url}`, {\r\n ...options,\r\n ...addOptions,\r\n method: \"DELETE\"\r\n }))\r\n },\r\n\r\n } \r\n}\r\n\r\n/**\r\n * @param {string} url\r\n * @param {RequestInit} options\r\n */\r\nconst _fetch = async function(url, options) {\r\n return fetch(url, options)\r\n .then(res => { \r\n if(!res.ok){\r\n throw new Error(`${options.method}:${url} - ${res.status} - ${res.statusText}`)\r\n }\r\n const contentType = res.headers.get(\"content-type\");\r\n if (contentType && contentType.indexOf(\"application/json\") !== -1) { \r\n return res.json();\r\n } else {\r\n return res.text()\r\n }\r\n })\r\n}","import { getTasksToken, getGraphToken } from \"./tokenService\";\r\nimport lscache from \"lib/lscache\";\r\n\r\nimport azureGatewayService from \"./azureGatewayService\"\r\n\r\nconst { post } = azureGatewayService(getTasksToken);\r\n\r\n\r\n/**\r\n * @returns {Promise}\r\n */\r\nexport const getGraphData = async function getGraphData() {\r\n return getGraphToken()\r\n .then(options => fetch(\"https://graph.microsoft.com/v1.0/me\", options))\r\n .then(res => res.json())\r\n .then(res=>{\r\n if(res && res.error){\r\n throw res;\r\n }\r\n if(res && res.code !== \"InvalidAuthenticationToken\"){\r\n return res;\r\n }\r\n })\r\n}\r\n\r\nexport const getProfilePic = async function getProfilePic(userId) {\r\n userId = !!userId ? userId.toLowerCase() : \"\";\r\n if(!userId){\r\n return Promise.resolve(\"\");\r\n }\r\n return new Promise((resolve,reject)=>{\r\n getGraphToken()\r\n .then(options => fetch(`https://graph.microsoft.com/v1.0/users/${userId}/photo/$value`, { ...options}))\r\n .then(res => { //If there is an error it seems to be embedded within a 20X OK response for some reason ¯\\_(ツ)_/¯\r\n if(!res.ok){ \r\n throw {\r\n statusText:res.statusText,\r\n status: res.status\r\n }\r\n }\r\n return res.blob()\r\n })\r\n .then(picBlob=>{\r\n try{\r\n const reader = new FileReader();\r\n reader.readAsDataURL(picBlob);\r\n reader.onload = () => {\r\n resolve(reader.result);\r\n }\r\n }\r\n catch(err){\r\n resolve(\"\");\r\n // reject(err);\r\n }\r\n })\r\n // .catch(reject);\r\n .catch(()=> resolve(\"\")); //If there is no profile pic, just resolve with an empty string\r\n })\r\n}\r\n\r\nexport const getLocallyStoredAccountId = function(){\r\n lscache.setBucket(\"Account\");\r\n return lscache.get(\"LocalAccountId\");\r\n}\r\n\r\n/**\r\n * @param {SearchTerm} searchTerm\r\n * @returns {Promise}\r\n */\r\n export const searchUsers = async function getTaskActionItemCustoms(searchTerm) {\r\n return post(`/Users`, searchTerm)\r\n}\r\n\r\n/**\r\n * @param {SearchTerm} searchTerm\r\n * @returns {Promise}\r\n */\r\n export const searchGroups = async function getTaskActionItemCustoms(searchTerm) {\r\n return post(`/Groups`, searchTerm)\r\n}","import React from \"react\";\r\nimport { getProfilePic } from \"services/userService\";\r\n// @ts-ignore\r\nimport { Person } from \"@mui/icons-material\";\r\nimport Avatar from \"@mui/material/Avatar\";\r\nimport { ListItemAvatar } from \"@mui/material/index\";\r\nimport { useQuery } from \"react-query\";\r\n\r\nexport default function AhrAvatar({userId=\"\", sidebar=false, style={}, inline=false}){\r\n if(userId == null || userId == undefined){\r\n userId = \"\";\r\n }\r\n const { data } = useQuery([\"AhrAvatar\",userId.toLowerCase()], ()=> getProfilePic(userId), \r\n { \r\n refetchOnWindowFocus: false,\r\n refetchOnMount: false,\r\n refetchOnReconnect: false,\r\n staleTime: 60 * (60 * 1000)\r\n }\r\n ); \r\n\r\n return (\r\n sidebar ?
\r\n {\r\n data ? : \r\n }\r\n
\r\n :\r\n inline == false ?\r\n \r\n \r\n \r\n :\r\n \r\n )\r\n}","/*eslint-disable*/\r\nimport React, { useState, useEffect } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n// javascript plugin used to create scrollbars on windows\r\nimport PerfectScrollbar from \"perfect-scrollbar\";\r\nimport { NavLink, useLocation } from \"react-router-dom\";\r\nimport cx from \"classnames\";\r\n\r\n// @material-ui/core components\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Drawer from \"@material-ui/core/Drawer\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport Collapse from \"@material-ui/core/Collapse\";\r\nimport Icon from \"@material-ui/core/Icon\";\r\nimport AhrLogo from \"assets/img/logo.png\"\r\n\r\nimport sidebarStyle from \"../../../assets/jss/material-dashboard-pro-react/components/sidebarStyle.js\";\r\n\r\n// authentication\r\nimport { getGraphData } from \"services/userService\";\r\nimport { AuthenticatedTemplate } from \"@azure/msal-react\";\r\nimport AhrAvatar from \"../Badge/AhrAvatar.js\";\r\nimport { useQuery } from \"react-query\";\r\n\r\n// @ts-ignore\r\nconst useStyles = makeStyles(sidebarStyle);\r\n\r\nvar ps;\r\n\r\n// We've created this component so we can have a ref to the wrapper of the links that appears in our sidebar.\r\n// This was necessary so that we could initialize PerfectScrollbar on the links.\r\n// There might be something with the Hidden component from material-ui, and we didn't have access to\r\n// the links, and couldn't initialize the plugin.\r\nfunction SidebarWrapper({ className, user, headerLinks, links }) {\r\n const sidebarWrapper = React.useRef();\r\n useEffect(() => {\r\n if (navigator.platform.indexOf(\"Win\") > -1) {\r\n ps = new PerfectScrollbar(sidebarWrapper.current, {\r\n suppressScrollX: true,\r\n suppressScrollY: false,\r\n });\r\n }\r\n return function cleanup() {\r\n if (navigator.platform.indexOf(\"Win\") > -1) {\r\n ps.destroy();\r\n }\r\n };\r\n });\r\n return (\r\n
\r\n {user}\r\n {headerLinks}\r\n {links}\r\n
\r\n );\r\n}\r\n\r\nfunction Sidebar(props) {\r\n console.log(\"Sidebar Rendered\")\r\n const classes = useStyles();\r\n const [miniActive, setMiniActive] = React.useState(true);\r\n \r\n const {data: graphData} = useQuery([\"GraphData\"], getGraphData, { \r\n refetchOnMount: false,\r\n refetchOnWindowFocus: false,\r\n refetchOnReconnect: false,\r\n staleTime: 10 * (60 * 1000) /* 10 minutes */ \r\n });\r\n\r\n \r\n\r\n const itemText =\r\n classes.itemText +\r\n \" \" +\r\n cx({\r\n [classes.itemTextMini]: props.miniActive && miniActive,\r\n });\r\n\r\n // to check for active links and opened collapses\r\n let location = useLocation();\r\n // this is for the rest of the collapses\r\n const [state, setState] = React.useState({});\r\n useEffect(() => {\r\n setState(getCollapseStates(props.routes));\r\n }, []);\r\n const mainPanel = React.useRef();\r\n // this creates the intial state of this component based on the collapse routes\r\n // that it gets through routes\r\n const getCollapseStates = (routes) => {\r\n let initialState = {};\r\n routes.map((prop) => {\r\n if (prop.collapse) {\r\n initialState = {\r\n [prop.state]: getCollapseInitialState(prop.views),\r\n ...getCollapseStates(prop.views),\r\n ...initialState,\r\n };\r\n }\r\n return null;\r\n });\r\n return initialState;\r\n };\r\n // this verifies if any of the collapses should be default opened on a rerender of this component\r\n // for example, on the refresh of the page,\r\n // while on the src/views/forms/RegularForms.jsx - route /admin/regular-forms\r\n const getCollapseInitialState = (routes) => {\r\n for (let i = 0; i < routes.length; i++) {\r\n if (routes[i].collapse && getCollapseInitialState(routes[i].views)) {\r\n return true;\r\n } else if (location.pathname === routes[i].layout + routes[i].path) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n // verifies if routeName is the one active (in browser input)\r\n const activeRoute = (routeName) => {\r\n return location.pathname === routeName ? \"active\" : \"\";\r\n };\r\n // this function creates the links and collapses that appear in the sidebar (left menu)\r\n const createLinks = (routes) => {\r\n const { color, rtlActive } = props;\r\n\r\n return routes.map((prop, key) => {\r\n if (prop.redirect) {\r\n return null;\r\n }\r\n if (prop.collapse) {\r\n var st = {};\r\n st[prop[\"state\"]] = !state[prop.state];\r\n const itemText =\r\n classes.itemText +\r\n \" \" +\r\n cx({\r\n [classes.itemTextMini]: props.miniActive && miniActive,\r\n [classes.itemTextMiniRTL]:\r\n rtlActive && props.miniActive && miniActive,\r\n [classes.itemTextRTL]: rtlActive,\r\n });\r\n\r\n const itemIcon =\r\n classes.itemIcon +\r\n \" \" +\r\n cx({\r\n [classes.itemIconRTL]: rtlActive,\r\n });\r\n const caret =\r\n classes.caret +\r\n \" \" +\r\n cx({\r\n [classes.caretRTL]: rtlActive,\r\n });\r\n const collapseItemMini =\r\n classes.collapseItemMini +\r\n \" \" +\r\n cx({\r\n [classes.collapseItemMiniRTL]: rtlActive,\r\n });\r\n\r\n return (\r\n \r\n {\r\n e.preventDefault();\r\n setState(st);\r\n }}\r\n >\r\n {prop.icon !== undefined ? (\r\n typeof prop.icon === \"string\" ? (\r\n {prop.icon}) :\r\n ()\r\n ) : \r\n (\r\n {rtlActive ? prop.rtlMini : prop.mini}\r\n )\r\n }\r\n \r\n }\r\n disableTypography={true}\r\n className={cx(\r\n { [itemText]: prop.icon !== undefined },\r\n { [collapseItemText]: prop.icon === undefined }\r\n )}\r\n />\r\n \r\n \r\n \r\n {createLinks(prop.views)}\r\n \r\n \r\n \r\n );\r\n }\r\n const innerNavLinkClasses =\r\n classes.collapseItemLink +\r\n \" \" +\r\n cx({\r\n [\" \" + classes[color]]: activeRoute(prop.layout + prop.path),\r\n });\r\n const collapseItemMini =\r\n classes.collapseItemMini +\r\n \" \" +\r\n cx({\r\n [classes.collapseItemMiniRTL]: rtlActive,\r\n });\r\n const navLinkClasses =\r\n classes.itemLink +\r\n \" \" +\r\n cx({\r\n [\" \" + classes[color]]: activeRoute(prop.layout + prop.path),\r\n });\r\n\r\n const itemIcon =\r\n classes.itemIcon +\r\n \" \" +\r\n cx({\r\n [classes.itemIconRTL]: rtlActive,\r\n });\r\n\r\n\r\n return (\r\n \r\n {\r\n prop.href ?\r\n \r\n {prop.icon !== undefined ? (typeof prop.icon === \"string\" ? \r\n ( {prop.icon}) \r\n : \r\n ( )\r\n ) \r\n : \r\n (\r\n {prop.mini}\r\n )\r\n }\r\n \r\n \r\n \r\n :\r\n \r\n
\r\n {prop.icon !== undefined ? (\r\n typeof prop.icon === \"string\" ? (\r\n {prop.icon}\r\n ) : (\r\n \r\n )\r\n ) : (\r\n \r\n {prop.mini}\r\n \r\n )}\r\n \r\n \r\n }\r\n \r\n );\r\n });\r\n };\r\n const { image, routes, bgColor, rtlActive } = props;\r\n\r\n const userWrapperClass =\r\n classes.user +\r\n \" \" +\r\n cx({\r\n [classes.whiteAfter]: bgColor === \"white\",\r\n });\r\n\r\n const collapseItemText =\r\n classes.collapseItemText +\r\n \" \" +\r\n cx({\r\n [classes.collapseItemTextMini]: props.miniActive && miniActive,\r\n });\r\n\r\n var user = (\r\n
\r\n {graphData && }\r\n \r\n {graphData && !(props.miniActive && miniActive) && graphData.displayName}\r\n \r\n
\r\n );\r\n var links = {createLinks(routes)};\r\n\r\n const logoNormal =\r\n classes.logoNormal +\r\n \" \" +\r\n cx({\r\n [classes.logoNormalSidebarMini]: props.miniActive && miniActive,\r\n [classes.logoNormalSidebarMiniRTL]:\r\n rtlActive && props.miniActive && miniActive,\r\n [classes.logoNormalRTL]: rtlActive,\r\n });\r\n\r\n var brand = (\r\n
\r\n \r\n \"logo\"\r\n \r\n Notify\r\n
\r\n );\r\n const drawerPaper =\r\n classes.drawerPaper +\r\n \" \" +\r\n cx({\r\n [classes.drawerPaperMini]: props.miniActive && miniActive,\r\n [classes.drawerPaperRTL]: rtlActive,\r\n });\r\n const sidebarWrapper =\r\n classes.sidebarWrapper +\r\n \" \" +\r\n cx({\r\n [classes.drawerPaperMini]: props.miniActive && miniActive,\r\n [classes.sidebarWrapperWithPerfectScrollbar]:\r\n navigator.platform.indexOf(\"Win\") > -1,\r\n });\r\n return (\r\n
\r\n \r\n {brand}\r\n \r\n {/* Background Image */}\r\n {image !== undefined ? (\r\n \r\n ) : null}\r\n \r\n
\r\n );\r\n}\r\n\r\nSidebar.defaultProps = {\r\n bgColor: \"blue\",\r\n};\r\n\r\nSidebar.propTypes = {\r\n bgColor: PropTypes.oneOf([\"white\", \"black\", \"blue\"]),\r\n rtlActive: PropTypes.bool,\r\n color: PropTypes.oneOf([\r\n \"white\",\r\n \"red\",\r\n \"orange\",\r\n \"green\",\r\n \"blue\",\r\n \"purple\",\r\n \"rose\",\r\n ]),\r\n logo: PropTypes.string,\r\n image: PropTypes.string,\r\n routes: PropTypes.arrayOf(PropTypes.object),\r\n miniActive: PropTypes.bool,\r\n open: PropTypes.bool,\r\n handleDrawerToggle: PropTypes.func,\r\n};\r\n\r\nSidebarWrapper.propTypes = {\r\n className: PropTypes.string,\r\n user: PropTypes.object,\r\n headerLinks: PropTypes.object,\r\n links: PropTypes.object,\r\n};\r\n\r\nexport default Sidebar;\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD8AAAAeCAYAAACbr8ZMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzJEMUYzMTRCRjYxMTFFNUFBNUI5QkQ5NDZCMTYyNjAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzJEMUYzMTVCRjYxMTFFNUFBNUI5QkQ5NDZCMTYyNjAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3MkQxRjMxMkJGNjExMUU1QUE1QjlCRDk0NkIxNjI2MCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3MkQxRjMxM0JGNjExMUU1QUE1QjlCRDk0NkIxNjI2MCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pq8JHHEAAANjSURBVHja1JldbExBFMfvblWXNmlfWDSRUIkHIXggUl4kjY8gGwkRDx6akrJEREO8VCoiHsQ3pb4eJFS8SKj0qUqKNH1AQrpCEK1tqEp9BNtuXf/Rs8nNMfdrdrK5+09+aZ2Zezrn3jMzZ4ZhmqahmXlgAAyCJBgCnSCi4Ctujkr4+QTSYA21FYEukKJ2QR/4CF6BW2A9CNn51x24GNAT83+JwRQr+KuT+NpAbePBW9Ndb0ClzH/Y0KsjYK7EPkL41bDE9pt+psGQBx/TQAeo4Q06g4+B7UbuFAHFPvpfACuthjGaBjIJNBq5VQrcoS/7zZJhhWAhKJc8cwK0ZbJHV/An6QXkOvhah/YGUM9sMyj9T+tK+21gnRE87Se4Vuma83Myb9GiP/RVgqDD4B2zLQBlOoI/A0LMdgzcCEjwYjd4zmylYEK2wYu3upjZXoM6UBKg9C+VbLupbIJfCvZK7Dssq78OhbJ8fj5YwmxiGvSoBl9GeybXUdBKv5saV3RVjQMXJfZ7mfGpbHVir5zObE/Bbh9pWGFTvVm/eC+IuvSZSUGmLVVfZlE7AKZKnruuWuRsIvgc2uLDh6iyrnno55Y9osK7S0WOVzWDdpXgK2h159oDunz4GdE034voq3vVC7BZtbZvlKziLTTXczWPrRoEnR77PgSV4IdK8PtAFbN9BlsVBq1zGxQHqX6H9g80JcWW/JU3ekl7cUg4ZLOt9SgMuBtckg2GpfwADXq5Q79eGkezpG2jdXGTryrulxPPJBcETS7PdbD+CcWbnBrJ345J+p2T9Gt18++W9sepfrcqAeI5qs5KfKR/N7MtA6ecHnIKfrXNkbHWZY/WKa/FUppOl7KXssJv8JNBk80x8b4RTLXbHGFFNTrRT/BnJfX5I6qagiwxvsfMVm53yxS2SZUYs30H1UZ+qJrv59Ba2RTmwc+mRY5rJ3iZJ8EnaLyyM8ksp+DPgwJmExcTV4z80mVwk9nG8vS3Bi8KmUXsgfc2q2g+KE5FkFXibN/Ag6+iEpZLBP4lT4Pvt/lw9XQZ8y/4KeCqzeVEi+IfjrB/F0imkxcVevDtpNs017lEvNEwpXuUDgFJKizafFxO2L11g/wNU/ao/HfVL/rZRz6Fj58+fewCD4zRW+UkxSk++MG/AgwA9FD+8MvkDz4AAAAASUVORK5CYII=\"","export var TaskType = {\r\n NewStarter: 1,\r\n ProjectCreated: 2,\r\n ProjectOnboarding: 3,\r\n ProjectUpdate: 16,\r\n DocumentPosted: 4,\r\n DocumentApproved: 5,\r\n DocumentRejected: 6,\r\n MilestoneAchieved: 7,\r\n MilestoneDue: 8,\r\n MilestoneMissed: 9,\r\n RiskAdded: 10,\r\n StageDates: 11,\r\n BidProjectWin: 12,\r\n ProjectHandover: 13,\r\n\r\n //Below: To be used for custom notifications\r\n FunctionalGroup: 14,\r\n SoftwareUpdate: 15,\r\n NewsUpdate: 17,\r\n DisasterRecoveryUpdate: 18,\r\n ConfirmedLeaver: 19,\r\n PolicyUpdate: 20,\r\n}\r\n\r\nexport var ActionItemType ={\r\n AcknowledgeOccupationalRisk: 17,\r\n OccupationalRisk: 19,\r\n ExistsInMyProjects: 998,\r\n AddToMyProjects: 999\r\n}\r\n\r\nexport var TaskStatus = {\r\n /** Default */\r\n NEW: 1,\r\n ONHOLD: 2,\r\n DELETED: 3,\r\n /** Task: Hide */\r\n DISMISSED: 4,\r\n /** Task: Read (as opposed to unread) */\r\n UPDATED: 5,\r\n}\r\n\r\nexport var Colors = {\r\n Red: \"#D25D48\",\r\n Blue: \"#4799B2\",\r\n DarkBlue: \"#00566F\",\r\n Green: \"#22905D\",\r\n Background: \"#eeeeee\"\r\n}","import { getTasksToken } from \"./tokenService\"\r\nimport azureGatewayService from \"./azureGatewayService\"\r\nimport { TaskStatus } from \"enums\";\r\n\r\nconst { get, post, put, del } = azureGatewayService(getTasksToken);\r\n\r\n/**\r\n * @returns {Promise}\r\n */\r\nexport const acknowledgeRisk = async (taskId) => await post(`/OccupationalRiskRegister`, { id: taskId })\r\n\r\n/**\r\n * @param {string} taskId\r\n * @param {number} statusTypeId\r\n */\r\nexport const updateTask = async function updateTask(taskId, statusTypeId) {\r\n return put(`/tasks/${taskId}`,{statusTypeId})\r\n}\r\n\r\n/**\r\n * @param {string[]} taskIds\r\n * @param {number} statusTypeId\r\n */\r\nexport const updateTasks = async function updateTask(taskIds, statusTypeId) {\r\n return put(`/tasks`,{statusTypeId, taskIds})\r\n}\r\n\r\n/**\r\n * @returns {Promise}\r\n */\r\nexport const getTasks = async function getTasks(page=1,itemSize=20, taskTypes = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], statusTypes = [1,2,5], officeIds = [], searchText = \"\") {\r\n return post(`/tasksSearch`, { taskTypes, statusTypes, itemSize, page, officeIds, searchText});\r\n}\r\n\r\n/**\r\n * @param {number[]} taskStatuses\r\n * @returns {Promise}\r\n */\r\nexport const getTasksSummary = async function getTasksSummary(taskStatuses=[TaskStatus.NEW,TaskStatus.UPDATED], officeIds = [], searchText=\"\") {\r\n if(taskStatuses.length === 0) {\r\n taskStatuses = [TaskStatus.NEW,TaskStatus.UPDATED];\r\n }\r\n return get(`/UserTaskTypes?statusTypes=${taskStatuses.join(\"&statusTypes=\")}&officeIds=${officeIds.join(\"&officeIds=\")}&searchText=${encodeURIComponent(searchText)}`);\r\n}\r\n\r\n/**\r\n * @returns {Promise}\r\n */\r\n export const getCommentsTaskId = async function getCommentsTaskId(taskId) {\r\n return get(`/Comments/${taskId}`);\r\n}\r\n\r\n/**\r\n * Requires both comment (obj.Note) and TaskId (obj.TaskId)\r\n * @param {TaskNote} comment\r\n * @returns {Promise}\r\n */\r\n export const postComment = async function postComment(comment) {\r\n return post(\"/Comments\",comment);\r\n}\r\n\r\n/**\r\n * @param {TaskNote} comment\r\n * @returns {Promise}\r\n */\r\n export const updateComment = async function updateComment(comment) {\r\n return put(`/Comments/${comment.id}`,comment)\r\n}\r\n/**\r\n * @param {number} taskId\r\n * @returns {Promise}\r\n */\r\n export const deleteComment = async function deleteComment(taskId) {\r\n return del(`/Comments/${taskId}`)\r\n}\r\n\r\n/**\r\n * @param {POSTCustomTaskDto} task\r\n * @returns {Promise}\r\n */\r\n export const postCustomTask = async function postCustomTask(task) {\r\n return getTasksToken()\r\n .then(options => fetch(\"https://ahrgatewayapi.azurewebsites.net/CustomTasks\", {...options, \r\n method: 'POST',\r\n body: JSON.stringify(task)\r\n }))\r\n .then(res => res.text())\r\n}\r\n\r\n/**\r\n * @param {number} taskId\r\n * @returns {Promise}\r\n */\r\n export const getIsMyProjects = async function addToMyProjects(taskId) {\r\n return get(`/MyProjects/${taskId}`)\r\n}\r\n\r\n/**\r\n * @param {number} taskId\r\n * @returns {Promise}\r\n */\r\n export const addToMyProjects = async function addToMyProjects(taskId) {\r\n return post(`/MyProjects`,{TaskId: taskId})\r\n}\r\n\r\n/**\r\n * @param {number} taskId\r\n * @param {boolean} isPinned\r\n * @returns {Promise}\r\n */\r\n export const updateTaskPinned = async function addToMyProjects(taskId, isPinned) {\r\n return put(`/Pinned/${taskId}`, { pinned: isPinned })\r\n}\r\n\r\n/**\r\n * @param {number} taskId\r\n * @returns {Promise}\r\n */\r\n export const getTaskActionItems = async function getTaskActionItems(taskId) {\r\n return get(`/TaskActionItems/${taskId}`)\r\n}\r\n\r\n/**\r\n * @param {number} taskId\r\n * @returns {Promise}\r\n */\r\n export const getTaskActionItemCustoms = async function getTaskActionItemCustoms(taskId) {\r\n return get(`/TaskActionItems/${taskId}`)\r\n}","import React from \"react\";\r\n// nodejs library to set properties for components\r\nimport PropTypes from \"prop-types\";\r\n// @material-ui/core components\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\n\r\nconst styles = {\r\n grid: {\r\n margin: \"0 -15px\",\r\n width: \"calc(100% + 30px)\",\r\n // '&:before,&:after':{\r\n // display: 'table',\r\n // content: '\" \"',\r\n // },\r\n // '&:after':{\r\n // clear: 'both',\r\n // }\r\n },\r\n};\r\n\r\nconst useStyles = makeStyles(styles);\r\n\r\nexport default function GridContainer(props) {\r\n const classes = useStyles();\r\n const { children, className, ...rest } = props;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nGridContainer.propTypes = {\r\n className: PropTypes.string,\r\n children: PropTypes.node,\r\n};\r\n","import React from \"react\";\r\n// nodejs library to set properties for components\r\nimport PropTypes from \"prop-types\";\r\n// @material-ui/core components\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\n\r\nconst styles = {\r\n grid: {\r\n padding: \"0 15px !important\",\r\n },\r\n};\r\n\r\nconst useStyles = makeStyles(styles);\r\n\r\nexport default function GridItem(props) {\r\n const classes = useStyles();\r\n const { children, className, ...rest } = props;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nGridItem.propTypes = {\r\n className: PropTypes.string,\r\n children: PropTypes.node,\r\n};\r\n","import {\r\n primaryColor,\r\n infoColor,\r\n successColor,\r\n dangerColor,\r\n warningColor,\r\n roseColor,\r\n whiteColor,\r\n blackColor,\r\n grayColor,\r\n hexToRgb,\r\n} from \"assets/jss/material-dashboard-pro-react.js\";\r\n\r\nconst cardStyle = {\r\n card: {\r\n border: \"0\",\r\n marginBottom: \"30px\",\r\n marginTop: \"30px\",\r\n borderRadius: \"6px\",\r\n color: \"rgba(\" + hexToRgb(blackColor) + \", 0.87)\",\r\n background: whiteColor,\r\n width: \"100%\",\r\n boxShadow: \"0 1px 4px 0 rgba(\" + hexToRgb(blackColor) + \", 0.14)\",\r\n position: \"relative\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n minWidth: \"0\",\r\n wordWrap: \"break-word\",\r\n fontSize: \".875rem\",\r\n },\r\n cardPlain: {\r\n background: \"transparent\",\r\n boxShadow: \"none\",\r\n },\r\n cardProfile: {\r\n marginTop: \"30px\",\r\n textAlign: \"center\",\r\n },\r\n cardBlog: {\r\n marginTop: \"60px\",\r\n },\r\n cardRaised: {\r\n boxShadow:\r\n \"0 16px 38px -12px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.56), 0 4px 25px 0px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.12), 0 8px 10px -5px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.2)\",\r\n },\r\n cardBackground: {\r\n backgroundPosition: \"center center\",\r\n backgroundSize: \"cover\",\r\n textAlign: \"center\",\r\n \"&:after\": {\r\n position: \"absolute\",\r\n zIndex: \"1\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n display: \"block\",\r\n left: \"0\",\r\n top: \"0\",\r\n content: '\"\"',\r\n backgroundColor: \"rgba(\" + hexToRgb(blackColor) + \", 0.56)\",\r\n borderRadius: \"6px\",\r\n },\r\n \"& small\": {\r\n color: \"rgba(\" + hexToRgb(whiteColor) + \", 0.7) !important\",\r\n },\r\n },\r\n cardPricing: {\r\n textAlign: \"center\",\r\n \"&:after\": {\r\n backgroundColor: \"rgba(\" + hexToRgb(blackColor) + \", 0.7) !important\",\r\n },\r\n \"& ul\": {\r\n listStyle: \"none\",\r\n padding: 0,\r\n maxWidth: \"240px\",\r\n margin: \"10px auto\",\r\n },\r\n \"& ul li\": {\r\n color: grayColor[0],\r\n textAlign: \"center\",\r\n padding: \"12px 0px\",\r\n borderBottom: \"1px solid rgba(\" + hexToRgb(grayColor[0]) + \",0.3)\",\r\n },\r\n \"& ul li:last-child\": {\r\n border: 0,\r\n },\r\n \"& ul li b\": {\r\n color: grayColor[2],\r\n },\r\n \"& h1\": {\r\n marginTop: \"30px\",\r\n },\r\n \"& h1 small\": {\r\n display: \"inline-flex\",\r\n height: 0,\r\n fontSize: \"18px\",\r\n },\r\n \"& h1 small:first-child\": {\r\n position: \"relative\",\r\n top: \"-17px\",\r\n fontSize: \"26px\",\r\n },\r\n \"& ul li svg, & ul li .fab,& ul li .fas,& ul li .far,& ul li .fal,& ul li .material-icons\": {\r\n position: \"relative\",\r\n top: \"7px\",\r\n },\r\n },\r\n cardPricingColor: {\r\n \"& ul li\": {\r\n color: whiteColor,\r\n borderColor: \"rgba(\" + hexToRgb(whiteColor) + \",0.3)\",\r\n \"& b, & svg,& .fab,& .fas,& .far,& .fal,& .material-icons\": {\r\n color: whiteColor,\r\n fontWeight: \"700\",\r\n },\r\n },\r\n },\r\n cardProduct: {\r\n marginTop: \"30px\",\r\n },\r\n primary: {\r\n background:\r\n \"linear-gradient(60deg,\" + primaryColor[1] + \",\" + primaryColor[4] + \")\",\r\n \"& h1 small\": {\r\n color: \"rgba(\" + hexToRgb(whiteColor) + \", 0.8)\",\r\n },\r\n color: whiteColor,\r\n },\r\n info: {\r\n background:\r\n \"linear-gradient(60deg,\" + infoColor[1] + \",\" + infoColor[4] + \")\",\r\n \"& h1 small\": {\r\n color: \"rgba(\" + hexToRgb(whiteColor) + \", 0.8)\",\r\n },\r\n color: whiteColor,\r\n },\r\n success: {\r\n background:\r\n \"linear-gradient(60deg,\" + successColor[1] + \",\" + successColor[4] + \")\",\r\n \"& h1 small\": {\r\n color: \"rgba(\" + hexToRgb(whiteColor) + \", 0.8)\",\r\n },\r\n color: whiteColor,\r\n },\r\n warning: {\r\n background:\r\n \"linear-gradient(60deg,\" + warningColor[1] + \",\" + warningColor[4] + \")\",\r\n \"& h1 small\": {\r\n color: \"rgba(\" + hexToRgb(whiteColor) + \", 0.8)\",\r\n },\r\n color: whiteColor,\r\n },\r\n danger: {\r\n background:\r\n \"linear-gradient(60deg,\" + dangerColor[1] + \",\" + dangerColor[4] + \")\",\r\n \"& h1 small\": {\r\n color: \"rgba(\" + hexToRgb(whiteColor) + \", 0.8)\",\r\n },\r\n color: whiteColor,\r\n },\r\n rose: {\r\n background:\r\n \"linear-gradient(60deg,\" + roseColor[1] + \",\" + roseColor[4] + \")\",\r\n \"& h1 small\": {\r\n color: \"rgba(\" + hexToRgb(whiteColor) + \", 0.8)\",\r\n },\r\n color: whiteColor,\r\n },\r\n cardChart: {\r\n \"& p\": {\r\n marginTop: \"0px\",\r\n paddingTop: \"0px\",\r\n },\r\n },\r\n cardLogin: {\r\n transform: \"translate3d(\" + hexToRgb(blackColor) + \")\",\r\n transition: \"all 300ms linear\",\r\n },\r\n};\r\n\r\nexport default cardStyle;\r\n","import React from \"react\";\r\n// nodejs library that concatenates classes\r\nimport classNames from \"classnames\";\r\n// nodejs library to set properties for components\r\nimport PropTypes from \"prop-types\";\r\n// @material-ui/core components\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n// @material-ui/icons\r\n\r\n// core components\r\nimport styles from \"../../../assets/jss/material-dashboard-pro-react/components/cardStyle.js\";\r\n\r\n// @ts-ignore\r\nconst useStyles = makeStyles(styles);\r\n\r\nexport default function Card(props) {\r\n const classes = useStyles();\r\n const { className,children,plain,profile,blog,raised,background,pricing,color,product,testimonial,chart,login,onMouseEnter,onMouseLeave,...rest} = props;\r\n const cardClasses = classNames({\r\n [classes.card]: true,\r\n [classes.cardPlain]: plain,\r\n [classes.cardProfile]: profile || testimonial,\r\n [classes.cardBlog]: blog,\r\n [classes.cardRaised]: raised,\r\n [classes.cardBackground]: background,\r\n [classes.cardPricingColor]:\r\n (pricing && color !== undefined) || (pricing && background !== undefined),\r\n [classes[color]]: color,\r\n [classes.cardPricing]: pricing,\r\n [classes.cardProduct]: product,\r\n [classes.cardChart]: chart,\r\n [classes.cardLogin]: login,\r\n [className]: className !== undefined,\r\n });\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n}\r\n\r\nCard.propTypes = {\r\n className: PropTypes.string,\r\n plain: PropTypes.bool,\r\n profile: PropTypes.bool,\r\n blog: PropTypes.bool,\r\n raised: PropTypes.bool,\r\n background: PropTypes.bool,\r\n pricing: PropTypes.bool,\r\n testimonial: PropTypes.bool,\r\n color: PropTypes.oneOf([\r\n \"primary\",\r\n \"info\",\r\n \"success\",\r\n \"warning\",\r\n \"danger\",\r\n \"rose\",\r\n ]),\r\n product: PropTypes.bool,\r\n chart: PropTypes.bool,\r\n login: PropTypes.bool,\r\n children: PropTypes.node,\r\n};\r\n","import {\r\n whiteColor,\r\n hexToRgb,\r\n} from \"assets/jss/material-dashboard-pro-react.js\";\r\n\r\nconst cardBodyStyle = {\r\n cardBody: {\r\n padding: \"0.9375rem 20px\",\r\n flex: \"1 1 auto\",\r\n WebkitBoxFlex: \"1\",\r\n position: \"relative\",\r\n },\r\n cardBodyBackground: {\r\n position: \"relative\",\r\n zIndex: \"2\",\r\n minHeight: \"280px\",\r\n paddingTop: \"40px\",\r\n paddingBottom: \"40px\",\r\n maxWidth: \"440px\",\r\n margin: \"0 auto\",\r\n },\r\n cardBodyPlain: {\r\n paddingLeft: \"5px\",\r\n paddingRight: \"5px\",\r\n },\r\n cardBodyFormHorizontal: {\r\n paddingLeft: \"15px\",\r\n paddingRight: \"15px\",\r\n \"& form\": {\r\n margin: \"0\",\r\n },\r\n },\r\n cardPricing: {\r\n padding: \"15px!important\",\r\n margin: \"0px!important\",\r\n },\r\n cardSignup: {\r\n padding: \"0px 30px 0px 30px\",\r\n },\r\n cardBodyColor: {\r\n borderRadius: \"6px\",\r\n \"& h1,& h2,& h3\": {\r\n \"& small\": {\r\n color: \"rgba(\" + hexToRgb(whiteColor) + \", 0.8)\",\r\n },\r\n },\r\n },\r\n cardBodyProfile: {\r\n marginTop: \"15px\",\r\n },\r\n cardBodyCalendar: {\r\n padding: \"0px !important\",\r\n },\r\n};\r\n\r\nexport default cardBodyStyle;\r\n","import React from \"react\";\r\n// nodejs library that concatenates classes\r\nimport classNames from \"classnames\";\r\n// nodejs library to set properties for components\r\nimport PropTypes from \"prop-types\";\r\n// @material-ui/core components\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n// @material-ui/icons\r\n\r\n// core components\r\nimport styles from \"assets/jss/material-dashboard-pro-react/components/cardBodyStyle.js\";\r\n\r\nconst useStyles = makeStyles(styles);\r\n\r\nexport default function CardBody(props) {\r\n const classes = useStyles();\r\n const {\r\n className,\r\n children,\r\n background,\r\n plain,\r\n formHorizontal,\r\n pricing,\r\n signup,\r\n color,\r\n profile,\r\n calendar,\r\n ...rest\r\n } = props;\r\n const cardBodyClasses = classNames({\r\n [classes.cardBody]: true,\r\n [classes.cardBodyBackground]: background,\r\n [classes.cardBodyPlain]: plain,\r\n [classes.cardBodyFormHorizontal]: formHorizontal,\r\n [classes.cardPricing]: pricing,\r\n [classes.cardSignup]: signup,\r\n [classes.cardBodyColor]: color,\r\n [classes.cardBodyProfile]: profile,\r\n [classes.cardBodyCalendar]: calendar,\r\n [className]: className !== undefined,\r\n });\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n}\r\n\r\nCardBody.propTypes = {\r\n className: PropTypes.string,\r\n background: PropTypes.bool,\r\n plain: PropTypes.bool,\r\n formHorizontal: PropTypes.bool,\r\n pricing: PropTypes.bool,\r\n signup: PropTypes.bool,\r\n color: PropTypes.bool,\r\n profile: PropTypes.bool,\r\n calendar: PropTypes.bool,\r\n children: PropTypes.node,\r\n};\r\n","import {\r\n warningCardHeader,\r\n successCardHeader,\r\n dangerCardHeader,\r\n infoCardHeader,\r\n primaryCardHeader,\r\n roseCardHeader,\r\n whiteColor,\r\n blackColor,\r\n hexToRgb,\r\n} from \"assets/jss/material-dashboard-pro-react.js\";\r\nconst cardHeaderStyle = {\r\n cardHeader: {\r\n padding: \"0.75rem 1.25rem\",\r\n marginBottom: \"0\",\r\n borderBottom: \"none\",\r\n background: \"transparent\",\r\n zIndex: \"3 !important\",\r\n \"&$cardHeaderPlain,&$cardHeaderImage,&$cardHeaderContact,&$cardHeaderSignup,&$cardHeaderIcon,&$cardHeaderStats,&$warningCardHeader,&$successCardHeader,&$dangerCardHeader,&$infoCardHeader,&$primaryCardHeader,&$roseCardHeader\": {\r\n margin: \"0 15px\",\r\n padding: \"0\",\r\n position: \"relative\",\r\n color: whiteColor,\r\n },\r\n \"&:first-child\": {\r\n borderRadius: \"calc(.25rem - 1px) calc(.25rem - 1px) 0 0\",\r\n },\r\n \"&$warningCardHeader,&$successCardHeader,&$dangerCardHeader,&$infoCardHeader,&$primaryCardHeader,&$roseCardHeader\": {\r\n \"&:not($cardHeaderIcon):not($cardHeaderImage):not($cardHeaderText)\": {\r\n borderRadius: \"3px\",\r\n marginTop: \"-20px\",\r\n padding: \"15px\",\r\n },\r\n },\r\n \"&$cardHeaderStats svg\": {\r\n fontSize: \"36px\",\r\n lineHeight: \"56px\",\r\n textAlign: \"center\",\r\n width: \"36px\",\r\n height: \"36px\",\r\n margin: \"10px 10px 4px\",\r\n },\r\n \"&$cardHeaderStats .fab,&$cardHeaderStats .fas,&$cardHeaderStats .far,&$cardHeaderStats .fal,&$cardHeaderStats .material-icons\": {\r\n fontSize: \"36px\",\r\n lineHeight: \"56px\",\r\n width: \"56px\",\r\n height: \"56px\",\r\n textAlign: \"center\",\r\n overflow: \"unset\",\r\n marginBottom: \"1px\",\r\n },\r\n \"&$cardHeaderStats$cardHeaderIcon\": {\r\n textAlign: \"right\",\r\n },\r\n \"&$cardHeaderImage\": {\r\n marginLeft: \"15px\",\r\n marginRight: \"15px\",\r\n marginTop: \"-30px\",\r\n borderRadius: \"6px\",\r\n },\r\n \"&$cardHeaderText\": {\r\n display: \"inline-block\",\r\n },\r\n },\r\n cardHeaderPlain: {\r\n marginLeft: \"0px\",\r\n marginRight: \"0px\",\r\n \"&$cardHeaderImage\": {\r\n margin: \"0 !important\",\r\n },\r\n },\r\n cardHeaderImage: {\r\n position: \"relative\",\r\n padding: \"0\",\r\n zIndex: \"1\",\r\n \"& img\": {\r\n width: \"100%\",\r\n borderRadius: \"6px\",\r\n pointerEvents: \"none\",\r\n boxShadow:\r\n \"0 5px 15px -8px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.24), 0 8px 10px -5px rgba(\" +\r\n hexToRgb(blackColor) +\r\n \", 0.2)\",\r\n },\r\n \"& a\": {\r\n display: \"block\",\r\n },\r\n },\r\n cardHeaderContact: {\r\n margin: \"0 15px\",\r\n marginTop: \"-20px\",\r\n },\r\n cardHeaderSignup: {\r\n marginLeft: \"20px\",\r\n marginRight: \"20px\",\r\n marginTop: \"-40px\",\r\n padding: \"20px 0\",\r\n width: \"100%\",\r\n marginBottom: \"15px\",\r\n },\r\n cardHeaderStats: {\r\n \"& $cardHeaderIcon\": {\r\n textAlign: \"right\",\r\n },\r\n \"& h1,& h2,& h3,& h4,& h5,& h6\": {\r\n margin: \"0 !important\",\r\n },\r\n },\r\n cardHeaderIcon: {\r\n \"&$warningCardHeader,&$successCardHeader,&$dangerCardHeader,&$infoCardHeader,&$primaryCardHeader,&$roseCardHeader\": {\r\n background: \"transparent\",\r\n boxShadow: \"none\",\r\n },\r\n \"& .fab,& .fas,& .far,& .fal,& .material-icons\": {\r\n width: \"33px\",\r\n height: \"33px\",\r\n textAlign: \"center\",\r\n lineHeight: \"33px\",\r\n },\r\n \"& svg\": {\r\n width: \"24px\",\r\n height: \"24px\",\r\n textAlign: \"center\",\r\n lineHeight: \"33px\",\r\n margin: \"5px 4px 0px\",\r\n },\r\n },\r\n cardHeaderText: {},\r\n warningCardHeader: {\r\n color: whiteColor,\r\n \"&:not($cardHeaderText):not($cardHeaderIcon)\": {\r\n ...warningCardHeader,\r\n },\r\n },\r\n successCardHeader: {\r\n color: whiteColor,\r\n \"&:not($cardHeaderText):not($cardHeaderIcon)\": {\r\n ...successCardHeader,\r\n },\r\n },\r\n dangerCardHeader: {\r\n color: whiteColor,\r\n \"&:not($cardHeaderText):not($cardHeaderIcon)\": {\r\n ...dangerCardHeader,\r\n },\r\n },\r\n infoCardHeader: {\r\n color: whiteColor,\r\n \"&:not($cardHeaderText):not($cardHeaderIcon)\": {\r\n ...infoCardHeader,\r\n },\r\n },\r\n primaryCardHeader: {\r\n color: whiteColor,\r\n \"&:not($cardHeaderText):not($cardHeaderIcon)\": {\r\n ...primaryCardHeader,\r\n },\r\n },\r\n roseCardHeader: {\r\n color: whiteColor,\r\n \"&:not($cardHeaderText):not($cardHeaderIcon)\": {\r\n ...roseCardHeader,\r\n },\r\n },\r\n};\r\n\r\nexport default cardHeaderStyle;\r\n","import React from \"react\";\r\n// nodejs library that concatenates classes\r\nimport classNames from \"classnames\";\r\n// nodejs library to set properties for components\r\nimport PropTypes from \"prop-types\";\r\n// @material-ui/core components\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n// @material-ui/icons\r\n\r\n// core components\r\nimport styles from \"assets/jss/material-dashboard-pro-react/components/cardHeaderStyle.js\";\r\n\r\nconst useStyles = makeStyles(styles);\r\n\r\nexport default function CardHeader(props) {\r\n const classes = useStyles();\r\n const {\r\n className,\r\n children,\r\n color,\r\n plain,\r\n image,\r\n contact,\r\n signup,\r\n stats,\r\n icon,\r\n text,\r\n ...rest\r\n } = props;\r\n const cardHeaderClasses = classNames({\r\n [classes.cardHeader]: true,\r\n [classes[color + \"CardHeader\"]]: color,\r\n [classes.cardHeaderPlain]: plain,\r\n [classes.cardHeaderImage]: image,\r\n [classes.cardHeaderContact]: contact,\r\n [classes.cardHeaderSignup]: signup,\r\n [classes.cardHeaderStats]: stats,\r\n [classes.cardHeaderIcon]: icon,\r\n [classes.cardHeaderText]: text,\r\n [className]: className !== undefined,\r\n });\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n}\r\n\r\nCardHeader.propTypes = {\r\n className: PropTypes.string,\r\n color: PropTypes.oneOf([\r\n \"warning\",\r\n \"success\",\r\n \"danger\",\r\n \"info\",\r\n \"primary\",\r\n \"rose\",\r\n ]),\r\n plain: PropTypes.bool,\r\n image: PropTypes.bool,\r\n contact: PropTypes.bool,\r\n signup: PropTypes.bool,\r\n stats: PropTypes.bool,\r\n icon: PropTypes.bool,\r\n text: PropTypes.bool,\r\n children: PropTypes.node,\r\n};\r\n","import {\r\n warningCardHeader,\r\n successCardHeader,\r\n dangerCardHeader,\r\n infoCardHeader,\r\n primaryCardHeader,\r\n roseCardHeader,\r\n darkBlueCardHeader,\r\n grayColor,\r\n} from \"assets/jss/material-dashboard-pro-react.js\";\r\nconst cardIconStyle = {\r\n cardIcon: {\r\n \"&$warningCardHeader,&$successCardHeader,&$dangerCardHeader,&$infoCardHeader,&$primaryCardHeader,&$roseCardHeader,&$darkBlueCardHeader\": {\r\n borderRadius: \"3px\",\r\n backgroundColor: grayColor[0],\r\n padding: \"15px\",\r\n marginTop: \"-20px\",\r\n marginRight: \"15px\",\r\n float: \"left\",\r\n },\r\n },\r\n warningCardHeader,\r\n successCardHeader,\r\n dangerCardHeader,\r\n infoCardHeader,\r\n primaryCardHeader,\r\n darkBlueCardHeader,\r\n roseCardHeader,\r\n};\r\n\r\nexport default cardIconStyle;\r\n","import React from \"react\";\r\n// nodejs library that concatenates classes\r\nimport classNames from \"classnames\";\r\n// nodejs library to set properties for components\r\nimport PropTypes from \"prop-types\";\r\n// @material-ui/core components\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n// @material-ui/icons\r\n\r\n// core components\r\nimport styles from \"assets/jss/material-dashboard-pro-react/components/cardIconStyle.js\";\r\n\r\nconst useStyles = makeStyles(styles);\r\n\r\nexport default function CardIcon(props) {\r\n const classes = useStyles();\r\n const { className, children, color, ...rest } = props;\r\n const cardIconClasses = classNames({\r\n [classes.cardIcon]: true,\r\n [classes[color + \"CardHeader\"]]: color,\r\n [className]: className !== undefined,\r\n });\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n}\r\n\r\nCardIcon.propTypes = {\r\n className: PropTypes.string,\r\n color: PropTypes.oneOf([\r\n \"warning\",\r\n \"success\",\r\n \"danger\",\r\n \"darkBlue\",\r\n \"info\",\r\n \"primary\",\r\n \"rose\",\r\n ]),\r\n children: PropTypes.node,\r\n};\r\n","import { Person as PersonIcon, Business as BusinessIcon, PlaylistAddCheck, DateRange, CallMerge, Notifications } from \"@material-ui/icons\";\r\nimport { TaskType } from \"enums\";\r\nimport React from \"react\";\r\nimport { BrowserUpdated, CalendarMonth, DoorBack, Event, EventAvailable, EventBusy, Gavel, Group, Handshake, Newspaper, Policy, PostAdd, Report, Storage, SystemUpdate, ThumbDown, ThumbUp } from \"@mui/icons-material/index\";\r\n\r\n/**\r\n * @param {Object} props \r\n * @param {Number} props.taskType \r\n * @returns \r\n */\r\nexport default function TaskIcon({taskType}, style={}) {\r\n switch (taskType) {\r\n case TaskType.NewStarter:\r\n return \r\n case TaskType.ProjectCreated:\r\n return \r\n case TaskType.ProjectOnboarding:\r\n return \r\n case TaskType.DocumentPosted:\r\n return \r\n case TaskType.DocumentApproved:\r\n return \r\n case TaskType.DocumentRejected:\r\n return \r\n case TaskType.MilestoneAchieved:\r\n return \r\n case TaskType.MilestoneDue:\r\n return \r\n case TaskType.MilestoneMissed:\r\n return \r\n case TaskType.RiskAdded:\r\n return \r\n case TaskType.StageDates:\r\n return \r\n case TaskType.BidProjectWin:\r\n return \r\n case TaskType.ProjectHandover:\r\n return \r\n case TaskType.FunctionalGroup:\r\n return \r\n case TaskType.SoftwareUpdate:\r\n return \r\n case TaskType.ProjectUpdate:\r\n return \r\n case TaskType.NewsUpdate:\r\n return \r\n case TaskType.DisasterRecoveryUpdate:\r\n return \r\n case TaskType.ConfirmedLeaver:\r\n return \r\n case TaskType.PolicyUpdate:\r\n return \r\n default:\r\n return \r\n }\r\n}","import React from \"react\";\r\nimport { useEffect, useState } from \"react\";\r\nimport Card from \"../Card/Card\";\r\nimport CardBody from \"../Card/CardBody\";\r\nimport CardHeader from \"../Card/CardHeader\";\r\nimport CardIcon from \"../Card/CardIcon\";\r\nimport TaskIcon from \"./TaskIcon\";\r\nimport { TaskType } from \"enums\";\r\nimport COLOURS from \"assets/jss/colours\";\r\nimport useFilterStore from \"useFilterStore\";\r\n\r\n/**\r\n* @param {Object} props\r\n* @param {TaskSummary} props.taskSummary List of tasks\r\n*/\r\nexport default function TaskTypeCard({ taskSummary }) {\r\n\r\n const [cardColor, setCardColor] = useState(\"info\");\r\n const [borderColor, setBorderColor] = useState(\"\");\r\n const [borderColorFaded, setBorderColorFaded] = useState(\"\");\r\n const [isSelected, setIsSelected] = useState(false);\r\n\r\n const defaultStyling = {\r\n minWidth: 200, minHeight: 115, maxWidth: 200, maxHeight: 115, cursor: \"pointer\",\r\n borderBottom: isSelected ? `6px solid ${borderColor}` : \"\"\r\n }\r\n\r\n const [cardStyling, setCardStyling] = useState(defaultStyling); \r\n const taskListTypeFilter = useFilterStore(state => state.taskListTypeFilter);\r\n const setTaskListTypeFilter = useFilterStore(state => state.setTaskListTypeFilter); \r\n\r\n useEffect(() => { \r\n if (taskListTypeFilter.map(x => x?.toString()).includes(taskSummary.id.toString())) {\r\n setIsSelected(true);\r\n }\r\n else {\r\n setIsSelected(false);\r\n }\r\n }, [taskListTypeFilter])\r\n\r\n //Document posted: #26c6da\r\n\r\n useEffect(() => {\r\n switch (taskSummary.id) {\r\n //Documents\r\n case TaskType.DocumentApproved:\r\n case TaskType.DocumentPosted:\r\n case TaskType.DocumentRejected:\r\n setCardColor(\"info\"); //#26c6da\r\n setBorderColor(\"rgb(38, 198, 218)\");\r\n setBorderColorFaded(\"rgba(38, 198, 218, 0.5)\");\r\n break;\r\n //Projects\r\n case TaskType.ProjectCreated:\r\n case TaskType.ProjectHandover:\r\n case TaskType.ProjectOnboarding:\r\n case TaskType.ProjectUpdate:\r\n case TaskType.BidProjectWin:\r\n case TaskType.RiskAdded:\r\n case TaskType.StageDates:\r\n case TaskType.MilestoneAchieved:\r\n case TaskType.MilestoneDue:\r\n case TaskType.MilestoneMissed:\r\n setCardColor(\"warning\") //#ffa726\r\n setBorderColor(\"rgb(255, 167, 38)\")\r\n setBorderColorFaded(\"rgba(255, 167, 38, 0.5)\")\r\n break;\r\n case TaskType.SoftwareUpdate:\r\n case TaskType.FunctionalGroup:\r\n case TaskType.DisasterRecoveryUpdate:\r\n case TaskType.ConfirmedLeaver:\r\n case TaskType.NewStarter:\r\n setCardColor(\"success\") //#66bb6a\r\n setBorderColor(\"rgb(102, 187, 106)\")\r\n setBorderColorFaded(\"rgba(102, 187, 106, 0.5)\")\r\n break;\r\n case TaskType.RiskAdded:\r\n default:\r\n setCardColor(\"darkBlue\") //#ab47bc\r\n setBorderColor(COLOURS.DARK_BLUE)\r\n setBorderColorFaded(\"rgba(0, 86, 111, 0.5)\")\r\n break;\r\n }\r\n\r\n setCardStyling({\r\n ...defaultStyling,\r\n borderBottom: isSelected ? `6px solid ${borderColor}` : \"\"\r\n })\r\n }, [borderColor, isSelected, borderColorFaded])\r\n\r\n\r\n function cardMouseLeave() {\r\n setCardStyling(defaultStyling)\r\n }\r\n\r\n function cardMouseEnter() {\r\n setCardStyling({\r\n ...defaultStyling,\r\n borderBottom: `6px solid ${borderColorFaded}`\r\n })\r\n }\r\n\r\n function handleOnClick(){\r\n if(taskListTypeFilter.includes(taskSummary.id)){\r\n setTaskListTypeFilter([]); \r\n }\r\n else{\r\n setTaskListTypeFilter([taskSummary.id]);\r\n }\r\n }\r\n\r\n return (<>\r\n {borderColor &&
{ handleOnClick() }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {taskSummary.name} ({taskSummary.count})\r\n \r\n \r\n
}\r\n \r\n )\r\n}","export function logError(err){\r\n let message = \"\"\r\n if(err && err.message){\r\n message = err.message\r\n }\r\n if(typeof(err) == 'string'){\r\n message = err;\r\n }\r\n\r\n switch(message){\r\n case \"Failed to fetch\": \r\n if(location.origin == \"http://localhost:3000\"){\r\n console.table({\r\n message,\r\n fixA: \"You may need to get off VPN / Network and hotspot\",\r\n fixB: \"Restart Visual Studio\",\r\n fixC: \"Clear cookies\"\r\n })\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n}","import { Skeleton } from \"@mui/material\"\r\nimport React, { useEffect, useState } from \"react\"\r\nimport { getTasksSummary } from \"services/taskService\"\r\nimport GridContainer from \"../Grid/GridContainer\"\r\nimport GridItem from \"../Grid/GridItem\"\r\nimport TaskTypeCard from \"./TaskTypeCard\"\r\nimport useFilterStore from \"useFilterStore\"\r\nimport { logError } from \"services/loggingService\"\r\n\r\nexport default function TaskTypes() {\r\n const taskListStatusFilter = useFilterStore(state => state.taskListStatusFilter);\r\n const officeListFilter = useFilterStore(state => state.officeListFilter);\r\n\r\n const [taskSummary, setTaskSummary] = useState([]);\r\n const [isTasksSummaryLoading, setIsTasksSummaryLoading] = useState(false);\r\n const searchText = useFilterStore(state => state.searchText);\r\n\r\n useEffect(()=>{\r\n function getData(){\r\n return getTasksSummary(taskListStatusFilter,officeListFilter, searchText)\r\n .then(setTaskSummary)\r\n .catch(logError);\r\n }\r\n setIsTasksSummaryLoading(true);\r\n getData().finally(() => setIsTasksSummaryLoading(false))\r\n },[taskListStatusFilter,officeListFilter, searchText])\r\n\r\n return (<>{\r\n isTasksSummaryLoading && taskSummary && taskSummary.length === 0 &&\r\n \r\n {\r\n [1, 2, 3, 4, 5, 6, 7, 8].map(func => {\r\n return \r\n \r\n \r\n \r\n })\r\n }\r\n \r\n }\r\n {taskSummary && taskSummary.length > 0 ?\r\n \r\n {\r\n taskSummary.map(summaryItem => {\r\n return !!(summaryItem && summaryItem.id) ?\r\n \r\n \r\n \r\n : null\r\n })\r\n }\r\n \r\n : null\r\n })\r\n}","import React, { useEffect, useState } from \"react\"\r\nimport { updateComment } from \"services/taskService\"\r\nimport { Edit, Delete, Cancel } from \"@mui/icons-material/index\"\r\nimport { ListItem, ListItemAvatar, ListItemText, Typography, IconButton, Divider, CircularProgress, FormControl, InputAdornment, Input } from \"@mui/material/index\"\r\nimport AhrAvatar from \"../Badge/AhrAvatar\"\r\nimport { Colors } from \"enums\"\r\n\r\nexport default function TaskNoteRow(props) {\r\n /**\r\n * @type {[TaskNote,React.Dispatch]}\r\n */\r\n const [taskNote, setTaskNote] = useState(props.taskNote)\r\n const [userEmail] = useState(props.userEmail)\r\n const [isDeleting, setIsDeleting] = useState(false)\r\n const [isPosting, setIsPosting] = useState(false);\r\n const [isEditing, setIsEditing] = useState(false);\r\n const [commentEditString, setCommentEditString] = useState(\"\");\r\n\r\n useEffect(()=>{\r\n if(props.itemsToBeDeleted.includes(taskNote.id)){\r\n setIsDeleting(true)\r\n }\r\n else{\r\n setIsDeleting(false)\r\n }\r\n },[props.itemsToBeDeleted])\r\n\r\n function handleDeleteComment(taskNoteId){\r\n props.deleteEvent(taskNoteId)\r\n }\r\n\r\n function handleEditComment(comment){\r\n setCommentEditString(comment);\r\n setIsEditing(true);\r\n }\r\n\r\n function handleInputChange(e){\r\n let value = e.currentTarget.value;\r\n setCommentEditString(value);\r\n }\r\n \r\n function handleKeyDown(e){\r\n if(e.keyCode === 13 && commentEditString.length > 0){\r\n handleSendComment();\r\n }\r\n }\r\n\r\n function handleSendComment(){\r\n /** @type {TaskNote} */\r\n let updatedNote = {\r\n ...taskNote,\r\n note: commentEditString\r\n }\r\n setIsPosting(true)\r\n updateComment(updatedNote)\r\n .then((comments)=>{\r\n return setTaskNote(updatedNote);\r\n })\r\n .finally(()=>{\r\n setIsPosting(false);\r\n setIsEditing(false);\r\n })\r\n }\r\n\r\n function handleCancelComment(){\r\n setIsEditing(false);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n { !isEditing &&\r\n \r\n \r\n {taskNote.note}\r\n \r\n {\r\n userEmail.toLowerCase() === taskNote.userId.toLowerCase() && !isDeleting &&\r\n \r\n { handleEditComment(taskNote.note) }}\r\n sx={{\r\n right: \"40px\",\r\n bottom: \"16px\",\r\n marginRight: \"1rem\",\r\n position: \"absolute\",\r\n \":hover\": {\r\n color: Colors.Blue,\r\n cursor: \"pointer\"\r\n }\r\n }}\r\n >\r\n \r\n \r\n { handleDeleteComment(taskNote.id) }}\r\n sx={{\r\n right: \"20px\",\r\n bottom: \"16px\",\r\n position: \"absolute\",\r\n \":hover\": {\r\n color: Colors.Red,\r\n cursor: \"pointer\"\r\n }\r\n }}\r\n >\r\n \r\n \r\n \r\n }\r\n {\r\n userEmail.toLowerCase() === taskNote.userId.toLowerCase() && isDeleting &&\r\n \r\n }\r\n \r\n } />\r\n }\r\n {\r\n isEditing &&\r\n \r\n \r\n {\r\n !isPosting &&\r\n \r\n \r\n \r\n }\r\n {\r\n isPosting &&\r\n \r\n }\r\n \r\n }/>\r\n \r\n }\r\n \r\n \r\n \r\n )\r\n}","import React, { useState } from \"react\";\r\nimport List from '@mui/material/List';\r\nimport ListItem from '@mui/material/ListItem';\r\nimport Divider from '@mui/material/Divider';\r\nimport ListItemText from '@mui/material/ListItemText';\r\nimport ListItemAvatar from '@mui/material/ListItemAvatar';\r\nimport Typography from '@mui/material/Typography';\r\nimport AhrAvatar from \"../Badge/AhrAvatar\";\r\nimport { CircularProgress, FilledInput, FormControl, IconButton, InputAdornment, InputLabel } from \"@mui/material/index\";\r\nimport { Send } from \"@mui/icons-material\";\r\nimport { deleteComment, getCommentsTaskId, postComment } from \"services/taskService\";\r\nimport { TaskStatus } from \"enums\";\r\nimport TaskCommentRow from \"./TaskCommentRow\";\r\nimport { SignalRTaskNoteContext } from \"App\";\r\n\r\n\r\nexport default function TaskComments(props) {\r\n /**\r\n * @type {[TaskNote[],React.Dispatch]}\r\n */\r\n // @ts-ignore\r\n const [taskNotes, setTaskNotes] = useState(props.taskNotes.sort(sortByDateDescending))\r\n const [itemsToBeDeleted, setItemsToBeDeleted] = useState([])\r\n const [isPosting, setIsPosting] = useState(false)\r\n\r\n SignalRTaskNoteContext.useSignalREffect(\"ReceiveTaskNote\", (user, updatedTaskNote)=>{\r\n let isCurrentTask = props.taskId == updatedTaskNote.taskId\r\n if(isCurrentTask){\r\n getCommentsTaskId(taskId)\r\n .then((comments) => {\r\n setTaskNotes([...comments\r\n .filter(task => task.statusTypeId !== TaskStatus.DELETED)\r\n .sort(sortByDateDescending)\r\n ]);\r\n })\r\n }\r\n }, [])\r\n\r\n /** @type {number} */\r\n let taskId = props.taskId;\r\n\r\n const noteInputSpacing = \"2rem\"\r\n\r\n function handleDeleteComment(taskNoteId) {\r\n if(!itemsToBeDeleted.includes(taskNoteId)){\r\n setItemsToBeDeleted([...itemsToBeDeleted,taskNoteId])\r\n }\r\n deleteComment(taskNoteId)\r\n .then(() => getCommentsTaskId(taskId))\r\n .then((comments) => {\r\n setTaskNotes(comments\r\n .filter(task => task.statusTypeId !== TaskStatus.DELETED)\r\n .sort(sortByDateDescending)\r\n );\r\n })\r\n .finally(() => {\r\n itemsToBeDeleted.splice(itemsToBeDeleted.indexOf(taskNoteId),1)\r\n setItemsToBeDeleted([...itemsToBeDeleted])\r\n })\r\n }\r\n\r\n function TaskCommentBox() {\r\n const [commentText, setCommentText] = useState(\"\");\r\n function handleInputChange(e) {\r\n let value = e.currentTarget.value;\r\n setCommentText(value);\r\n }\r\n\r\n function handleKeyDown(e) {\r\n if (e.keyCode === 13 && commentText.length > 0) {\r\n handleSendComment();\r\n }\r\n }\r\n\r\n function handleSendComment() {\r\n /** @type {TaskNote} */\r\n let newNote = {\r\n note: commentText,\r\n taskId: taskId\r\n }\r\n setIsPosting(true)\r\n postComment(newNote)\r\n .then(() => getCommentsTaskId(taskId))\r\n .then((comments) => {\r\n return setTaskNotes(comments\r\n .filter(task => task.statusTypeId !== TaskStatus.DELETED)\r\n .sort(sortByDateDescending)\r\n );\r\n })\r\n .finally(() => {\r\n setIsPosting(false);\r\n })\r\n }\r\n\r\n return \r\n Add Comment...\r\n \r\n {\r\n !isPosting &&\r\n \r\n \r\n \r\n }\r\n {\r\n isPosting &&\r\n \r\n }\r\n \r\n } />\r\n \r\n }\r\n\r\n //Styling for if no comments are added\r\n if (!taskNotes || (taskNotes && taskNotes.length === 0)) {\r\n return <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n No comments added...\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 props.user && props.user.mail && taskNotes.map(taskNote => {\r\n return \r\n })\r\n }\r\n \r\n \r\n \r\n );\r\n\r\n\r\n function sortByDateDescending(a, b) {\r\n // @ts-ignore\r\n return new Date(b.updated) - new Date(a.updated);\r\n }\r\n}","import { BookmarkAdd, Check } from \"@mui/icons-material\";\r\nimport { CircularProgress, Divider, IconButton, ListItemButton, ListItemText } from \"@mui/material\";\r\nimport { ActionItemType, Colors } from \"enums\";\r\nimport React from \"react\";\r\n\r\nexport default function TaskActionItemCustom({ actionItem, addToProjectsEvent, acknowledgeRiskEvent }) {\r\n const [riskAcknowedgeLoading, setRiskAcknowedgeLoading] = React.useState(false);\r\n\r\n function addToMyProjects() {\r\n addToProjectsEvent();\r\n }\r\n\r\n function acknowledgeRisk(ev) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n\r\n setRiskAcknowedgeLoading(true);\r\n acknowledgeRiskEvent(actionItem.id)\r\n .finally(() => setRiskAcknowedgeLoading(false));\r\n }\r\n\r\n return <>\r\n \r\n \r\n \r\n {\r\n actionItem.actionItemTypeId == ActionItemType.AcknowledgeOccupationalRisk &&\r\n \r\n {\r\n riskAcknowedgeLoading ? : \r\n }\r\n \r\n }\r\n {\r\n actionItem.actionItemTypeId == ActionItemType.AddToMyProjects &&\r\n \r\n \r\n \r\n }\r\n {\r\n actionItem.actionItemTypeId == ActionItemType.ExistsInMyProjects &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n}","import { BookmarkAdd, Check } from \"@mui/icons-material\";\r\nimport { CircularProgress, Divider, IconButton, ListItemButton, ListItemText } from \"@mui/material\";\r\nimport { ActionItemType, Colors, TaskType } from \"enums\";\r\nimport React, { useState } from \"react\";\r\n\r\n/**\r\n * \r\n * @param {Object} param0 \r\n * @param {TaskActionItem} param0.actionItem \r\n * @param {Function} param0.addToProjectsEvent \r\n * @param {Function} param0.acknowledgeRiskEvent \r\n * @returns \r\n */\r\nexport default function TaskActionItem({ actionItem, addToProjectsEvent, acknowledgeRiskEvent }) {\r\n const [riskAcknowedgeLoading, setRiskAcknowedgeLoading] = React.useState(false);\r\n\r\n function addToMyProjects() {\r\n addToProjectsEvent();\r\n }\r\n\r\n function acknowledgeRisk(ev) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n\r\n setRiskAcknowedgeLoading(true);\r\n acknowledgeRiskEvent(actionItem.id)\r\n .finally(() => setRiskAcknowedgeLoading(false));\r\n }\r\n\r\n return (<>\r\n \r\n \r\n \r\n {\r\n actionItem.actionItemTypeId == ActionItemType.AcknowledgeOccupationalRisk &&\r\n \r\n {\r\n riskAcknowedgeLoading ? : \r\n }\r\n \r\n }\r\n {\r\n actionItem.actionItemTypeId == ActionItemType.AddToMyProjects &&\r\n \r\n \r\n \r\n }\r\n {\r\n actionItem.actionItemTypeId == ActionItemType.ExistsInMyProjects &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n )\r\n}","import React from \"react\";\r\nimport { List } from \"@material-ui/core\";\r\nimport TaskActionItemCustom from \"./TaskActionItemCustom\";\r\nimport TaskActionItem from \"./TaskActionItem\";\r\n\r\n/**\r\n * @param {Object} props\r\n * @param {TaskActionItem[]} props.taskActionItems\r\n * @param {TaskActionItemCustom[]} props.taskActionItemCustoms\r\n * @param {Function} props.addToProjectsEvent\r\n * @param {Function} props.acknowledgeRiskEvent\r\n */\r\nexport default function TaskActionItems({taskActionItems,taskActionItemCustoms,addToProjectsEvent, acknowledgeRiskEvent }){\r\n return( \r\n \r\n { ((taskActionItemCustoms && taskActionItemCustoms.length === 0) || !taskActionItemCustoms) && taskActionItems && taskActionItems.length > 0 &&\r\n taskActionItems.map(actionItem => )\r\n }\r\n { taskActionItemCustoms && taskActionItemCustoms.length > 0 &&\r\n taskActionItemCustoms.map(actionItem => )\r\n }\r\n \r\n )\r\n}","import { create } from 'zustand'\r\n\r\nconst useMultiSelectStore = create((set)=>({\r\n enableMultiSelect: false,\r\n setEnableMultiSelect: (enableMultiSelect) => set({enableMultiSelect}),\r\n selectedTasks: {},\r\n setSelectedTasks: (selectedTasks) => set({selectedTasks}),\r\n lastSelectedTask: {\r\n index: null,\r\n checked: false\r\n },\r\n setLastSelectedTask: (lastSelectedTask) => set({lastSelectedTask}),\r\n currentlyHoveredTask: {},\r\n setCurrentHoveredTask: (currentlyHoveredTask) => set({currentlyHoveredTask}),\r\n currentTasksHovered: {},\r\n setCurrentTasksHovered: (currentTasksHovered) => set({currentTasksHovered}),\r\n isTaskDismissed: {},\r\n setIsTaskDismissed: (isTaskDismissed) => set({isTaskDismissed}),\r\n isDismissing: {},\r\n setIsDismissing: (isDismissing) => set({isDismissing})\r\n}))\r\n\r\n/**\r\n * @returns {{[key: string]: number}}\r\n */\r\nexport const selectCurrentTasksHovered = (state) => state.currentTasksHovered;\r\n/**\r\n * @returns {{[key: string]: boolean;}}\r\n */\r\nexport const getSelectedTasks = (state) => state.selectedTasks;\r\n\r\n\r\nexport default useMultiSelectStore;","import { ExpandLess, ExpandMore } from \"@material-ui/icons\";\r\nimport { Collapse, Divider, ListItem, ListItemButton, ListItemIcon, ListItemText, Paper } from \"@mui/material\";\r\nimport React, { useState, useEffect, useRef } from \"react\";\r\nimport { Colors, TaskStatus } from \"enums\";\r\nimport TaskComments from \"../Tasks/TaskComments\";\r\nimport \"./AhrNotification.css\"\r\nimport TaskIcon from \"../Tasks/TaskIcon\";\r\nimport { acknowledgeRisk, addToMyProjects, getTaskActionItemCustoms, getTaskActionItems, updateTask, updateTaskPinned, updateTasks } from \"services/taskService\";\r\nimport { AvatarGroup, CircularProgress, IconButton, Checkbox } from \"@mui/material/index\";\r\nimport AhrAvatar from \"../Badge/AhrAvatar\";\r\nimport { Done, PushPin, PushPinOutlined } from \"@mui/icons-material\";\r\nimport TaskActionItems from \"../Tasks/TaskActionItems\";\r\nimport useFilterStore from \"useFilterStore\";\r\nimport useMultiSelectStore, { getSelectedTasks } from \"useMultiSelectStore\";\r\n\r\n/**\r\n * @param {Object} param0 \r\n * @param {Task} param0.task\r\n * @param {ADUser} param0.user\r\n * @param {number} param0.index\r\n * @param {{[key: string]: number;}} param0.currentTasksHovered Give a notification awareness if it is hovered [\"task.id\": index]\r\n * @param {Object} param0.taskIndexMappingRef\r\n * @param {React.MutableRefObject} param0.shiftPressed\r\n * @returns \r\n */\r\nexport default function AhrNotification({ task, user, index=0, currentTasksHovered={}, taskIndexMappingRef, shiftPressed }) {\r\n /**\r\n * @type {[Boolean,React.Dispatch]}\r\n */\r\n const [open, setOpen] = useState(false)\r\n /**\r\n * @type {[Boolean,React.Dispatch]}\r\n */\r\n const [manualToggle, setManualToggle] = useState(false)\r\n /**\r\n * @type {[Boolean,React.Dispatch]}\r\n */\r\n const [isPinned, setIsPinned] = useState(task.pinned)\r\n /**\r\n * @type {[Boolean,React.Dispatch]}\r\n */\r\n const [isHoverPinned, setIsHoverPinned] = useState(false);\r\n /**\r\n * @type {[number,React.Dispatch]}\r\n */\r\n // @ts-ignore\r\n let [taskStatus, setTaskStatus] = useState(task.statusTypeId || TaskStatus.NEW);\r\n /**\r\n * @type {[boolean,React.Dispatch]}\r\n */\r\n let [commentsDisabled, setCommentsDisabled] = useState(false);\r\n let [actionItemsLoading, setActionItemsLoading] = useState(false);\r\n let [taskActionItemsLoading, setTaskActionItemsLoading] = useState(false);\r\n let [taskActionItems, setTaskActionItems] = useState([]);\r\n let [customActionItemsLoading, setCustomActionItemsLoading] = useState(false);\r\n /**\r\n * @type {[any[],React.Dispatch]}\r\n */\r\n let [taskActionItemCustoms, setTaskActionItemCustoms] = useState([]);\r\n const newTask = useFilterStore(state => state.newTask);\r\n const setNewTask = useFilterStore(state => state.setNewTask);\r\n const enableMultiselect = useMultiSelectStore(state => state.enableMultiSelect);\r\n const setEnableMultiselect = useMultiSelectStore(state => state.setEnableMultiSelect);\r\n const selectedTasks = useMultiSelectStore(getSelectedTasks);\r\n const setSelectedTasks = useMultiSelectStore(state => state.setSelectedTasks);\r\n const setCurrentHoveredTask = useMultiSelectStore(state => state.setCurrentHoveredTask);\r\n const lastSelectedTask = useMultiSelectStore(state => state.lastSelectedTask);\r\n const setLastSelectedTask = useMultiSelectStore(state => state.setLastSelectedTask);\r\n const setIsTaskDismissed = useMultiSelectStore(state => state.setIsTaskDismissed);\r\n const isTaskDismissed = useMultiSelectStore(state => state.isTaskDismissed);\r\n const isDismissing = useMultiSelectStore(state => state.isDismissing);\r\n const setIsDismissing = useMultiSelectStore(state => state.setIsDismissing);\r\n\r\n const subTaskPaperStyle = {\r\n borderRadius: \"10px\",\r\n margin: \"0.5rem\"\r\n }\r\n\r\n const iconButtonPadding = \"1rem\";\r\n const listItemStyle = { \r\n paddingTop: 0, paddingBottom: 0, paddingLeft: 0, paddingRight: 0, \r\n background: currentTasksHovered && currentTasksHovered[task.id] ? \"rgb(235,235,235)\" : !!selectedTasks[task.id] ? \"rgba(240,248,255)\" : newTask?.id == task.id ? \"rgb(210,210,255)\" : \"\", \r\n transition: \"background 0.75s\", \r\n opacity: task.statusTypeId == TaskStatus.DISMISSED ? 0.5 : 1,\r\n border: lastSelectedTask.index == index ? \"1px dotted gray\" : \"none\"\r\n }\r\n\r\n useEffect(() => {\r\n taskIndexMappingRef.current[index] = task.id;\r\n },[])\r\n\r\n useEffect(()=>{\r\n function getData(){\r\n setCustomActionItemsLoading(true)\r\n getTaskActionItemCustoms(task.id)\r\n .then(setTaskActionItemCustoms)\r\n .finally(()=>setCustomActionItemsLoading(false));\r\n \r\n setActionItemsLoading(true)\r\n getTaskActionItems(task.id)\r\n .then(setTaskActionItems)\r\n .finally(()=>setActionItemsLoading(false));\r\n }\r\n\r\n getData()\r\n },[task.id, open, manualToggle])\r\n\r\n useEffect(()=>{\r\n if(((actionItemsLoading && taskActionItems.length == 0) || customActionItemsLoading) == true){\r\n setTaskActionItemsLoading(true)\r\n }\r\n else{\r\n setTaskActionItemsLoading(false)\r\n }\r\n },[actionItemsLoading, customActionItemsLoading])\r\n\r\n useEffect(() => {\r\n let commentsDisabledCheck = ((task.taskMembers && task.taskMembers.length <= 1) ||\r\n !task.taskMembers) && (!task.taskNotes || task.taskNotes.length === 0)\r\n\r\n if (commentsDisabledCheck != commentsDisabled) {\r\n setCommentsDisabled(commentsDisabledCheck);\r\n }\r\n }, [task.taskMembers, task.taskNotes])\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n setNewTask(null);\r\n }, 1000)\r\n }, [])\r\n\r\n function toggleTaskChecked(ev){\r\n if(!shiftPressed.current){\r\n if(selectedTasks[task.id]){\r\n let newSelectedTasks = {...selectedTasks};\r\n delete newSelectedTasks[task.id];\r\n setSelectedTasks(newSelectedTasks);\r\n setLastSelectedTask({ index, checked: false});\r\n }\r\n else{\r\n setSelectedTasks({...selectedTasks, [task.id]: true});\r\n setLastSelectedTask({ index, checked: true});\r\n }\r\n }\r\n else {\r\n let tempSelectedTasks = {...selectedTasks}; \r\n let allTrue, allFalse; \r\n\r\n //Determine if all hovered tasks are selected\r\n for(var taskToCheck of Object.keys(currentTasksHovered)){\r\n if(selectedTasks[taskToCheck]){\r\n allTrue = true;\r\n }\r\n else{\r\n allTrue = false;\r\n break; \r\n }\r\n }\r\n\r\n //Determine if all hovered tasks are not selected\r\n for(var taskToCheck of Object.keys(currentTasksHovered)){\r\n if(!selectedTasks[taskToCheck]){\r\n allFalse = true;\r\n }\r\n else{\r\n allFalse = false;\r\n break; \r\n }\r\n }\r\n\r\n //Assign new values to (un)selected tasks\r\n for(var taskToDismiss of Object.keys(currentTasksHovered)){\r\n if(allTrue){\r\n delete tempSelectedTasks[taskToDismiss];\r\n }\r\n else if(allFalse){\r\n tempSelectedTasks[taskToDismiss] = true;\r\n }\r\n else{\r\n if(lastSelectedTask.checked){\r\n tempSelectedTasks[taskToDismiss] = true;\r\n }\r\n else{\r\n delete tempSelectedTasks[taskToDismiss];\r\n }\r\n }\r\n }\r\n\r\n setSelectedTasks(tempSelectedTasks);\r\n setLastSelectedTask({ index, checked: Object.values(tempSelectedTasks)[0]});\r\n }\r\n }\r\n\r\n function handleClick(ev) {\r\n if (isDismissing[task.id] || enableMultiselect) {\r\n toggleTaskChecked(ev);\r\n return;\r\n }\r\n setOpen(!open);\r\n if (taskStatus == TaskStatus.NEW) {\r\n setTaskStatus(TaskStatus.UPDATED);\r\n updateTask(task.id.toString(), TaskStatus.UPDATED)\r\n }\r\n }\r\n\r\n function handleDismissClick(event) {\r\n event.stopPropagation();\r\n if (!!selectedTasks[task.id]) {\r\n let taskIsDismissing = {};\r\n for(var taskToDismiss of Object.keys(selectedTasks)){\r\n taskIsDismissing[taskToDismiss] = true;\r\n }\r\n setIsDismissing(taskIsDismissing);\r\n \r\n if(Object.keys(selectedTasks).length > 1){\r\n updateTasks(Object.keys(selectedTasks), TaskStatus.DISMISSED)\r\n .catch((err) => {\r\n console.error(err)\r\n })\r\n .finally(() => {\r\n setIsDismissing({});\r\n setEnableMultiselect(false);\r\n let taskDismissedTemp = {...isTaskDismissed};\r\n for(var taskToDismiss of Object.keys(selectedTasks)){\r\n taskDismissedTemp[taskToDismiss] = true;\r\n }\r\n setIsTaskDismissed(taskDismissedTemp);\r\n })\r\n }\r\n else if(Object.keys(selectedTasks).length == 1){\r\n updateTask(task.id.toString(), TaskStatus.DISMISSED)\r\n .catch((err) => {\r\n console.error(err)\r\n })\r\n .finally(() => {\r\n setEnableMultiselect(false);\r\n setIsDismissing({});\r\n setIsTaskDismissed({...isTaskDismissed, [task.id]: true});\r\n })\r\n }\r\n }\r\n else if(!selectedTasks[task.id]){\r\n setEnableMultiselect(true);\r\n toggleTaskChecked(event);\r\n }\r\n }\r\n\r\n function CircularProgressRowItem() {\r\n return \r\n \r\n \r\n }\r\n\r\n function handleTaskPin(event) {\r\n event.stopPropagation();\r\n\r\n setIsPinned(!isPinned)\r\n updateTaskPinned(task.id, !isPinned)\r\n .catch((err) => {\r\n setIsPinned(isPinned)\r\n })\r\n }\r\n\r\n function addToMyProjectsEvent() {\r\n addToMyProjects(task.id)\r\n .then((res) => {\r\n setManualToggle(!manualToggle);\r\n })\r\n }\r\n\r\n function acknowledgeRiskEvent(actionItemId) {\r\n return acknowledgeRisk(actionItemId)\r\n .then((res) => {\r\n setManualToggle(!manualToggle);\r\n })\r\n }\r\n\r\n function handleMouseEnter(){\r\n setCurrentHoveredTask({index, taskId: task.id});\r\n }\r\n\r\n if(isTaskDismissed[task.id]){\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n \r\n 0) || (taskActionItemCustoms && taskActionItemCustoms.length > 0)) ? 'pointer' : 'default'\r\n }}>\r\n {\r\n enableMultiselect &&\r\n \r\n \r\n \r\n }\r\n {\r\n !enableMultiselect &&\r\n \r\n \r\n \r\n }\r\n \r\n {\r\n (task.taskMembers && task.taskMembers.length > 0) &&\r\n <>\r\n tm.userId + \"\\n\").join()}>\r\n {\r\n task.taskMembers.map(taskMember =>\r\n \r\n )\r\n }\r\n \r\n \r\n }\r\n {\r\n !isDismissing[task.id] ?\r\n <>\r\n {\r\n !!selectedTasks[task.id] &&\r\n <>\r\n Click again to dismiss \r\n \r\n \r\n \r\n \r\n }\r\n {\r\n !selectedTasks[task.id] &&\r\n \r\n \r\n \r\n }\r\n \r\n :\r\n \r\n }\r\n\r\n { setIsHoverPinned(true) }} onMouseLeave={() => { setIsHoverPinned(false) }} sx={{ transform: \"rotate(45deg)\", cursor: \"pointer\", marginRight: iconButtonPadding }}>\r\n {\r\n isPinned || isHoverPinned ?\r\n \r\n :\r\n \r\n }\r\n \r\n {open ?\r\n \r\n \r\n :\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n {\r\n taskActionItemsLoading && (!taskActionItems || taskActionItems.length == 0) && (!taskActionItemCustoms || taskActionItemCustoms.length == 0) &&\r\n \r\n }\r\n \r\n \r\n \r\n {!commentsDisabled &&\r\n \r\n \r\n }\r\n \r\n \r\n )\r\n}","import React, { useState } from \"react\"\r\nimport { Collapse, Divider, IconButton, ListItem, ListItemButton, ListItemIcon, ListItemText } from \"@mui/material\";\r\nimport { ExpandLess, ExpandMore } from \"@mui/icons-material\";\r\n\r\nexport default function SidebarFilter(props){\r\n const [open, setOpen] = useState(props.open || false);\r\n\r\n function handleClick(){\r\n if(!props.inline && !props.lockOpen){\r\n setOpen(!open)\r\n }\r\n else if(props.handleClick){\r\n props.handleClick()\r\n }\r\n }\r\n\r\n const paddingHSize = 8;\r\n const paddingVSize = 8;\r\n const ListItemButtonStyling ={\r\n paddingLeft: paddingHSize * 2,\r\n paddingRight: paddingHSize,\r\n paddingTop: paddingVSize,\r\n paddingBottom: paddingVSize,\r\n cursor: \"pointer\"\r\n }\r\n\r\n const ListItemStyling = { paddingTop: 0, paddingBottom: 0, paddingLeft: 0, paddingRight: 0 };\r\n Object.assign(ListItemStyling, props.style || {}); \r\n\r\n return (<> \r\n \r\n \r\n { props.icon &&\r\n \r\n {props.icon}\r\n \r\n }\r\n \r\n { !props.inline && !props.lockOpen && \r\n (open ? \r\n \r\n \r\n :\r\n \r\n \r\n )\r\n }\r\n {\r\n props.inline &&\r\n props.children\r\n }\r\n \r\n \r\n \r\n { props.children &&\r\n \r\n {props.children}\r\n \r\n }\r\n \r\n )\r\n}","import { getTasksToken } from \"./tokenService\"\r\nimport azureGatewayService from \"./azureGatewayService\"\r\n\r\nconst { get } = azureGatewayService(getTasksToken);\r\n\r\n/**\r\n * @returns {Promise}\r\n */\r\nexport const getOfficeFilters = async () => await get(`/Filters`)\r\n","import React, { useEffect, useRef } from \"react\";\r\nimport { useState } from \"react\";\r\nimport { Business, FilterAlt, KeyboardDoubleArrowLeft, KeyboardDoubleArrowRight, Search } from \"@mui/icons-material/index\";\r\nimport { Button, Checkbox, CircularProgress, Divider, Drawer,IconButton, ListItem, ListItemButton, ListItemIcon, ListItemText, ListSubheader, TextField } from \"@mui/material/index\";\r\nimport { List } from \"@mui/material/index\";\r\nimport SidebarFilter from \"./SidebarFilter\";\r\nimport { TaskStatus } from \"enums\";\r\nimport useFilterStore from \"useFilterStore\";\r\nimport { useQuery } from \"react-query\";\r\nimport { getOfficeFilters } from \"services/filtersService\";\r\nimport { useShallow } from \"zustand/react/shallow\";\r\n\r\n/**\r\n * \r\n * @param {Object} param0 \r\n * @param {Function} param0.filtersApplied\r\n * @param {Function} param0.resetFilters \r\n * @returns \r\n */\r\nexport default function TaskFilters() { \r\n //#region State\r\n const filterToggle = useFilterStore(useShallow(state => state.filterToggle));\r\n const setFilterToggle = useFilterStore(state => state.setFilterToggle);\r\n const [noFiltersApplied, setNoFiltersApplied] = useState(false); \r\n const [statusIds, setStatusIds] = useState([TaskStatus.NEW, TaskStatus.UPDATED])\r\n const [officeIds, setOfficeIds] = useState([]);\r\n const [filterSearchText, setFilterSearchText] = useState(\"\");\r\n const setFilters = useFilterStore(state => state.setFilters);\r\n //#endregion\r\n\r\n const {data: officeFilters, isLoading: isOfficeFiltersLoading} = useQuery([\"OfficeFilters\"], () => getOfficeFilters(), { \r\n staleTime: 10 * (60 * 1000) /* 10 minutes */ ,\r\n refetchOnMount: false,\r\n refetchOnWindowFocus: false,\r\n refetchOnReconnect: false\r\n });\r\n\r\n const styles = {\r\n iconStyle: {\r\n left: \"-3px\",\r\n position: \"relative\"\r\n },\r\n iconButtonStyle: {\r\n position: \"fixed\",\r\n background: \"white\",\r\n transition: \"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms\",\r\n transform: filterToggle ? \"translateX(-349px)\" : \"translateX(0px)\",\r\n right: 0,\r\n top: \"71px\",\r\n width: \"45px\",\r\n borderRadius: \"50% 0 0 50%\",\r\n \":hover\": {\r\n background: \"rgb(230,230,235)\"\r\n },\r\n zIndex: 1201\r\n },\r\n listStyle: { minWidth: 349, width: 349, maxWidth: 349, overflow: 'auto', position: 'relative', '& ul': { padding: 0 } },\r\n listItemStyle: {\r\n paddingTop: 0, \r\n paddingBottom: 0, \r\n paddingLeft: 0, paddingRight: 0, flex: 0.25, background: \"white\" \r\n },\r\n drawerStyling: {\r\n \"div.MuiPaper-root\": {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\"\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setNoFiltersApplied(statusIds.length === 0);\r\n },[statusIds])\r\n\r\n //#region Event Handlers\r\n function resetFilters(){\r\n setOfficeIds([])\r\n setFilterSearchText(\"\")\r\n setFilters([TaskStatus.NEW,TaskStatus.UPDATED], [], \"\")\r\n }\r\n\r\n function handleToggle(event, taskStatusId) {\r\n let newArr = []\r\n if(statusIds.includes(taskStatusId)){\r\n newArr = [...statusIds.filter((item) => item !== taskStatusId)]\r\n }\r\n else{\r\n newArr = [...statusIds, taskStatusId]\r\n }\r\n setStatusIds(newArr)\r\n }\r\n\r\n /**\r\n * @param {React.MouseEvent} ev\r\n * @param {number} officeId\r\n */\r\n function handleOfficeSelection(ev, officeId){\r\n if(officeIds.includes(officeId)){\r\n setOfficeIds([...officeIds.filter((item) => item !== officeId)])\r\n }\r\n else{\r\n setOfficeIds([...officeIds, officeId])\r\n }\r\n }\r\n\r\n function applyFilters() {\r\n console.log(\"Applying filters\")\r\n setFilters(statusIds, officeIds, filterSearchText)\r\n }\r\n //#endregion\r\n\r\n //#region Components\r\n function BusinessIcon(){\r\n if(isOfficeFiltersLoading){\r\n return \r\n }\r\n return \r\n }\r\n\r\n function SearchTextFilter(){\r\n const searchText = useRef(\"\");\r\n\r\n return(\r\n <>\r\n \r\n \r\n \r\n \r\n { \r\n // setFilterSearchText(event.target.value) \r\n searchText.current = event.target.value\r\n }} \r\n onBlur={()=> { setFilterSearchText(searchText.current) }}\r\n style={{ marginBottom: \"0.5rem\" }}\r\n label=\"Description\" \r\n variant=\"standard\" \r\n size=\"small\"\r\n defaultValue={filterSearchText}\r\n fullWidth /> \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n function FilterButtons(){\r\n return (\r\n
\r\n \r\n \r\n
\r\n )\r\n }\r\n //#endregion\r\n\r\n return (\r\n <>\r\n { setFilterToggle(!filterToggle) }} sx={styles.iconButtonStyle}>\r\n {\r\n filterToggle ?\r\n :\r\n \r\n }\r\n \r\n { setFilterToggle(false) }}>\r\n }>\r\n Filters\r\n } primary=\"Statuses\" open={true}>\r\n \r\n \r\n handleToggle(event, TaskStatus.NEW)} dense disableGutters sx={{ paddingTop: 0, paddingBottom: 0, paddingLeft: \"2rem\" }}>\r\n Unread\r\n \r\n \r\n \r\n \r\n handleToggle(event, TaskStatus.UPDATED)} dense disableGutters sx={{ paddingTop: 0, paddingBottom: 0, paddingLeft: \"2rem\" }}>\r\n Read\r\n \r\n \r\n \r\n \r\n handleToggle(event, TaskStatus.DISMISSED)} dense disableGutters sx={{ paddingTop: 0, paddingBottom: 0, paddingLeft: \"2rem\" }}>\r\n Dismissed\r\n \r\n \r\n \r\n \r\n \r\n } primary=\"Offices\">\r\n \r\n {\r\n officeFilters && officeFilters.map((office) => {\r\n return \r\n handleOfficeSelection(event, office.officeId)} dense disableGutters sx={{ paddingTop: 0, paddingBottom: 0, paddingLeft: \"2rem\" }}>\r\n {office.officeName}\r\n \r\n \r\n \r\n })\r\n } \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}","import { Card, CardContent, Checkbox, ClickAwayListener, FormControl, FormControlLabel, IconButton, List, ListSubheader, Pagination, Skeleton, Stack, ToggleButton, ToggleButtonGroup, Typography } from \"@mui/material\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { getGraphData } from \"services/userService\";\r\nimport { getTasks } from \"services/taskService\";\r\nimport AhrNotification from \"../Notifications/AhrNotification\";\r\nimport TaskFilters from \"./TaskFilters\";\r\nimport { useQuery } from \"react-query\";\r\nimport useFilterStore from \"useFilterStore\";\r\nimport useMultiSelectStore, { selectCurrentTasksHovered } from \"useMultiSelectStore\";\r\nimport { Cancel } from \"@material-ui/icons\";\r\nimport { Colors } from \"enums\";\r\nimport { useShallow } from \"zustand/react/shallow\";\r\n\r\nexport default function TaskList() {\r\n //#region State\r\n /**\r\n * @type {[Task[],React.Dispatch]}\r\n */\r\n const [taskList, setTaskList] = useState([]);\r\n const [taskDates, setTaskDates] = useState([]);\r\n /**\r\n * @type {[number,React.Dispatch]}\r\n */\r\n const [pageCount, setPageCount] = useState(10);\r\n const [paginationNumber, setPaginationNumber] = useState(1);\r\n const taskListTypeFilter = useFilterStore(useShallow(state => state.taskListTypeFilter));\r\n const taskListStatusFilter = useFilterStore(useShallow(state => state.taskListStatusFilter));\r\n const setTaskListTypeFilter = useFilterStore(useShallow(state => state.setTaskListTypeFilter));\r\n const officeListFilter = useFilterStore(useShallow(state => state.officeListFilter))\r\n const searchText = useFilterStore(useShallow(state => state.searchText))\r\n const newTask = useFilterStore(useShallow(state => state.newTask));\r\n const filterToggle = useFilterStore(useShallow(state => state.filterToggle));\r\n\r\n const {data: user} = useQuery([\"GraphData\"], getGraphData, {\r\n staleTime: 10 * (60 * 1000) /* 10 minutes */ ,\r\n refetchOnMount: false,\r\n refetchOnWindowFocus: false,\r\n refetchOnReconnect: false\r\n });\r\n\r\n /**\r\n * @type {[TaskPagination,React.Dispatch]}\r\n */\r\n const [taskPagination, setTaskPagination] = useState();\r\n const [isTasksLoading, setIsTasksLoading] = useState(false);\r\n const selectedTasks = useMultiSelectStore(useShallow(state => state.selectedTasks));\r\n const setSelectedTasks = useMultiSelectStore(state => state.setSelectedTasks);\r\n const setLastSelectedTask = useMultiSelectStore(state => state.setLastSelectedTask);\r\n const setEnableMultiSelect = useMultiSelectStore(state => state.setEnableMultiSelect);\r\n const currentHoveredTask = useMultiSelectStore(state => state.currentlyHoveredTask);\r\n const setCurrentHoveredTask = useMultiSelectStore(state => state.setCurrentHoveredTask);\r\n const currentTasksHovered = useMultiSelectStore(selectCurrentTasksHovered);\r\n const lastSelectedTask = useMultiSelectStore(state => state.lastSelectedTask);\r\n const enableMultiselect = useMultiSelectStore(state => state.enableMultiSelect);\r\n const setCurrentTasksHovered = useMultiSelectStore(state => state.setCurrentTasksHovered);\r\n const shiftPressed = useRef(false); \r\n const taskIndexMappingRef = useRef({})\r\n\r\n const taskListStyling = {\r\n width: '100%',\r\n bgcolor: 'background.paper',\r\n overflow: 'auto',\r\n position: 'relative',\r\n maxHeight: \"60vh\",\r\n '& ul': { padding: 0 }\r\n };\r\n //#endregion\r\n\r\n //#region Effects\r\n useEffect(() => {\r\n if (newTask && newTask.id) {\r\n if ((taskListTypeFilter && taskListTypeFilter.length == 0) || (taskListTypeFilter && !taskListTypeFilter.includes(newTask.taskTypeId))) {\r\n setPaginationNumber(1);\r\n setTaskListTypeFilter([newTask.taskTypeId]);\r\n }\r\n }\r\n },[newTask])\r\n\r\n useEffect(() => {\r\n getTaskPagination();\r\n }, [taskListTypeFilter, paginationNumber, pageCount, taskListStatusFilter, searchText, officeListFilter]);\r\n\r\n useEffect(()=>{\r\n if(taskPagination && taskPagination.tasks && taskPagination.tasks.length > 0){\r\n setTaskList(taskPagination.tasks);\r\n }\r\n }, [taskPagination])\r\n\r\n useEffect(() => {\r\n let taskDatesRes = new Array(\r\n ...new Set(\r\n taskList\r\n .sort((a, b) => b.created.localeCompare(a.created))\r\n .map(t => new Date(t.created).toLocaleDateString(\"en-GB\"))\r\n )\r\n )\r\n\r\n setTaskDates(taskDatesRes);\r\n }, [taskList]);\r\n\r\n useEffect(() => {\r\n if(!currentHoveredTask || !lastSelectedTask || !enableMultiselect){\r\n return;\r\n }\r\n\r\n if(!shiftPressed.current){\r\n setCurrentTasksHovered({});\r\n return;\r\n }\r\n\r\n let startIdx = Math.min(currentHoveredTask.index, lastSelectedTask.index);\r\n let endIdx = Math.max(currentHoveredTask.index, lastSelectedTask.index);\r\n\r\n let currentTasksHoveredTemp = {...currentTasksHovered};\r\n\r\n console.log(\"Assign hover\") \r\n \r\n Object.entries(currentTasksHovered).forEach(([taskId, index]) => {\r\n if(index < startIdx || index > endIdx){\r\n delete currentTasksHoveredTemp[taskId];\r\n }\r\n })\r\n\r\n Array.from({length: endIdx - startIdx + 1}, (_, i) => i + startIdx).forEach(index => {\r\n let taskId = taskIndexMappingRef.current[index];\r\n\r\n if(shiftPressed.current){\r\n currentTasksHoveredTemp[taskId] = index;\r\n }\r\n else{\r\n delete currentTasksHoveredTemp[taskId];\r\n }\r\n })\r\n\r\n setCurrentTasksHovered(currentTasksHoveredTemp);\r\n \r\n }, [shiftPressed, currentHoveredTask])\r\n\r\n useEffect(() => {\r\n console.log(\"taskindexmapping\", taskIndexMappingRef.current);\r\n }, [taskIndexMappingRef.current])\r\n //#endregion\r\n \r\n //#region Functions\r\n /**\r\n * @param {number} pageCountValue\r\n */\r\n function handlePageCount(pageCountValue) {\r\n setPaginationNumber(1);\r\n setPageCount(pageCountValue);\r\n }\r\n \r\n function getTaskPagination(){\r\n setIsTasksLoading(true);\r\n getTasks(paginationNumber, pageCount, taskListTypeFilter, taskListStatusFilter, officeListFilter, searchText).then((res) => {\r\n setTaskPagination(res);\r\n })\r\n .finally(()=>{\r\n setIsTasksLoading(false);\r\n setSelectedTasks({});\r\n setEnableMultiSelect(false);\r\n shiftPressed.current = false;\r\n setLastSelectedTask({index: null});\r\n setCurrentHoveredTask({index: null});\r\n });\r\n }\r\n \r\n /**\r\n * @param {any} _event\r\n * @param {React.SetStateAction} pageNumber\r\n */\r\n function handlePaginationChange(_event, pageNumber) {\r\n setPaginationNumber(pageNumber);\r\n }\r\n\r\n function handleSelectAll(){\r\n setLastSelectedTask({index: null});\r\n if(taskList.length !== Object.keys(selectedTasks).length){\r\n setSelectedTasks(taskList.reduce((acc, task) => {\r\n acc[task.id] = true;\r\n return acc;\r\n }, {}));\r\n }\r\n else{\r\n setSelectedTasks({});\r\n }\r\n }\r\n\r\n function SelectAllCheckbox(){\r\n const enableMultiselect = useMultiSelectStore(state => state.enableMultiSelect);\r\n\r\n if(enableMultiselect)\r\n return(\r\n <>\r\n \r\n 0}\r\n onClick={handleSelectAll}\r\n />} />\r\n \r\n \r\n \r\n \r\n \r\n )\r\n else{\r\n return
;\r\n }\r\n }\r\n\r\n function handleCancelDismiss(){\r\n setSelectedTasks({});\r\n setEnableMultiSelect(false);\r\n if(!filterToggle){\r\n setLastSelectedTask({index: null});\r\n }\r\n }\r\n\r\n /**\r\n * @param {{ shiftKey: any; }} event\r\n */\r\n function handleListKeyDown(event){\r\n if(event.shiftKey && !shiftPressed.current){\r\n shiftPressed.current = true;\r\n setCurrentHoveredTask({...currentHoveredTask})\r\n }\r\n }\r\n\r\n function handleListKeyUp(event){\r\n if(!event.shiftKey && shiftPressed.current){\r\n shiftPressed.current = false;\r\n setCurrentHoveredTask({...currentHoveredTask})\r\n }\r\n }\r\n\r\n /**\r\n * @returns {Generator}\r\n */\r\n function* getIndex(){\r\n let index = 1;\r\n while(true){\r\n yield index++;\r\n }\r\n }\r\n\r\n const indexGenerator = getIndex();\r\n //#endregion\r\n\r\n return (<>\r\n {\r\n isTasksLoading &&\r\n [1, 2, 3, 4, 5].map(itr => )\r\n }\r\n \r\n {\r\n !isTasksLoading && taskList && taskList.length > 0 ?\r\n <>\r\n \r\n
\r\n \r\n }>\r\n { \r\n taskDates.map(taskDate =>\r\n taskList.filter(listItem => new Date(listItem.created).toLocaleDateString(\"en-GB\") === taskDate && listItem.pinned).length > 0 &&\r\n
  • \r\n
      \r\n {taskDate}\r\n {\r\n taskList\r\n .filter(listItem => new Date(listItem.created).toLocaleDateString(\"en-GB\") === taskDate && listItem.pinned)\r\n .map(task =>\r\n \r\n )\r\n }\r\n
    \r\n
  • \r\n )\r\n }\r\n {\r\n taskDates.map(taskDate =>\r\n taskList.filter(listItem => new Date(listItem.created).toLocaleDateString(\"en-GB\") === taskDate && !listItem.pinned).length > 0 &&\r\n
  • \r\n
      \r\n {taskDate}{\r\n taskList.filter(listItem => new Date(listItem.created).toLocaleDateString(\"en-GB\") === taskDate && !listItem.pinned)\r\n .map(task =>\r\n \r\n )}\r\n
    \r\n
  • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {taskPagination.pageCount > 1 &&\r\n \r\n }\r\n \r\n handlePageCount(pcVal)}\r\n >\r\n \r\n 10\r\n \r\n \r\n 25\r\n \r\n \r\n 50\r\n \r\n \r\n \r\n
    \r\n \r\n : !isTasksLoading && taskList && taskList.length === 0 ?\r\n \r\n \r\n \r\n No tasks\r\n \r\n \r\n \r\n : null\r\n }\r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport cx from \"classnames\";\r\nimport { Switch, Route, Redirect, useLocation } from \"react-router-dom\";\r\n// creates a beautiful scrollbar\r\nimport PerfectScrollbar from \"perfect-scrollbar\";\r\nimport \"perfect-scrollbar/css/perfect-scrollbar.css\";\r\n\r\n// @material-ui/core components\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\n// core components\r\nimport AdminNavbar from \"components/display/Navbars/AdminNavbar.js\";\r\nimport Footer from \"components/display/Footer/Footer.js\";\r\nimport Sidebar from \"components/display/Sidebar/Sidebar.js\";\r\n\r\nimport routes from \"routes.js\";\r\n\r\nimport styles from \"assets/jss/material-dashboard-pro-react/layouts/adminStyle.js\";\r\nimport COLOURS from \"assets/jss/colours\";\r\n\r\nvar ps;\r\n\r\nconst useStyles = makeStyles(styles);\r\n\r\nexport default function Dashboard(props) {\r\n const { ...rest } = props;\r\n // states and functions\r\n const [mobileOpen, setMobileOpen] = React.useState(false);\r\n const [miniActive, setMiniActive] = React.useState(false);\r\n const [logo, setLogo] = React.useState(\r\n require(\"assets/img/logo-white.svg\").default\r\n );\r\n // styles\r\n const classes = useStyles();\r\n const mainPanelClasses =\r\n classes.mainPanel +\r\n \" \" +\r\n cx({\r\n [classes.mainPanelSidebarMini]: miniActive,\r\n [classes.mainPanelWithPerfectScrollbar]:\r\n navigator.platform.indexOf(\"Win\") > -1,\r\n });\r\n // ref for main panel div\r\n const mainPanel = React.createRef();\r\n // effect instead of componentDidMount, componentDidUpdate and componentWillUnmount\r\n React.useEffect(() => {\r\n if (navigator.platform.indexOf(\"Win\") > -1) {\r\n ps = new PerfectScrollbar(mainPanel.current, {\r\n suppressScrollX: true,\r\n suppressScrollY: false,\r\n });\r\n document.body.style.overflow = \"hidden\";\r\n }\r\n window.addEventListener(\"resize\", resizeFunction);\r\n\r\n // Specify how to clean up after this effect:\r\n return function cleanup() {\r\n if (navigator.platform.indexOf(\"Win\") > -1) {\r\n ps.destroy();\r\n }\r\n window.removeEventListener(\"resize\", resizeFunction);\r\n };\r\n });\r\n\r\n const handleDrawerToggle = () => {\r\n setMobileOpen(!mobileOpen);\r\n };\r\n const getRoute = () => {\r\n return window.location.pathname !== \"/admin/full-screen-maps\";\r\n };\r\n const getActiveRoute = (routes) => {\r\n let activeRoute = \"Default Brand Text\";\r\n for (let i = 0; i < routes.length; i++) {\r\n if (routes[i].collapse) {\r\n let collapseActiveRoute = getActiveRoute(routes[i].views);\r\n if (collapseActiveRoute !== activeRoute) {\r\n return collapseActiveRoute;\r\n }\r\n } else {\r\n if (\r\n window.location.href.indexOf(routes[i].layout + routes[i].path) !== -1\r\n ) {\r\n return routes[i].name;\r\n }\r\n }\r\n }\r\n return activeRoute;\r\n };\r\n\r\n const [activeState, setActiveState] = useState(getActiveRoute(routes))\r\n const location = useLocation();\r\n \r\n useEffect(()=>{\r\n setActiveState(getActiveRoute(routes))\r\n },[location])\r\n\r\n const getRoutes = (routes) => {\r\n return routes.map((prop, key) => {\r\n if (prop.collapse) {\r\n return getRoutes(prop.views);\r\n }\r\n if (prop.layout === \"/admin\") {\r\n return (\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n });\r\n };\r\n const sidebarMinimize = () => {\r\n setMiniActive(!miniActive);\r\n };\r\n const resizeFunction = () => {\r\n if (window.innerWidth >= 960) {\r\n setMobileOpen(false);\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n {/* On the /maps/full-screen-maps route we want the map to be on full screen - this is not possible if the content and conatiner classes are present because they have some paddings which would make the map smaller */}\r\n {getRoute() ? (\r\n
    \r\n
    \r\n \r\n {getRoutes(routes)}\r\n \r\n \r\n
    \r\n
    \r\n ) : (\r\n
    \r\n \r\n {getRoutes(routes)}\r\n \r\n \r\n
    \r\n )}\r\n {getRoute() ?
    : null}\r\n
    \r\n
    \r\n );\r\n}\r\n","import NotificationsPage from \"views/Pages/Notifications.js\";\r\n\r\nimport { Apartment, Dashboard, Language, Notifications, Person, } from \"@mui/icons-material\";\r\n\r\nvar dashRoutes = [\r\n {\r\n path: \"/notifications\",\r\n name: \"Notifications\",\r\n icon: Notifications,\r\n component: NotificationsPage,\r\n layout: \"/admin\",\r\n },\r\n {\r\n href:\"http://projects\",\r\n name: \"Projects\",\r\n icon: Apartment,\r\n },\r\n {\r\n href:\"http://contacts\",\r\n name: \"Contacts\",\r\n icon: Person,\r\n },\r\n {\r\n href:\"http://mislive\",\r\n name: \"MIS\",\r\n icon: Dashboard,\r\n },\r\n {\r\n href:\"http://ahrintranet\",\r\n name: \"Intranet\",\r\n icon: Language,\r\n }\r\n // {\r\n // path: \"/preferences\",\r\n // name: \"Preferences\",\r\n // icon: Settings,\r\n // component: PreferencesPage,\r\n // layout: \"/admin\",\r\n // },\r\n // {\r\n // path: \"/admin\",\r\n // name: \"Admin\",\r\n // icon: Security,\r\n // component: AdminPage,\r\n // layout: \"/admin\",\r\n // },\r\n \r\n];\r\nexport default dashRoutes;\r\n","import React from \"react\";\r\n\r\nimport TaskTypes from \"components/display/Tasks/TaskTypes\";\r\nimport TaskList from \"components/display/Tasks/TaskList\";\r\nexport default function NotificationsPage() {\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n}","import {\r\n drawerWidth,\r\n drawerMiniWidth,\r\n transition,\r\n containerFluid,\r\n} from \"assets/jss/material-dashboard-pro-react.js\";\r\n\r\nconst appStyle = (theme) => ({\r\n wrapper: {\r\n position: \"relative\",\r\n top: \"0\",\r\n height: \"100vh\",\r\n \"&:after\": {\r\n display: \"table\",\r\n clear: \"both\",\r\n content: '\" \"',\r\n },\r\n },\r\n mainPanel: {\r\n transitionProperty: \"top, bottom, width\",\r\n transitionDuration: \".2s, .2s, .35s\",\r\n transitionTimingFunction: \"linear, linear, ease\",\r\n [theme.breakpoints.up(\"md\")]: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n },\r\n overflow: \"auto\",\r\n position: \"relative\",\r\n float: \"right\",\r\n ...transition,\r\n maxHeight: \"100%\",\r\n width: \"100%\",\r\n overflowScrolling: \"touch\",\r\n },\r\n content: {\r\n marginTop: \"70px\",\r\n padding: \"30px 15px\",\r\n minHeight: \"calc(100vh - 123px)\",\r\n },\r\n container: { ...containerFluid },\r\n map: {\r\n marginTop: \"70px\",\r\n },\r\n mainPanelSidebarMini: {\r\n [theme.breakpoints.up(\"md\")]: {\r\n width: `calc(100% - ${drawerMiniWidth}px)`,\r\n },\r\n },\r\n mainPanelWithPerfectScrollbar: {\r\n overflow: \"hidden !important\",\r\n },\r\n});\r\n\r\nexport default appStyle;\r\n","import React, { createContext } from \"react\";\r\nimport { createSignalRContext } from \"react-signalr\";\r\n\r\nimport { MsalProvider } from \"@azure/msal-react\";\r\n\r\nimport AdminLayout from \"layouts/Admin.js\";\r\n\r\nimport { loginRequest } from \"authConfig\";\r\nimport { EventType } from \"@azure/msal-browser\";\r\nimport lscache from \"lib/lscache\";\r\nimport { BrowserRouter, Redirect, Route, Switch } from \"react-router-dom\";\r\nimport { getTasksToken } from \"services/tokenService\";\r\nimport { createTheme, ThemeProvider } from \"@mui/material\";\r\nimport COLOURS from \"assets/jss/colours\";\r\nimport * as Sentry from \"@sentry/react\";\r\nimport useFilterStore from \"useFilterStore\";\r\n\r\n/**\r\n * msal-react is built on the React context API and all parts of your app that require authentication must be \r\n * wrapped in the MsalProvider component. You will first need to initialize an instance of PublicClientApplication \r\n * then pass this to MsalProvider as a prop. All components underneath MsalProvider will have access to the \r\n * PublicClientApplication instance via context as well as all hooks and components provided by msal-react. For more, visit:\r\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-react/docs/getting-started.md\r\n */\r\n\r\nexport const SignalRTaskContext = createSignalRContext();\r\nexport const SignalRTaskNoteContext = createSignalRContext();\r\nexport const AlertContext = createContext({ \r\n alertData: {},\r\n setAlertData : () => {}\r\n})\r\n\r\nexport const App = ({ instance }) => {\r\n console.log(\"App Rendered\")\r\n\r\n let searchParams = new URLSearchParams(window.location.search);\r\n let taskTypeParam = searchParams.get(\"taskType\");\r\n\r\n const accounts = instance.getAllAccounts();\r\n const [isAuthenticated, setIsAuthenticated] = React.useState(false);\r\n const [tokenHeaders, setTokenHeaders] = React.useState(null);\r\n const setTaskListTypeFilter = useFilterStore(state => state.setTaskListTypeFilter);\r\n const taskListTypeFilter = useFilterStore(state => state.taskListTypeFilter);\r\n\r\n \r\n if((!taskListTypeFilter || !taskListTypeFilter.length) && taskTypeParam){\r\n setTaskListTypeFilter([taskTypeParam])\r\n }\r\n \r\n\r\n if (accounts.length > 0) {\r\n instance.setActiveAccount(accounts[0]);\r\n lscache.setBucket(\"Account\");\r\n lscache.set(\"LocalAccountId\", accounts[0].localAccountId, 525600000);\r\n if (!isAuthenticated) {\r\n setIsAuthenticated(true);\r\n }\r\n }\r\n else {\r\n instance.loginRedirect(loginRequest);\r\n }\r\n\r\n instance.addEventCallback((event) => {\r\n // set active account after redirect\r\n if (event.eventType === EventType.LOGIN_SUCCESS && event.payload.account) {\r\n const account = event.payload.account;\r\n instance.setActiveAccount(account);\r\n if (!isAuthenticated) {\r\n setIsAuthenticated(true);\r\n }\r\n }\r\n }, error => {\r\n console.log('error', error);\r\n });\r\n\r\n // handle auth redired/do all initial setup for msal\r\n instance.handleRedirectPromise()\r\n .then(authResult => {\r\n // Check if user signed in \r\n const account = instance.getActiveAccount();\r\n if (!account) {\r\n // redirect anonymous user to login page \r\n instance.loginRedirect(loginRequest);\r\n }\r\n else {\r\n lscache.setBucket(\"Account\");\r\n if(account.username){\r\n Sentry.setUser({ id: account.username })\r\n }\r\n lscache.set(\"LocalAccountId\", account.localAccountId, 525600000);\r\n }\r\n })\r\n .catch(err => {\r\n // TODO: Handle errors\r\n console.log(err);\r\n });\r\n\r\n function getBearerToken() {\r\n return getTasksToken().then(token => {\r\n setTokenHeaders(token.accessToken);\r\n let res = token.headers.get(\"Authorization\")\r\n return res.slice(7,res.length)\r\n })\r\n }\r\n\r\n const theme = createTheme({\r\n palette:{\r\n primary: {\r\n main: COLOURS.DARK_BLUE\r\n },\r\n secondary: {\r\n main: COLOURS.RED\r\n }\r\n }\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n {isAuthenticated &&\r\n \r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n );\r\n}\r\n","// @ts-nocheck\r\n/*!\r\n\r\n=========================================================\r\n* Material Dashboard PRO React - v1.10.0\r\n=========================================================\r\n\r\n* Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react\r\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\r\n\r\n* Coded by Creative Tim\r\n\r\n=========================================================\r\n\r\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\n\r\n*/\r\n\r\nimport React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport * as Sentry from \"@sentry/react\";\r\nimport { BrowserTracing } from \"@sentry/tracing\";\r\n\r\nimport \"assets/scss/material-dashboard-pro-react.scss?v=1.10.0\";\r\n\r\n//Split Auth to separate file\r\n//=========AUTH=========\r\nimport { PublicClientApplication } from \"@azure/msal-browser\";\r\nimport { msalConfig } from \"./authConfig\";\r\n//=========AUTH=========\r\n\r\nimport { App } from \"./App.jsx\";\r\nimport { QueryClient, QueryClientProvider } from \"react-query\";\r\nimport { ReactQueryDevtools } from \"react-query/devtools\";\r\n\r\nexport const msalInstance = new PublicClientApplication(msalConfig);\r\n\r\n// Account selection logic is app dependent. Adjust as needed for different use cases.\r\n// const accounts = msalInstance.getAllAccounts();\r\n\r\nSentry.init({\r\n dsn: \"https://f246bb3ce4064dc5987b1204a0df41a9@o401558.ingest.sentry.io/4504717834190848\",\r\n integrations: [new BrowserTracing()],\r\n environment: \"production\",\r\n\r\n // Set tracesSampleRate to 1.0 to capture 100%\r\n // of transactions for performance monitoring.\r\n // We recommend adjusting this value in production\r\n tracesSampleRate: 1.0,\r\n});\r\n\r\nexport const queryClient = new QueryClient({});\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n","/**\r\n * lscache library\r\n * Copyright (c) 2011, Pamela Fox\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n/* jshint undef:true, browser:true, node:true */\r\n/* global define */\r\n\r\n(function (root, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define([], factory);\r\n } else if (typeof module !== \"undefined\" && module.exports) {\r\n // CommonJS/Node module\r\n module.exports = factory();\r\n } else {\r\n // Browser globals\r\n root.lscache = factory();\r\n }\r\n}(this, function () {\r\n\r\n // Prefix for all lscache keys\r\n var CACHE_PREFIX = 'lscache-';\r\n\r\n // Suffix for the key name on the expiration items in localStorage\r\n var CACHE_SUFFIX = '-cacheexpiration';\r\n\r\n // expiration date radix (set to Base-36 for most space savings)\r\n var EXPIRY_RADIX = 10;\r\n\r\n // time resolution in milliseconds\r\n var expiryMilliseconds = 60 * 1000;\r\n // ECMAScript max Date (epoch + 1e8 days)\r\n var maxDate = calculateMaxDate(expiryMilliseconds);\r\n\r\n var cachedStorage;\r\n var cachedJSON;\r\n var cacheBucket = '';\r\n var warnings = false;\r\n\r\n // Determines if localStorage is supported in the browser;\r\n // result is cached for better performance instead of being run each time.\r\n // Feature detection is based on how Modernizr does it;\r\n // it's not straightforward due to FF4 issues.\r\n // It's not run at parse-time as it takes 200ms in Android.\r\n function supportsStorage() {\r\n var key = '__lscachetest__';\r\n var value = key;\r\n\r\n if (cachedStorage !== undefined) {\r\n return cachedStorage;\r\n }\r\n\r\n // some browsers will throw an error if you try to access local storage (e.g. brave browser)\r\n // hence check is inside a try/catch\r\n try {\r\n if (!localStorage) {\r\n return false;\r\n }\r\n } catch (ex) {\r\n return false;\r\n }\r\n\r\n try {\r\n setItem(key, value);\r\n removeItem(key);\r\n cachedStorage = true;\r\n } catch (e) {\r\n // If we hit the limit, and we don't have an empty localStorage then it means we have support\r\n if (isOutOfSpace(e) && localStorage.length) {\r\n cachedStorage = true; // just maxed it out and even the set test failed.\r\n } else {\r\n cachedStorage = false;\r\n }\r\n }\r\n return cachedStorage;\r\n }\r\n\r\n // Check to set if the error is us dealing with being out of space\r\n function isOutOfSpace(e) {\r\n return e && (\r\n e.name === 'QUOTA_EXCEEDED_ERR' ||\r\n e.name === 'NS_ERROR_DOM_QUOTA_REACHED' ||\r\n e.name === 'QuotaExceededError'\r\n );\r\n }\r\n\r\n // Determines if native JSON (de-)serialization is supported in the browser.\r\n function supportsJSON() {\r\n /*jshint eqnull:true */\r\n if (cachedJSON === undefined) {\r\n cachedJSON = (window.JSON != null);\r\n }\r\n return cachedJSON;\r\n }\r\n\r\n /**\r\n * Returns a string where all RegExp special characters are escaped with a \\.\r\n * @param {String} text\r\n * @return {string}\r\n */\r\n function escapeRegExpSpecialCharacters(text) {\r\n return text.replace(/[[\\]{}()*+?.\\\\^$|]/g, '\\\\$&');\r\n }\r\n\r\n /**\r\n * Returns the full string for the localStorage expiration item.\r\n * @param {String} key\r\n * @return {string}\r\n */\r\n function expirationKey(key) {\r\n return key + CACHE_SUFFIX;\r\n }\r\n\r\n /**\r\n * Returns the number of minutes since the epoch.\r\n * @return {number}\r\n */\r\n function currentTime() {\r\n return Math.floor((new Date().getTime())/expiryMilliseconds);\r\n }\r\n\r\n /**\r\n * Wrapper functions for localStorage methods\r\n */\r\n\r\n function getItem(key) {\r\n return localStorage.getItem(CACHE_PREFIX + cacheBucket + key);\r\n }\r\n\r\n function setItem(key, value) {\r\n // Fix for iPad issue - sometimes throws QUOTA_EXCEEDED_ERR on setItem.\r\n localStorage.removeItem(CACHE_PREFIX + cacheBucket + key);\r\n localStorage.setItem(CACHE_PREFIX + cacheBucket + key, value);\r\n }\r\n\r\n function removeItem(key) {\r\n localStorage.removeItem(CACHE_PREFIX + cacheBucket + key);\r\n }\r\n\r\n function eachKey(fn) {\r\n var prefixRegExp = new RegExp('^' + CACHE_PREFIX + escapeRegExpSpecialCharacters(cacheBucket) + '(.*)');\r\n // Loop in reverse as removing items will change indices of tail\r\n for (var i = localStorage.length-1; i >= 0 ; --i) {\r\n var key = localStorage.key(i);\r\n key = key && key.match(prefixRegExp);\r\n key = key && key[1];\r\n if (key && key.indexOf(CACHE_SUFFIX) < 0) {\r\n fn(key, expirationKey(key));\r\n }\r\n }\r\n }\r\n\r\n function flushItem(key) {\r\n var exprKey = expirationKey(key);\r\n\r\n removeItem(key);\r\n removeItem(exprKey);\r\n }\r\n\r\n function flushExpiredItem(key) {\r\n var exprKey = expirationKey(key);\r\n var expr = getItem(exprKey);\r\n\r\n if (expr) {\r\n var expirationTime = parseInt(expr, EXPIRY_RADIX);\r\n\r\n // Check if we should actually kick item out of storage\r\n if (currentTime() >= expirationTime) {\r\n removeItem(key);\r\n removeItem(exprKey);\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n function warn(message, err) {\r\n if (!warnings) return;\r\n if (!('console' in window) || typeof window.console.warn !== 'function') return;\r\n window.console.warn(\"lscache - \" + message);\r\n if (err) window.console.warn(\"lscache - The error was: \" + err.message);\r\n }\r\n\r\n function calculateMaxDate(expiryMilliseconds) {\r\n return Math.floor(8.64e15/expiryMilliseconds);\r\n }\r\n\r\n var lscache = {\r\n /**\r\n * Stores the value in localStorage. Expires after specified number of minutes.\r\n * @param {string} key\r\n * @param {Object|string} value\r\n * @param {number} time\r\n * @return true if the value was inserted successfully\r\n */\r\n set: function(key, value, time) {\r\n if (!supportsStorage()) return false;\r\n\r\n // If we don't get a string value, try to stringify\r\n // In future, localStorage may properly support storing non-strings\r\n // and this can be removed.\r\n\r\n if (!supportsJSON()) return false;\r\n try {\r\n value = JSON.stringify(value);\r\n } catch (e) {\r\n // Sometimes we can't stringify due to circular refs\r\n // in complex objects, so we won't bother storing then.\r\n return false;\r\n }\r\n\r\n try {\r\n setItem(key, value);\r\n } catch (e) {\r\n if (isOutOfSpace(e)) {\r\n // If we exceeded the quota, then we will sort\r\n // by the expire time, and then remove the N oldest\r\n var storedKeys = [];\r\n var storedKey;\r\n eachKey(function(key, exprKey) {\r\n var expiration = getItem(exprKey);\r\n if (expiration) {\r\n expiration = parseInt(expiration, EXPIRY_RADIX);\r\n } else {\r\n // TODO: Store date added for non-expiring items for smarter removal\r\n expiration = maxDate;\r\n }\r\n storedKeys.push({\r\n key: key,\r\n size: (getItem(key) || '').length,\r\n expiration: expiration\r\n });\r\n });\r\n // Sorts the keys with oldest expiration time last\r\n storedKeys.sort(function(a, b) { return (b.expiration-a.expiration); });\r\n\r\n var targetSize = (value||'').length;\r\n while (storedKeys.length && targetSize > 0) {\r\n storedKey = storedKeys.pop();\r\n warn(\"Cache is full, removing item with key '\" + key + \"'\");\r\n flushItem(storedKey.key);\r\n targetSize -= storedKey.size;\r\n }\r\n try {\r\n setItem(key, value);\r\n } catch (e) {\r\n // value may be larger than total quota\r\n warn(\"Could not add item with key '\" + key + \"', perhaps it's too big?\", e);\r\n return false;\r\n }\r\n } else {\r\n // If it was some other error, just give up.\r\n warn(\"Could not add item with key '\" + key + \"'\", e);\r\n return false;\r\n }\r\n }\r\n\r\n // If a time is specified, store expiration info in localStorage\r\n if (time) {\r\n setItem(expirationKey(key), (currentTime() + time).toString(EXPIRY_RADIX));\r\n } else {\r\n // In case they previously set a time, remove that info from localStorage.\r\n removeItem(expirationKey(key));\r\n }\r\n return true;\r\n },\r\n\r\n /**\r\n * Retrieves specified value from localStorage, if not expired.\r\n * @param {string} key\r\n * @return {string|Object}\r\n */\r\n get: function(key) {\r\n if (!supportsStorage()) return null;\r\n\r\n // Return the de-serialized item if not expired\r\n if (flushExpiredItem(key)) { return null; }\r\n\r\n // Tries to de-serialize stored value if its an object, and returns the normal value otherwise.\r\n var value = getItem(key);\r\n if (!value || !supportsJSON()) {\r\n return value;\r\n }\r\n\r\n try {\r\n // We can't tell if its JSON or a string, so we try to parse\r\n return JSON.parse(value);\r\n } catch (e) {\r\n // If we can't parse, it's probably because it isn't an object\r\n return value;\r\n }\r\n },\r\n\r\n /**\r\n * Removes a value from localStorage.\r\n * Equivalent to 'delete' in memcache, but that's a keyword in JS.\r\n * @param {string} key\r\n */\r\n remove: function(key) {\r\n if (!supportsStorage()) return;\r\n\r\n flushItem(key);\r\n },\r\n\r\n /**\r\n * Returns whether local storage is supported.\r\n * Currently exposed for testing purposes.\r\n * @return {boolean}\r\n */\r\n supported: function() {\r\n return supportsStorage();\r\n },\r\n\r\n /**\r\n * Flushes all lscache items and expiry markers without affecting rest of localStorage\r\n */\r\n flush: function() {\r\n if (!supportsStorage()) return;\r\n\r\n eachKey(function(key) {\r\n flushItem(key);\r\n });\r\n },\r\n\r\n /**\r\n * Flushes expired lscache items and expiry markers without affecting rest of localStorage\r\n */\r\n flushExpired: function() {\r\n if (!supportsStorage()) return;\r\n\r\n eachKey(function(key) {\r\n flushExpiredItem(key);\r\n });\r\n },\r\n\r\n /**\r\n * Appends CACHE_PREFIX so lscache will partition data in to different buckets.\r\n * @param {string} bucket\r\n */\r\n setBucket: function(bucket) {\r\n cacheBucket = bucket;\r\n },\r\n\r\n /**\r\n * Resets the string being appended to CACHE_PREFIX so lscache will use the default storage behavior.\r\n */\r\n resetBucket: function() {\r\n cacheBucket = '';\r\n },\r\n\r\n /**\r\n * @returns {number} The currently set number of milliseconds each time unit represents in\r\n * the set() function's \"time\" argument.\r\n */\r\n getExpiryMilliseconds: function() {\r\n return expiryMilliseconds;\r\n },\r\n\r\n /**\r\n * Sets the number of milliseconds each time unit represents in the set() function's\r\n * \"time\" argument.\r\n * Sample values:\r\n * 1: each time unit = 1 millisecond\r\n * 1000: each time unit = 1 second\r\n * 60000: each time unit = 1 minute (Default value)\r\n * 360000: each time unit = 1 hour\r\n * @param {number} milliseconds\r\n */\r\n setExpiryMilliseconds: function(milliseconds) {\r\n expiryMilliseconds = milliseconds;\r\n maxDate = calculateMaxDate(expiryMilliseconds);\r\n },\r\n\r\n /**\r\n * Sets whether to display warnings when an item is removed from the cache or not.\r\n */\r\n enableWarnings: function(enabled) {\r\n warnings = enabled;\r\n }\r\n };\r\n\r\n // Return the module\r\n return lscache;\r\n}));\r\n"],"sourceRoot":""}