{"version":3,"sources":["serviceWorker.js","helpers/chartjs.js","theme/palette.js","theme/typography.js","theme/overrides/index.js","theme/overrides/MuiButton.js","theme/overrides/MuiIconButton.js","theme/overrides/MuiPaper.js","theme/overrides/MuiTableCell.js","theme/overrides/MuiTableHead.js","theme/overrides/MuiTypography.js","theme/index.js","common/validators.js","components/SearchInput/SearchInput.js","components/StatusBullet/StatusBullet.js","components/RouteWithLayout/RouteWithLayout.js","layouts/Main/components/Footer/Footer.js","contexts/AppContext.js","services/graphService.js","services/environmentService.js","constants/apiUrl.js","services/axiosService.js","layouts/Main/components/Sidebar/components/Profile/Profile.js","services/iconService.js","layouts/Main/components/Sidebar/components/SidebarNav/SidebarNav.js","layouts/Main/components/Sidebar/components/UpgradePlan/UpgradePlan.js","layouts/Main/components/Sidebar/components/SidebarCollapser/SidebarCollapser.js","services/sidebarLinkService.js","services/microsoftGraphApiService.js","components/LoadingScreen.js","layouts/Main/components/Sidebar/Sidebar.js","layouts/Main/components/Topbar/Admin.js","contexts/AuthContext.js","hooks/useAuth.js","layouts/Main/components/Topbar/Topbar.js","layouts/Main/Main.js","layouts/Minimal/components/Topbar/Topbar.js","layouts/Minimal/Minimal.js","content/workingOnItPages.js","views/Account/components/AccountDetails/AccountDetails.js","views/Account/components/AccountProfile/AccountProfile.js","views/Account/Account.js","views/Dashboard/components/Budget/Budget.js","views/Dashboard/components/LatestOrders/data.js","views/Dashboard/components/LatestOrders/LatestOrders.js","views/Dashboard/components/LatestProducts/data.js","views/Dashboard/components/LatestProducts/LatestProducts.js","views/Dashboard/components/LatestSales/chart.js","views/Dashboard/components/LatestSales/LatestSales.js","views/Dashboard/components/TasksProgress/TasksProgress.js","views/Dashboard/components/TotalProfit/TotalProfit.js","views/Dashboard/components/TotalUsers/TotalUsers.js","views/Dashboard/components/UsersByDevice/UsersByDevice.js","views/Dashboard/Dashboard.js","views/NotFound/NotFound.js","views/ProductList/components/ProductCard/ProductCard.js","views/ProductList/components/ProductsToolbar/ProductsToolbar.js","views/ProductList/data.js","views/ProductList/ProductList.js","views/Settings/components/Notifications/Notifications.js","views/Settings/components/Password/Password.js","views/Settings/Settings.js","icons/Office365/index.js","views/SignIn/SignIn.js","views/SignUp/SignUp.js","views/WorkingOnIt/WorkingOnIt.js","views/Typography/Typography.js","views/Home/Home.js","components/CrudDialog/Operation.js","components/CrudDialog/CrudDialog.js","components/DataTable/DraggableTable.js","components/DataTable/DataTable.js","components/CrudTable/CrudTableToolbar.js","components/CrudTable/CrudTable.js","views/Sidebar/Sidebar.js","components/Tableau/TableauDashboard.js","views/TableauDashboard/StandardTableauDashboard.js","routes/TableauRoutes.js","routes/AdminSidebarRoutes.js","routes/AdminRoutes.js","routes/ThemeRoutes.js","Routes.js","App.js","index.js"],"names":["Boolean","window","location","hostname","match","draw","left","right","top","bottom","signX","signY","borderSkipped","radius","ctx","this","_chart","vm","_view","borderWidth","cornerRadius","config","options","horizontal","base","x","y","height","width","barSize","Math","min","abs","halfStroke","borderLeft","borderRight","borderTop","borderBottom","beginPath","fillStyle","backgroundColor","strokeStyle","borderColor","lineWidth","corners","startCorner","indexOf","cornerAt","index","corner","moveTo","i","nextCornerId","floor","xTl","xTr","yTl","yTr","xBl","xBr","yBl","yBr","lineTo","quadraticCurveTo","fill","stroke","white","black","primary","contrastText","dark","colors","indigo","main","light","secondary","blue","success","green","info","warning","orange","error","red","text","blueGrey","link","background","default","paper","icon","divider","grey","h1","color","palette","fontWeight","fontSize","letterSpacing","lineHeight","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","button","caption","overline","textTransform","MuiButton","contained","boxShadow","MuiIconButton","root","MuiPaper","elevation1","MuiTableCell","typography","MuiTableHead","MuiTypography","gutterBottom","marginBottom","theme","createMuiTheme","overrides","zIndex","appBar","drawer","checked","value","message","useStyles","makeStyles","borderRadius","alignItems","padding","spacing","display","flexBasis","marginRight","input","flexGrow","SearchInput","props","className","onChange","style","rest","classes","Paper","clsx","Input","disableUnderline","flexShrink","sm","md","lg","neutral","danger","StatusBullet","size","defaultProps","auth","msData","localStorage","getItem","JSON","parse","sessionExpired","expirationTime","expiresOn","moment","Date","loggedIn","RouteWithLayout","Layout","layout","Component","component","publicRoute","componentProps","Object","keys","filter","key","startsWith","reduce","acc","cur","replace","render","matchProps","to","pathname","state","from","Footer","variant","Link","href","target","process","AppContext","React","createContext","appData","setAppData","getAccessToken","accessToken","ENVIRONMENT","API_URL","AZURE_FUNCTION","azureFunctionUrl","currentHost","host","includes","getCurrentEnv","getAzureFunctionUrl","MICROSOFT_GRAPH","instance","axios","create","baseURL","headers","common","interceptors","request","use","params","code","Promise","reject","flexDirection","minHeight","avatar","name","marginTop","Profile","useState","userName","setUserName","jobTitle","setJobTitle","setAvatar","user","bio","useEffect","a","account","get","meData","data","photoData","URL","createObjectURL","console","log","Avatar","alt","src","iconMap","AccountBalance","AirplanemodeActive","Assignment","AttachMoney","BlurLinear","CalendarToday","CenterFocusStrong","CreditCard","Dashboard","EmojiSymbols","FormatListNumbered","Group","HelpOutline","Language","LocalAtm","MonetizationOn","MonetizationOnOutlined","PermDataSetting","Phone","Settings","SpeakerNotes","SupervisedUserCircle","Timeline","TrendingUp","Widgets","DynamicMaterialIcon","createElement","getMaterialIcons","setItem","stringify","item","paddingTop","paddingBottom","justifyContent","fontWeightMedium","active","CustomRouterLink","forwardRef","ref","SidebarNav","pages","open","toggleSideBar","navItemExpand","setNavItemExpand","each","page","find","children","List","map","ListItem","disableGutters","Fragment","Button","onClick","Collapse","in","disablePadding","childPage","nested","activeClassName","getChildMenu","media","textAlign","content","actions","collapser","position","SidebarCollapser","desktopCollapse","IconButton","hidden","ChevronRight","ChevronLeft","getSidebar","getParentLinkId","parent_href","sidebar_links","id","getSidebarWithChildrenNested","length","getChildren","parent_id","ans","forEach","val","temp","push","fetchSidebarAndSaveToLocalStorage","getSidebarLinks","rows","addSidebarLink","view_permission","tableau_url","post","updateSidebarLink","put","deleteSidebarLink","delete","getLoggedInUserActiveDirectoryGroups","getActiveDirectoryGroups","isAdmin","some","displayName","fetchActiveDirectoryGroupsAndSaveToLocalStorage","azureGroups","azureGroupsSorted","sort","b","LoadingScreen","NProgress","start","done","Box","LinearProgress","breakpoints","up","margin","nav","overflowX","Sidebar","onClose","onToggleDesktopCollapse","useTheme","isDesktop","useMediaQuery","defaultMatches","useContext","isLoading","setIsLoading","grpData","prevAppData","active_directory_groups","loadSidebar","Drawer","anchor","Divider","Admin","Tooltip","title","RouterLink","LockOpen","msalConfig","clientId","authority","cache","cacheLocation","storeAuthStateInCookie","AuthContext","AuthProvider","msal","msalInstance","authResponse","setAuthResponse","loginError","setLoginError","displayError","loginWithMicrosoft","acquireTokenSilent","scopes","token","acquireTokenRedirect","handleRedirectPromise","resp","setActiveAccount","currentAccounts","getAllAccounts","activeAccount","Provider","logout","sessionStorage","clear","cookies","document","cookie","split","eqPos","substr","deleteAllCookies","signOutButton","marginLeft","withRouter","onSidebarOpen","history","staticContext","useAuth","notifications","handleLogout","AppBar","Toolbar","Hidden","mdDown","Badge","badgeContent","lgUp","shiftContent","paddingLeft","Main","openSidebar","setOpenSidebar","setDesktopCollapse","shouldOpenSidebar","Topbar","Minimal","AccountDetails","firstName","lastName","email","phone","country","values","setValues","handleChange","event","Card","autoComplete","noValidate","CardHeader","subheader","CardContent","Grid","container","xs","TextField","fullWidth","helperText","label","required","type","select","SelectProps","native","option","CardActions","details","progress","uploadButton","AccountProfile","locationText","dateText","format","Account","xl","difference","differenceIcon","differenceValue","Budget","justify","uuid","amount","customer","createdAt","status","inner","minWidth","statusContainer","statusColors","delivered","pending","refunded","LatestOrders","mockData","orders","action","Table","TableHead","TableRow","TableCell","sortDirection","enterDelay","TableSortLabel","direction","TableBody","order","hover","imageUrl","updatedAt","subtract","image","LatestProducts","products","subtitle","product","ListItemAvatar","ListItemText","fromNow","edge","labels","datasets","responsive","maintainAspectRatio","animation","legend","tooltips","enabled","mode","intersect","titleFontColor","bodyFontColor","footerFontColor","scales","xAxes","barThickness","maxBarThickness","barPercentage","categoryPercentage","ticks","fontColor","gridLines","drawBorder","yAxes","beginAtZero","borderDash","borderDashOffset","zeroLineBorderDash","zeroLineBorderDashOffset","zeroLineColor","chartContainer","LatestSales","TasksProgress","TotalProfit","TotalUsers","stats","device","deviceIcon","UsersByDevice","hoverBorderColor","cutoutPercentage","devices","maxWidth","NotFound","imageContainer","border","overflow","statsItem","statsIcon","ProductCard","align","description","totalDownloads","row","spacer","importButton","exportButton","searchInput","ProductsToolbar","placeholder","pagination","ProductList","Notifications","wrap","FormControlLabel","control","Checkbox","defaultChecked","Password","password","confirm","path","fillOpacity","strokeWidth","Office365Logo","SvgIcon","viewBox","d","schema","presence","allowEmpty","maximum","grid","quoteContainer","down","quote","backgroundImage","backgroundSize","backgroundRepeat","backgroundPosition","quoteInner","quoteText","contentContainer","contentHeader","paddingBototm","paddingRight","logoImage","contentBody","form","socialButtons","socialIcon","sugestion","textField","signInButton","isValid","touched","errors","formState","setFormState","hasError","field","validate","hash","Error","login","person","onSubmit","preventDefault","Office365","persist","disabled","policy","policyCheckbox","signUpButton","goBack","policyText","underline","FormHelperText","topImage","WorkingOnIt","Home","smDown","freeze","formControl","noLabel","buttonProgress","wrapper","buttonSuccess","buttonError","alert","hide","CrudAlert","setMessage","Alert","severity","CrudDialog","settings","crudDialog","createOnSubmit","extraNonFormDataToSubmit","createDialogContent","dialogContent","createDialogTitle","dialogTitle","createDialogInstructions","dialogInstructions","updateOnSubmit","update","deleteOnSubmit","deleteDialogTitle","deleteDialogInstructions","fetchDataAfterSubmit","appDataToRefreshAfterSubmit","operation","selected_item","formData","setFormData","loading","setLoading","alertMessage","setAlertMessage","Operation","UPDATE","updateAppDataContext","dataAfterSubmit","handleSave","dataToSubmit","dataToSubmitWithoutId","CREATE","handleClose","response","handleDeleteConfirm","dialog","dialog_title","dialog_instructions","dialog_content","newVal","undefined","e","dialog_actions","CircularProgress","DELETE","autoFocus","Dialog","DialogTitle","DialogContent","DialogContentText","DialogActions","DraggableTable","tableData","tableRow","draggableSettings","onDragEnd","droppableId","provided","snapshot","droppableProps","innerRef","isDraggingOver","draggableId","toString","isDragging","draggableStyle","tRow","cloneElement","draggableProps","dragHandleProps","userSelect","nameContainer","cursor","checkboxCell","DataTable","tableSettings","draggable","tableHead","tableBody","onRowClick","selectedRows","setSelectedRows","rowsPerPage","setRowsPerPage","setPage","handleClickCheckboxCell","stopPropagation","currentTableData","limit","slice","applyPagination","selected","handleRowClick","selectedIndex","newSelectedRows","concat","handleSelectOne","tableCell","idx","tableLayout","indeterminate","head","TablePagination","count","onChangePage","onChangeRowsPerPage","rowsPerPageOptions","CrudTableToolbar","toolbarSettings","onClickCreate","breadcrumbs","buttonText","Breadcrumbs","separator","aria-label","breadcrumb","CrudTable","crudDialogSettings","onClickCloseCrudDialog","permission","tableauLink","wordBreak","isSidebarChildrenPage","enqueueSnackbar","useSnackbar","activeDirectoryGroups","FormControl","InputLabel","Select","renderValue","MenuProps","PaperProps","MenuItem","mr","mt","multiple","group","join","hasOwnProperty","onBlur","links","getSidebarSubLinksByParentHref","getSidebarMainLinks","getSidebarMainLinksWithIconComponents","setCrudDialog","tableBodyTitle","tableBodyIcon","tableActions","handleEditClick","Edit","handleDeleteClick","Delete","tableCellWidths","result","destination","reorder","list","startId","endId","results","Array","startIndex","findIndex","endIndex","splice","removed","sidebar_links_before_reorder","source","sortOrders","order_id","patch","entry","ind","permission_id","display_name","Chip","sidebar_link","hideTabs","TableauDashboard","url","query","setUrl","TableauRoutes","useRouteMatch","WorkingOnItView","exact","MainLayout","StandardTableauDashboardView","AdminSidebarRoutes","SidebarView","AdminRoutes","ThemeRoutes","DashboardView","ProductListView","AccountView","SettingsView","Routes","routes","fallback","HomeView","workingOnItPages","SignUpView","MinimalLayout","SignInView","NotFoundView","browserHistory","createBrowserHistory","Chart","helpers","extend","elements","Rectangle","prototype","chartjs","validators","App","ThemeProvider","maxSnack","autoHideDuration","protocol","search","ReactDOM","getElementById","navigator","serviceWorker","ready","then","registration","unregister"],"mappings":"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","file":"static/js/main.967ad055.chunk.js","sourcesContent":["// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","// ChartJS extension rounded bar chart\n// https://codepen.io/jedtrow/full/ygRYgo\nfunction draw() {\n const { ctx } = this._chart;\n const vm = this._view;\n let { borderWidth } = vm;\n\n let left;\n let right;\n let top;\n let bottom;\n let signX;\n let signY;\n let borderSkipped;\n let radius;\n\n // If radius is less than 0 or is large enough to cause drawing errors a max\n // radius is imposed. If cornerRadius is not defined set it to 0.\n let { cornerRadius } = this._chart.config.options;\n if (cornerRadius < 0) {\n cornerRadius = 0;\n }\n\n if (typeof cornerRadius === 'undefined') {\n cornerRadius = 0;\n }\n\n if (!vm.horizontal) {\n // bar\n left = vm.x - vm.width / 2;\n right = vm.x + vm.width / 2;\n top = vm.y;\n bottom = vm.base;\n signX = 1;\n signY = bottom > top ? 1 : -1;\n borderSkipped = vm.borderSkipped || 'bottom';\n } else {\n // horizontal bar\n left = vm.base;\n right = vm.x;\n top = vm.y - vm.height / 2;\n bottom = vm.y + vm.height / 2;\n signX = right > left ? 1 : -1;\n signY = 1;\n borderSkipped = vm.borderSkipped || 'left';\n }\n\n // Canvas doesn't allow us to stroke inside the width so we can\n // adjust the sizes to fit if we're setting a stroke on the line\n if (borderWidth) {\n // borderWidth shold be less than bar width and bar height.\n const barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\n borderWidth = borderWidth > barSize ? barSize : borderWidth;\n const halfStroke = borderWidth / 2;\n // Adjust borderWidth when bar top position is near vm.base(zero).\n const borderLeft =\n left + (borderSkipped !== 'left' ? halfStroke * signX : 0);\n const borderRight =\n right + (borderSkipped !== 'right' ? -halfStroke * signX : 0);\n const borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0);\n const borderBottom =\n bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0);\n // not become a vertical line?\n if (borderLeft !== borderRight) {\n top = borderTop;\n bottom = borderBottom;\n }\n // not become a horizontal line?\n if (borderTop !== borderBottom) {\n left = borderLeft;\n right = borderRight;\n }\n }\n\n ctx.beginPath();\n ctx.fillStyle = vm.backgroundColor;\n ctx.strokeStyle = vm.borderColor;\n ctx.lineWidth = borderWidth;\n\n // Corner points, from bottom-left to bottom-right clockwise\n // | 1 2 |\n // | 0 3 |\n const corners = [[left, bottom], [left, top], [right, top], [right, bottom]];\n\n // Find first (starting) corner with fallback to 'bottom'\n const borders = ['bottom', 'left', 'top', 'right'];\n let startCorner = borders.indexOf(borderSkipped, 0);\n if (startCorner === -1) {\n startCorner = 0;\n }\n\n function cornerAt(index) {\n return corners[(startCorner + index) % 4];\n }\n\n // Draw rectangle from 'startCorner'\n let corner = cornerAt(0);\n ctx.moveTo(corner[0], corner[1]);\n\n for (let i = 1; i < 4; i += 1) {\n corner = cornerAt(i);\n let nextCornerId = i + 1;\n if (nextCornerId === 4) {\n nextCornerId = 0;\n }\n\n const width = corners[2][0] - corners[1][0];\n const height = corners[0][1] - corners[1][1];\n const x = corners[1][0];\n const y = corners[1][1];\n\n radius = cornerRadius;\n // Fix radius being too large\n if (radius > Math.abs(height) / 2) {\n radius = Math.floor(Math.abs(height) / 2);\n }\n if (radius > Math.abs(width) / 2) {\n radius = Math.floor(Math.abs(width) / 2);\n }\n\n if (height < 0) {\n // Negative values in a standard bar chart\n const xTl = x;\n const xTr = x + width;\n const yTl = y + height;\n const yTr = y + height;\n\n const xBl = x;\n const xBr = x + width;\n const yBl = y;\n const yBr = y;\n\n // Draw\n ctx.moveTo(xBl + radius, yBl);\n ctx.lineTo(xBr - radius, yBr);\n ctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\n ctx.lineTo(xTr, yTr + radius);\n ctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\n ctx.lineTo(xTl + radius, yTl);\n ctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\n ctx.lineTo(xBl, yBl - radius);\n ctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\n } else if (width < 0) {\n // Negative values in a horizontal bar chart\n const xTl = x + width;\n const xTr = x;\n const yTl = y;\n const yTr = y;\n\n const xBl = x + width;\n const xBr = x;\n const yBl = y + height;\n const yBr = y + height;\n\n // Draw\n ctx.moveTo(xBl + radius, yBl);\n ctx.lineTo(xBr - radius, yBr);\n ctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\n ctx.lineTo(xTr, yTr + radius);\n ctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\n ctx.lineTo(xTl + radius, yTl);\n ctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\n ctx.lineTo(xBl, yBl - radius);\n ctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\n } else {\n // Positive Value\n ctx.moveTo(x + radius, y);\n ctx.lineTo(x + width - radius, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n ctx.lineTo(x + width, y + height - radius);\n ctx.quadraticCurveTo(\n x + width,\n y + height,\n x + width - radius,\n y + height\n );\n ctx.lineTo(x + radius, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n ctx.lineTo(x, y + radius);\n ctx.quadraticCurveTo(x, y, x + radius, y);\n }\n }\n\n ctx.fill();\n if (borderWidth) {\n ctx.stroke();\n }\n}\n\nexport default {\n draw\n};\n","import { colors } from '@material-ui/core';\n\nconst white = '#FFFFFF';\nconst black = '#000000';\n\nexport default {\n black,\n white,\n primary: {\n contrastText: white,\n dark: colors.indigo[900],\n main: colors.indigo[500],\n light: colors.indigo[100]\n },\n secondary: {\n contrastText: white,\n dark: colors.blue[900],\n main: colors.blue['A400'],\n light: colors.blue['A400']\n },\n success: {\n contrastText: white,\n dark: colors.green[900],\n main: colors.green[600],\n light: colors.green[400]\n },\n info: {\n contrastText: white,\n dark: colors.blue[900],\n main: colors.blue[600],\n light: colors.blue[400]\n },\n warning: {\n contrastText: white,\n dark: colors.orange[900],\n main: colors.orange[600],\n light: colors.orange[400]\n },\n error: {\n contrastText: white,\n dark: colors.red[900],\n main: colors.red[600],\n light: colors.red[400]\n },\n text: {\n primary: colors.blueGrey[900],\n secondary: colors.blueGrey[600],\n link: colors.blue[600]\n },\n background: {\n default: '#F4F6F8',\n paper: white,\n contrastText: colors.blue['A400'],\n dark: '#fff',\n main: '#fff',\n light: '#fff'\n },\n icon: colors.blueGrey[600],\n divider: colors.grey[200]\n};\n","import palette from './palette';\n\nexport default {\n h1: {\n color: palette.text.primary,\n fontWeight: 500,\n fontSize: '35px',\n letterSpacing: '-0.24px',\n lineHeight: '40px'\n },\n h2: {\n color: palette.text.primary,\n fontWeight: 500,\n fontSize: '29px',\n letterSpacing: '-0.24px',\n lineHeight: '32px'\n },\n h3: {\n color: palette.text.primary,\n fontWeight: 500,\n fontSize: '24px',\n letterSpacing: '-0.06px',\n lineHeight: '28px'\n },\n h4: {\n color: palette.text.primary,\n fontWeight: 500,\n fontSize: '20px',\n letterSpacing: '-0.06px',\n lineHeight: '24px'\n },\n h5: {\n color: palette.text.primary,\n fontWeight: 500,\n fontSize: '16px',\n letterSpacing: '-0.05px',\n lineHeight: '20px'\n },\n h6: {\n color: palette.text.primary,\n fontWeight: 500,\n fontSize: '14px',\n letterSpacing: '-0.05px',\n lineHeight: '20px'\n },\n subtitle1: {\n color: palette.text.primary,\n fontSize: '16px',\n letterSpacing: '-0.05px',\n lineHeight: '25px'\n },\n subtitle2: {\n color: palette.text.secondary,\n fontWeight: 400,\n fontSize: '14px',\n letterSpacing: '-0.05px',\n lineHeight: '21px'\n },\n body1: {\n color: palette.text.primary,\n fontSize: '14px',\n letterSpacing: '-0.05px',\n lineHeight: '21px'\n },\n body2: {\n color: palette.text.secondary,\n fontSize: '12px',\n letterSpacing: '-0.04px',\n lineHeight: '18px'\n },\n button: {\n color: palette.text.primary,\n fontSize: '14px'\n },\n caption: {\n color: palette.text.secondary,\n fontSize: '11px',\n letterSpacing: '0.33px',\n lineHeight: '13px'\n },\n overline: {\n color: palette.text.secondary,\n fontSize: '11px',\n fontWeight: 500,\n letterSpacing: '0.33px',\n lineHeight: '13px',\n textTransform: 'uppercase'\n }\n};\n","import MuiButton from './MuiButton';\nimport MuiIconButton from './MuiIconButton';\nimport MuiPaper from './MuiPaper';\nimport MuiTableCell from './MuiTableCell';\nimport MuiTableHead from './MuiTableHead';\nimport MuiTypography from './MuiTypography';\n\nexport default {\n MuiButton,\n MuiIconButton,\n MuiPaper,\n MuiTableCell,\n MuiTableHead,\n MuiTypography\n};\n","export default {\n contained: {\n boxShadow:\n '0 1px 1px 0 rgba(0,0,0,0.14), 0 2px 1px -1px rgba(0,0,0,0.12), 0 1px 3px 0 rgba(0,0,0,0.20)',\n backgroundColor: '#FFFFFF'\n }\n};\n","import palette from '../palette';\n\nexport default {\n root: {\n color: palette.icon,\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.03)'\n }\n }\n};\n","export default {\n elevation1: {\n boxShadow: '0 0 0 1px rgba(63,63,68,0.05), 0 1px 3px 0 rgba(63,63,68,0.15)'\n }\n};\n","import palette from '../palette';\nimport typography from '../typography';\n\nexport default {\n root: {\n ...typography.body1,\n borderBottom: `1px solid ${palette.divider}`\n }\n};\n","import { colors } from '@material-ui/core';\n\nexport default {\n root: {\n backgroundColor: colors.grey[50]\n }\n};\n","export default {\n gutterBottom: {\n marginBottom: 8\n }\n};\n","import { createMuiTheme } from '@material-ui/core';\n\nimport palette from './palette';\nimport typography from './typography';\nimport overrides from './overrides';\n\nconst theme = createMuiTheme({\n palette,\n typography,\n overrides,\n zIndex: {\n appBar: 1200,\n drawer: 1100\n }\n});\n\nexport default theme;\n","const checked = (value, options) => {\n if (value !== true) {\n return options.message || 'must be checked';\n }\n};\n\nexport default {\n checked\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/styles';\nimport { Paper, Input } from '@material-ui/core';\nimport SearchIcon from '@material-ui/icons/Search';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n borderRadius: '4px',\n alignItems: 'center',\n padding: theme.spacing(1),\n display: 'flex',\n flexBasis: 420\n },\n icon: {\n marginRight: theme.spacing(1),\n color: theme.palette.text.secondary\n },\n input: {\n flexGrow: 1,\n fontSize: '14px',\n lineHeight: '16px',\n letterSpacing: '-0.05px'\n }\n}));\n\nconst SearchInput = props => {\n const { className, onChange, style, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n \n \n \n );\n};\n\nSearchInput.propTypes = {\n className: PropTypes.string,\n onChange: PropTypes.func,\n style: PropTypes.object\n};\n\nexport default SearchInput;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/styles';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'inline-block',\n borderRadius: '50%',\n flexGrow: 0,\n flexShrink: 0\n },\n sm: {\n height: theme.spacing(1),\n width: theme.spacing(1)\n },\n md: {\n height: theme.spacing(2),\n width: theme.spacing(2)\n },\n lg: {\n height: theme.spacing(3),\n width: theme.spacing(3)\n },\n neutral: {\n backgroundColor: theme.palette.neutral\n },\n primary: {\n backgroundColor: theme.palette.primary.main\n },\n info: {\n backgroundColor: theme.palette.info.main\n },\n warning: {\n backgroundColor: theme.palette.warning.main\n },\n danger: {\n backgroundColor: theme.palette.error.main\n },\n success: {\n backgroundColor: theme.palette.success.main\n }\n}));\n\nconst StatusBullet = props => {\n const { className, size, color, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n );\n};\n\nStatusBullet.propTypes = {\n className: PropTypes.string,\n color: PropTypes.oneOf([\n 'neutral',\n 'primary',\n 'info',\n 'success',\n 'warning',\n 'danger'\n ]),\n size: PropTypes.oneOf(['sm', 'md', 'lg'])\n};\n\nStatusBullet.defaultProps = {\n size: 'md',\n color: 'default'\n};\n\nexport default StatusBullet;\n","import React from 'react';\nimport { Route, Redirect } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\n\nconst auth = {\n isAuthenticated() {\n let msData = localStorage.getItem('msData') ? JSON.parse(localStorage.getItem('msData')) : null;\n let sessionExpired = true;\n if (msData) {\n let expirationTime = msData.expiresOn;\n if (moment(new Date()) < moment(expirationTime)) {\n sessionExpired = false;\n }\n }\n const loggedIn = localStorage.getItem('id_token');\n return loggedIn && loggedIn === '1' && !sessionExpired ? true : false;\n }\n};\n\nconst RouteWithLayout = props => {\n const { layout: Layout, component: Component, publicRoute, ...rest } = props;\n\n const componentPrefix = 'component-';\n const componentProps = Object.keys(rest).filter(\n key => key.startsWith(componentPrefix)\n ).reduce((acc, cur) => {\n acc[cur.replace(componentPrefix, '')] = rest[cur];\n return acc;\n }, {});\n\n return (\n \n auth.isAuthenticated() || publicRoute ? (\n \n \n \n ) : (\n \n )\n }\n />\n );\n};\n\nRouteWithLayout.propTypes = {\n component: PropTypes.any,\n layout: PropTypes.any,\n path: PropTypes.string\n};\n\nexport default RouteWithLayout;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/styles';\nimport { Link, Typography } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(4)\n }\n}));\n\nconst Footer = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n \n ©{' '}\n \n NSD Insight Qore\n \n . {process.env.REACT_APP_VERSION}\n \n \n Operation data for NSD\n \n \n );\n};\n\nFooter.propTypes = {\n className: PropTypes.string\n};\n\nexport default Footer;\n","import React from \"react\";\n\nconst AppContext = React.createContext({\n appData: {},\n setAppData: () => {}\n});\n\nexport default AppContext;\n","const getAccessToken = () => {\n const msData = localStorage.getItem('msData')\n ? JSON.parse(localStorage.getItem('msData'))\n : null;\n\n return msData\n ? msData.accessToken\n : null;\n};\n\nexport {\n getAccessToken\n};\n","export const ENVIRONMENT = {\n DEVELOPMENT: 'development',\n STAGING: 'staging',\n PRODUCTION: 'production'\n};\n\n// Check if we're in development or production. Staging uses prod db and functions\nexport const getCurrentEnv = () => {\n const currentHost = window.location.host;\n let currentEnv;\n\n if (currentHost.includes(`-${ENVIRONMENT.DEVELOPMENT}`)\n || currentHost.includes(`localhost`)\n ) {\n currentEnv = ENVIRONMENT.DEVELOPMENT;\n } else if (currentHost.includes(`-${ENVIRONMENT.STAGING}`)) {\n currentEnv = ENVIRONMENT.STAGING;\n } else {\n currentEnv = ENVIRONMENT.PRODUCTION;\n }\n\n return currentEnv;\n}\n","import { ENVIRONMENT, getCurrentEnv } from '../services/environmentService';\n\nconst getAzureFunctionUrl = () => {\n let azureFunctionUrl;\n const currentEnv = getCurrentEnv();\n switch (currentEnv) {\n case ENVIRONMENT.DEVELOPMENT:\n azureFunctionUrl = 'https://nsd-api-insight-qore-development.azurewebsites.net/api';\n break;\n case ENVIRONMENT.STAGING:\n azureFunctionUrl = 'https://nsd-api-insight-qore-staging.azurewebsites.net/api';\n break;\n case ENVIRONMENT.PRODUCTION:\n azureFunctionUrl = 'https://nsd-api-insight-qore.azurewebsites.net/api';\n break;\n default:\n break;\n }\n\n return azureFunctionUrl;\n};\n\nexport const API_URL = {\n AZURE_FUNCTION: getAzureFunctionUrl(),\n MICROSOFT_GRAPH: 'https://graph.microsoft.com/v1.0'\n};\n","import axios from 'axios';\nimport { getAccessToken } from './graphService';\nimport { API_URL } from '../constants/apiUrl';\n\nconst instance = axios.create({\n baseURL: API_URL.AZURE_FUNCTION,\n headers: {\n common: {\n 'Cache-Control': 'no-cache'\n },\n },\n});\n\ninstance.interceptors.request.use((config) => {\n config.params = {\n accessToken: getAccessToken(),\n code: process.env.REACT_APP_FUNCTION_CODE\n };\n return config;\n}, (error) => {\n return Promise.reject(error);\n});\n\nexport default instance;\n","import React, { useEffect, useState } from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { Avatar, Typography } from '@material-ui/core';\nimport axios from '../../../../../../services/axiosService';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n minHeight: 'fit-content'\n },\n avatar: {\n width: 60,\n height: 60\n },\n name: {\n marginTop: theme.spacing(1)\n }\n}));\n\nconst Profile = props => {\n const { className, ...rest } = props;\n\n const [userName, setUserName] = useState(null);\n const [jobTitle, setJobTitle] = useState(null);\n const [avatar, setAvatar] = useState('');\n const classes = useStyles();\n\n const user = {\n name: userName,\n avatar: avatar,\n bio: jobTitle\n };\n\n useEffect(() => {\n (async() => {\n let msData = localStorage.getItem('msData') ? JSON.parse(localStorage.getItem('msData')) : null;\n if (msData) {\n setUserName(msData.account.name);\n const msAccesToken = msData.accessToken;\n\n try {\n const { data: meData } = await axios.get('/me');\n\n if (meData && meData.jobTitle) {\n setJobTitle(meData.jobTitle);\n }\n\n const { data: photoData } = await axios.get('/me/photo');\n\n setAvatar(URL.createObjectURL(photoData));\n } catch (err) {\n console.log('graph error', err);\n }\n\n }\n })();\n }, []);\n\n return (\n \n \n \n {user.name}\n \n {user.bio}\n \n );\n};\n\nProfile.propTypes = {\n className: PropTypes.string\n};\n\nexport default Profile;\n","import { createElement } from 'react';\nimport {\n AccountBalance,\n AirplanemodeActive,\n Assignment,\n AttachMoney,\n BlurLinear,\n CalendarToday,\n CenterFocusStrong,\n CreditCard,\n Dashboard,\n EmojiSymbols,\n FormatListNumbered,\n Group,\n HelpOutline,\n Language,\n LocalAtm,\n MonetizationOn,\n MonetizationOnOutlined,\n PermDataSetting,\n Phone,\n Settings,\n SpeakerNotes,\n SupervisedUserCircle,\n Timeline,\n TrendingUp,\n Widgets\n} from '@material-ui/icons';\n\nconst iconMap = {\n 'AccountBalance': AccountBalance,\n 'AirplanemodeActive': AirplanemodeActive,\n 'Assignment': Assignment,\n 'AttachMoney': AttachMoney,\n 'BlurLinear': BlurLinear,\n 'CalendarToday': CalendarToday,\n 'CenterFocusStrong': CenterFocusStrong,\n 'CreditCard': CreditCard,\n 'Dashboard': Dashboard,\n 'EmojiSymbols': EmojiSymbols,\n 'FormatListNumberedIcon': FormatListNumbered,\n 'Group': Group,\n 'HelpOutline': HelpOutline,\n 'Language': Language,\n 'LocalAtm': LocalAtm,\n 'MonetizationOn': MonetizationOn,\n 'MonetizationOnOutlined': MonetizationOnOutlined,\n 'PermDataSetting': PermDataSetting,\n 'Phone': Phone,\n 'Settings': Settings,\n 'SpeakerNotes' : SpeakerNotes,\n 'SupervisedUserCircle': SupervisedUserCircle,\n 'Timeline': Timeline,\n 'TrendingUp': TrendingUp,\n 'Widgets': Widgets\n};\n\n//dynamically load material icon\nconst DynamicMaterialIcon = ({ icon, ...rest }) => {\n return iconMap[icon] ? createElement(iconMap[icon]) : null;\n}\n\n//get all material icons\nconst getMaterialIcons = () => {\n if (localStorage.getItem('material_icons') === null) {\n localStorage.setItem(\n 'material_icons',\n JSON.stringify(Object.keys(iconMap))\n );\n }\n\n return JSON.parse(localStorage.getItem('material_icons'));\n}\n\nexport { DynamicMaterialIcon, getMaterialIcons }\n","import React, { forwardRef, useEffect, useState } from 'react';\nimport { NavLink as RouterLink } from 'react-router-dom';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { List, ListItem, Button } from '@material-ui/core';\nimport {\n KeyboardArrowDown as ExpandMoreIcon,\n KeyboardArrowUp as ExpandLessIcon\n} from '@material-ui/icons';\nimport Collapse from '@material-ui/core/Collapse';\nimport find from 'lodash/find';\nimport each from 'lodash/each';\nimport { DynamicMaterialIcon } from '../../../../../../services/iconService';\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n item: {\n display: 'flex',\n paddingTop: 0,\n paddingBottom: 0\n },\n button: {\n color: theme.palette.icon,\n padding: '10px 8px',\n justifyContent: 'flex-start',\n textTransform: 'none',\n letterSpacing: 0,\n width: '100%',\n fontWeight: theme.typography.fontWeightMedium\n },\n icon: {\n color: theme.palette.icon,\n width: 24,\n height: 24,\n display: 'flex',\n alignItems: 'center',\n marginRight: theme.spacing(1)\n },\n active: {\n color: theme.palette.background.contrastText,\n fontWeight: theme.typography.fontWeightMedium,\n '& $icon': {\n color: theme.palette.background.contrastText\n }\n }\n}));\n\nconst CustomRouterLink = forwardRef((props, ref) => (\n \n \n \n));\n\nconst getChildMenu = (page, classes, toggleSideBar) => {\n return page.children.map(childPage => {\n return (\n \n \n
\n \n
\n {childPage.name}\n \n \n );\n }\n );\n};\n\nconst SidebarNav = props => {\n const { pages, className, open, toggleSideBar, ...rest } = props;\n\n const classes = useStyles();\n const [navItemExpand, setNavItemExpand] = useState({});\n\n useEffect(() => {\n let href = window.location.pathname;\n each(pages, page => {\n if (find(page.children, { href: href })) {\n setNavItemExpand(navItemExpand => ({\n ...navItemExpand,\n [page.name]: true\n }));\n }\n });\n }, [pages]);\n\n return (\n \n {\n pages.map(page => {\n return (\n \n {\n !page.children ?\n \n
\n \n
\n {page.name}\n \n :\n
\n {\n page.children ?\n \n {\n setNavItemExpand(navItemExpand => ({\n ...navItemExpand,\n [page.name]: !navItemExpand[page.name]\n }));\n }}\n >\n
\n \n
\n {page.name}\n {navItemExpand[page.name] ? open ? : null : open ?\n : null}\n \n \n \n {getChildMenu(page, classes, toggleSideBar)}\n \n \n
\n :\n null\n }\n
\n }\n \n );\n }\n )\n }\n \n );\n};\n\nSidebarNav.propTypes = {\n className: PropTypes.string,\n pages: PropTypes.array.isRequired\n};\n\nexport default SidebarNav;\n","import React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { Typography, Button, colors } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n backgroundColor: colors.grey[50]\n },\n media: {\n paddingTop: theme.spacing(2),\n height: 80,\n textAlign: 'center',\n '& > img': {\n height: '100%',\n width: 'auto'\n }\n },\n content: {\n padding: theme.spacing(1, 2)\n },\n actions: {\n padding: theme.spacing(1, 2),\n display: 'flex',\n justifyContent: 'center'\n }\n}));\n\nconst UpgradePlan = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n
\n \n
\n
\n \n Upgrade to PRO\n \n \n Upgrade to Devias Kit PRO and get even more components\n \n
\n
\n \n Upgrade\n \n
\n \n );\n};\n\nUpgradePlan.propTypes = {\n className: PropTypes.string\n};\n\nexport default UpgradePlan;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport { ChevronLeft as ChevronLeftIcon, ChevronRight as ChevronRightIcon } from '@material-ui/icons';\nimport IconButton from '@material-ui/core/IconButton';\nimport clsx from 'clsx';\n\nconst useStyles = makeStyles(theme => ({\n collapser: {\n display: 'inline-block',\n position: 'absolute',\n right: 10,\n top: 10\n }\n}));\n\nconst SidebarCollapser = ({onClick, desktopCollapse}) => {\n const classes = useStyles();\n\n return (\n \n { desktopCollapse ? : }\n \n );\n};\n\nexport default SidebarCollapser;\n","import axios from './axiosService';\n\n// Sidebar links can have children. This adds all children to their parent links\nconst getChildren = (map, parent_id) => {\n let ans = [];\n map.forEach((val) => {\n if (val.parent_id === parent_id) {\n let { parent_id, ...temp } = val;\n let children = getChildren(map, val.id);\n ans.push({ ...temp, ...(children.length > 0 && {children}) });\n }\n });\n return ans;\n};\n\nconst getSidebar = () => {\n return localStorage.getItem('sidebar_links') !== null\n ? JSON.parse(localStorage.getItem('sidebar_links'))\n : [];\n}\n\nconst getSidebarMainLinks = (sidebar_links) => sidebar_links.filter(\n link => link.parent_id === null\n);\n\nconst getSidebarMainLinksWithIconComponents = (sidebar_links) =>\n getSidebarMainLinks(sidebar_links);\n\nconst getSidebarSubLinksByParentHref = (parent_href, sidebar_links) => {\n if (sidebar_links.length === 0) return [];\n const parent_id = sidebar_links.find(page => page.href === parent_href).id\n return sidebar_links.filter(page => page.parent_id === parent_id);\n}\n\nconst getParentLinkId = (parent_href, sidebar_links) => {\n return sidebar_links.find(page => page.href === parent_href).id;\n}\n\nconst getSidebarWithChildrenNested = (sidebar_links) => {\n if (sidebar_links.length === 0) return [];\n return getChildren(sidebar_links, null);\n}\n\nconst fetchSidebarAndSaveToLocalStorage = async () => {\n localStorage.setItem(\n 'sidebar_links',\n JSON.stringify((await getSidebarLinks())?.data?.rows)\n );\n\n return getSidebar();\n}\n\nconst getSidebarLinks = async () => {\n return await axios.get('SidebarLink');\n}\n\nconst addSidebarLink = async (\n { name, icon, view_permission, parent_id, tableau_url }\n) => {\n await axios.post(\n 'SidebarLink',\n { name, icon, view_permission, parent_id, tableau_url }\n )\n}\n\nconst updateSidebarLink = async ({ id, name, icon, view_permission, parent_id, tableau_url }) => {\n await axios.put(\n 'SidebarLink',\n { id, name, icon, view_permission, parent_id, tableau_url }\n )\n}\n\nconst deleteSidebarLink = async ({ id }) => {\n await axios.delete('SidebarLink', { data: { id } })\n}\n\nexport {\n fetchSidebarAndSaveToLocalStorage,\n getSidebarWithChildrenNested,\n getSidebarSubLinksByParentHref,\n getSidebar,\n getSidebarMainLinks,\n getSidebarMainLinksWithIconComponents,\n addSidebarLink,\n updateSidebarLink,\n deleteSidebarLink,\n getParentLinkId\n}\n","import axios from './axiosService';\nimport { getAccessToken } from './graphService';\n\nconst getLoggedInUserActiveDirectoryGroups = () => (localStorage.getItem('user_active_directory_groups') !== null\n ? JSON.parse(localStorage.getItem('user_active_directory_groups'))\n : []);\n\nconst getActiveDirectoryGroups = () => (localStorage.getItem('active_directory_groups') !== null\n ? JSON.parse(localStorage.getItem('active_directory_groups'))\n : []);\n\nconst hasAccessToApp = () => getLoggedInUserActiveDirectoryGroups()\n .some(({ displayName }) => displayName.startsWith('All InsightQore'));\n\nconst isAdmin = () => getLoggedInUserActiveDirectoryGroups()\n .some(({ displayName }) => displayName === 'All InsightQore Admin');\n\nconst fetchActiveDirectoryGroupsAndSaveToLocalStorage = async () => {\n const azureGroups = (\n await axios.get('/groups')\n ).data.value;\n\n const azureGroupsSorted = azureGroups.sort((a, b) => {\n if (a.displayName < b.displayName) { return -1; }\n if (a.displayName > b.displayName) { return 1; }\n return 0;\n });\n\n localStorage.setItem(\n 'active_directory_groups',\n JSON.stringify(azureGroupsSorted)\n );\n\n return getActiveDirectoryGroups();\n};\n\nexport {\n getAccessToken,\n fetchActiveDirectoryGroupsAndSaveToLocalStorage,\n getActiveDirectoryGroups,\n hasAccessToApp,\n isAdmin\n};\n","import React, { useEffect } from 'react';\nimport NProgress from 'nprogress';\nimport { Box, LinearProgress, makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n alignItems: 'center',\n backgroundColor: theme.palette.background.default,\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n justifyContent: 'center',\n minHeight: '100%',\n padding: theme.spacing(3)\n }\n}));\n\nfunction LoadingScreen() {\n const classes = useStyles();\n\n useEffect(() => {\n NProgress.start();\n\n return () => {\n NProgress.done();\n };\n }, []);\n\n return (\n
\n \n \n \n
\n );\n}\n\nexport default LoadingScreen;\n","import React, { useContext, useEffect, useState } from 'react';\nimport AppContext from '../../../../contexts/AppContext';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport axios from 'services/axiosService';\nimport { makeStyles, useTheme } from '@material-ui/styles';\nimport { Divider, Drawer, useMediaQuery } from '@material-ui/core';\nimport { Profile, SidebarNav } from './components';\nimport SidebarCollapser from './components/SidebarCollapser';\nimport { fetchSidebarAndSaveToLocalStorage, getSidebarWithChildrenNested } from '../../../../services/sidebarLinkService';\nimport { fetchActiveDirectoryGroupsAndSaveToLocalStorage } from 'services/microsoftGraphApiService';\nimport { useAutocomplete } from '@material-ui/lab';\nimport LoadingScreen from 'components/LoadingScreen';\n\nconst useStyles = makeStyles(theme => ({\n drawer: {\n width: 240,\n [theme.breakpoints.up('lg')]: {\n marginTop: 64,\n height: 'calc(100% - 64px)'\n }\n },\n root: {\n backgroundColor: theme.palette.white,\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n padding: theme.spacing(2)\n },\n divider: {\n margin: theme.spacing(2, 0)\n },\n nav: {\n marginBottom: theme.spacing(2)\n },\n desktopCollapse: {\n width: 50,\n overflowX: 'hidden'\n }\n}));\n\nconst Sidebar = props => {\n const { open, variant, onClose, onToggleDesktopCollapse, desktopCollapse, className, ...rest } = props;\n const theme = useTheme();\n const isDesktop = useMediaQuery(theme.breakpoints.up('lg'), {\n defaultMatches: true\n });\n\n const { appData, setAppData } = useContext(AppContext);\n const [isLoading, setIsLoading] = useState(false);\n const { sidebar_links } = appData;\n\n const classes = useStyles();\n\n useEffect(() => {\n const loadSidebar = async () => {\n try {\n setIsLoading(true);\n\n const { data: grpData } = await axios.get('/me/memberOf');\n\n localStorage.setItem(\n 'user_active_directory_groups',\n JSON.stringify(grpData.value.map(({ id, displayName }) => ({ id, displayName })))\n );\n\n const sidebar_links = await fetchSidebarAndSaveToLocalStorage();\n setAppData((prevAppData) => ({ ...prevAppData, sidebar_links }));\n\n const active_directory_groups = await fetchActiveDirectoryGroupsAndSaveToLocalStorage();\n setAppData((prevAppData) => ({ ...prevAppData, active_directory_groups }));\n } catch (error) {\n console.error(error);\n }\n\n setIsLoading(false);\n };\n\n loadSidebar();\n }, []);\n\n if (isLoading) return ;\n\n return (\n \n \n {isDesktop && \n }\n {!desktopCollapse &&\n [\n ,\n ,\n \n ]\n }\n \n \n );\n};\n\nSidebar.propTypes = {\n className: PropTypes.string,\n onClose: PropTypes.func,\n open: PropTypes.bool.isRequired,\n variant: PropTypes.string.isRequired\n};\n\nexport default Sidebar;\n","import React from 'react';\nimport {\n IconButton,\n Tooltip\n} from '@material-ui/core';\nimport { LockOpen as LockOpenIcon } from '@material-ui/icons';\nimport { Link as RouterLink } from 'react-router-dom';\n\nfunction Admin() {\n return (\n <>\n \n \n \n \n \n \n );\n}\n\nexport default Admin;\n","/* eslint-disable no-empty */\nimport React, { createContext, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport * as msal from '@azure/msal-browser';\n\nconst msalConfig = {\n auth: {\n clientId: '4200006f-96c9-41d1-be91-7bfd3aa0a382',\n authority: 'https://login.microsoftonline.com/f797e736-cc74-4a7b-82b5-b7a09789eed2'\n },\n cache: {\n cacheLocation: 'sessionStorage',\n storeAuthStateInCookie: false\n }\n};\n\nconst AuthContext = createContext({});\n\nexport const AuthProvider = ({ children }) => {\n const [msalInstance] = useState(new msal.PublicClientApplication(msalConfig));\n const [authResponse, setAuthResponse] = useState(null);\n const [loginError, setLoginError] = useState(null);\n\n const deleteAllCookies = () => {\n const cookies = document.cookie.split(';');\n\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i];\n const eqPos = cookie.indexOf('=');\n const name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;\n document.cookie = `${name}=;expires=Thu, 01 Jan 1970 00:00:00 GMT`;\n }\n };\n\n const displayError = (error) => {\n console.error(error);\n setLoginError(error.message);\n };\n\n const loginWithMicrosoft = async () => {\n try {\n const token = await msalInstance.acquireTokenSilent({ scopes: ['User.Read'] });\n setAuthResponse(token);\n } catch (error) {\n if (error instanceof msal.InteractionRequiredAuthError || error instanceof msal.BrowserAuthError) {\n msalInstance.acquireTokenRedirect({ scopes: ['User.Read'] });\n return;\n }\n\n displayError(error);\n }\n };\n\n const logout = () => {\n setAuthResponse(null);\n sessionStorage.clear();\n localStorage.clear();\n deleteAllCookies();\n };\n\n useEffect(() => {\n // check if user is alrady logged in\n const setActiveAccount = async () => {\n try {\n const resp = await msalInstance.handleRedirectPromise();\n if (resp !== null) {\n msalInstance.setActiveAccount(resp.account);\n } else {\n const currentAccounts = msalInstance.getAllAccounts();\n if (currentAccounts.length >= 1) {\n const activeAccount = currentAccounts[0];\n msalInstance.setActiveAccount(activeAccount);\n }\n }\n } catch (error) {\n displayError(error);\n }\n\n try {\n const token = await msalInstance.acquireTokenSilent({ scopes: ['User.Read'] });\n setAuthResponse(token);\n } catch (error) {\n }\n };\n\n setActiveAccount();\n }, []);\n\n return (\n \n {children}\n \n );\n};\n\nAuthProvider.propTypes = {\n children: PropTypes.node\n};\n\nexport default AuthContext;\n","import { useContext } from 'react';\nimport AuthContext from '../contexts/AuthContext';\n\nexport default () => useContext(AuthContext);","import React, { useState } from 'react';\nimport { Link as RouterLink, withRouter } from 'react-router-dom';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { AppBar, Toolbar, Badge, Hidden, IconButton } from '@material-ui/core';\nimport MenuIcon from '@material-ui/icons/Menu';\nimport NotificationsIcon from '@material-ui/icons/NotificationsOutlined';\nimport InputIcon from '@material-ui/icons/Input';\nimport { isAdmin } from 'services/microsoftGraphApiService';\nimport Admin from './Admin';\nimport useAuth from 'hooks/useAuth';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n boxShadow: 'none'\n },\n flexGrow: {\n flexGrow: 1\n },\n signOutButton: {\n marginLeft: theme.spacing(1)\n }\n}));\n\nconst Topbar = props => {\n const { className, onSidebarOpen, history, staticContext, ...rest } = props;\n\n const classes = useStyles();\n const {\n logout\n } = useAuth();\n\n const [notifications] = useState([]);\n\n const handleLogout = async () => {\n logout();\n history.push('/');\n };\n\n return (\n \n \n \n \n \n
\n \n {isAdmin() && }\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nTopbar.propTypes = {\n className: PropTypes.string,\n onSidebarOpen: PropTypes.func\n};\n\nexport default withRouter(Topbar);\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { makeStyles, useTheme } from '@material-ui/styles';\nimport { useMediaQuery } from '@material-ui/core';\nimport { Sidebar, Topbar, Footer } from './components';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n paddingTop: 56,\n height: '100%',\n [theme.breakpoints.up('sm')]: {\n paddingTop: 64\n }\n },\n shiftContent: {\n paddingLeft: 240\n },\n content: {\n height: '100%'\n },\n desktopCollapse: {\n paddingLeft: 40\n }\n}));\n\nconst Main = props => {\n const { children } = props;\n\n const classes = useStyles();\n const theme = useTheme();\n const isDesktop = useMediaQuery(theme.breakpoints.up('lg'), {\n defaultMatches: true\n });\n\n const [openSidebar, setOpenSidebar] = useState(false);\n const [desktopCollapse, setDesktopCollapse] = useState(false);\n\n const handleSidebarOpen = () => {\n setOpenSidebar(true);\n };\n\n const handleSidebarClose = () => {\n setOpenSidebar(false);\n };\n\n const handleToggleDesktopCollapse = () => {\n setDesktopCollapse(!desktopCollapse);\n };\n\n const shouldOpenSidebar = isDesktop ? true : openSidebar;\n\n return (\n \n \n \n
\n {children}\n
\n
\n
\n );\n};\n\nMain.propTypes = {\n children: PropTypes.node\n};\n\nexport default Main;\n","import React from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { AppBar, Toolbar } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n root: {\n boxShadow: 'none'\n }\n}));\n\nconst Topbar = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nTopbar.propTypes = {\n className: PropTypes.string\n};\n\nexport default Topbar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\n\nimport { Topbar } from './components';\n\nconst useStyles = makeStyles(() => ({\n root: {\n paddingTop: 64,\n height: '100%'\n },\n content: {\n height: '100%'\n }\n}));\n\nconst Minimal = props => {\n const { children } = props;\n\n const classes = useStyles();\n\n return (\n
\n \n
{children}
\n
\n );\n};\n\nMinimal.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string\n};\n\nexport default Minimal;\n","export default [\n '/board-of-directors',\n '/executive',\n '/claims',\n '/finance',\n '/it'\n];\n","import React, { useState } from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Card,\n CardHeader,\n CardContent,\n CardActions,\n Divider,\n Grid,\n Button,\n TextField\n} from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n root: {}\n}));\n\nconst AccountDetails = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n const [values, setValues] = useState({\n firstName: 'Shen',\n lastName: 'Zhi',\n email: 'shen.zhi@devias.io',\n phone: '',\n state: 'Alabama',\n country: 'USA'\n });\n\n const handleChange = event => {\n setValues({\n ...values,\n [event.target.name]: event.target.value\n });\n };\n\n const states = [\n {\n value: 'alabama',\n label: 'Alabama'\n },\n {\n value: 'new-york',\n label: 'New York'\n },\n {\n value: 'san-francisco',\n label: 'San Francisco'\n }\n ];\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {states.map(option => (\n \n {option.label}\n \n ))}\n \n \n \n \n \n \n \n \n \n \n Save details\n \n \n \n \n );\n};\n\nAccountDetails.propTypes = {\n className: PropTypes.string\n};\n\nexport default AccountDetails;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport moment from 'moment';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Card,\n CardActions,\n CardContent,\n Avatar,\n Typography,\n Divider,\n Button,\n LinearProgress\n} from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n details: {\n display: 'flex'\n },\n avatar: {\n marginLeft: 'auto',\n height: 110,\n width: 100,\n flexShrink: 0,\n flexGrow: 0\n },\n progress: {\n marginTop: theme.spacing(2)\n },\n uploadButton: {\n marginRight: theme.spacing(2)\n }\n}));\n\nconst AccountProfile = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n const user = {\n name: 'Shen Zhi',\n city: 'Los Angeles',\n country: 'USA',\n timezone: 'GTM-7',\n avatar: '/images/avatars/avatar_11.png'\n };\n\n return (\n \n \n
\n
\n \n John Doe\n \n \n {user.city}, {user.country}\n \n \n {moment().format('hh:mm A')} ({user.timezone})\n \n
\n \n
\n
\n Profile Completeness: 70%\n \n
\n
\n \n \n \n Upload picture\n \n \n \n \n );\n};\n\nAccountProfile.propTypes = {\n className: PropTypes.string\n};\n\nexport default AccountProfile;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport { Grid } from '@material-ui/core';\n\nimport { AccountProfile, AccountDetails } from './components';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(4)\n }\n}));\n\nconst Account = () => {\n const classes = useStyles();\n\n return (\n
\n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default Account;\n","import React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { Card, CardContent, Grid, Typography, Avatar } from '@material-ui/core';\nimport ArrowDownwardIcon from '@material-ui/icons/ArrowDownward';\nimport MoneyIcon from '@material-ui/icons/Money';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n height: '100%'\n },\n content: {\n alignItems: 'center',\n display: 'flex'\n },\n title: {\n fontWeight: 700\n },\n avatar: {\n backgroundColor: theme.palette.error.main,\n height: 56,\n width: 56\n },\n icon: {\n height: 32,\n width: 32\n },\n difference: {\n marginTop: theme.spacing(2),\n display: 'flex',\n alignItems: 'center'\n },\n differenceIcon: {\n color: theme.palette.error.dark\n },\n differenceValue: {\n color: theme.palette.error.dark,\n marginRight: theme.spacing(1)\n }\n}));\n\nconst Budget = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n \n \n \n \n BUDGET\n \n $24,000\n \n \n \n \n \n \n \n
\n \n \n 12%\n \n \n Since last month\n \n
\n
\n \n );\n};\n\nBudget.propTypes = {\n className: PropTypes.string\n};\n\nexport default Budget;\n","import uuid from 'uuid/v1';\n\nexport default [\n {\n id: uuid(),\n ref: 'CDD1049',\n amount: 30.5,\n customer: {\n name: 'Ekaterina Tankova'\n },\n createdAt: 1555016400000,\n status: 'pending'\n },\n {\n id: uuid(),\n ref: 'CDD1048',\n amount: 25.1,\n customer: {\n name: 'Cao Yu'\n },\n createdAt: 1555016400000,\n status: 'delivered'\n },\n {\n id: uuid(),\n ref: 'CDD1047',\n amount: 10.99,\n customer: {\n name: 'Alexa Richardson'\n },\n createdAt: 1554930000000,\n status: 'refunded'\n },\n {\n id: uuid(),\n ref: 'CDD1046',\n amount: 96.43,\n customer: {\n name: 'Anje Keizer'\n },\n createdAt: 1554757200000,\n status: 'pending'\n },\n {\n id: uuid(),\n ref: 'CDD1045',\n amount: 32.54,\n customer: {\n name: 'Clarke Gillebert'\n },\n createdAt: 1554670800000,\n status: 'delivered'\n },\n {\n id: uuid(),\n ref: 'CDD1044',\n amount: 16.76,\n customer: {\n name: 'Adam Denisov'\n },\n createdAt: 1554670800000,\n status: 'delivered'\n }\n];\n","import React, { useState } from 'react';\nimport clsx from 'clsx';\nimport moment from 'moment';\nimport PerfectScrollbar from 'react-perfect-scrollbar';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Card,\n CardActions,\n CardHeader,\n CardContent,\n Button,\n Divider,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n Tooltip,\n TableSortLabel\n} from '@material-ui/core';\nimport ArrowRightIcon from '@material-ui/icons/ArrowRight';\n\nimport mockData from './data';\nimport { StatusBullet } from 'components';\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n content: {\n padding: 0\n },\n inner: {\n minWidth: 800\n },\n statusContainer: {\n display: 'flex',\n alignItems: 'center'\n },\n status: {\n marginRight: theme.spacing(1)\n },\n actions: {\n justifyContent: 'flex-end'\n }\n}));\n\nconst statusColors = {\n delivered: 'success',\n pending: 'info',\n refunded: 'danger'\n};\n\nconst LatestOrders = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n const [orders] = useState(mockData);\n\n return (\n \n \n New entry\n \n }\n title=\"Latest Orders\"\n />\n \n \n \n
\n \n \n \n Order Ref\n Customer\n \n \n \n Date\n \n \n \n Status\n \n \n \n {orders.map(order => (\n \n {order.ref}\n {order.customer.name}\n \n {moment(order.createdAt).format('DD/MM/YYYY')}\n \n \n
\n \n {order.status}\n
\n
\n \n ))}\n
\n
\n
\n
\n
\n \n \n \n View all \n \n \n \n );\n};\n\nLatestOrders.propTypes = {\n className: PropTypes.string\n};\n\nexport default LatestOrders;\n","import uuid from 'uuid/v1';\nimport moment from 'moment';\n\nexport default [\n {\n id: uuid(),\n name: 'Dropbox',\n imageUrl: '/images/products/product_1.png',\n updatedAt: moment().subtract(2, 'hours')\n },\n {\n id: uuid(),\n name: 'Medium Corporation',\n imageUrl: '/images/products/product_2.png',\n updatedAt: moment().subtract(2, 'hours')\n },\n {\n id: uuid(),\n name: 'Slack',\n imageUrl: '/images/products/product_3.png',\n updatedAt: moment().subtract(3, 'hours')\n },\n {\n id: uuid(),\n name: 'Lyft',\n imageUrl: '/images/products/product_4.png',\n updatedAt: moment().subtract(5, 'hours')\n },\n {\n id: uuid(),\n name: 'GitHub',\n imageUrl: '/images/products/product_5.png',\n updatedAt: moment().subtract(9, 'hours')\n }\n];\n","import React, { useState } from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Card,\n CardHeader,\n CardContent,\n CardActions,\n Button,\n Divider,\n List,\n ListItem,\n ListItemAvatar,\n ListItemText,\n IconButton\n} from '@material-ui/core';\nimport ArrowRightIcon from '@material-ui/icons/ArrowRight';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\n\nimport mockData from './data';\n\nconst useStyles = makeStyles(() => ({\n root: {\n height: '100%'\n },\n content: {\n padding: 0\n },\n image: {\n height: 48,\n width: 48\n },\n actions: {\n justifyContent: 'flex-end'\n }\n}));\n\nconst LatestProducts = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n const [products] = useState(mockData);\n\n return (\n \n \n \n \n \n {products.map((product, i) => (\n \n \n \n \n \n \n \n \n \n ))}\n \n \n \n \n \n View all \n \n \n \n );\n};\n\nLatestProducts.propTypes = {\n className: PropTypes.string\n};\n\nexport default LatestProducts;\n","import palette from 'theme/palette';\n\nexport const data = {\n labels: ['1 Aug', '2 Aug', '3 Aug', '4 Aug', '5 Aug', '6 Aug'],\n datasets: [\n {\n label: 'This year',\n backgroundColor: palette.primary.main,\n data: [18, 5, 19, 27, 29, 19, 20]\n },\n {\n label: 'Last year',\n backgroundColor: palette.neutral,\n data: [11, 20, 12, 29, 30, 25, 13]\n }\n ]\n};\n\nexport const options = {\n responsive: true,\n maintainAspectRatio: false,\n animation: false,\n legend: { display: false },\n cornerRadius: 20,\n tooltips: {\n enabled: true,\n mode: 'index',\n intersect: false,\n borderWidth: 1,\n borderColor: palette.divider,\n backgroundColor: palette.white,\n titleFontColor: palette.text.primary,\n bodyFontColor: palette.text.secondary,\n footerFontColor: palette.text.secondary\n },\n layout: { padding: 0 },\n scales: {\n xAxes: [\n {\n barThickness: 12,\n maxBarThickness: 10,\n barPercentage: 0.5,\n categoryPercentage: 0.5,\n ticks: {\n fontColor: palette.text.secondary\n },\n gridLines: {\n display: false,\n drawBorder: false\n }\n }\n ],\n yAxes: [\n {\n ticks: {\n fontColor: palette.text.secondary,\n beginAtZero: true,\n min: 0\n },\n gridLines: {\n borderDash: [2],\n borderDashOffset: [2],\n color: palette.divider,\n drawBorder: false,\n zeroLineBorderDash: [2],\n zeroLineBorderDashOffset: [2],\n zeroLineColor: palette.divider\n }\n }\n ]\n }\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { Bar } from 'react-chartjs-2';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Card,\n CardHeader,\n CardContent,\n CardActions,\n Divider,\n Button\n} from '@material-ui/core';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport ArrowRightIcon from '@material-ui/icons/ArrowRight';\n\nimport { data, options } from './chart';\n\nconst useStyles = makeStyles(() => ({\n root: {},\n chartContainer: {\n height: 400,\n position: 'relative'\n },\n actions: {\n justifyContent: 'flex-end'\n }\n}));\n\nconst LatestSales = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n \n Last 7 days \n \n }\n title=\"Latest Sales\"\n />\n \n \n
\n \n
\n
\n \n \n \n Overview \n \n \n \n );\n};\n\nLatestSales.propTypes = {\n className: PropTypes.string\n};\n\nexport default LatestSales;\n","import React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Card,\n CardContent,\n Grid,\n Typography,\n Avatar,\n LinearProgress\n} from '@material-ui/core';\nimport InsertChartIcon from '@material-ui/icons/InsertChartOutlined';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n height: '100%'\n },\n content: {\n alignItems: 'center',\n display: 'flex'\n },\n title: {\n fontWeight: 700\n },\n avatar: {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n height: 56,\n width: 56\n },\n icon: {\n height: 32,\n width: 32\n },\n progress: {\n marginTop: theme.spacing(3)\n }\n}));\n\nconst TasksProgress = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n \n \n \n \n TASKS PROGRESS\n \n 75.5%\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nTasksProgress.propTypes = {\n className: PropTypes.string\n};\n\nexport default TasksProgress;\n","import React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { Card, CardContent, Grid, Typography, Avatar } from '@material-ui/core';\nimport AttachMoneyIcon from '@material-ui/icons/AttachMoney';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n height: '100%',\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText\n },\n content: {\n alignItems: 'center',\n display: 'flex'\n },\n title: {\n fontWeight: 700\n },\n avatar: {\n backgroundColor: theme.palette.white,\n color: theme.palette.primary.main,\n height: 56,\n width: 56\n },\n icon: {\n height: 32,\n width: 32\n }\n}));\n\nconst TotalProfit = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n \n \n \n \n TOTAL PROFIT\n \n \n $23,200\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nTotalProfit.propTypes = {\n className: PropTypes.string\n};\n\nexport default TotalProfit;\n","import React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport { Card, CardContent, Grid, Typography, Avatar } from '@material-ui/core';\nimport ArrowUpwardIcon from '@material-ui/icons/ArrowUpward';\nimport PeopleIcon from '@material-ui/icons/PeopleOutlined';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n height: '100%'\n },\n content: {\n alignItems: 'center',\n display: 'flex'\n },\n title: {\n fontWeight: 700\n },\n avatar: {\n backgroundColor: theme.palette.success.main,\n height: 56,\n width: 56\n },\n icon: {\n height: 32,\n width: 32\n },\n difference: {\n marginTop: theme.spacing(2),\n display: 'flex',\n alignItems: 'center'\n },\n differenceIcon: {\n color: theme.palette.success.dark\n },\n differenceValue: {\n color: theme.palette.success.dark,\n marginRight: theme.spacing(1)\n }\n}));\n\nconst TotalUsers = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n \n \n \n \n TOTAL USERS\n \n 1,600\n \n \n \n \n \n \n \n
\n \n \n 16%\n \n \n Since last month\n \n
\n
\n \n );\n};\n\nTotalUsers.propTypes = {\n className: PropTypes.string\n};\n\nexport default TotalUsers;\n","import React from 'react';\nimport { Doughnut } from 'react-chartjs-2';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { makeStyles, useTheme } from '@material-ui/styles';\nimport {\n Card,\n CardHeader,\n CardContent,\n IconButton,\n Divider,\n Typography\n} from '@material-ui/core';\nimport LaptopMacIcon from '@material-ui/icons/LaptopMac';\nimport PhoneIphoneIcon from '@material-ui/icons/PhoneIphone';\nimport RefreshIcon from '@material-ui/icons/Refresh';\nimport TabletMacIcon from '@material-ui/icons/TabletMac';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n height: '100%'\n },\n chartContainer: {\n position: 'relative',\n height: '300px'\n },\n stats: {\n marginTop: theme.spacing(2),\n display: 'flex',\n justifyContent: 'center'\n },\n device: {\n textAlign: 'center',\n padding: theme.spacing(1)\n },\n deviceIcon: {\n color: theme.palette.icon\n }\n}));\n\nconst UsersByDevice = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n const theme = useTheme();\n\n const data = {\n datasets: [\n {\n data: [63, 15, 22],\n backgroundColor: [\n theme.palette.primary.main,\n theme.palette.error.main,\n theme.palette.warning.main\n ],\n borderWidth: 8,\n borderColor: theme.palette.white,\n hoverBorderColor: theme.palette.white\n }\n ],\n labels: ['Desktop', 'Tablet', 'Mobile']\n };\n\n const options = {\n legend: {\n display: false\n },\n responsive: true,\n maintainAspectRatio: false,\n animation: false,\n cutoutPercentage: 80,\n layout: { padding: 0 },\n tooltips: {\n enabled: true,\n mode: 'index',\n intersect: false,\n borderWidth: 1,\n borderColor: theme.palette.divider,\n backgroundColor: theme.palette.white,\n titleFontColor: theme.palette.text.primary,\n bodyFontColor: theme.palette.text.secondary,\n footerFontColor: theme.palette.text.secondary\n }\n };\n\n const devices = [\n {\n title: 'Desktop',\n value: '63',\n icon: ,\n color: theme.palette.primary.main\n },\n {\n title: 'Tablet',\n value: '15',\n icon: ,\n color: theme.palette.error.main\n },\n {\n title: 'Mobile',\n value: '23',\n icon: ,\n color: theme.palette.warning.main\n }\n ];\n\n return (\n \n \n \n \n }\n title=\"Users By Device\"\n />\n \n \n
\n \n
\n
\n {devices.map(device => (\n \n {device.icon}\n {device.title}\n \n {device.value}%\n \n
\n ))}\n \n
\n \n );\n};\n\nUsersByDevice.propTypes = {\n className: PropTypes.string\n};\n\nexport default UsersByDevice;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport { Grid } from '@material-ui/core';\n\nimport {\n Budget,\n TotalUsers,\n TasksProgress,\n TotalProfit,\n LatestSales,\n UsersByDevice,\n LatestProducts,\n LatestOrders\n} from './components';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(4)\n }\n}));\n\nconst Dashboard = () => {\n const classes = useStyles();\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default Dashboard;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport { Grid, Typography } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(4)\n },\n content: {\n paddingTop: 150,\n textAlign: 'center'\n },\n image: {\n marginTop: 50,\n display: 'inline-block',\n maxWidth: '100%',\n width: 560\n }\n}));\n\nconst NotFound = () => {\n const classes = useStyles();\n\n return (\n
\n \n \n
\n \n 404: The page you are looking for isn’t here\n \n \n You either tried some shady route or you came here by mistake.\n Whichever it is, try using the navigation\n \n \n
\n \n \n
\n );\n};\n\nexport default NotFound;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Card,\n CardContent,\n CardActions,\n Typography,\n Grid,\n Divider\n} from '@material-ui/core';\nimport AccessTimeIcon from '@material-ui/icons/AccessTime';\nimport GetAppIcon from '@material-ui/icons/GetApp';\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n imageContainer: {\n height: 64,\n width: 64,\n margin: '0 auto',\n border: `1px solid ${theme.palette.divider}`,\n borderRadius: '5px',\n overflow: 'hidden',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n image: {\n width: '100%'\n },\n statsItem: {\n display: 'flex',\n alignItems: 'center'\n },\n statsIcon: {\n color: theme.palette.icon,\n marginRight: theme.spacing(1)\n }\n}));\n\nconst ProductCard = props => {\n const { className, product, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n \n
\n \n
\n \n {product.title}\n \n \n {product.description}\n \n
\n \n \n \n \n \n \n Updated 2hr ago\n \n \n \n \n \n {product.totalDownloads} Downloads\n \n \n \n \n \n );\n};\n\nProductCard.propTypes = {\n className: PropTypes.string,\n product: PropTypes.object.isRequired\n};\n\nexport default ProductCard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/styles';\nimport { Button } from '@material-ui/core';\n\nimport { SearchInput } from 'components';\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n row: {\n height: '42px',\n display: 'flex',\n alignItems: 'center',\n marginTop: theme.spacing(1)\n },\n spacer: {\n flexGrow: 1\n },\n importButton: {\n marginRight: theme.spacing(1)\n },\n exportButton: {\n marginRight: theme.spacing(1)\n },\n searchInput: {\n marginRight: theme.spacing(1)\n }\n}));\n\nconst ProductsToolbar = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n
\n \n \n \n \n Add product\n \n
\n
\n \n
\n \n );\n};\n\nProductsToolbar.propTypes = {\n className: PropTypes.string\n};\n\nexport default ProductsToolbar;\n","import uuid from 'uuid/v1';\n\nexport default [\n {\n id: uuid(),\n title: 'Dropbox',\n description:\n 'Dropbox is a file hosting service that offers cloud storage, file synchronization, a personal cloud.',\n imageUrl: '/images/products/product_1.png',\n totalDownloads: '594',\n updatedAt: '27/03/2019'\n },\n {\n id: uuid(),\n title: 'Medium Corporation',\n description:\n 'Medium is an online publishing platform developed by Evan Williams, and launched in August 2012.',\n imageUrl: '/images/products/product_2.png',\n totalDownloads: '625',\n createdAt: '31/03/2019'\n },\n {\n id: uuid(),\n title: 'Slack',\n description:\n 'Slack is a cloud-based set of team collaboration tools and services, founded by Stewart Butterfield.',\n imageUrl: '/images/products/product_3.png',\n totalDownloads: '857',\n createdAt: '03/04/2019'\n },\n {\n id: uuid(),\n title: 'Lyft',\n description:\n 'Lyft is an on-demand transportation company based in San Francisco, California.',\n imageUrl: '/images/products/product_4.png',\n totalDownloads: '406',\n createdAt: '04/04/2019'\n },\n {\n id: uuid(),\n title: 'GitHub',\n description:\n 'GitHub is a web-based hosting service for version control of code using Git.',\n imageUrl: '/images/products/product_5.png',\n totalDownloads: '835',\n createdAt: '04/04/2019'\n },\n {\n id: uuid(),\n title: 'Squarespace',\n description:\n 'Squarespace provides software as a service for website building and hosting. Headquartered in NYC.',\n imageUrl: '/images/products/product_6.png',\n totalDownloads: '835',\n createdAt: '04/04/2019'\n }\n];\n","import React, { useState } from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport { IconButton, Grid, Typography } from '@material-ui/core';\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\n\nimport { ProductsToolbar, ProductCard } from './components';\nimport mockData from './data';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(3)\n },\n content: {\n marginTop: theme.spacing(2)\n },\n pagination: {\n marginTop: theme.spacing(3),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end'\n }\n}));\n\nconst ProductList = () => {\n const classes = useStyles();\n\n const [products] = useState(mockData);\n\n return (\n
\n \n
\n \n {products.map(product => (\n \n \n \n ))}\n \n
\n
\n 1-6 of 20\n \n \n \n \n \n \n
\n
\n );\n};\n\nexport default ProductList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Card,\n CardHeader,\n CardContent,\n CardActions,\n Grid,\n Divider,\n FormControlLabel,\n Checkbox,\n Typography,\n Button\n} from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n root: {},\n item: {\n display: 'flex',\n flexDirection: 'column'\n }\n}));\n\nconst Notifications = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n return (\n \n
\n \n \n \n \n \n \n Notifications\n \n \n }\n label=\"Email\"\n />\n \n }\n label=\"Push Notifications\"\n />\n }\n label=\"Text Messages\"\n />\n \n }\n label=\"Phone calls\"\n />\n \n \n \n Messages\n \n \n }\n label=\"Email\"\n />\n }\n label=\"Push Notifications\"\n />\n \n }\n label=\"Phone calls\"\n />\n \n \n \n \n \n \n Save\n \n \n \n \n );\n};\n\nNotifications.propTypes = {\n className: PropTypes.string\n};\n\nexport default Notifications;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Card,\n CardHeader,\n CardContent,\n CardActions,\n Divider,\n Button,\n TextField\n} from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n root: {}\n}));\n\nconst Password = props => {\n const { className, ...rest } = props;\n\n const classes = useStyles();\n\n const [values, setValues] = useState({\n password: '',\n confirm: ''\n });\n\n const handleChange = event => {\n setValues({\n ...values,\n [event.target.name]: event.target.value\n });\n };\n\n return (\n \n
\n \n \n \n \n \n \n \n \n \n Update\n \n \n \n \n );\n};\n\nPassword.propTypes = {\n className: PropTypes.string\n};\n\nexport default Password;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport { Grid } from '@material-ui/core';\n\nimport { Notifications, Password } from './components';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(4)\n }\n}));\n\nconst Settings = () => {\n const classes = useStyles();\n\n return (\n
\n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default Settings;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport SvgIcon from '@material-ui/core/SvgIcon';\n\nconst useStyles = makeStyles((theme) => ({\n icon: {\n color: 'white',\n width: 13,\n marginRight: theme.spacing(1)\n },\n path: {\n // fill:'#eb3c00',\n fillOpacity:1,\n strokeWidth:.31999999\n }\n}));\n\nconst Office365Logo = (props) => {\n const classes = useStyles();\n\n return (\n \n \n \n );\n}\n\nexport default Office365Logo;\n","import React, { useContext, useEffect, useState } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport validate from 'validate.js';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Button, Grid, Typography, useTheme\n} from '@material-ui/core';\nimport TextField from '@material-ui/core/TextField';\nimport useAuth from '../../hooks/useAuth';\nimport axios from '../../services/axiosService';\nimport {\n fetchActiveDirectoryGroupsAndSaveToLocalStorage,\n hasAccessToApp\n} from '../../services/microsoftGraphApiService';\nimport AppContext from '../../contexts/AppContext';\nimport {\n fetchSidebarAndSaveToLocalStorage,\n} from '../../services/sidebarLinkService';\nimport LoadingScreen from '../../components/LoadingScreen';\nimport Office365Logo from '../../icons/Office365';\n\nconst schema = {\n email: {\n presence: { allowEmpty: false, message: 'is required' },\n email: true,\n length: {\n maximum: 64\n }\n },\n password: {\n presence: { allowEmpty: false, message: 'is required' },\n length: {\n maximum: 128\n }\n }\n};\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n backgroundColor: theme.palette.background.default,\n height: '100%'\n },\n grid: {\n height: '100%'\n },\n quoteContainer: {\n [theme.breakpoints.down('md')]: {\n display: 'none'\n }\n },\n quote: {\n backgroundColor: theme.palette.neutral,\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundImage: 'url(/images/login_bg.jpg)',\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center'\n },\n quoteInner: {\n textAlign: 'center',\n flexBasis: '600px'\n },\n quoteText: {\n color: theme.palette.white,\n fontWeight: 300\n },\n name: {\n marginTop: theme.spacing(3),\n color: theme.palette.white\n },\n bio: {\n color: theme.palette.white\n },\n contentContainer: {},\n content: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column'\n },\n contentHeader: {\n display: 'flex',\n alignItems: 'center',\n paddingTop: theme.spacing(5),\n paddingBototm: theme.spacing(2),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2)\n },\n logoImage: {\n marginLeft: theme.spacing(4)\n },\n contentBody: {\n flexGrow: 1,\n display: 'flex',\n alignItems: 'center',\n [theme.breakpoints.down('md')]: {\n justifyContent: 'center'\n }\n },\n form: {\n paddingLeft: 100,\n paddingRight: 100,\n paddingBottom: 125,\n flexBasis: 700,\n [theme.breakpoints.down('sm')]: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2)\n }\n },\n title: {\n marginTop: theme.spacing(3)\n },\n socialButtons: {\n marginTop: theme.spacing(3)\n },\n socialIcon: {\n marginRight: theme.spacing(1)\n },\n sugestion: {\n marginTop: theme.spacing(2)\n },\n textField: {\n marginTop: theme.spacing(2)\n },\n signInButton: {\n margin: theme.spacing(2, 0)\n }\n}));\n\nconst SignIn = (props) => {\n const { history } = props;\n\n const theme = useTheme();\n const classes = useStyles();\n const {\n authResponse,\n loginWithMicrosoft,\n displayError,\n loginError\n } = useAuth();\n\n const { setAppData } = useContext(AppContext);\n const [isLoading, setIsLoading] = useState(false);\n const [formState, setFormState] = useState({\n isValid: false,\n values: {},\n touched: {},\n errors: {}\n });\n\n const hasError = (field) => !!(formState.touched[field] && formState.errors[field]);\n\n const handleChange = (event) => {\n event.persist();\n };\n\n useEffect(() => {\n const errors = validate(formState.values, schema);\n\n setFormState((formState) => ({\n ...formState,\n isValid: !errors,\n errors: errors || {}\n }));\n }, [formState.values]);\n\n const handleSignIn = (event) => {\n event.preventDefault();\n };\n\n useEffect(() => {\n // redirect from login with Microsoft comes with a hash in the url\n if (window.location.hash) {\n setIsLoading(true);\n }\n }, []);\n\n useEffect(() => {\n const login = async () => {\n try {\n setIsLoading(true);\n\n localStorage.setItem('id_token', '1');\n localStorage.setItem('msData', JSON.stringify(authResponse));\n const { data: grpData } = await axios.get('/me/memberOf');\n\n localStorage.setItem(\n 'user_active_directory_groups',\n JSON.stringify(grpData.value.map(({ id, displayName }) => ({ id, displayName })))\n );\n\n if (!hasAccessToApp()) {\n throw new Error('You are not authorized to access this application');\n }\n\n const sidebar_links = await fetchSidebarAndSaveToLocalStorage();\n setAppData((prevAppData) => ({ ...prevAppData, sidebar_links }));\n\n const active_directory_groups = await fetchActiveDirectoryGroupsAndSaveToLocalStorage();\n setAppData((prevAppData) => ({ ...prevAppData, active_directory_groups }));\n\n history.push('/');\n } catch (error) {\n displayError(error);\n }\n\n setIsLoading(false);\n };\n\n if (authResponse) {\n login();\n }\n }, [authResponse]);\n\n if (isLoading) return ;\n\n return (\n
\n \n \n
\n
\n \n It is a capital mistake to theorize before one has data.\n \n
\n \n (Sherlock Holmes)\n \n \n NSD Insight Qore\n \n
\n
\n
\n \n \n
\n
\n
\n \n \n Sign in\n \n \n Sign in using NSD O365 credentials\n \n \n \n \n \n Sign In Using NSD O365 Credentials\n \n {loginError && (\n \n {loginError}\n \n )}\n \n \n \n \n or request access\n \n \n \n Request Access\n \n \n
\n
\n \n \n
\n );\n};\n\nSignIn.propTypes = {\n history: PropTypes.object\n};\n\nexport default withRouter(SignIn);\n","import React, { useState, useEffect } from 'react';\nimport { Link as RouterLink, withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport validate from 'validate.js';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Grid,\n Button,\n IconButton,\n TextField,\n Link,\n FormHelperText,\n Checkbox,\n Typography\n} from '@material-ui/core';\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\n\nconst schema = {\n firstName: {\n presence: { allowEmpty: false, message: 'is required' },\n length: {\n maximum: 32\n }\n },\n lastName: {\n presence: { allowEmpty: false, message: 'is required' },\n length: {\n maximum: 32\n }\n },\n email: {\n presence: { allowEmpty: false, message: 'is required' },\n email: true,\n length: {\n maximum: 64\n }\n },\n password: {\n presence: { allowEmpty: false, message: 'is required' },\n length: {\n maximum: 128\n }\n },\n policy: {\n presence: { allowEmpty: false, message: 'is required' },\n checked: true\n }\n};\n\nconst useStyles = makeStyles(theme => ({\n root: {\n backgroundColor: theme.palette.background.default,\n height: '100%'\n },\n grid: {\n height: '100%'\n },\n quoteContainer: {\n [theme.breakpoints.down('md')]: {\n display: 'none'\n }\n },\n quote: {\n backgroundColor: theme.palette.neutral,\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundImage: 'url(/images/auth.jpg)',\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center'\n },\n quoteInner: {\n textAlign: 'center',\n flexBasis: '600px'\n },\n quoteText: {\n color: theme.palette.white,\n fontWeight: 300\n },\n name: {\n marginTop: theme.spacing(3),\n color: theme.palette.white\n },\n bio: {\n color: theme.palette.white\n },\n contentContainer: {},\n content: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column'\n },\n contentHeader: {\n display: 'flex',\n alignItems: 'center',\n paddingTop: theme.spacing(5),\n paddingBototm: theme.spacing(2),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2)\n },\n logoImage: {\n marginLeft: theme.spacing(4)\n },\n contentBody: {\n flexGrow: 1,\n display: 'flex',\n alignItems: 'center',\n [theme.breakpoints.down('md')]: {\n justifyContent: 'center'\n }\n },\n form: {\n paddingLeft: 100,\n paddingRight: 100,\n paddingBottom: 125,\n flexBasis: 700,\n [theme.breakpoints.down('sm')]: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2)\n }\n },\n title: {\n marginTop: theme.spacing(3)\n },\n textField: {\n marginTop: theme.spacing(2)\n },\n policy: {\n marginTop: theme.spacing(1),\n display: 'flex',\n alignItems: 'center'\n },\n policyCheckbox: {\n marginLeft: '-14px'\n },\n signUpButton: {\n margin: theme.spacing(2, 0)\n }\n}));\n\nconst SignUp = props => {\n const { history } = props;\n\n const classes = useStyles();\n\n const [formState, setFormState] = useState({\n isValid: false,\n values: {},\n touched: {},\n errors: {}\n });\n\n useEffect(() => {\n const errors = validate(formState.values, schema);\n\n setFormState(formState => ({\n ...formState,\n isValid: errors ? false : true,\n errors: errors || {}\n }));\n }, [formState.values]);\n\n const handleChange = event => {\n event.persist();\n\n setFormState(formState => ({\n ...formState,\n values: {\n ...formState.values,\n [event.target.name]:\n event.target.type === 'checkbox'\n ? event.target.checked\n : event.target.value\n },\n touched: {\n ...formState.touched,\n [event.target.name]: true\n }\n }));\n };\n\n const handleBack = () => {\n history.goBack();\n };\n\n const handleSignUp = event => {\n event.preventDefault();\n history.push('/');\n };\n\n const hasError = field =>\n formState.touched[field] && formState.errors[field] ? true : false;\n\n return (\n
\n \n \n
\n
\n \n Hella narwhal Cosby sweater McSweeney's, salvia kitsch before\n they sold out High Life.\n \n
\n \n Takamaru Ayako\n \n \n Manager at inVision\n \n
\n
\n
\n \n \n
\n
\n \n \n \n
\n
\n \n \n Create new account\n \n \n Use your email to create new account\n \n \n \n \n \n
\n \n \n I have read the{' '}\n \n Terms and Conditions\n \n \n
\n {hasError('policy') && (\n \n {formState.errors.policy[0]}\n \n )}\n \n Sign up now\n \n \n Have an account?{' '}\n \n Sign in\n \n \n \n
\n
\n \n \n
\n );\n};\n\nSignUp.propTypes = {\n history: PropTypes.object\n};\n\nexport default withRouter(SignUp);\n","import React from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport { Grid, Typography } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(4)\n },\n content: {\n paddingTop: 10,\n textAlign: 'center'\n },\n image: {\n marginTop: 50,\n display: 'inline-block',\n maxWidth: '100%',\n width: 350\n },\n topImage: {\n marginTop: 50,\n display: 'inline-block',\n maxWidth: '100%',\n width: 150\n }\n}));\n\nconst WorkingOnIt = () => {\n const classes = useStyles();\n\n return (\n
\n \n \n
\n \n \n 204: This page isn't finished\n \n \n We are working on it! Hang in there we will be done soon!!\n \n \n
\n \n \n
\n );\n};\n\nexport default WorkingOnIt;\n","import React, { Fragment } from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport { Grid, Typography as MuiTypography } from '@material-ui/core';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(4)\n }\n}));\n\nconst variants = {\n h1: 'Nisi euismod ante senectus consequat phasellus ut',\n h2: 'Nisi euismod ante senectus consequat phasellus ut',\n h3: 'Nisi euismod ante senectus consequat phasellus ut',\n h4: 'Nisi euismod ante senectus consequat phasellus ut',\n h5: 'Nisi euismod ante senectus consequat phasellus ut',\n h6: 'Nisi euismod ante senectus consequat phasellus ut',\n subtitle1: 'Leo varius justo aptent arcu urna felis pede nisl',\n subtitle2: 'Leo varius justo aptent arcu urna felis pede nisl',\n body1:\n 'Justo proin curabitur dictumst semper auctor, consequat tempor, nostra aenean neque turpis nunc. Leo. Sapien aliquet facilisi turpis, elit facilisi praesent porta metus leo. Dignissim amet dis nec ac integer inceptos erat dis Turpis sodales ad torquent. Dolor, erat convallis.Laoreet velit a fames commodo tristique hendrerit sociosqu rhoncus vel sapien penatibus facilisis faucibus ad. Mus purus vehicula imperdiet tempor lectus, feugiat Sapien erat viverra netus potenti mattis purus turpis. Interdum curabitur potenti tristique. Porta velit dignissim tristique ultrices primis.',\n body2:\n 'Justo proin curabitur dictumst semper auctor, consequat tempor, nostra aenean neque turpis nunc. Leo. Sapien aliquet facilisi turpis, elit facilisi praesent porta metus leo. Dignissim amet dis nec ac integer inceptos erat dis Turpis sodales ad torquent. Dolor, erat convallis.',\n caption: 'Accumsan leo pretium conubia ullamcorper.',\n overline: 'Accumsan leo pretium conubia ullamcorper.',\n button: 'Vivamus ultrices rutrum fames dictumst'\n};\n\nconst Typography = () => {\n const classes = useStyles();\n\n return (\n
\n \n {Object.keys(variants).map((key, i) => (\n \n \n {key}\n \n \n {variants[key]}\n \n \n ))}\n \n
\n );\n};\n\nexport default Typography;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport { Typography, Grid, Hidden } from '@material-ui/core';\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(4)\n },\n image: {\n width: '100%'\n // maxHeight: 250\n }\n}));\n\nconst Home = (props) => {\n const classes = useStyles();\n\n return (\n
\n \n \n Welcome to NSD Operations Dashboard.\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default Home;\n","export default Object.freeze(\n {\n \"CREATE\": 0,\n \"UPDATE\": 1,\n \"DELETE\": 2\n }\n);\n","import React, { useContext, useEffect } from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Button from '@material-ui/core/Button';\nimport Operation from './Operation';\nimport { makeStyles } from '@material-ui/styles';\nimport AppContext from '../../contexts/AppContext';\nimport { green, red } from '@material-ui/core/colors';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport clsx from 'clsx';\nimport Alert from '@material-ui/lab/Alert';\n\nconst useStyles = makeStyles((theme) => ({\n formControl: {\n width: 260\n },\n noLabel: {\n marginTop: theme.spacing(3),\n },\n root: {\n flexGrow: 1,\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: 'center',\n color: theme.palette.text.secondary,\n },\n buttonProgress: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n marginTop: -12,\n marginLeft: -12,\n },\n green: {\n color: green[500],\n },\n red: {\n color: red[500],\n },\n wrapper: {\n margin: theme.spacing(1),\n position: 'relative',\n },\n buttonSuccess: {\n backgroundColor: green[500],\n '&:hover': {\n backgroundColor: green[700],\n },\n },\n buttonError: {\n backgroundColor: red[500],\n '&:hover': {\n backgroundColor: red[700],\n },\n },\n alert: {\n marginTop: 8,\n },\n hide: {\n display: 'none'\n }\n}));\n\nconst CrudDialog = ({ settings, crudDialog, onClose }) => {\n const {\n create: {\n onSubmit: createOnSubmit,\n extraNonFormDataToSubmit,\n dialogContent: createDialogContent,\n dialogTitle: createDialogTitle,\n dialogInstructions: createDialogInstructions\n },\n update: { onSubmit: updateOnSubmit },\n delete: {\n onSubmit: deleteOnSubmit,\n dialogTitle: deleteDialogTitle,\n dialogInstructions: deleteDialogInstructions\n },\n fetchDataAfterSubmit,\n appDataToRefreshAfterSubmit\n } = settings;\n\n const { setAppData } = useContext(AppContext);\n const { open, operation, selected_item } = crudDialog;\n const [formData, setFormData] = React.useState({});\n const [loading, setLoading] = React.useState(false);\n const [alertMessage, setAlertMessage] = React.useState(null);\n\n useEffect(() => {\n if (open === true && operation === Operation.UPDATE) {\n setFormData({ ...formData, ...selected_item });\n } else if (open === false) {\n setFormData({});\n }\n }, [open, selected_item, operation]);\n\n const updateAppDataContext = async () => {\n let dataAfterSubmit = await fetchDataAfterSubmit();\n setAppData(prevAppData => {\n return { ...prevAppData, [appDataToRefreshAfterSubmit]: dataAfterSubmit };\n });\n }\n\n const handleSave = async () => {\n setLoading(true);\n const dataToSubmit = { ...formData, ...extraNonFormDataToSubmit };\n const { id, ...dataToSubmitWithoutId } = dataToSubmit;\n\n try {\n operation === Operation.CREATE\n ? await createOnSubmit(dataToSubmitWithoutId)\n : await updateOnSubmit(dataToSubmit);\n await updateAppDataContext();\n handleClose();\n } catch (e) {\n const {response: {data: {error}}} = e;\n setAlertMessage(error);\n }\n\n setLoading(false);\n };\n\n const handleDeleteConfirm = async () => {\n setLoading(true);\n const { id } = selected_item;\n\n try {\n await deleteOnSubmit({ id });\n await updateAppDataContext();\n handleClose();\n } catch (e) {\n const {response: {data: {error}}} = e;\n setAlertMessage(error);\n }\n\n setLoading(false);\n };\n\n const handleClose = () => {\n setAlertMessage(null);\n if (onClose) onClose();\n };\n\n const classes = useStyles();\n\n // update field with either what the user is typing or newVal\n const handleChange = (field, newVal) => {\n if (newVal !== undefined) {\n setFormData({ ...formData, [field]: newVal });\n } else {\n return (e) => {\n setFormData({ ...formData, [field]: e.target.value });\n }\n }\n };\n\n let dialog = {};\n switch(operation) {\n case Operation.CREATE:\n case Operation.UPDATE:\n dialog = {\n dialog_title: createDialogTitle(operation),\n dialog_instructions: createDialogInstructions(operation),\n dialog_content: createDialogContent(formData, handleChange, classes),\n dialog_actions: (\n <>\n \n
\n \n Save\n \n {loading && \n }\n
\n \n )\n };\n break;\n case Operation.DELETE:\n dialog = {\n dialog_title: deleteDialogTitle(),\n dialog_instructions: deleteDialogInstructions(operation, selected_item),\n dialog_actions: (\n <>\n \n
\n \n Delete\n \n {loading && }\n
\n \n )\n };\n break;\n default:\n break;\n }\n\n let {\n dialog_title,\n dialog_instructions,\n dialog_content,\n dialog_actions\n } = dialog;\n return (\n open === true\n ?
\n \n \n { dialog_title }\n \n \n \n { dialog_instructions }\n { dialog_content }\n \n { dialog_actions }\n \n
\n : null\n );\n}\n\nfunction CrudAlert({message, setMessage}) {\n const useStyles = makeStyles((theme) => ({\n alert: {\n marginTop: 8,\n },\n hide: {\n display: 'none'\n }\n }));\n\n const classes = useStyles();\n\n return (\n {setMessage(null)}}\n severity=\"error\">\n { message }\n \n );\n}\n\nexport default CrudDialog;\n","import React, { cloneElement } from 'react';\nimport { DragDropContext, Draggable, Droppable } from 'react-beautiful-dnd';\nimport { TableBody } from '@material-ui/core';\nimport { colors } from '@material-ui/core';\n\nconst DraggableTable = ({ tableData, tableRow, draggableSettings }) => {\n const getItemStyle = (isDragging, draggableStyle) => ({\n userSelect: \"none\",\n ...draggableStyle,\n ...(isDragging && { display: 'table', background: colors.grey[400] }),\n });\n\n const getListStyle = isDraggingOver => ({\n });\n\n const { onDragEnd } = draggableSettings;\n\n return (\n \n \n {(provided, snapshot) => (\n \n {tableData.map((row, index) => (\n \n {(provided, snapshot) => {\n const tRow = tableRow(row);\n return cloneElement(tRow, {\n ref: provided.innerRef,\n ...provided.draggableProps,\n ...provided.dragHandleProps,\n style: getItemStyle(\n snapshot.isDragging,\n provided.draggableProps.style\n )\n });\n }}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n );\n};\n\nDraggableTable.propTypes = {\n};\n\nexport default DraggableTable;\n","import React, { useContext, useEffect, useState } from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport PerfectScrollbar from 'react-perfect-scrollbar';\nimport { makeStyles } from '@material-ui/styles';\nimport {\n Card,\n CardActions,\n CardContent,\n Checkbox,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TablePagination\n} from '@material-ui/core';\nimport DraggableTable from './DraggableTable';\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n content: {\n padding: 0\n },\n inner: {\n minWidth: 1050\n },\n nameContainer: {\n display: 'flex',\n alignItems: 'center'\n },\n avatar: {\n marginRight: theme.spacing(2)\n },\n actions: {\n justifyContent: 'flex-end'\n },\n tableRow: {\n cursor: 'pointer'\n },\n checkboxCell: {\n width:52\n }\n}));\n\nconst DataTable = ({ className, tableSettings, draggable, ...rest }) => {\n const classes = useStyles();\n const {\n tableHead,\n tableBody,\n onRowClick,\n tableData,\n draggableSettings\n } = tableSettings;\n\n const [selectedRows, setSelectedRows] = useState([]);\n const [rowsPerPage, setRowsPerPage] = useState(10);\n const [page, setPage] = useState(0);\n\n useEffect(() => {\n setPage(0);\n }, [tableSettings]);\n\n const applyPagination = (data, page, limit) => {\n return data.slice(page * limit, page * limit + limit);\n };\n\n const handleSelectAll = event => {\n\n let selectedRows;\n\n if (event.target.checked) {\n selectedRows = tableData.map(row => row.id);\n } else {\n selectedRows = [];\n }\n\n setSelectedRows(selectedRows);\n };\n\n const handleSelectOne = (event, id) => {\n const selectedIndex = selectedRows.indexOf(id);\n let newSelectedRows = [];\n\n if (selectedIndex === -1) {\n newSelectedRows = newSelectedRows.concat(selectedRows, id);\n } else if (selectedIndex === 0) {\n newSelectedRows = newSelectedRows.concat(selectedRows.slice(1));\n } else if (selectedIndex === selectedRows.length - 1) {\n newSelectedRows = newSelectedRows.concat(selectedRows.slice(0, -1));\n } else if (selectedIndex > 0) {\n newSelectedRows = newSelectedRows.concat(\n selectedRows.slice(0, selectedIndex),\n selectedRows.slice(selectedIndex + 1)\n );\n }\n\n setSelectedRows(newSelectedRows);\n };\n\n const handlePageChange = (event, page) => {\n setPage(page);\n };\n\n const handleRowsPerPageChange = event => {\n setRowsPerPage(event.target.value);\n };\n\n const handleRowClick = (event, row) => {\n if (onRowClick) onRowClick(event, row);\n };\n\n const handleClickCheckboxCell = (event) => {\n event.stopPropagation();\n };\n\n let currentTableData = applyPagination(tableData, page, rowsPerPage)\n .slice(0, rowsPerPage);\n\n const tableRow = (row) => (\n handleRowClick(event, row)}\n >\n \n handleSelectOne(event, row.id)}\n value=\"true\"\n />\n \n {\n tableBody(row).map((tableCell, idx) => (\n \n { tableCell.content ?? tableCell }\n \n ))\n }\n \n );\n\n return (\n \n \n \n
\n \n \n \n \n 0 &&\n selectedRows.length < currentTableData.length\n }\n onChange={handleSelectAll}\n />\n \n {\n tableHead().map((head) => (\n { head.title ?? head }\n \n ))\n }\n \n \n {\n draggableSettings ? (\n \n ) : (\n \n { currentTableData.map((row) => tableRow(row)) }\n \n )\n }\n
\n
\n
\n
\n \n \n \n \n );\n};\n\nDataTable.propTypes = {\n className: PropTypes.string,\n tableSettings: PropTypes.object.isRequired,\n draggable: PropTypes.bool\n};\n\nDataTable.defaultProps = {\n draggable: true\n}\n\nexport default DataTable;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/styles';\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext';\nimport Grid from '@material-ui/core/Grid';\nimport Breadcrumbs from '@material-ui/core/Breadcrumbs';\nimport Typography from '@material-ui/core/Typography';\nimport Link from '@material-ui/core/Link';\nimport { Link as RouterLink } from 'react-router-dom';\nimport Button from '@material-ui/core/Button';\n\nconst useStyles = makeStyles(theme => ({\n root: {},\n row: {\n height: '42px',\n display: 'flex',\n alignItems: 'center',\n marginTop: theme.spacing(1)\n },\n spacer: {\n flexGrow: 1\n },\n importButton: {\n marginRight: theme.spacing(1)\n },\n exportButton: {\n marginRight: theme.spacing(1)\n },\n searchInput: {\n marginRight: theme.spacing(1)\n }\n}));\n\nconst CrudTableToolbar = ({\n className,\n toolbarSettings,\n onClickCreate,\n ...rest\n}) => {\n const classes = useStyles();\n const { breadcrumbs, buttonText, title } = toolbarSettings;\n\n const handleAddClick = () => {\n if (onClickCreate) onClickCreate();\n };\n\n return (\n \n \n }\n aria-label=\"breadcrumb\"\n >\n {\n breadcrumbs.map((breadcrumb) => (\n breadcrumb.href\n ? (\n \n { breadcrumb.title }\n \n )\n : (\n \n { breadcrumb.title }\n \n )\n ))\n }\n \n \n { title }\n \n \n \n \n { buttonText }\n \n \n \n );\n};\n\nCrudTableToolbar.propTypes = {\n className: PropTypes.string\n};\n\nexport default CrudTableToolbar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport DataTable from '../DataTable';\nimport { CrudDialog } from '../CrudDialog';\nimport CrudTableToolbar from './CrudTableToolbar';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(3)\n },\n content: {\n marginTop: theme.spacing(2)\n }\n}));\n\nconst CrudTable = ({\n crudDialog,\n crudDialogSettings,\n onClickCloseCrudDialog,\n onClickCreate,\n tableSettings,\n toolbarSettings\n}) => {\n const classes = useStyles();\n\n const handleClickCreate = () => {\n if (onClickCreate) onClickCreate();\n }\n\n const handleClickCloseCrudDialog = () => {\n if (onClickCloseCrudDialog) onClickCloseCrudDialog();\n }\n\n return (\n
\n \n
\n \n
\n \n
\n );\n};\n\nCrudTable.propTypes = {\n className: PropTypes.string,\n toolbarSettings: PropTypes.object,\n tableSettings: PropTypes.object\n};\n\nexport default CrudTable;\n","import React, { useContext, useState } from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport { Operation } from '../../components/CrudDialog';\nimport {\n addSidebarLink, deleteSidebarLink, fetchSidebarAndSaveToLocalStorage, getParentLinkId, getSidebar,\n getSidebarMainLinksWithIconComponents, getSidebarSubLinksByParentHref, updateSidebarLink\n} from '../../services/sidebarLinkService';\nimport Grid from '@material-ui/core/Grid';\nimport TextField from '@material-ui/core/TextField';\nimport FormControl from '@material-ui/core/FormControl';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Select from '@material-ui/core/Select';\nimport Input from '@material-ui/core/Input';\nimport { getMaterialIcons, DynamicMaterialIcon } from '../../services/iconService';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Box from '@material-ui/core/Box';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport { getActiveDirectoryGroups } from '../../services/microsoftGraphApiService';\nimport { Delete as DeleteIcon, Edit as EditIcon } from '@material-ui/icons';\nimport { Typography } from '@material-ui/core';\nimport Chip from '@material-ui/core/Chip';\nimport IconButton from '@material-ui/core/IconButton';\nimport AppContext from '../../contexts/AppContext';\nimport Link from '@material-ui/core/Link';\nimport CrudTable from '../../components/CrudTable';\nimport axios from '../../services/axiosService';\nimport { useSnackbar } from 'notistack';\n\nconst useStyles = makeStyles(theme => ({\n permission: {\n margin: theme.spacing(1)\n },\n tableauLink: {\n wordBreak: 'break-all'\n }\n}));\n\nconst Sidebar = ({ match, location, history }) => {\n const classes = useStyles();\n const isSidebarChildrenPage = !!match.params.page;\n\n const { enqueueSnackbar } = useSnackbar();\n const { appData, setAppData } = useContext(AppContext);\n const { sidebar_links } = appData;\n\n let crudDialogSettings = {\n create: {\n onSubmit: addSidebarLink,\n dialogContent: (formData, handleChange, classes) => {\n const activeDirectoryGroups = getActiveDirectoryGroups();\n return (\n
\n \n \n \n \n \n \n Icon\n }\n renderValue={(selected) => selected}\n MenuProps={{PaperProps: {\n style: {\n width: 250,\n },\n }}}\n >\n {getMaterialIcons().map((name) => (\n \n \n \n \n \n \n \n \n \n ))}\n \n \n \n \n \n View Permission\n }\n renderValue={\n selected => selected.map(id =>\n activeDirectoryGroups\n .find(group => group.id === id)\n ?.displayName\n ).join(', ')\n }\n MenuProps={{PaperProps: {\n style: {\n width: 250,\n },\n }}}\n >\n {activeDirectoryGroups.map(({id, displayName}) => (\n \n -1\n }\n />\n \n \n \n \n ))}\n \n \n \n \n
\n );\n },\n dialogTitle: (operation) => {\n return <>{ operation === Operation.CREATE ? 'Add' : 'Edit' } Link;\n },\n dialogInstructions: (operation) => {\n return <>{ operation === Operation.CREATE ? 'Add' : 'Edit' } the details below to update the sidebar navigation;\n }\n },\n update: {\n onSubmit: updateSidebarLink,\n },\n delete: {\n onSubmit: deleteSidebarLink,\n dialogTitle: () => {\n return <>Are you sure?;\n },\n dialogInstructions: (operation, selected_item) => {\n return <>This will permanently delete the\n {selected_item.title}\n link.;\n }\n },\n fetchDataAfterSubmit: fetchSidebarAndSaveToLocalStorage,\n appDataToRefreshAfterSubmit: 'sidebar_links'\n };\n\n if (isSidebarChildrenPage) {\n crudDialogSettings = {\n ...crudDialogSettings,\n ...{\n create: {\n ...(crudDialogSettings.create),\n extraNonFormDataToSubmit: {\n parent_id: getParentLinkId(match.params.page, sidebar_links)\n },\n dialogContent: (formData, handleChange, classes) => {\n return (\n
\n \n \n \n \n \n \n Icon\n }\n renderValue={(selected) => selected}\n MenuProps={{PaperProps: {\n style: {\n width: 250,\n },\n }}}\n >\n {getMaterialIcons().map((name) => (\n \n \n \n \n \n \n \n \n \n ))}\n \n \n \n \n {\n // if user enters full url, remove the beginning\n let match = formData.tableau_url\n && formData\n .tableau_url\n .match(/^https?:(?:.*)views\\/(.*)/i);\n if (match !== null && typeof match !== 'undefined') {\n handleChange('tableau_url', match[1]);\n }\n }}\n fullWidth\n />\n \n \n
\n );\n }\n }\n }\n }\n }\n\n const links = isSidebarChildrenPage\n ? getSidebarSubLinksByParentHref(match.params.page, sidebar_links)\n : getSidebarMainLinksWithIconComponents(sidebar_links);\n\n // table settings\n const { active_directory_groups } = appData;\n\n const [crudDialog, setCrudDialog] = useState(\n { open: false, operation: null, link: null }\n );\n\n const handleClickCreate = () => {\n setCrudDialog({\n open: true,\n operation: Operation.CREATE,\n selected_item: null\n });\n };\n\n const handleCloseCrudDialog = () => {\n setCrudDialog({\n open: false,\n operation: null,\n selected_item: null\n });\n };\n\n const handleEditClick = (event, link) => {\n event.stopPropagation();\n setCrudDialog({\n open: true,\n operation: Operation.UPDATE,\n selected_item: link\n });\n };\n const handleDeleteClick = (event, link) => {\n event.stopPropagation();\n setCrudDialog({\n open: true,\n operation: Operation.DELETE,\n selected_item: link\n });\n };\n\n const tableBodyTitle = (link) => (\n
\n {link.name}\n
\n );\n\n const tableBodyIcon = (link) => (\n \n );\n\n const tableActions = (link) => (\n <>\n handleEditClick(event, link)}>\n \n \n handleDeleteClick(event, link)}>\n \n \n \n );\n\n let tableCellWidths = [\n '10%',\n '10%',\n '60%'\n ];\n\n const draggableSettings = {\n onDragEnd: (tableData) => async (result) => {\n // dropped outside the list\n if (!result.destination) {\n return;\n }\n\n const reorder = (list, startId, endId) => {\n const results = Array.from(list);\n const startIndex = results.findIndex((result) => result.id === tableData[startId].id);\n const endIndex = results.findIndex((result) => result.id === tableData[endId].id);\n const [removed] = results.splice(startIndex, 1);\n results.splice(endIndex, 0, removed);\n\n return results;\n };\n\n const sidebar_links_before_reorder = appData.sidebar_links;\n const sidebar_links = reorder(\n sidebar_links_before_reorder,\n result.source.index,\n result.destination.index\n );\n\n const sortOrders = sidebar_links\n .map(({id}, order_id) => ({ id, order_id }));\n\n setAppData(prevAppData => {\n return { ...prevAppData, sidebar_links };\n });\n\n try {\n await axios.patch(\n 'SidebarLink',\n { sortOrders }\n );\n\n localStorage.setItem('sidebar_links', JSON.stringify(sidebar_links));\n } catch (error) {\n // revert back to state before reorder on save error\n setAppData(prevAppData => {\n return { ...prevAppData, sidebar_links: sidebar_links_before_reorder };\n });\n\n enqueueSnackbar(\n \"Change wasn't saved\",\n { variant: 'error' }\n );\n }\n }\n };\n\n let tableSettings = {\n tableData: links,\n onRowClick: (event, link) => {\n history.push(`${location.pathname}/${link.href}`);\n },\n tableHead: () => {\n const tHead = [\n 'Name',\n 'Icon',\n 'View Permission',\n 'Actions'\n ];\n return tHead.map((entry, ind) => (\n {\n title: entry,\n ...(tableCellWidths[ind] && { width: tableCellWidths[ind] })\n }\n ))\n },\n tableBody: (link) => {\n const tBody = [\n tableBodyTitle(link),\n tableBodyIcon(link),\n link.view_permission.map(permission_id => {\n let display_name = null;\n if (active_directory_groups) {\n let group = active_directory_groups\n .find(group => group.id === permission_id);\n if (group) display_name = group.displayName;\n }\n return ;\n }),\n tableActions(link)\n ];\n return tBody.map((entry, ind) => (\n {\n content: entry,\n ...(tableCellWidths[ind] && { width: tableCellWidths[ind] })\n }\n ))\n },\n draggableSettings\n };\n\n let toolbarSettings = {\n breadcrumbs: [\n { title: 'Admin', href: '/admin' },\n { title: 'Sidebar Main Categories' }\n ],\n title: 'Sidebar Main Categories',\n buttonText: 'Add Sidebar Main Category'\n };\n\n if (isSidebarChildrenPage) {\n tableCellWidths = [\n '20%',\n '5%',\n '55%'\n ];\n\n tableSettings = {\n tableData: links,\n tableHead: () => {\n const tHead = [\n 'Name',\n 'Icon',\n 'Tableau URL',\n 'Actions',\n ];\n return tHead.map((entry, ind) => (\n {\n title: entry,\n ...(tableCellWidths[ind] && { width: tableCellWidths[ind] })\n }\n ))\n },\n tableBody: (link) => {\n const tBody = [\n tableBodyTitle(link),\n tableBodyIcon(link),\n (\n \n {link.tableau_url}\n \n ),\n tableActions(link)\n ];\n return tBody.map((entry, ind) => (\n {\n content: entry,\n ...(tableCellWidths[ind] && { width: tableCellWidths[ind] })\n }\n ))\n },\n draggableSettings\n };\n\n toolbarSettings = {\n breadcrumbs: [\n { title: 'Admin', href: '/admin' },\n { title: 'Sidebar Main Categories', href: '/admin/sidebar' },\n { title: getSidebar().find((sidebar_link) => sidebar_link.href === match.params.page)?.name }\n ],\n title: 'Tableau Page',\n buttonText: 'Add Tableau Page'\n };\n }\n\n return (\n \n );\n};\n\nexport default Sidebar;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/styles';\nimport TableauReport from 'tableau-react';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(4)\n }\n}));\n\nconst options = {\n height: 'calc(100vh - 150px)',\n width: '100%',\n hideTabs: false\n};\nconst TableauDashboard = props => {\n const { url } = props;\n\n const classes = useStyles();\n\n return (\n
\n \n
\n );\n};\n\nTableauDashboard.propTypes = {\n url: PropTypes.string\n};\n\n\nexport default TableauDashboard;\n","import React, { useContext, useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/styles';\nimport TableauDashboard from '../../components/Tableau';\nimport { withRouter } from 'react-router-dom';\nimport AppContext from '../../contexts/AppContext';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n padding: theme.spacing(0)\n }\n}));\n\n\nconst StandardTableauDashboard = (props) => {\n const { match } = props;\n const classes = useStyles();\n const [url, setUrl] = useState('');\n const { appData } = useContext(AppContext);\n const { sidebar_links } = appData;\n\n useEffect(() => {\n const sidebar_link = sidebar_links.find(page =>\n page.href === match.params.page\n );\n const { tableau_url } = sidebar_link;\n\n setUrl(tableau_url);\n }, [match.params.page, sidebar_links]);\n\n return (\n
\n \n
\n );\n};\n\nexport default withRouter(StandardTableauDashboard);\n","import { Redirect, Switch, useRouteMatch } from 'react-router-dom';\nimport { RouteWithLayout } from '../components';\nimport { StandardTableauDashboard as StandardTableauDashboardView, WorkingOnIt as WorkingOnItView } from '../views';\nimport { Main as MainLayout } from '../layouts';\nimport React from 'react';\n\nconst TableauRoutes = ({pages}) => {\n let { path } = useRouteMatch();\n\n return (\n \n \n {pages && (\n page.href).join('|')})`\n }\n />\n )}\n \n \n );\n}\n\nexport default TableauRoutes;\n","import { Redirect, Switch, useRouteMatch } from 'react-router-dom';\nimport React, { useContext } from 'react';\nimport AppContext from '../contexts/AppContext';\nimport { RouteWithLayout } from '../components';\nimport {\n Sidebar as SidebarView,\n} from '../views';\nimport { Main as MainLayout } from '../layouts';\nimport { getSidebarWithChildrenNested } from '../services/sidebarLinkService';\n\nconst AdminSidebarRoutes = () => {\n let { path } = useRouteMatch();\n const { appData } = useContext(AppContext);\n const { sidebar_links } = appData;\n\n return (\n \n \n page.href).join('|')})`\n }\n />\n \n \n );\n}\n\nexport default AdminSidebarRoutes;\n","import { Redirect, Switch, useRouteMatch } from 'react-router-dom';\nimport { RouteWithLayout } from '../components';\nimport { WorkingOnIt as WorkingOnItView } from '../views';\nimport { Main as MainLayout } from '../layouts';\nimport React from 'react';\nimport AdminSidebarRoutes from './AdminSidebarRoutes';\n\nconst AdminRoutes = () => {\n let { path } = useRouteMatch();\n\n return (\n \n \n \n \n \n \n \n );\n}\n\nexport default AdminRoutes;\n","import { Redirect, Switch, useRouteMatch } from 'react-router-dom';\nimport { RouteWithLayout } from '../components';\nimport {\n Account as AccountView,\n Dashboard as DashboardView,\n ProductList as ProductListView, Settings as SettingsView,\n WorkingOnIt as WorkingOnItView\n} from '../views';\nimport { Main as MainLayout } from '../layouts';\nimport React from 'react';\n\nconst ThemeRoutes = () => {\n let { path } = useRouteMatch();\n\n return (\n \n \n \n \n \n \n \n \n );\n}\n\nexport default ThemeRoutes;\n","import React, { Suspense, useContext } from 'react';\nimport { Redirect, Switch } from 'react-router-dom';\nimport { RouteWithLayout } from './components';\nimport { Main as MainLayout, Minimal as MinimalLayout } from './layouts';\nimport workingOnItPages from './content/workingOnItPages';\nimport {\n NotFound as NotFoundView,\n SignIn as SignInView,\n SignUp as SignUpView,\n WorkingOnIt as WorkingOnItView,\n Home as HomeView,\n} from './views';\nimport AppContext from './contexts/AppContext';\nimport { getSidebarWithChildrenNested } from './services/sidebarLinkService';\nimport TableauRoutes from './routes/TableauRoutes';\nimport AdminRoutes from './routes/AdminRoutes';\nimport { isAdmin } from './services/microsoftGraphApiService';\nimport ThemeRoutes from './routes/ThemeRoutes';\n\nconst Routes = () => {\n\n const { appData } = useContext(AppContext);\n const { sidebar_links } = appData;\n\n let routes = [];\n getSidebarWithChildrenNested(sidebar_links).forEach(page => {\n routes.push(\n \n \n \n );\n });\n\n return (\n \n \n \n {isAdmin() && (\n \n \n \n )}\n \n\n {/* dynamic tableau pages from db */}\n { getSidebarWithChildrenNested(sidebar_links).map(page =>\n \n \n \n ) }\n\n {/* working on it pages */}\n { workingOnItPages.map(path =>\n \n ) }\n\n {/* theme pages */}\n \n \n \n\n \n \n \n \n \n \n );\n};\n\nexport default Routes;\n","import React, { useState } from 'react';\nimport { Router } from 'react-router-dom';\nimport { createBrowserHistory } from 'history';\nimport { Chart } from 'react-chartjs-2';\nimport { ThemeProvider } from '@material-ui/styles';\nimport validate from 'validate.js';\nimport { chartjs } from './helpers';\nimport theme from './theme';\nimport 'react-perfect-scrollbar/dist/css/styles.css';\nimport './assets/scss/index.scss';\nimport validators from './common/validators';\nimport Routes from './Routes';\nimport './fontello/css/fontello.css';\nimport AppContext from './contexts/AppContext';\nimport { getSidebar } from './services/sidebarLinkService';\nimport {\n getActiveDirectoryGroups\n} from './services/microsoftGraphApiService';\nimport { SnackbarProvider } from 'notistack';\nimport { AuthProvider } from 'contexts/AuthContext';\n\nconst browserHistory = createBrowserHistory();\n\nChart.helpers.extend(Chart.elements.Rectangle.prototype, {\n draw: chartjs.draw\n});\n\nvalidate.validators = {\n ...validate.validators,\n ...validators\n};\n\nconst App = () => {\n const [appData, setAppData] = useState({\n sidebar_links: getSidebar(),\n active_directory_groups: getActiveDirectoryGroups(),\n });\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './fontello/css/fontello.css';\n\nimport * as serviceWorker from './serviceWorker';\nimport App from './App';\n\nif (window.location.protocol === 'http:' && window.location.hostname !== 'localhost') {\n window.location = `https://${window.location.host}${window.location.pathname}${window.location.search}$`;\n}\nReactDOM.render(, document.getElementById('root'));\n\nserviceWorker.unregister();\n"],"sourceRoot":""}