{"version":3,"sources":["authConfig.js","theme.jsx","fetch.js","components/GraphQuery.jsx","pages/Overage.jsx","components/RouteGuard.jsx","components/Template.jsx","components/Loading.jsx","components/Error.jsx","components/DataTemplate.jsx","components/AppBar.jsx","img/hildinganderslogo.png","pages/request/template.jsx","img/status-pending.png","components/Status.jsx","img/status-approved.png","img/status-declined.png","img/view-link.png","utils/formatDate.js","components/Layout.jsx","pages/request/index.jsx","img/delete.png","components/Form.jsx","pages/request/form.jsx","img/file-upload.png","components/Text.jsx","pages/request/create.jsx","pages/approver/template.jsx","components/DownloadLink.jsx","img/file-download.png","components/CapexDetails.jsx","pages/request/history.jsx","components/RemainingBudget.jsx","pages/request/review.jsx","img/warning-icon.png","components/ContentGuard.jsx","pages/request/details.jsx","pages/request/edit.jsx","pages/request/confirm.jsx","pages/admin/template.jsx","img/edit-link.png","pages/approver/index.jsx","pages/approver/requestError.jsx","pages/approver/requests.jsx","img/info.png","pages/approver/form.jsx","pages/approver/create.jsx","pages/approver/edit.jsx","pages/admin/index.jsx","pages/admin/form.jsx","pages/admin/divisions.jsx","pages/admin/financeTypes.jsx","pages/admin/investmentTypes.jsx","pages/admin/sites.jsx","pages/admin/texts.jsx","pages/admin/text.jsx","pages/admin/export.jsx","components/ExportLink.jsx","img/export-link.png","pages/report/capexSummary.jsx","pages/report/requests.jsx","pages/report/site.jsx","pages/error/template.jsx","img/dog.png","pages/error/400.jsx","pages/error/401.jsx","pages/error/403.jsx","pages/error/404.jsx","pages/error/500.jsx","img/hildinganderslogo-black.png","pages/index.jsx","Routes.jsx","App.jsx","index.js"],"names":["msalConfig","auth","clientId","authority","navigateToLoginRequestUrl","redirectUri","postLogoutRedirectUri","cache","cacheLocation","storeAuthStateInCookie","system","loggerOptions","loggerCallback","level","message","containsPii","LogLevel","Error","console","error","Info","info","Verbose","debug","Warning","warn","protectedResources","endpoint","scopes","loginRequest","theme","createTheme","typography","fontFamily","join","palette","background","default","primary","main","secondary","getToken","a","account","msalInstance","getActiveAccount","request","acquireTokenSilent","response","errorCode","loginRedirect","acquireTokenRedirect","accessToken","getGroups","headers","Headers","bearer","append","options","method","fetch","status","json","catch","getNextPage","nextPage","url","capexApiGet","success","capexApiPost","body","capexApiPut","capexApiDelete","downloadFile","fileName","downloadUrl","blob","downloadBlob","window","URL","createObjectURL","document","createElement","href","download","appendChild","click","remove","downloadDataDump","downloadSiteReport","downloadSummaryReport","GraphQuery","props","history","useHistory","className","Button","onClick","push","location","state","origin","groupsData","map","gr","id","OverageContent","inProgress","useMsal","useState","setGroupsData","handleNextPage","then","value","v","includes","useEffect","length","InteractionStatus","None","Overage","authRequest","interactionType","InteractionType","Redirect","authenticationRequest","RouteGuard","Component","instance","isAuthorized","setIsAuthorized","isOveraged","setIsOveraged","onLoad","groups","filter","group","currentAccount","idTokenClaims","alert","render","routeProps","to","pathname","Container","styled","div","InnerContainer","Content","Template","children","LoadingComponent","CircularProgress","ErrorComponent","log","Typography","variant","loadData","setData","DataTemplate","React","forwardRef","ref","CustomTemplate","data","onDataResult","useImperativeHandle","type","replace","content","TemplateComponent","Loading","Separator","BorderLeftDiv","AppBarComponent","AppBar","position","style","display","alignItems","flex","Toolbar","width","src","alt","name","logoutRedirect","RequestTemplate","Fragment","StatusText","span","Status","StatusPendingImage","getStatusElement","formatDateWithTime","dateString","date","Date","minutes","getMinutes","minutesText","toString","year","month","day","m","Intl","DateTimeFormat","format","getHours","formatDate","f1","ColumnContainer","ColumnLeft","Column","Section","SectionWhiteBG","SectionWarning","ViewLink","ViewLinkText","RequestIndex","getLink","Box","flexDirection","marginBottom","TableContainer","Table","sx","minWidth","TableHead","TableRow","TableCell","TableBody","index","border","component","scope","created","site","investmentType","fiscalYear","amount","ViewLinkImage","CustomFastField","withStyles","root","margin","InputLabelProps","label","CurrencyField","StyledTextField","InputProps","endAdornment","InputAdornment","backgroundColor","marginTop","marginLeft","TextField","StyledBox","StyledMUITextField","MUITextField","StyledChip","borderRadius","height","marginRight","Chip","SubmitButton","textTransform","StyledDatePicker","padding","DatePicker","FileUploadButton","StyledRadio","color","checked","Radio","validationSchema","yup","shape","required","moreThan","siteId","investmentTypeId","financeTypeId","divisionId","file","RequestForm","initialValues","handleSubmit","handleDelete","enableDelete","handleDeleteConfirm","isEditing","disabled","availableSites","availableInvestmentTypes","availableFinanceTypes","availableDivisions","availableYears","currentYear","getFullYear","requestSite","find","aSite","requestInvestmentType","aInvestmentType","requestDivision","aDivision","requestFinanceType","aFinanceType","selectedYear","setSelectedYear","selectedSite","setSelectedSite","selectedInvestmentType","setSelectedInvestmentType","selectedDivision","setSelectedDivision","selectedFinanceType","setSelectedFinanceType","startDate","selectedStartDate","handleStartDateChange","endDate","selectedEndDate","handleEndDateChange","utils","DateFnsUtils","cx","validateOnChange","onSubmit","values","formik","autoComplete","FormControl","fullWidth","gridTemplateColumns","gridColumn","gridColumnGap","Autocomplete","disableClearable","getOptionLabel","option","onChange","e","setFieldValue","renderInput","params","aDate","RadioGroup","budgeted","event","currentTarget","FormControlLabel","control","IconButton","touched","errors","disableElevation","disableFocusRipple","disableRipple","startIcon","hidden","files","ButtonGroup","size","DeleteImage","Text","text","setText","isFetching","setIsFetching","getText","CreateRequest","isSubmitted","setIsSubmitted","parseInt","otherValues","FormData","fileUploadResponse","fileDescription","JSON","stringify","paddingBottom","ApproverTemplate","DownloadLink","handleDownloadFile","Link","CapexDetails","division","financeType","gridRowGap","HistoryEntry","action","isLastIndex","approvers","actionDescription","comment","statusElement","approver","RequestHistory","actions","RemainingBudget","remainingBudget","outlinedInput","borderColor","classes","useLocation","requester","commentInput","setCommentInput","approved","setApproved","budgetCoversAmount","setBudgetCoversAmount","submitDisabled","setSubmitDisabled","budgetWarningElement","getBudgetWarningElement","actionId","displayName","nonBudgeted","maxAnually","multiline","minRows","maxRows","ContentGuard","RequestDetails","setEnableDelete","securityGroups","setSecurityGroups","template","RequesterTemplate","paddingTop","groupAdmin","EditRequest","isSubmitting","setIsSubmitting","RequestConfirm","AdminTemplate","reportsMenuAnchor","setReportsMenuAnchor","adminMenuAnchor","setAdminMenuAnchor","reportsMenuOpen","Boolean","adminMenuOpen","showReportsSection","section","showAdminSection","undefined","Menu","anchorEl","open","onClose","MenuItem","EditLink","EditLinkText","ApproverIndex","sites","some","investmentTypes","aType","openOnFocus","align","graphUserName","remaining","activeRequests","EditLinkImage","ApproverRequestError","FlexDiv","ApproverRequests","approvedRequests","currentActionId","min","max","lessThan","graphUserId","OutlinedBox","StyledImage","img","useStyles","makeStyles","fieldArray","chips","paddingLeft","useMuiSelectStyles","outlined","paddingRight","ApproverForm","selectClasses","graphUsers","selectedGraphUser","aGraphUser","graphUser","setGraphUser","filteredSiteOptions","aAvailableSite","aValueSite","filteredInvestmentTypeOptions","aAvailableInvestmentType","aValueInvestmentType","showChangedBudgedWarning","maxAnnually","textOverflow","whiteSpace","justifyContent","InfoImage","insert","Select","defaultValue","displayEmpty","renderValue","IconComponent","target","onDelete","ApproverCreate","form","siteIDs","investmentTypeIDs","HGap","VGap","CenterBox","LeftBox","ApproverEdit","dataTemplateRef","useRef","current","requests","totalBudgeted","reduce","previousValue","totalNonBudgeted","remainingNonBudgeted","opacity","borderBottom","AdminIndex","field","StyledButton","AddButton","FormComponent","onHandleSubmit","items","removed","aData","aItem","added","updated","Promise","all","item","resolve","result","deletedItem","deleted","fieldHelpers","makeField","makeNewItem","StyledLabel","RemoveButton","AdminDivisions","htmlFor","fontSize","AdminFinanceTypes","AdminInvestmentTypes","AdminSites","AdminTexts","key","textInput","setTextInput","updatedText","description","Export","cursor","textDecoration","MuiLink","ExportLink","CapexSummary","setOptions","isExporting","setIsExporting","capexUrl","exportUrl","capexOptionsUrl","budgetedOptions","setBudgetedOptions","budgetedOption","setBudgetedOption","groupByOptions","setGroupByOptions","groupBy","setGroupBy","fiscalYearOptions","setFiscalYearOptions","setFiscalYear","exportSummaryReport","budgetedOptionText","approvedAmount","approvedCount","declinedAmount","declinedCount","pendingAmount","pendingCount","requestCount","totalAmount","table","firstCell","setInvestmentType","investmentTypeOptions","setinvestmentTypeOptions","siteOptions","setSiteOptions","setSite","filteredRequests","requesterId","siteUrl","siteOptionsUrl","exportSiteReport","total","divisionRequests","investmentTypeRequests","approverRequests","ErrorTemplate","DogImage","Index","Logo","groupRequester","groupApprover","logo","Routes","stateUrl","query","URLSearchParams","search","getgGoups","exact","path","TextDetails","AdminExport","ReportCapexSummary","ReportRequests","ReportSite","RequestCreate","get","RequestEdit","App","setStateUrl","addEventCallback","eventType","EventType","LOGIN_SUCCESS","ACQUIRE_TOKEN_SUCCESS","payload","ThemeProvider","CssBaseline","errorComponent","loadingComponent","PublicClientApplication","enableAccountStorageEvents","accounts","getAllAccounts","setActiveAccount","ReactDOM","getElementById"],"mappings":"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","file":"static/js/main.59664675.chunk.js","sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { LogLevel } from \"@azure/msal-browser\";\r\n\r\n/**\r\n * Configuration object to be passed to MSAL instance on creation.\r\n * For a full list of MSAL.js configuration parameters, visit:\r\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/configuration.md\r\n */\r\nexport const msalConfig = {\r\n auth: {\r\n clientId: \"0f188afe-b38e-461c-bd49-f6cb90807560\", // This is the ONLY mandatory field that you need to supply.\r\n authority:\r\n \"https://login.microsoftonline.com/fbfe2f44-398e-4270-97a6-67c35f021f86\", // Defaults to \"https://login.microsoftonline.com/common\"\r\n navigateToLoginRequestUrl: false, // If \"true\", will navigate back to the original request location before processing the auth code response.\r\n redirectUri: \"https://capexflow-app.azurewebsites.net/\", // You must register this URI on Azure Portal/App Registration. Defaults to window.location.origin\r\n postLogoutRedirectUri: \"https://capexflow-app.azurewebsites.net/\", // Indicates the page to navigate after logout.\r\n },\r\n cache: {\r\n cacheLocation: \"localStorage\", // Configures cache location. \"sessionStorage\" is more secure, but \"localStorage\" gives you SSO between tabs.\r\n storeAuthStateInCookie: false, // Set this to \"true\" if you are having issues on IE11 or Edge\r\n },\r\n system: {\r\n loggerOptions: {\r\n loggerCallback: (level, message, containsPii) => {\r\n if (containsPii) {\r\n return;\r\n }\r\n switch (level) {\r\n case LogLevel.Error:\r\n console.error(message);\r\n return;\r\n case LogLevel.Info:\r\n console.info(message);\r\n return;\r\n case LogLevel.Verbose:\r\n console.debug(message);\r\n return;\r\n case LogLevel.Warning:\r\n console.warn(message);\r\n return;\r\n }\r\n },\r\n },\r\n },\r\n};\r\n\r\n/**\r\n * Add here the endpoints and scopes when obtaining an access token for protected web APIs. For more information, see:\r\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/resources-and-scopes.md\r\n */\r\nexport const protectedResources = {\r\n apiCapex: {\r\n endpoint: \"/api\",\r\n scopes: [\"api://76f61a61-b970-424b-b312-9b68b555be82/access_as_user\"],\r\n },\r\n apiGraph: {\r\n endpoint: \"https://graph.microsoft.com/v1.0/me/memberOf\",\r\n scopes: [\"User.Read\"],\r\n },\r\n};\r\n\r\n/**\r\n * Scopes you add here will be prompted for user consent during sign-in.\r\n * By default, MSAL.js will add OIDC scopes (openid, profile, email) to any login request.\r\n * For more information about OIDC scopes, visit:\r\n * https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent#openid-connect-scopes\r\n */\r\nexport const loginRequest = {\r\n scopes: [\r\n ...protectedResources.apiCapex.scopes,\r\n ...protectedResources.apiGraph.scopes,\r\n ],\r\n};\r\n","import { createTheme } from \"@material-ui/core/styles\";\r\n\r\nconst theme = createTheme({\r\n typography: {\r\n fontFamily: [\"Calibri\", \"sans-serif\"].join(\",\"),\r\n },\r\n palette: {\r\n background: {\r\n default: \"#F0F0F0\",\r\n },\r\n primary: {\r\n main: \"#5A9CD3\",\r\n },\r\n secondary: {\r\n main: \"#FFF\",\r\n },\r\n },\r\n});\r\n\r\nexport default theme;\r\n","import { protectedResources } from \"./authConfig\";\nimport { msalInstance } from \"./index\";\n\nconst getToken = async (scopes) => {\n const account = msalInstance.getActiveAccount();\n\n if (!account) {\n throw Error(\n \"No active account! Verify a user has been signed in and setActiveAccount has been called.\"\n );\n }\n\n const request = {\n account: account,\n scopes: scopes,\n };\n\n let response;\n\n try {\n response = await msalInstance.acquireTokenSilent(request);\n } catch (error) {\n console.error(error);\n if (error.errorCode === \"no_tokens_found\") {\n msalInstance.loginRedirect({\n scopes: scopes,\n });\n }\n\n if (\n error.errorCode === \"consent_required\" ||\n error.errorCode === \"interaction_required\" ||\n error.errorCode === \"login_required\"\n ) {\n response = await msalInstance.acquireTokenRedirect(request);\n }\n }\n\n if (response) return response.accessToken;\n};\n\nexport const getGroups = async () => {\n const accessToken = await getToken(protectedResources.apiGraph.scopes);\n const headers = new Headers();\n const bearer = `Bearer ${accessToken}`;\n\n headers.append(\"Authorization\", bearer);\n\n const options = {\n method: \"GET\",\n headers: headers,\n };\n\n const response = await fetch(protectedResources.apiGraph.endpoint, options);\n\n if (response.status === 200) {\n const json = await response\n .json()\n .catch((error) => console.error(error));\n\n return json;\n }\n\n return response;\n};\n\nexport const getNextPage = async (nextPage) => {\n const accessToken = await getToken(protectedResources.apiGraph.scopes);\n\n const headers = new Headers();\n const bearer = `Bearer ${accessToken}`;\n\n headers.append(\"Authorization\", bearer);\n\n const options = {\n method: \"GET\",\n headers: headers,\n };\n\n const response = await fetch(url, options);\n\n if (response.status === 200) {\n const json = await response\n .json()\n .catch((error) => console.error(error));\n\n return json;\n }\n\n return response;\n};\n\nexport const capexApiGet = async (url) => {\n const accessToken = await getToken(protectedResources.apiCapex.scopes);\n\n const headers = new Headers();\n const bearer = `Bearer ${accessToken}`;\n\n headers.append(\"Authorization\", bearer);\n\n const options = {\n method: \"GET\",\n headers: headers,\n };\n\n const response = await fetch(url, options);\n const json = await response.json().catch((error) => console.error(error));\n\n if (json) json.success = response.status === 200;\n\n return json;\n};\n\nexport const capexApiPost = async (url, body) => {\n const accessToken = await getToken(protectedResources.apiCapex.scopes);\n\n const headers = new Headers();\n const bearer = `Bearer ${accessToken}`;\n\n headers.append(\"Authorization\", bearer);\n headers.append(\"Content-Type\", \"application/json\");\n\n const options = {\n method: \"POST\",\n headers: headers,\n body,\n };\n\n const response = await fetch(url, options);\n const json = await response.json();\n\n if (json) json.success = response.status === 200;\n\n return json;\n};\n\nexport const capexApiPut = async (url, body) => {\n const accessToken = await getToken(protectedResources.apiCapex.scopes);\n\n const headers = new Headers();\n const bearer = `Bearer ${accessToken}`;\n\n headers.append(\"Authorization\", bearer);\n\n const options = {\n method: \"PUT\",\n headers: headers,\n body,\n };\n\n const response = await fetch(url, options);\n const json = await response.json().catch((error) => console.error(error));\n\n if (json) json.success = response.status === 200;\n\n return json;\n};\n\nexport const capexApiDelete = async (url, body) => {\n const accessToken = await getToken(protectedResources.apiCapex.scopes);\n\n const headers = new Headers();\n const bearer = `Bearer ${accessToken}`;\n\n headers.append(\"Authorization\", bearer);\n\n const options = {\n method: \"DELETE\",\n headers: headers,\n body,\n };\n\n const response = await fetch(url, options);\n const json = await response.json().catch((error) => console.error(error));\n\n if (json) json.success = response.status === 200;\n\n return json;\n};\n\nexport const downloadFile = async (fileName) => {\n const accessToken = await getToken(protectedResources.apiCapex.scopes);\n const headers = new Headers();\n const bearer = `Bearer ${accessToken}`;\n const downloadUrl =\n protectedResources.apiCapex.endpoint + \"/file/\" + fileName;\n\n headers.append(\"Authorization\", bearer);\n\n const options = {\n method: \"GET\",\n headers: headers,\n };\n\n const response = await fetch(downloadUrl, options);\n\n if (response.status === 200) {\n var blob = await response.blob().catch((error) => console.error(error));\n\n downloadBlob(blob, fileName);\n }\n\n return response;\n};\n\nconst downloadBlob = (blob, fileName) => {\n var url = window.URL.createObjectURL(blob);\n var a = document.createElement(\"a\");\n a.href = url;\n a.download = fileName;\n document.body.appendChild(a);\n a.click();\n a.remove();\n};\n\nexport const downloadDataDump = async () => {\n const accessToken = await getToken(protectedResources.apiCapex.scopes);\n const headers = new Headers();\n const bearer = `Bearer ${accessToken}`;\n const downloadUrl = protectedResources.apiCapex.endpoint + \"/report/export\";\n\n headers.append(\"Authorization\", bearer);\n\n const options = {\n method: \"GET\",\n headers: headers,\n };\n\n const response = await fetch(downloadUrl, options);\n\n if (response.status === 200) {\n var blob = await response.blob().catch((error) => console.error(error));\n\n downloadBlob(blob, \"CapexDataExport.xlsx\");\n }\n\n return response;\n};\n\nexport const downloadSiteReport = async (url) => {\n const accessToken = await getToken(protectedResources.apiCapex.scopes);\n const headers = new Headers();\n const bearer = `Bearer ${accessToken}`;\n\n headers.append(\"Authorization\", bearer);\n\n const options = {\n method: \"GET\",\n headers: headers,\n };\n\n const response = await fetch(url, options);\n\n if (response.status === 200) {\n var blob = await response.blob().catch((error) => console.error(error));\n\n downloadBlob(blob, \"CapexSiteReport.xlsx\");\n }\n\n return response;\n};\n\nexport const downloadSummaryReport = async (url) => {\n const accessToken = await getToken(protectedResources.apiCapex.scopes);\n const headers = new Headers();\n const bearer = `Bearer ${accessToken}`;\n\n headers.append(\"Authorization\", bearer);\n\n const options = {\n method: \"GET\",\n headers: headers,\n };\n\n const response = await fetch(url, options);\n\n if (response.status === 200) {\n var blob = await response.blob().catch((error) => console.error(error));\n\n downloadBlob(blob, \"CapexSummaryReport.xlsx\");\n }\n\n return response;\n};\n","import { Button } from \"@material-ui/core\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nexport const GraphQuery = (props) => {\r\n const history = useHistory();\r\n\r\n const handleConfirm = () => {\r\n history.push(history.location.state.origin, {\r\n groupsData: props.groupsData,\r\n });\r\n };\r\n\r\n return (\r\n
\r\n

\r\n The following is the list of all the groups that you are a\r\n member of.\r\n

\r\n

\r\n You'll be redirected back, and the app will check if you belong\r\n to an authorized group.\r\n

\r\n \r\n
\r\n {props.groupsData.map((gr, id) => (\r\n
{gr}
\r\n ))}\r\n
\r\n );\r\n};\r\n","import { useEffect, useState } from \"react\";\r\n\r\nimport { MsalAuthenticationTemplate, useMsal } from \"@azure/msal-react\";\r\nimport { InteractionStatus, InteractionType } from \"@azure/msal-browser\";\r\n\r\nimport { loginRequest } from \"../authConfig\";\r\nimport { getGroups, getNextPage } from \"../fetch\";\r\n\r\nimport { GraphQuery } from '../components/GraphQuery';\r\n\r\nconst OverageContent = () => {\r\n /**\r\n * useMsal is hook that returns the PublicClientApplication instance, \r\n * an array of all accounts currently signed in and an inProgress value \r\n * that tells you what msal is currently doing. For more, visit: \r\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-react/docs/hooks.md\r\n */\r\n const { inProgress } = useMsal();\r\n const [groupsData, setGroupsData] = useState([]);\r\n\r\n const handleNextPage = (nextPage) => {\r\n getNextPage(nextPage).then((response) => {\r\n response.value.map((v) => {\r\n if (!groupsData.includes(v.id)) {\r\n setGroupsData((gr) => [...gr, v.id]);\r\n }\r\n });\r\n\r\n if (response['@odata.nextLink']) {\r\n handleNextPage(response['@odata.nextLink'])\r\n }\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n if (groupsData.length === 0 && inProgress === InteractionStatus.None) {\r\n getGroups().then(response => {\r\n response.value.map((v) => {\r\n if (!groupsData.includes(v.id)) {\r\n setGroupsData((gr) => [...gr, v.id]);\r\n }\r\n });\r\n\r\n /**\r\n * Some queries against Microsoft Graph return multiple pages of data either due to server-side paging \r\n * or due to the use of the $top query parameter to specifically limit the page size in a request. \r\n * When a result set spans multiple pages, Microsoft Graph returns an @odata.nextLink property in \r\n * the response that contains a URL to the next page of results. Learn more at https://docs.microsoft.com/graph/paging\r\n */\r\n if (response['@odata.nextLink']) {\r\n handleNextPage(response['@odata.nextLink']);\r\n }\r\n });\r\n }\r\n }, [inProgress]);\r\n\r\n return (\r\n <>\r\n { groupsData ? : null}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * The `MsalAuthenticationTemplate` component will render its children if a user is authenticated \r\n * or attempt to sign a user in. Just provide it with the interaction type you would like to use \r\n * (redirect or popup) and optionally a request object to be passed to the login API, a component \r\n * to display while authentication is in progress or a component to display if an error occurs. For more, visit:\r\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-react/docs/getting-started.md\r\n */\r\nexport const Overage = () => {\r\n\r\n const authRequest = {\r\n ...loginRequest\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n};","import React, { useState, useEffect } from \"react\";\r\nimport { Route, Redirect } from \"react-router-dom\";\r\nimport { useMsal } from \"@azure/msal-react\";\r\n\r\nexport const RouteGuard = ({ Component, ...props }) => {\r\n const { instance } = useMsal();\r\n const [isAuthorized, setIsAuthorized] = useState(false);\r\n const [isOveraged, setIsOveraged] = useState(false);\r\n\r\n const onLoad = async () => {\r\n if (props.location.state) {\r\n let intersection = props.groups.filter((group) =>\r\n props.location.state.groupsData.includes(group)\r\n );\r\n\r\n if (intersection.length > 0) {\r\n setIsAuthorized(true);\r\n }\r\n } else {\r\n const currentAccount = instance.getActiveAccount();\r\n\r\n if (currentAccount && currentAccount.idTokenClaims[\"groups\"]) {\r\n let intersection = props.groups.filter((group) =>\r\n currentAccount.idTokenClaims[\"groups\"].includes(group)\r\n );\r\n\r\n if (intersection.length > 0) {\r\n setIsAuthorized(true);\r\n }\r\n } else if (\r\n currentAccount &&\r\n (currentAccount.idTokenClaims[\"_claim_names\"] ||\r\n currentAccount.idTokenClaims[\"_claim_sources\"])\r\n ) {\r\n window.alert(\r\n \"You have too many group memberships. The application will now query Microsoft Graph to get the full list of groups that you are a member of.\"\r\n );\r\n setIsOveraged(true);\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n onLoad();\r\n }, [instance]);\r\n\r\n return (\r\n <>\r\n {isAuthorized ? (\r\n }\r\n />\r\n ) : isOveraged ? (\r\n \r\n ) : (\r\n
\r\n

You are unauthorized to view this content.

\r\n
\r\n )}\r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Container = styled.div`\r\n top: 0;\r\n bottom: 0;\r\n width: 100%;\r\n position: fixed;\r\n overflow-y: scroll;\r\n overflow-x: hidden;\r\n display: flex;\r\n`;\r\n\r\nconst InnerContainer = styled.div`\r\n display: flex;\r\n flex: 1;\r\n flex-direction: row;\r\n justify-content: center;\r\n`;\r\n\r\nconst Content = styled.div`\r\n display: flex;\r\n max-width: 1500px;\r\n flex: 1;\r\n flex-direction: column;\r\n margin-top: 120px;\r\n`;\r\n\r\nconst Template = (props) => {\r\n return (\r\n \r\n \r\n {props.children}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Template;\r\n","import React from \"react\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport styled from \"styled-components\";\r\nimport Template from \"./Template.jsx\";\r\n\r\nconst Container = styled.div`\r\n display: flex;\r\n flex: 1;\r\n align-items: center;\r\n justify-content: center;\r\n`;\r\n\r\nconst LoadingComponent = () => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default LoadingComponent;\r\n","import React from \"react\";\r\nimport { Typography } from \"@material-ui/core\";\r\nimport Template from \"./Template.jsx\";\r\n\r\nconst ErrorComponent = ({ error }) => {\r\n\tconsole.log(error);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default ErrorComponent;\r\n","import React, { useEffect, useImperativeHandle } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport Template from \"./Template.jsx\";\nimport { capexApiGet } from \"../fetch\";\nimport LoadingComponent from \"./Loading.jsx\";\nimport ErrorComponent from \"./Error.jsx\";\n\nconst loadData = async (url, setData) => {\n const response = await capexApiGet(url);\n setData(response);\n};\n\nconst DataTemplate = React.forwardRef((props, ref) => {\n const history = useHistory();\n const { url, error, CustomTemplate, children, data, setData } = props;\n\n useEffect(() => {\n loadData(url, onDataResult);\n }, []);\n\n useImperativeHandle(ref, () => ({\n loadData() {\n loadData(url, onDataResult);\n },\n }));\n\n const onDataResult = async (response) => {\n if (response) {\n if (response.status && response.type) {\n history.replace(\"/\" + response.status);\n return;\n }\n\n setData(response);\n }\n };\n\n let content = children;\n\n const TemplateComponent = CustomTemplate ? CustomTemplate : Template;\n\n if (!data) {\n return ;\n }\n\n if (error) {\n return ;\n }\n\n return {content};\n});\n\nexport default DataTemplate;\n","import React from \"react\";\r\nimport { AppBar, Toolbar } from \"@material-ui/core\";\r\nimport { Link } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport logo from \"./../img/hildinganderslogo.png\";\r\nimport { useMsal } from \"@azure/msal-react\";\r\n\r\nconst Separator = styled.div`\r\n display: flex;\r\n flex: 1;\r\n`;\r\n\r\nconst BorderLeftDiv = styled.div`\r\n opacity: 0.2;\r\n border-left: 1px solid #fff;\r\n height: 34px;\r\n margin-left: 20px;\r\n margin-right: 20px;\r\n`;\r\n\r\nconst AppBarComponent = (props) => {\r\n const { instance } = useMsal();\r\n const currentAccount = instance.getActiveAccount();\r\n\r\n return (\r\n \r\n \r\n \r\n {\"logo\"}\r\n \r\n \r\n {props.children}\r\n \r\n {currentAccount && (\r\n
{currentAccount.name}
\r\n )}\r\n \r\n {\r\n instance.logoutRedirect({\r\n postLogoutRedirectUri: \"/\",\r\n });\r\n }}\r\n >\r\n Logout\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default AppBarComponent;\r\n","export default \"data:image/png;base64,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\"","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport AppBar from \"./../../components/AppBar.jsx\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst Container = styled.div`\r\n display: flex;\r\n flex: 1;\r\n`;\r\n\r\nconst RequestTemplate = (props) => {\r\n return (\r\n \r\n \r\n \r\n \r\n Create request\r\n \r\n \r\n My requests\r\n \r\n \r\n \r\n {props.children}\r\n \r\n );\r\n};\r\n\r\nexport default RequestTemplate;\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAQZJREFUOE+lk99twjAQxu8LUp9hAugELRswAt2AQF9akIgncSJReOHfBjACI6QTtJ0Anis1h5NgZDtRRYjfzmf/zt93PpCzNgvZSf4wBainUs+XdMxMB6/Bkf8mvs0rMIP1hwyJMHWhZqxA4WgSCL13BaxmMgbw9N9lIxcPx0E3jTPALZWLYI6GYxEg1cwJvm6sbB2Dx4+4r7rmcARXOzP/KGHb0hcxDZRPbdML9YKQrbb8cssX4lQG2EjZ5AccrfMuIAG/vL6LfRlgOZd9j7GzABXbZ3GV3M/6JtZuY+2PpEVV8SLVPpqIbNAqDxNR/oULw6Q3ck8oUFPX08OVuQ06wKPQHecz/KZ6JWKA2MwAAAAASUVORK5CYII=\"","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport StatusPendingImage from \"./../img/status-pending.png\";\r\nimport StatusApprovedImage from \"./../img/status-approved.png\";\r\nimport StatusDeclinedImage from \"./../img/status-declined.png\";\r\n\r\nconst Container = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n`;\r\n\r\nconst StatusText = styled.span`\r\n margin-left: 8px;\r\n`;\r\n\r\nconst Status = (props) => {\r\n const getStatusElement = (status) => {\r\n switch (status) {\r\n case 0:\r\n return (\r\n \r\n \r\n Pending\r\n \r\n );\r\n\r\n case 1:\r\n return (\r\n \r\n \r\n Approved\r\n \r\n );\r\n\r\n case 2:\r\n return (\r\n \r\n \r\n \r\n Approved but out-of-budget\r\n \r\n \r\n );\r\n\r\n case 3:\r\n return (\r\n \r\n \r\n Declined\r\n \r\n );\r\n\r\n case 4:\r\n return (\r\n \r\n \r\n Revision\r\n \r\n );\r\n\r\n default:\r\n return ;\r\n }\r\n };\r\n\r\n const element = getStatusElement(props.status);\r\n\r\n return element;\r\n};\r\n\r\nexport default Status;\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAASFJREFUOE+lU7EVgkAMTXxgq26AE4gFPRu4Ak6glmpjo7awwY3gBtpLARPoCPb4jLnzQDjEh8/r7i7/5yc/QTBOsHcdIGsGhD4guOqbIAGkE+A9EsvkWoZg+RJsvZBBM5O0eqdQrOJF/lYQBDsv4cfRd7D+ZUVifR7LmyJol9mgJoiYZI6vmu1Lq8xmEGZDbJ2dYApZdoCuxU3Enm5uhK1qZzDLFcHG7YNtXQCxn7sjCaiijGtj3xwOmuigEtg+FtZqUJWA6CbW8UA1ducJ9v/0zlwHKxdqJWi5uaqX7M9gjkk/N7FScyNYTig3sdFGOrBAOcpOo8XSxr8Hqaj1l1Hm2sXqrBbt92XSI1xbpkKJ7MnDnjO1X1quVFoKnSw01/kJCHqC27JXqJwAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAXCAYAAADgKtSgAAAABHNCSVQICAgIfAhkiAAAAfRJREFUSEvFVU1OwlAQnmmQDTXiztgS8QTiCZQTiBvRlXIC8QTqCeQG4gpxA55AbiCeQAxt4hIiJP52nNda0vf6Cm4Is6Lzpt98833zCsIcA+eIDYsFb6yt5TGV2kPCPCEVmE0HiHrp8fh+fzAYTJs8kbkANVKpKwAsJQAwMNXKjnOZ1EALfmdZBULjgV/KzvaE2unRqKKbIgYeMF56/B9w0JoI6oduv6ISiYHf2rk2J/fCQiJ6Eb8RcSOSe+LnPD+vhDkPqHjkOJ1oAwn8j/VzFPjQdfKtbDb7kTE7DLgFBDdlt3/SXM+VwIDWBIyoW3ad7UTwW8uqIhps4iQG6dHbptBTNPg0zSobeCFONbXAtatR7SXmTStX580/lrRjRunxqBh9iQ0/YcOvVY1VaWRw22bNcCe+IXQZMg5Y211fIiVmgfPIeC4zDzSO5iQPIgdTwdVxxaYIQ8X7/hngaShRw7Z3DUBxF8IYlp2+dC8kWQLTlntcLa0YEl/70Gj2wEM4MwBYPvTN9eNvi6ITxva8adtxaeImqJmh9/1VOHp9FcQmob3+3KCjN1bfBcmrHLhuXT3VgvvyZJZrsbWMYw8ZuKoDFqVTv+fCNCSoadZuyBq3vZ+vC1WKmbKoBMUk76ZZCPPqNyTJksX+E81elOSKuTL/BYW/3RhlsqkNAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAWCAYAAADafVyIAAAABHNCSVQICAgIfAhkiAAAAJJJREFUSEtjZGBgSADieiBWAGJqgQdAgxqBeAEjkABxQPgAtUwHmuMAxPJArAiy4D/UtgYqWgAyCxQqjHSzABQ81A4iUDDBfUDF0EExin5BBEpSQzuSR32Angrpn9FG42A0DkguCzGS6USgEQUkG4NbA4oFG4Dq/KloOMyojUBGAKhGAwGQ6wWoaMkDoFkgh38AAFkWPxdSNy6zAAAAAElFTkSuQmCC\"","export const formatDate = (dateString) => {\r\n const date = new Date(dateString);\r\n let a = [{ year: \"numeric\" }, { month: \"numeric\" }, { day: \"numeric\" }];\r\n const format = (m) => {\r\n let f0 = new Intl.DateTimeFormat(\"en\", m);\r\n let f1 = f0.format(date);\r\n\r\n if (f1 < 10) {\r\n f1 = \"0\" + f1.toString();\r\n }\r\n\r\n return f1;\r\n };\r\n return a.map(format).join(\"-\");\r\n};\r\n\r\nexport const formatDateWithTime = (dateString) => {\r\n const date = new Date(dateString);\r\n let a = [{ year: \"numeric\" }, { month: \"numeric\" }, { day: \"numeric\" }];\r\n const format = (m) => {\r\n let f = new Intl.DateTimeFormat(\"en\", m);\r\n return f.format(date);\r\n };\r\n\r\n const minutes = date.getMinutes();\r\n const minutesText = minutes < 10 ? \"0\" + minutes.toString() : minutes;\r\n\r\n return a.map(format).join(\"-\") + \" \" + date.getHours() + \":\" + minutesText;\r\n};\r\n\r\nexport default formatDate;\r\n","import styled from \"styled-components\";\r\n\r\nexport const Container = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: center;\r\n padding-bottom: 50px;\r\n`;\r\n\r\nexport const ColumnContainer = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n padding-bottom: 50px;\r\n`;\r\n\r\nexport const ColumnLeft = styled.div`\r\n flex: 1;\r\n margin-right: 154px;\r\n max-width: 536px;\r\n`;\r\n\r\nexport const Column = styled.div`\r\n flex: 1;\r\n max-width: 536px;\r\n`;\r\n\r\nexport const Section = styled.div`\r\n border: 1px solid;\r\n border-color: #a4aeb7;\r\n -webkit-box-sizing: border-box;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n margin-bottom: 30px;\r\n padding-top: 31px;\r\n padding-left: 30px;\r\n padding-bottom: 35px;\r\n`;\r\n\r\nexport const SectionWhiteBG = styled.div`\r\n border: 1px solid;\r\n border-color: #a4aeb7;\r\n background-color: #fff;\r\n -webkit-box-sizing: border-box;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n padding-top: 33px;\r\n padding-left: 30px;\r\n padding-bottom: 34px;\r\n margin-bottom: 30px;\r\n display: flex;\r\n`;\r\n\r\nexport const SectionCenterHorizontally = styled.div`\r\n border: 1px solid;\r\n -webkit-box-sizing: border-box;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n padding: 10px;\r\n display: flex;\r\n justify-content: center;\r\n`;\r\n\r\nexport const SectionCenter = styled.div`\r\n border: 1px solid;\r\n -webkit-box-sizing: border-box;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n padding: 10px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n`;\r\n\r\nexport const SectionWarning = styled.div`\r\n border: 1px solid;\r\n -webkit-box-sizing: border-box;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n padding: 10px;\r\n display: flex;\r\n`;\r\n","import React, { useState } from \"react\";\r\nimport DataTemplate from \"./../../components/DataTemplate\";\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n Box,\r\n} from \"@material-ui/core\";\r\nimport { Link } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport { useMsal } from \"@azure/msal-react\";\r\nimport RequestTemplate from \"./template\";\r\nimport Status from \"./../../components/Status\";\r\nimport ViewLinkImage from \"./../../img/view-link.png\";\r\nimport formatDate from \"./../../utils/formatDate\";\r\nimport { protectedResources } from \"./../../authConfig\";\r\nimport { ColumnContainer } from \"../../components/Layout\";\r\n\r\nconst ViewLink = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n`;\r\n\r\nconst ViewLinkText = styled.span`\r\n margin-right: 8px;\r\n`;\r\n\r\nconst RequestIndex = (props) => {\r\n const [data, setData] = useState();\r\n const { instance } = useMsal();\r\n const currentAccount = instance.getActiveAccount();\r\n\r\n const getLink = (request) => {\r\n return request.level === 0\r\n ? \"/request/edit/\" + request.id\r\n : \"/request/\" + request.id;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {currentAccount && (\r\n \r\n {currentAccount.name}\r\n \r\n )}\r\n Your requests\r\n \r\n {data && data.length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Date requested\r\n \r\n \r\n \r\n \r\n Name of project\r\n \r\n \r\n \r\n \r\n Request ID\r\n \r\n \r\n \r\n \r\n Site\r\n \r\n \r\n \r\n \r\n Type of investment\r\n \r\n \r\n \r\n \r\n Fiscal year\r\n \r\n \r\n \r\n \r\n Amount\r\n \r\n \r\n \r\n \r\n Status\r\n \r\n \r\n \r\n \r\n \r\n \r\n {data.map((request, index) => (\r\n \r\n \r\n \r\n {formatDate(\r\n request.created\r\n )}\r\n \r\n \r\n \r\n \r\n {request.name}\r\n \r\n \r\n \r\n \r\n {request.id}\r\n \r\n \r\n \r\n {request.site && (\r\n \r\n {request.site.name}\r\n \r\n )}\r\n \r\n \r\n {request.investmentType && (\r\n \r\n {\r\n request\r\n .investmentType\r\n .name\r\n }\r\n \r\n )}\r\n \r\n \r\n \r\n {request.fiscalYear}\r\n \r\n \r\n \r\n \r\n {request.amount}{\" \"}\r\n \r\n \r\n kEUR\r\n \r\n \r\n \r\n {\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n View\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default RequestIndex;\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAUCAYAAABiS3YzAAAABHNCSVQICAgIfAhkiAAAAR5JREFUOE/tVcsNgkAQZYGDVw8QuNmBdiAdCB1oBZYgdEAJlkAHagVSAp4gnLjBheCbRA4su3z0YEzcZEJ25s2b3ZnZgSmSZVmWwxg7wuwKIEXTNGGWZYHInclIbduO4OjAHvIYBNtAt6vr2svzPOrZB0jB2QQ4jS/CIKjUzmCM4bSWkQ/pwarg1B0IdAlD7vbQrl6WE74PSAKxIIsR0gykFTBbyA1yJd9OmKErDZHzft8hNU3TVVU1RsEoJQq/J93sk/IOohT9STsPYbT6v5NTvDhqJR8tdab24fdvtdSUmTC7pT4mxdUKDIhLmqbeFDLCGIax0XX9jvIf2hTx1aeBTNN+9irLcllgkWNv8lNkTdNEvxBZoKSqqqglJNATIgaJ899r1JcAAAAASUVORK5CYII=\"","import { withStyles } from \"@material-ui/core/styles\";\r\nimport { Box, Button, Radio } from \"@material-ui/core\";\r\nimport MUITextField from \"@material-ui/core/TextField\";\r\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\r\nimport { TextField, DatePicker } from \"material-ui-formik-components\";\r\nimport Chip from \"@material-ui/core/Chip\";\r\nimport { FastField } from \"formik\";\r\n\r\nexport const SectionTitelBox = withStyles((theme) => ({\r\n root: {\r\n margin: \"0px\",\r\n marginBottom: \"10px\",\r\n },\r\n}))(Box);\r\n\r\nexport const CustomFastField = ({ InputLabelProps = {}, ...props }) => {\r\n return ;\r\n};\r\n\r\nexport const CurrencyField = ({ InputLabelProps = {}, ...props }) => {\r\n return (\r\n kEUR\r\n ),\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport const StyledTextField = withStyles((theme) => ({\r\n root: {\r\n margin: 0,\r\n \"& .MuiFormHelperText-root\": {\r\n backgroundColor: \"none\",\r\n margin: 0,\r\n marginTop: \"5px\",\r\n marginLeft: \"5px\",\r\n },\r\n \"& .MuiOutlinedInput-root\": {\r\n backgroundColor: \"#FFF\",\r\n },\r\n },\r\n}))(TextField);\r\n\r\nexport const StyledBox = (props) => {\r\n return ;\r\n};\r\n\r\nexport const StyledMUITextField = withStyles((theme) => ({\r\n root: {\r\n backgroundColor: \"#FFF\",\r\n margin: 0,\r\n },\r\n}))(MUITextField);\r\n\r\nexport const StyledChip = withStyles((theme) => ({\r\n root: {\r\n backgroundColor: \"#FFF\",\r\n borderRadius: \"unset\",\r\n height: \"39px\",\r\n marginRight: \"10px\",\r\n },\r\n}))(Chip);\r\n\r\nexport const SubmitButton = withStyles((theme) => ({\r\n root: {\r\n textTransform: \"unset !important\",\r\n height: \"60px\",\r\n },\r\n}))(Button);\r\n\r\nexport const StyledDatePicker = withStyles((theme) => ({\r\n root: {\r\n backgroundColor: \"#FFF\",\r\n padding: \"10px\",\r\n margin: 0,\r\n },\r\n}))(DatePicker);\r\n\r\nexport const FileUploadButton = withStyles((theme) => ({\r\n root: {\r\n backgroundColor: \"#FFF\",\r\n textTransform: \"unset !important\",\r\n height: \"50px\",\r\n },\r\n}))(Button);\r\n\r\nexport const StyledRadio = withStyles((theme) => ({\r\n root: {\r\n backgroundColor: \"#FFF\",\r\n padding: 0,\r\n margin: \"9px\",\r\n color: \"#5A9CD3\",\r\n \"&$checked\": {\r\n color: \"#5A9CD3\",\r\n },\r\n },\r\n checked: {},\r\n}))(Radio);\r\n","import * as yup from \"yup\";\r\nimport React from \"react\";\r\nimport { Formik, Form, Field } from \"formik\";\r\nimport { MuiPickersUtilsProvider } from \"@material-ui/pickers\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\r\nimport {\r\n Box,\r\n Button,\r\n RadioGroup,\r\n ButtonGroup,\r\n FormControlLabel,\r\n IconButton,\r\n FormControl,\r\n} from \"@material-ui/core\";\r\nimport FileUploadImage from \"./../../img/file-upload.png\";\r\nimport DeleteImage from \"./../../img/delete.png\";\r\nimport {\r\n StyledTextField,\r\n StyledDatePicker,\r\n CurrencyField,\r\n StyledRadio,\r\n StyledMUITextField,\r\n FileUploadButton,\r\n SubmitButton,\r\n CustomFastField,\r\n} from \"./../../components/Form\";\r\n\r\nconst validationSchema = yup.object({}).shape({\r\n name: yup.string().required(\"Required\"),\r\n amount: yup.number().moreThan(0).required(\"Required\"),\r\n siteId: yup.number().required(\"Required\"),\r\n investmentTypeId: yup.number().required(\"Required\"),\r\n financeTypeId: yup.number().required(\"Required\"),\r\n divisionId: yup.number().required(\"Required\"),\r\n file: yup.string().required(\"Required\"),\r\n});\r\n\r\nconst RequestForm = (props) => {\r\n const {\r\n initialValues,\r\n handleSubmit,\r\n handleDelete,\r\n enableDelete,\r\n handleDeleteConfirm,\r\n data,\r\n isEditing,\r\n disabled,\r\n } = props;\r\n\r\n const {\r\n availableSites,\r\n availableInvestmentTypes,\r\n availableFinanceTypes,\r\n availableDivisions,\r\n } = data;\r\n\r\n const availableYears = [];\r\n const currentYear = new Date().getFullYear();\r\n\r\n availableYears.push(currentYear);\r\n availableYears.push(currentYear + 1);\r\n\r\n const requestSite = availableSites.find(\r\n (aSite) => aSite.id === initialValues.siteId\r\n );\r\n\r\n const requestInvestmentType = availableInvestmentTypes.find(\r\n (aInvestmentType) =>\r\n aInvestmentType.id === initialValues.investmentTypeId\r\n );\r\n\r\n const requestDivision = availableDivisions.find(\r\n (aDivision) => aDivision.id === initialValues.divisionId\r\n );\r\n\r\n const requestFinanceType = availableFinanceTypes.find(\r\n (aFinanceType) => aFinanceType.id === initialValues.financeTypeId\r\n );\r\n\r\n const [selectedYear, setSelectedYear] = React.useState(\r\n initialValues.fiscalYear\r\n );\r\n\r\n const [selectedSite, setSelectedSite] = React.useState(requestSite);\r\n\r\n const [selectedInvestmentType, setSelectedInvestmentType] = React.useState(\r\n requestInvestmentType\r\n );\r\n\r\n const [selectedDivision, setSelectedDivision] =\r\n React.useState(requestDivision);\r\n\r\n const [selectedFinanceType, setSelectedFinanceType] =\r\n React.useState(requestFinanceType);\r\n\r\n const [selectedStartDate, handleStartDateChange] = React.useState(\r\n initialValues.startDate\r\n );\r\n\r\n const [selectedEndDate, handleEndDateChange] = React.useState(\r\n initialValues.endDate\r\n );\r\n\r\n return (\r\n \r\n {\r\n handleSubmit(values);\r\n }}\r\n >\r\n {(formik) => {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Site & Type\r\n \r\n \r\n \r\n \r\n Site\r\n \r\n \r\n \r\n Division\r\n \r\n \r\n \r\n \r\n \r\n \r\n option.name\r\n }\r\n onChange={(e, option) => {\r\n setSelectedSite(option);\r\n\r\n formik.setFieldValue(\r\n \"siteId\",\r\n option !== null\r\n ? option.id\r\n : initialValues.siteId\r\n );\r\n }}\r\n renderInput={(params) => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n option.name\r\n }\r\n onChange={(e, option) => {\r\n setSelectedDivision(option);\r\n\r\n formik.setFieldValue(\r\n \"divisionId\",\r\n option !== null\r\n ? option.id\r\n : initialValues.divisionId\r\n );\r\n }}\r\n renderInput={(params) => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Investment type\r\n \r\n \r\n\r\n \r\n option.name\r\n }\r\n onChange={(e, option) => {\r\n setSelectedInvestmentType(\r\n option\r\n );\r\n\r\n formik.setFieldValue(\r\n \"investmentTypeId\",\r\n option !== null\r\n ? option.id\r\n : initialValues.investmentTypeId\r\n );\r\n }}\r\n renderInput={(params) => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n Capex details\r\n \r\n \r\n \r\n \r\n Name of project\r\n \r\n \r\n \r\n \r\n \r\n \r\n Amount\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Start date\r\n \r\n \r\n \r\n \r\n End date\r\n \r\n \r\n \r\n \r\n \r\n {\r\n handleStartDateChange(\r\n aDate\r\n );\r\n formik.setFieldValue(\r\n \"startDate\",\r\n aDate\r\n );\r\n }}\r\n />\r\n \r\n \r\n {\r\n handleEndDateChange(aDate);\r\n formik.setFieldValue(\r\n \"endDate\",\r\n aDate\r\n );\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n Finance options\r\n \r\n \r\n \r\n \r\n option.name\r\n }\r\n onChange={(e, option) => {\r\n setSelectedFinanceType(option);\r\n\r\n formik.setFieldValue(\r\n \"financeTypeId\",\r\n option !== null\r\n ? option.id\r\n : initialValues.financeTypeId\r\n );\r\n }}\r\n renderInput={(params) => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n Budgeted request\r\n \r\n \r\n \r\n \r\n {\r\n formik.setFieldValue(\r\n \"budgeted\",\r\n event.currentTarget\r\n .value\r\n );\r\n }}\r\n >\r\n }\r\n value={\"true\"}\r\n label=\"Budgeted\"\r\n />\r\n }\r\n value={\"false\"}\r\n label=\"Non-budgeted\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Fiscal year\r\n \r\n \r\n \r\n \r\n option.toString()\r\n }\r\n onChange={(e, option) => {\r\n setSelectedYear(option);\r\n\r\n formik.setFieldValue(\r\n \"fiscalYear\",\r\n option !== null\r\n ? option\r\n : initialValues.fiscalYear\r\n );\r\n }}\r\n renderInput={(params) => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n File attachment\r\n \r\n \r\n \r\n {formik.values.file && (\r\n \r\n \r\n {formik.values.file.name}\r\n {\" \"}\r\n {\r\n formik.setFieldValue(\r\n \"file\",\r\n null\r\n );\r\n }}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n {formik.touched.file &&\r\n formik.errors.file && (\r\n
\r\n {formik.errors.file}\r\n
\r\n )}\r\n \r\n \r\n }\r\n >\r\n Upload File\r\n {\r\n formik.setFieldValue(\r\n \"file\",\r\n event.currentTarget\r\n .files[0]\r\n );\r\n }}\r\n />\r\n \r\n \r\n \r\n {isEditing ? (\r\n \r\n \r\n \r\n Submit\r\n \r\n \r\n {enableDelete ? (\r\n {\r\n handleDeleteConfirm(\r\n formik.values.id\r\n );\r\n }}\r\n >\r\n \r\n Confirm delete\r\n \r\n \r\n \r\n ) : (\r\n {\r\n handleDelete(\r\n formik.values.id\r\n );\r\n }}\r\n >\r\n \r\n Delete request\r\n \r\n \r\n \r\n )}\r\n \r\n ) : (\r\n \r\n \r\n \r\n Submit\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n
\r\n
\r\n );\r\n }}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default RequestForm;\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAdxJREFUSEu1lb1NxEAQhe8ChIigA0wFXEp0pgIgIMZEhPw0gKngoAJ8GSEdYFISoAN3AB3A+6wZabVn458TIz3denf2vZnZ2b3pZDJJhUvhWOhrlRyvheeuDVM5fJhTp3NARjD7wrlQ/CWCwI9wJ+Rd0QTrOxqXfUTGCqAVipy0lWsdgVBkWx97TRVYVwBOSnsrwLVisQAHzuH1scqiHiSQaVPSh10+CBSWwZWdSWcGPblX3AgKwX8TaA0sPgO/QE0blg1RzuzMyKAUPoXvcHMsQJq7LeGEtzaVz6MAcWz3muDi1kJj2jQzcqLNBTqPwBClArxrzB0iMlQAkheBctE5RHkq3AgHlgo+vGvviAwVIFJIIeGXM3gTNoRCoIwY4gu++1w0ngCIISMqf3f4JpstYdOIQ5G6dLFApsnEnP0ntwFrHKwLQkbNn4QLgbKdRevzISVCKHxzPBCEfT7VuLSAav8hAmymJHSHk8AVC3vmtY//o/HcknKT0dMY7/+X8CBwiG5NAokWOa8lAqltOGoR8JqzzCWiz8MsMn0jAqlbqQFNMGt8w1uEmPZ/MW47pGQTGiI0AkHXN3+ogItwkeYCrRjeZKKGkxIWOI8R8IgzDWhTSMno1cQoY+VOv3+ig3cMTAz4AAAAAElFTkSuQmCC\"","import React from \"react\";\r\nimport { capexApiGet } from \"../fetch\";\r\nimport { protectedResources } from \"../authConfig\";\r\n\r\nconst Text = (props) => {\r\n const [text, setText] = React.useState();\r\n const [isFetching, setIsFetching] = React.useState(true);\r\n const url = protectedResources.apiCapex.endpoint + \"/text/key/\" + props.id;\r\n\r\n const getText = async () => {\r\n setText(null);\r\n setIsFetching(true);\r\n\r\n const response = await capexApiGet(url);\r\n\r\n setText(response);\r\n setIsFetching(false);\r\n };\r\n\r\n React.useEffect(() => {\r\n getText();\r\n }, []);\r\n\r\n return (\r\n \r\n {!isFetching && text && `${text.value}`}\r\n \r\n );\r\n};\r\n\r\nexport default Text;\r\n","import React, { useState } from \"react\";\nimport DataTemplate from \"./../../components/DataTemplate.jsx\";\nimport RequestForm from \"./form\";\nimport { useHistory } from \"react-router-dom\";\nimport RequestTemplate from \"./template\";\nimport { protectedResources } from \"./../../authConfig\";\nimport { capexApiPost, capexApiPut } from \"../../fetch\";\nimport { Container, ColumnLeft, Column } from \"./../../components/Layout\";\nimport { Box } from \"@material-ui/core\";\nimport Text from \"../../components/Text.jsx\";\n\nconst CreateRequest = (props) => {\n const [data, setData] = useState();\n const [isSubmitted, setIsSubmitted] = useState(false);\n const history = useHistory();\n\n const handleSubmit = async (values) => {\n setIsSubmitted(true);\n\n values.amount = parseInt(values.amount);\n values.budgeted = values.budgeted === \"true\";\n\n const { file, ...otherValues } = values;\n\n if (file) {\n var body = new FormData();\n body.append(\"file\", file);\n\n const fileUploadResponse = await capexApiPut(\n protectedResources.apiCapex.endpoint + \"/file/\",\n body\n );\n\n otherValues.fileName = fileUploadResponse.fileName;\n otherValues.fileDescription = fileUploadResponse.fileDescription;\n }\n\n const json = JSON.stringify(otherValues);\n const response = await capexApiPost(\n protectedResources.apiCapex.endpoint + \"/request/create/\",\n json\n );\n\n response && history.push(\"/request/confirm/\" + response.request.id);\n };\n\n const initialValues = {\n name: \"\",\n amount: 0,\n fiscalYear: new Date().getFullYear(),\n startDate: new Date(),\n endDate: new Date(),\n budgeted: \"true\",\n siteId: 0,\n investmentTypeId: 0,\n divisionId: 0,\n financeTypeId: 0,\n investmentTypeId: 0,\n file: \"\",\n };\n\n if (data) {\n initialValues.siteId =\n data.availableSites &&\n data.availableSites.length > 0 &&\n data.availableSites[0].id;\n initialValues.investmentTypeId =\n data.availableInvestmentTypes &&\n data.availableInvestmentTypes.length > 0 &&\n data.availableInvestmentTypes[0].id;\n initialValues.divisionId =\n data.availableDivisions &&\n data.availableDivisions.length > 0 &&\n data.availableDivisions[0].id;\n initialValues.financeTypeId =\n data.availableFinanceTypes &&\n data.availableFinanceTypes.length > 0 &&\n data.availableFinanceTypes[0].id;\n }\n\n return (\n \n \n \n \n \n \n Capex request form\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default CreateRequest;\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport AppBar from \"../../components/AppBar.jsx\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst Container = styled.div`\r\n display: flex;\r\n flex: 1;\r\n`;\r\n\r\nconst ApproverTemplate = (props) => {\r\n return (\r\n \r\n \r\n \r\n \r\n My active requests\r\n \r\n \r\n \r\n {props.children}\r\n \r\n );\r\n};\r\n\r\nexport default ApproverTemplate;\r\n","import React from \"react\";\r\nimport { Link } from \"@material-ui/core\";\r\nimport { downloadFile } from \"./../fetch\";\r\nimport FileDownloadImage from \"./../img/file-download.png\";\r\n\r\nconst DownloadLink = ({ fileName }) => {\r\n const handleDownloadFile = async () => {\r\n await downloadFile(fileName);\r\n };\r\n\r\n return (\r\n {\r\n handleDownloadFile();\r\n }}\r\n >\r\n Download\r\n \r\n \r\n );\r\n};\r\n\r\nexport default DownloadLink;\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAATCAYAAACQjC21AAAABHNCSVQICAgIfAhkiAAAAOpJREFUOE/tlGERwjAMRocDJOAAUAA4YQpAAg4ABUjZHAAOkIAD+B63cF1ZwriDf+QutzZNX9Mk3aCIpdbyLHM5aT71tg0C3kRrR+ki8cG2lbr7IuBcG6tsc5etFdMfWIyUkEOTlKG+FCFNi+WQ6puUGlxskucQCM5j6b5x3GWdsNacg1fSs5RDrh4Qu0FvGtMyT+ckcqt+C8a6V2UPit2FRcCuSLGFsHfAHGr+L9dMcxw1tvnZ9ZmHMDuRx76U8vUEKJIXKPV/vHMitGrWAbDPEtFXPwPSrNGV+0a4IUJg/OO+IWWfKn900B1y9jcw+orATAAAAABJRU5ErkJggg==\"","import React from \"react\";\r\nimport { Box } from \"@material-ui/core\";\r\nimport DownloadLink from \"./DownloadLink\";\r\nimport formatDate from \"./../utils/formatDate\";\r\n\r\nconst CapexDetails = (props) => {\r\n const { request } = props;\r\n const {\r\n amount,\r\n budgeted,\r\n site,\r\n investmentType,\r\n division,\r\n financeType,\r\n fileName,\r\n fileDescription,\r\n } = request ? request : {};\r\n return (\r\n \r\n \r\n CAPEX DETAILS\r\n \r\n \r\n \r\n \r\n Request ID\r\n \r\n \r\n Date requested\r\n \r\n \r\n {request && request.id}\r\n \r\n \r\n \r\n {request && formatDate(request.created)}\r\n \r\n \r\n
\r\n \r\n \r\n Site\r\n \r\n \r\n Division\r\n \r\n \r\n {site && site.name}\r\n \r\n \r\n \r\n {division && division.name}\r\n \r\n \r\n \r\n \r\n \r\n Type of investment\r\n \r\n \r\n Fiscal year\r\n \r\n \r\n \r\n {investmentType && investmentType.name}\r\n \r\n \r\n \r\n \r\n {request && request.fiscalYear}\r\n \r\n \r\n \r\n \r\n \r\n Start date\r\n \r\n \r\n End date\r\n \r\n \r\n \r\n {request && formatDate(request.startDate)}\r\n \r\n \r\n \r\n \r\n {request && formatDate(request.endDate)}\r\n \r\n \r\n \r\n \r\n \r\n Amount\r\n \r\n \r\n Budgeted request\r\n \r\n \r\n Finance options\r\n \r\n \r\n \r\n {amount} kEUR\r\n \r\n \r\n \r\n {budgeted ? \"Budget\" : \"Non-budget\"}\r\n \r\n \r\n \r\n \r\n {financeType && financeType.name}\r\n \r\n \r\n \r\n {fileName && (\r\n \r\n \r\n File attachment\r\n \r\n \r\n {fileDescription}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CapexDetails;\r\n","import React from \"react\";\r\nimport { Box } from \"@material-ui/core\";\r\nimport { formatDateWithTime } from \"./../../utils/formatDate\";\r\nimport Status from \"./../../components/Status\";\r\n\r\nconst HistoryEntry = ({ action, isLastIndex }) => {\r\n const { status, approvers, comment } = action;\r\n let actionDescription = comment;\r\n\r\n if (status === 0) {\r\n actionDescription = \"Request sent for approval to:\";\r\n }\r\n\r\n let statusElement = status != 0 && (\r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n {formatDateWithTime(action.created)}\r\n \r\n \r\n {statusElement}\r\n \r\n {actionDescription}\r\n \r\n \r\n {approvers.map((approver) => (\r\n
\r\n {approver.name}\r\n
\r\n ))}\r\n
\r\n {!isLastIndex &&
}\r\n \r\n );\r\n};\r\n\r\nconst RequestHistory = (props) => {\r\n const { request } = props;\r\n const { actions } = request;\r\n\r\n return (\r\n \r\n \r\n REQUEST HISTORY\r\n \r\n
\r\n {actions.map((action, index) => (\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default RequestHistory;\r\n","import React from \"react\";\r\n\r\nconst RemainingBudget = ({ remainingBudget }) => {\r\n return (\r\n \r\n \r\n {remainingBudget}\r\n \r\n \r\n  kEUR\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default RemainingBudget;\r\n","import React, { useState } from \"react\";\nimport { Box, TextField, ButtonGroup } from \"@material-ui/core\";\nimport CheckCircleIcon from \"@material-ui/icons/CheckCircle\";\nimport { withStyles } from \"@material-ui/core/styles\";\nimport CancelIcon from \"@material-ui/icons/Cancel\";\nimport ApproverTemplate from \"./../approver/template\";\nimport DataTemplate from \"./../../components/DataTemplate\";\nimport { useLocation, useHistory } from \"react-router-dom\";\nimport { protectedResources } from \"./../../authConfig\";\nimport StatusComponent from \"./../../components/Status\";\nimport { capexApiPost } from \"../../fetch\";\nimport { SubmitButton } from \"./../../components/Form\";\nimport CapexDetails from \"./../../components/CapexDetails\";\nimport WarningImage from \"./../../img/warning-icon.png\";\nimport History from \"./history\";\nimport {\n Container,\n ColumnLeft,\n Column,\n Section,\n SectionWhiteBG,\n SectionWarning,\n} from \"./../../components/Layout\";\nimport RemainingBudget from \"../../components/RemainingBudget\";\n\nconst styles = (theme) => ({\n outlinedInput: {\n border: \"1px solid\",\n borderColor: \"#A4AEB7\",\n borderRadius: 0,\n backgroundColor: \"#FFF !important\",\n },\n});\n\nconst ReviewRequest = (props) => {\n const { classes } = props;\n const [data, setData] = useState();\n const location = useLocation();\n const history = useHistory();\n const { request, requester, approver, remainingBudget } = data ? data : {};\n const [commentInput, setCommentInput] = React.useState(\"\");\n const [approved, setApproved] = React.useState(null);\n const [budgetCoversAmount, setBudgetCoversAmount] = React.useState(false);\n const [submitDisabled, setSubmitDisabled] = React.useState(true);\n\n const handleSubmit = async () => {\n const request = {\n approved,\n comment: commentInput,\n };\n\n setSubmitDisabled(true);\n\n const json = JSON.stringify(request);\n\n await capexApiPost(\n protectedResources.apiCapex.endpoint + location.pathname,\n json\n );\n\n history.push(\"/approver/requests\");\n };\n\n const getBudgetWarningElement = () => {\n if (!approved) return;\n\n if (!budgetCoversAmount) {\n return (\n \n \n \n \n Insufficient budget, request will be transferred to\n next level.\n \n \n \n );\n }\n\n if (!request.budgeted) {\n return (\n \n \n \n Remaining non-budget for fiscal year 2021 after\n approved request: \n \n \n \n \n );\n }\n };\n\n const budgetWarningElement = getBudgetWarningElement();\n\n return (\n \n \n \n \n \n \n Approver\n \n \n \n {request && request.name}\n \n \n \n \n Requested by:\n \n \n \n Request status:\n \n \n \n \n {requester && requester.displayName}\n \n \n \n \n {request && (\n \n )}\n \n \n \n \n {request && request.budgeted ? (\n
\n \n \n \n BUDGET (BUDGETED REQUESTS)\n \n \n \n \n {approver && approver.name}\n \n \n \n \n \n Budgeted\n \n \n \n \n \n \n {approver && approver.budgeted}\n \n kEUR\n \n \n \n
\n ) : (\n
\n \n \n \n BUDGET (NON-BUDGETED REQUESTS)\n \n \n \n \n {approver && approver.name}\n \n \n \n \n \n Non-budgeted\n \n \n \n \n Max annually\n \n \n \n \n Remaining (non-budgeted)\n \n \n \n \n \n \n {approver &&\n approver.nonBudgeted}\n \n kEUR\n \n \n \n {approver &&\n approver.maxAnually}\n \n kEUR\n \n \n \n \n {remainingBudget}\n \n \n {\" \"}\n kEUR\n \n
\n \n \n \n \n )}\n \n \n \n \n \n \n \n REQUEST RESPONSE\n \n \n \n \n Message (optional)\n \n \n \n {\n setCommentInput(\n event.currentTarget.value\n );\n }}\n InputProps={{\n classes: {\n root: classes.outlinedInput,\n },\n }}\n />\n \n \n \n \n Approval decision\n \n \n \n }\n onClick={(event) => {\n setApproved(true);\n setSubmitDisabled(false);\n setBudgetCoversAmount(\n (request.budgeted &&\n approver.budgeted >=\n request.amount) ||\n (remainingBudget >=\n request.amount &&\n approver.nonBudgeted >=\n request.amount)\n );\n }}\n >\n \n Approve request\n \n \n }\n onClick={(event) => {\n setApproved(false);\n setSubmitDisabled(false);\n }}\n >\n \n Decline request\n \n \n \n \n \n {budgetWarningElement}\n \n \n {\n handleSubmit();\n }}\n >\n Submit response\n \n \n \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(ReviewRequest);\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABHNCSVQICAgIfAhkiAAAAR9JREFUOE+N1TFuwjAUBuD3E/ZyDtQKpkqdCjegJ+jU9kyoU09Ab9B2QmICCTHTG9Cd5C92CFLM83vxFCXxFz/7twNx2uplOD6i+Aqv9VlO7993a6sLrIcNBsggvEfKwUOzYIo1H/ZQFcxhXdArUMXIn4gBjx7aArMjA6cRIuLiWOgFNMvMgNpCRdCbMzHAFIWLxbnTS9bKx/L17iCQGzPfHcBz/31nkBUGp4AvrA+T/I0llyi+rVGGMNepqXeM2ih/BcvJZVFMlPJR51CeLSzs81ZsdJSbh/l2HKDl2+3pYMCohZ5H1hwaV8FO0VAuenyK8aiwaJWdYHURSesyp7GLgqlguOmiGSwLmqiBmaCKOpgLNugRvc9w3Wc1834B/8BZ5Jl24R/nAAAAAElFTkSuQmCC\"","import React, { useState, useEffect } from \"react\";\r\nimport { useMsal } from \"@azure/msal-react\";\r\n\r\nexport const ContentGuard = ({ ...props }) => {\r\n const { instance } = useMsal();\r\n const [isAuthorized, setIsAuthorized] = useState(false);\r\n\r\n const onLoad = async () => {\r\n const currentAccount = instance.getActiveAccount();\r\n\r\n if (currentAccount && currentAccount.idTokenClaims[\"groups\"]) {\r\n console.log(\"currentAccount.idTokenClaims[groups]\", currentAccount.idTokenClaims[\"groups\"]);\r\n let intersection = props.groups.filter((group) =>\r\n currentAccount.idTokenClaims[\"groups\"].includes(group)\r\n );\r\n\r\n if (intersection.length > 0) {\r\n setIsAuthorized(true);\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n onLoad();\r\n }, [instance]);\r\n\r\n return <>{isAuthorized ? props.children : <>};\r\n};\r\n","import React, { useState } from \"react\";\r\nimport DataTemplate from \"./../../components/DataTemplate.jsx\";\r\nimport { Box, Button, ButtonGroup } from \"@material-ui/core\";\r\nimport { useLocation, useHistory } from \"react-router-dom\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { capexApiGet, capexApiDelete } from \"../../fetch\";\r\nimport RequesterTemplate from \"./template\";\r\nimport ApproverTemplate from \"./../approver/template\";\r\nimport Status from \"./../../components/Status\";\r\nimport { protectedResources } from \"./../../authConfig\";\r\nimport History from \"./history\";\r\nimport CapexDetails from \"./../../components/CapexDetails\";\r\nimport DeleteImage from \"./../../img/delete.png\";\r\nimport { ContentGuard } from \"./../../components/ContentGuard\";\r\nimport {\r\n Container,\r\n ColumnLeft,\r\n Column,\r\n SectionWhiteBG,\r\n} from \"./../../components/Layout\";\r\n\r\nconst RequestDetails = (props) => {\r\n const [data, setData] = useState();\r\n const [enableDelete, setEnableDelete] = React.useState(false);\r\n const [securityGroups, setSecurityGroups] = React.useState();\r\n const url = protectedResources.apiCapex.endpoint + \"/groups/\";\r\n const location = useLocation();\r\n const history = useHistory();\r\n\r\n const getGroups = async () => {\r\n const response = await capexApiGet(url);\r\n setSecurityGroups(response);\r\n };\r\n\r\n const { name, requester, status } = data ? data : {};\r\n const Template =\r\n props.template === \"approver\" ? ApproverTemplate : RequesterTemplate;\r\n\r\n console.log(securityGroups);\r\n\r\n const handleDelete = async (id) => {\r\n const result = await capexApiGet(\r\n protectedResources.apiCapex.endpoint + \"/request/delete/\" + id\r\n );\r\n\r\n if (result.success) {\r\n setEnableDelete(true);\r\n }\r\n };\r\n\r\n const handleDeleteConfirm = async (id) => {\r\n await capexApiDelete(\r\n protectedResources.apiCapex.endpoint +\r\n \"/request/deleteConfirmed/\" +\r\n id\r\n );\r\n\r\n history.push(\"/request\");\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default RequestDetails;\r\n","import React, { useState } from \"react\";\r\nimport { useLocation, useHistory } from \"react-router-dom\";\r\nimport DataTemplate from \"../../components/DataTemplate.jsx\";\r\nimport RequestForm from \"./form\";\r\nimport RequestTemplate from \"./template\";\r\nimport { protectedResources } from \"../../authConfig\";\r\nimport {\r\n capexApiPost,\r\n capexApiPut,\r\n capexApiGet,\r\n capexApiDelete,\r\n} from \"../../fetch\";\r\nimport History from \"./history\";\r\nimport {\r\n Container,\r\n ColumnLeft,\r\n Column,\r\n SectionWhiteBG,\r\n} from \"./../../components/Layout\";\r\nimport { Box } from \"@material-ui/core\";\r\nimport Text from \"../../components/Text.jsx\";\r\n\r\nconst EditRequest = (props) => {\r\n const location = useLocation();\r\n const history = useHistory();\r\n const [data, setData] = useState();\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n const [enableDelete, setEnableDelete] = React.useState(false);\r\n\r\n const handleSubmit = async (values) => {\r\n setIsSubmitting(true);\r\n\r\n values.amount = parseInt(values.amount);\r\n values.budgeted = values.budgeted === \"true\";\r\n\r\n const { file, ...otherValues } = values;\r\n\r\n if (file) {\r\n var body = new FormData();\r\n body.append(\"file\", file);\r\n\r\n const fileUploadResponse = await capexApiPut(\r\n protectedResources.apiCapex.endpoint + \"/file/\",\r\n body\r\n );\r\n\r\n otherValues.fileName = fileUploadResponse.fileName;\r\n otherValues.fileDescription = fileUploadResponse.fileDescription;\r\n }\r\n\r\n const json = JSON.stringify(otherValues);\r\n\r\n await capexApiPost(\r\n protectedResources.apiCapex.endpoint + \"/request/edit/\",\r\n json\r\n );\r\n\r\n history.push(\"/request/\");\r\n };\r\n\r\n const handleDelete = async (id) => {\r\n const result = await capexApiGet(\r\n protectedResources.apiCapex.endpoint + \"/request/delete/\" + id\r\n );\r\n\r\n if (result.success) {\r\n setEnableDelete(true);\r\n }\r\n };\r\n\r\n const handleDeleteConfirm = async (id) => {\r\n await capexApiDelete(\r\n protectedResources.apiCapex.endpoint +\r\n \"/request/deleteConfirmed/\" +\r\n id\r\n );\r\n\r\n history.push(\"/request\");\r\n };\r\n\r\n const initialValues =\r\n data && data.request\r\n ? { ...data.request }\r\n : {\r\n name: \"\",\r\n amount: 0,\r\n fiscalYear: new Date().getFullYear(),\r\n startDate: \"\",\r\n endDate: \"\",\r\n budgeted: false,\r\n siteId: 0,\r\n investmentTypeId: 0,\r\n divisionId: 0,\r\n financeTypeId: 0,\r\n investmentTypeId: 0,\r\n requesterId: \"\",\r\n file: \"\",\r\n };\r\n\r\n if (data) {\r\n initialValues.siteId =\r\n data.availableSites &&\r\n data.availableSites.length > 0 &&\r\n data.availableSites[0].id;\r\n initialValues.investmentTypeId =\r\n data.availableInvestmentTypes &&\r\n data.availableInvestmentTypes.length > 0 &&\r\n data.availableInvestmentTypes[0].id;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Capex request form\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {data && data.request && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EditRequest;\r\n","import React, { useState } from \"react\";\r\nimport DataTemplate from \"./../../components/DataTemplate.jsx\";\r\nimport { Link, useLocation } from \"react-router-dom\";\r\nimport { Box } from \"@material-ui/core\";\r\nimport RequestTemplate from \"./template\";\r\nimport { protectedResources } from \"./../../authConfig\";\r\nimport CapexDetails from \"./../../components/CapexDetails\";\r\nimport { Container, ColumnLeft, Column } from \"./../../components/Layout\";\r\nimport Text from \"../../components/Text.jsx\";\r\n\r\nconst RequestConfirm = (props) => {\r\n const [data, setData] = useState();\r\n const location = useLocation();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n See all your requests\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default RequestConfirm;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { MenuItem, Menu, Button } from \"@material-ui/core\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport AppBar from \"../../components/AppBar.jsx\";\r\nimport { downloadDataDump } from \"../../fetch.js\";\r\n\r\nconst Container = styled.div`\r\n display: flex;\r\n flex: 1;\r\n`;\r\n\r\nconst AdminTemplate = (props) => {\r\n const history = useHistory();\r\n const [reportsMenuAnchor, setReportsMenuAnchor] = React.useState(null);\r\n const [adminMenuAnchor, setAdminMenuAnchor] = React.useState(null);\r\n const reportsMenuOpen = Boolean(reportsMenuAnchor);\r\n const adminMenuOpen = Boolean(adminMenuAnchor);\r\n\r\n const showReportsSection = (section) => {\r\n setReportsMenuAnchor(null);\r\n\r\n if (!section) return;\r\n\r\n history.push(\"/report/\" + section);\r\n };\r\n const showAdminSection = (section) => {\r\n setAdminMenuAnchor(null);\r\n\r\n if (!section) return;\r\n\r\n history.push(\"/admin/\" + section);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Create approver\r\n \r\n \r\n View/edit approvers\r\n \r\n {\r\n setReportsMenuAnchor(event.currentTarget);\r\n }}\r\n >\r\n Reports\r\n \r\n {\r\n showReportsSection();\r\n }}\r\n >\r\n {\r\n showReportsSection(\"capex\");\r\n }}\r\n >\r\n Report - Capex summary\r\n \r\n {\r\n showReportsSection(\"site\");\r\n }}\r\n >\r\n Report - Site summary\r\n \r\n {\r\n showReportsSection(\"requests\");\r\n }}\r\n >\r\n Capex requests\r\n \r\n \r\n {\r\n setAdminMenuAnchor(event.currentTarget);\r\n }}\r\n >\r\n Admin\r\n \r\n {\r\n showAdminSection();\r\n }}\r\n >\r\n {\r\n showAdminSection(\"sites\");\r\n }}\r\n >\r\n Manage sites\r\n \r\n {\r\n showAdminSection(\"investmentTypes\");\r\n }}\r\n >\r\n Manage investment types\r\n \r\n {\r\n showAdminSection(\"divisions\");\r\n }}\r\n >\r\n Manage divisions\r\n \r\n {\r\n showAdminSection(\"financeTypes\");\r\n }}\r\n >\r\n Manage finance types\r\n \r\n {\r\n setAdminMenuAnchor(null);\r\n\r\n history.push(\"/texts/\");\r\n }}\r\n >\r\n Manage texts\r\n \r\n {\r\n await downloadDataDump();\r\n }}\r\n >\r\n Download data dump (Excel)\r\n \r\n \r\n \r\n \r\n {props.children}\r\n \r\n );\r\n};\r\n\r\nexport default AdminTemplate;\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABHNCSVQICAgIfAhkiAAAAVBJREFUOE+tlT9OwzAUh8kJgBMgVhZgq1QkygFAjDCRnoAy0a2MMAE3gIkVcYIuDEzABSAjG6gn4Puh9yonoqmd1NIn/5H9+fnFcrKldiVn+SlswRvcwa2UWQuvRJvwDo/Qg10TD5qKFdmJBdW3SNW9gBFsNxG79AHBhkXt8hX633CWKnbpPYtzkGgcyNX+TBVXpZaJkvyZwW5KKmZJQ/kHnVW4gmFMKuZJJfc5inhHA/PEKVLP+98p6sSNpXXiVtJZ4tbS/8QLkVbFTwzsQ+kj+H2yOmbj0se7pHcOX7qDJq84p1eqbuPpGr8ViuQAJrAGBexZrcnRkbrZxT8M6OnL4dBE3k+Weo71SL9C+Py5TC/YsaVGm0YXRTyAa1gPjn5EW1KVqJxWd5RYR9bLfwM9w+e90OhEhxlMlFj5XbYx/WbGtpnqxsVTUZhQmyyk/AIHp1xXW/Sk3wAAAABJRU5ErkJggg==\"","import React, { useState } from \"react\";\nimport styled from \"styled-components\";\nimport Table from \"@material-ui/core/Table\";\nimport { withStyles } from \"@material-ui/core/styles\";\nimport { Link } from \"react-router-dom\";\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\nimport { protectedResources } from \"../../authConfig\";\nimport {\n Box,\n TextField,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n} from \"@material-ui/core\";\nimport AdminTemplate from \"../admin/template\";\nimport DataTemplate from \"../../components/DataTemplate\";\nimport EditLinkImage from \"./../../img/edit-link.png\";\n\nconst EditLink = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst EditLinkText = styled.span`\n margin-right: 8px;\n`;\n\nconst StyledTextField = withStyles((theme) => ({\n root: {\n backgroundColor: \"#FFF\",\n marginTop: \"8px\",\n },\n}))(TextField);\n\nconst ApproverIndex = (props) => {\n const [data, setData] = useState();\n const [selectedInvestmentType, setSelectedInvestmentType] =\n React.useState(null);\n\n const [selectedSite, setSelectedSite] = React.useState(null);\n\n const approvers = data?.approvers?.filter((approver) => {\n return (\n (selectedSite === null ||\n approver.sites.length === 0 ||\n approver.sites.some((site) => site.id == selectedSite.id)) &&\n (selectedInvestmentType === null ||\n approver.investmentTypes.length === 0 ||\n approver.investmentTypes.some(\n (aType) => aType.id === selectedInvestmentType.id\n ))\n );\n });\n\n return (\n \n \n \n \n Admin\n \n \n Approvers\n \n \n {data && approvers?.length > 0 && (\n \n \n \n Site\n \n \n \n Type of investment\n \n \n \n \n option.name}\n onChange={(e, option) => {\n setSelectedSite(option);\n }}\n renderInput={(params) => (\n \n )}\n />\n \n \n option.name}\n onChange={(e, option) => {\n setSelectedInvestmentType(option);\n }}\n renderInput={(params) => (\n \n )}\n />\n \n \n \n \n \n \n \n \n Level\n \n \n Role\n \n \n \n Assigned user\n \n \n \n \n Non-budgeted\n \n \n \n \n Max anually\n \n \n \n \n Remaining non-budget\n \n \n \n \n Budgeted\n \n \n \n \n Active requests\n \n \n \n \n \n \n {data &&\n approvers.map((approver, index) => (\n \n \n \n {approver.level}\n \n \n \n \n {approver.name}\n \n \n \n \n {approver.graphUserName}\n \n \n \n \n {approver.nonBudgeted}{\" \"}\n \n \n kEUR\n \n \n \n \n {approver.maxAnually}{\" \"}\n \n \n kEUR\n \n \n \n \n {approver.remaining}{\" \"}\n \n \n kEUR\n \n \n \n \n {approver.budgeted}{\" \"}\n \n \n kEUR\n \n \n \n \n {\n approver\n .activeRequests\n .length\n }\n \n \n \n \n \n \n View/Edit\n \n \n \n \n \n \n ))}\n \n \n \n \n )}\n \n \n );\n};\n\nexport default ApproverIndex;\n","import React from \"react\";\r\nimport Template from \"./../../components/Template.jsx\";\r\nimport styled from \"styled-components\";\r\nimport ApproverTemplate from \"./template\";\r\n\r\nconst Container = styled.div`\r\n display: flex;\r\n flex: 1;\r\n flex-direction: row;\r\n`;\r\n\r\nconst Content = styled.div`\r\n display: flex;\r\n flex: 1;\r\n flex-direction: column;\r\n`;\r\n\r\nconst ApproverRequestError = (props) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ApproverRequestError;\r\n","import React, { useState } from \"react\";\nimport DataTemplate from \"../../components/DataTemplate\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n Box,\n} from \"@material-ui/core\";\nimport styled from \"styled-components\";\nimport { Link } from \"react-router-dom\";\nimport ApproverTemplate from \"./template\";\nimport Status from \"../../components/Status\";\nimport ViewLinkImage from \"./../../img/view-link.png\";\nimport formatDate from \"../../utils/formatDate\";\nimport { protectedResources } from \"../../authConfig\";\nimport { ColumnContainer } from \"../../components/Layout\";\n\nconst FlexDiv = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst ViewLink = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst ViewLinkText = styled.span`\n margin-right: 8px;\n`;\n\nconst ApproverRequests = (props) => {\n const [data, setData] = useState();\n\n const activeRequests = data?.filter((request) => {\n return request.status !== 1;\n });\n\n const approvedRequests = data?.filter((request) => {\n return request.status === 1;\n });\n\n return (\n \n \n \n \n Approver\n Capex requests\n \n {data && (\n \n {activeRequests.length > 0 && (\n \n \n \n Your active requests\n \n \n\n \n \n \n \n \n \n Date requested\n \n \n \n \n Name of project\n \n \n \n \n Request ID\n \n \n \n \n Site\n \n \n \n \n Type of investment\n \n \n \n \n Fiscal year\n \n \n \n \n Amount\n \n \n \n \n Status\n \n \n \n \n \n \n {data &&\n activeRequests.map(\n (request, index) => (\n \n \n \n {formatDate(\n request.created\n )}\n \n \n \n \n {\n request.name\n }\n \n \n \n \n {\n request.id\n }\n \n \n \n {request.site && (\n \n {\n request\n .site\n .name\n }\n \n )}\n \n \n {request.investmentType && (\n \n {\n request\n .investmentType\n .name\n }\n \n )}\n \n \n \n {\n request.fiscalYear\n }\n \n \n \n \n {\n request.amount\n }\n \n \n \n {\n \n }\n \n \n \n \n \n Respond\n \n \n \n \n \n \n )\n )}\n \n \n \n \n )}\n {approvedRequests.length > 0 && (\n \n \n Your Approved requests & Budget\n \n \n \n \n \n \n \n Date requested\n \n \n \n \n Name of project\n \n \n \n \n Request ID\n \n \n \n \n Site\n \n \n \n \n Type of investment\n \n \n \n \n Fiscal year\n \n \n \n \n Amount\n \n \n \n \n Status\n \n \n \n \n \n \n {approvedRequests.map(\n (request, index) => (\n \n \n \n {formatDate(\n request.created\n )}\n \n \n \n \n {\n request.name\n }\n \n \n \n \n {request.id}\n \n \n \n {request.site && (\n \n {\n request\n .site\n .name\n }\n \n )}\n \n \n {request.investmentType && (\n \n {\n request\n .investmentType\n .name\n }\n \n )}\n \n \n \n {\n request.fiscalYear\n }\n \n \n \n \n {\n request.amount\n }\n \n \n \n {\n \n }\n \n \n \n \n \n View\n \n \n \n \n \n \n )\n )}\n \n \n \n \n )}\n \n )}\n \n \n \n );\n};\n\nexport default ApproverRequests;\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABHNCSVQICAgIfAhkiAAAASRJREFUOE+N1c1RAkEQBeB+SwCSiWSAZKARWJZHvRDJXuBIWUagGagZYAaaAQYgj50ZZmqXne7ePVHF8k3/DhDnedm2CxIf4TWAq4en9d76CawvCwaZx/coBw9VwRGWT3bQKqhiE9ARWMf4lSwsS4mUSAegFhmOXMUSNqk5FlpAK00VrDQqgl7NTPAChYfFymkpV9LHbtseILgyh3UKmICfyeD/TOYN8WYdTPI3pnwU+TSj7EYkTc15YyoqhX+NyE1piomSrwnEfS3CjIU9H4xNDe3S+H58Xi8CtNu0ewDXw16kyPKlMRrsERo2gryL04Guhr20+5HlQ6qr59Y04OeaXV5n6uVgoRqW+qY8WvctzATzSvYj9TAXLCjlPXxuILfeX8AJdjDbPdVIT1cAAAAASUVORK5CYII=\"","import * as yup from \"yup\";\r\nimport React from \"react\";\r\nimport { Formik, Form, FieldArray } from \"formik\";\r\nimport { MuiPickersUtilsProvider } from \"@material-ui/pickers\";\r\nimport {\r\n Box,\r\n ButtonGroup,\r\n Button,\r\n FormControl,\r\n MenuItem,\r\n Select,\r\n} from \"@material-ui/core\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport styled from \"styled-components\";\r\nimport DeleteImage from \"./../../img/delete.png\";\r\nimport InfoImage from \"./../../img/info.png\";\r\nimport {\r\n CustomFastField,\r\n CurrencyField,\r\n StyledTextField,\r\n StyledMUITextField,\r\n StyledChip,\r\n SubmitButton,\r\n} from \"./../../components/Form\";\r\n\r\nconst validationSchema = yup.object({}).shape({\r\n name: yup\r\n .string()\r\n .min(2, \"Too short\")\r\n .max(100, \"Too long\")\r\n .required(\"Required\"),\r\n level: yup\r\n .number()\r\n .moreThan(0, \"Must be larger than 0\")\r\n .required(\"Required\"),\r\n budgeted: yup\r\n .number()\r\n .moreThan(-1, \"Must be 0 or more.\")\r\n .lessThan(1000000, \"Must be less than 1000000.\")\r\n .required(\"Required\"),\r\n maxAnually: yup\r\n .number()\r\n .moreThan(-1, \"Must be 0 or more.\")\r\n .lessThan(1000000, \"Must be less than 1000000.\")\r\n .required(\"Required\"),\r\n nonBudgeted: yup\r\n .number()\r\n .moreThan(-1, \"Must be 0 or more.\")\r\n .lessThan(1000000, \"Must be less than 1000000.\")\r\n .required(\"Required\"),\r\n graphUserId: yup.string().required(\"Required\"),\r\n});\r\n\r\nconst OutlinedBox = styled.div`\r\n border: 1px solid;\r\n border-color: #9e9590;\r\n -webkit-box-sizing: border-box;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n padding: 10px;\r\n display: flex;\r\n flex: 1;\r\n align-items: center;\r\n margin-top: 10px;\r\n`;\r\n\r\nconst StyledImage = styled.img`\r\n margin-right: 5px;\r\n`;\r\n\r\nconst BorderLeftDiv = styled.div`\r\n opacity: 0.2;\r\n border-left: 1px solid #707070;\r\n height: 56px;\r\n`;\r\n\r\nexport const useStyles = makeStyles((theme) => ({\r\n fieldArray: {\r\n paddingTop: \"10px\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n },\r\n chips: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n paddingLeft: \"10px\",\r\n },\r\n}));\r\n\r\nexport const useMuiSelectStyles = makeStyles(\r\n {\r\n outlined: {\r\n padding: \"10px\",\r\n paddingRight: \"10px !important\",\r\n backgroundColor: \"#FFF\",\r\n },\r\n },\r\n { name: \"MuiSelect\" }\r\n);\r\n\r\nconst ApproverForm = (props) => {\r\n const {\r\n initialValues,\r\n handleSubmit,\r\n handleDelete,\r\n enableDelete,\r\n handleDeleteConfirm,\r\n data,\r\n isEditing,\r\n } = props;\r\n const classes = useStyles();\r\n const selectClasses = useMuiSelectStyles();\r\n\r\n const { approver, availableSites, availableInvestmentTypes, graphUsers } =\r\n data;\r\n\r\n const selectedGraphUser = approver\r\n ? graphUsers.find(\r\n (aGraphUser) => aGraphUser.id === approver.graphUserId\r\n )\r\n : null;\r\n\r\n const [graphUser, setGraphUser] = React.useState(selectedGraphUser);\r\n\r\n return (\r\n \r\n {\r\n handleSubmit(values);\r\n }}\r\n >\r\n {(formik) => {\r\n const filteredSiteOptions = availableSites.filter(\r\n (aAvailableSite) =>\r\n !formik.values.sites.some(\r\n (aValueSite) =>\r\n aAvailableSite.id === aValueSite.id\r\n )\r\n );\r\n\r\n const filteredInvestmentTypeOptions =\r\n availableInvestmentTypes.filter(\r\n (aAvailableInvestmentType) =>\r\n !formik.values.investmentTypes.some(\r\n (aValueInvestmentType) =>\r\n aAvailableInvestmentType.id ===\r\n aValueInvestmentType.id\r\n )\r\n );\r\n\r\n const showChangedBudgedWarning =\r\n props.isEditing &&\r\n (formik.values.budgeted !== initialValues.budgeted ||\r\n formik.values.nonBudgeted !==\r\n initialValues.nonBudgeted ||\r\n formik.values.maxAnnually !==\r\n initialValues.maxAnnually);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Role & user\r\n \r\n \r\n \r\n \r\n Approver role name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Approver level\r\n \r\n \r\n \r\n \r\n Assigned user\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n option.displayName\r\n }\r\n onChange={(e, option) => {\r\n setGraphUser(option);\r\n\r\n formik.setFieldValue(\r\n \"graphUserId\",\r\n option !== null\r\n ? option.id\r\n : initialValues.graphUserId\r\n );\r\n }}\r\n renderInput={(params) => (\r\n \r\n )}\r\n />\r\n {formik.touched.graphUserId &&\r\n formik.errors.graphUserId && (\r\n
\r\n {\r\n formik.errors\r\n .graphUserId\r\n }\r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n Non-budgeted Limit\r\n \r\n \r\n \r\n \r\n Budgeted Limit\r\n \r\n \r\n \r\n \r\n \r\n \r\n Per request\r\n \r\n \r\n \r\n \r\n Max annually (total)\r\n \r\n \r\n \r\n \r\n \r\n Per request\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {showChangedBudgedWarning && (\r\n \r\n \r\n \r\n \r\n NOTE: Adjusting budget\r\n limits will affect\r\n budgets of previous\r\n years!\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n Areas of approval\r\n \r\n \r\n \r\n Sites\r\n \r\n \r\n \r\n {({ insert, remove, push }) => (\r\n
\r\n \r\n \"Add +\"\r\n }\r\n IconComponent={() => \"\"}\r\n variant=\"outlined\"\r\n disabled={\r\n filteredSiteOptions.length ===\r\n 0\r\n }\r\n onChange={(event) => {\r\n push(\r\n event.target.value\r\n );\r\n }}\r\n >\r\n {filteredSiteOptions.map(\r\n (aSite) => {\r\n return (\r\n \r\n {aSite.name}\r\n \r\n );\r\n }\r\n )}\r\n \r\n
\r\n {formik.values.sites\r\n .length > 0 &&\r\n formik.values.sites.map(\r\n (site, index) => (\r\n {\r\n remove(\r\n index\r\n );\r\n }}\r\n />\r\n )\r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n {formik.values.sites.length === 0 && (\r\n \r\n \r\n \r\n \r\n NOTE: All sites selected\r\n \r\n \r\n
\r\n )}\r\n \r\n \r\n \r\n Type of investments\r\n \r\n \r\n \r\n \r\n {({ insert, remove, push }) => (\r\n
\r\n \r\n \"Add +\"\r\n }\r\n IconComponent={() => \"\"}\r\n variant=\"outlined\"\r\n disabled={\r\n filteredInvestmentTypeOptions.length ===\r\n 0\r\n }\r\n onChange={(event) => {\r\n push(\r\n event.target.value\r\n );\r\n }}\r\n >\r\n {filteredInvestmentTypeOptions.map(\r\n (aInvestmentType) => {\r\n return (\r\n \r\n {\r\n aInvestmentType.name\r\n }\r\n \r\n );\r\n }\r\n )}\r\n \r\n
\r\n {formik.values\r\n .investmentTypes\r\n .length > 0 &&\r\n formik.values.investmentTypes.map(\r\n (\r\n investmentType,\r\n index\r\n ) => (\r\n {\r\n remove(\r\n index\r\n );\r\n }}\r\n />\r\n )\r\n )}\r\n
\r\n
\r\n )}\r\n \r\n {formik.values.investmentTypes.length ===\r\n 0 && (\r\n \r\n \r\n \r\n \r\n NOTE: All types of\r\n investment selected\r\n \r\n \r\n
\r\n )}\r\n \r\n \r\n {isEditing ? (\r\n \r\n \r\n \r\n Save changes\r\n \r\n \r\n {enableDelete ? (\r\n {\r\n handleDeleteConfirm(\r\n formik.values.id\r\n );\r\n }}\r\n >\r\n \r\n Confirm delete\r\n \r\n \r\n \r\n ) : (\r\n {\r\n handleDelete(\r\n formik.values.id\r\n );\r\n }}\r\n >\r\n \r\n Delete approver\r\n \r\n \r\n \r\n )}\r\n \r\n ) : (\r\n \r\n \r\n \r\n Create approver\r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n );\r\n }}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ApproverForm;\r\n","import React from \"react\";\r\nimport { Box } from \"@material-ui/core\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport ApproverForm from \"./form\";\r\nimport DataTemplate from \"./../../components/DataTemplate.jsx\";\r\nimport AdminTemplate from \"./../admin/template\";\r\nimport { protectedResources } from \"./../../authConfig\";\r\nimport { capexApiPost } from \"../../fetch\";\r\nimport { Container, ColumnLeft, Column } from \"./../../components/Layout\";\r\nimport Text from \"../../components/Text\";\r\n\r\nconst ApproverCreate = (props) => {\r\n const [data, setData] = React.useState();\r\n const [isSubmitting, setIsSubmitting] = React.useState(false);\r\n const history = useHistory();\r\n\r\n const handleSubmit = async (values) => {\r\n const form = { ...values };\r\n setIsSubmitting(true);\r\n\r\n form.siteIDs = values.sites.map((aSite) => aSite.id);\r\n form.investmentTypeIDs = values.investmentTypes.map(\r\n (aType) => aType.id\r\n );\r\n\r\n const json = JSON.stringify(form);\r\n\r\n await capexApiPost(\r\n protectedResources.apiCapex.endpoint + \"/approver/create/\",\r\n json\r\n );\r\n\r\n history.push(\"/approver\");\r\n };\r\n\r\n const initialValues = {\r\n graphUserId: \"\",\r\n budgeted: 0,\r\n investmentTypes: [],\r\n level: 1,\r\n maxAnually: 0,\r\n name: \"\",\r\n nonBudgeted: 0,\r\n sites: [],\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Admin\r\n \r\n \r\n Create Approver\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ApproverCreate;\r\n","import React, { useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { Box } from \"@material-ui/core\";\r\nimport { Link } from \"react-router-dom\";\r\nimport DataTemplate from \"../../components/DataTemplate.jsx\";\r\nimport AdminTemplate from \"../admin/template\";\r\nimport ApproverForm from \"./form\";\r\nimport { useLocation, useHistory } from \"react-router-dom\";\r\nimport { protectedResources } from \"../../authConfig\";\r\nimport { capexApiGet, capexApiPost, capexApiDelete } from \"../../fetch\";\r\nimport { Container, ColumnLeft, Column } from \"./../../components/Layout\";\r\nimport Text from \"../../components/Text.jsx\";\r\n\r\nconst HGap = styled.div`\r\n width: 50px;\r\n`;\r\n\r\nconst VGap = styled.div`\r\n height: 40px;\r\n`;\r\n\r\nconst Content = styled.div`\r\n display: flex;\r\n flex: 1;\r\n flex-direction: column;\r\n`;\r\n\r\nconst CenterBox = (props) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst LeftBox = (props) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst ApproverEdit = (props) => {\r\n const [data, setData] = useState();\r\n const [enableDelete, setEnableDelete] = React.useState(false);\r\n const [isSubmitting, setIsSubmitting] = React.useState(false);\r\n const dataTemplateRef = React.useRef();\r\n const location = useLocation();\r\n const history = useHistory();\r\n\r\n const handleSubmit = async (values) => {\r\n const form = { ...values };\r\n setIsSubmitting(true);\r\n\r\n form.siteIDs = values.sites.map((aSite) => aSite.id);\r\n form.investmentTypeIDs = values.investmentTypes.map(\r\n (aType) => aType.id\r\n );\r\n\r\n const json = JSON.stringify(form);\r\n\r\n await capexApiPost(\r\n protectedResources.apiCapex.endpoint + \"/approver/edit/\",\r\n json\r\n );\r\n\r\n setIsSubmitting(false);\r\n dataTemplateRef.current.loadData();\r\n };\r\n\r\n const handleDelete = async (id) => {\r\n const result = await capexApiGet(\r\n protectedResources.apiCapex.endpoint + \"/approver/delete/\" + id\r\n );\r\n\r\n if (result.success) {\r\n setEnableDelete(true);\r\n }\r\n };\r\n\r\n const handleDeleteConfirm = async (id) => {\r\n await capexApiDelete(\r\n protectedResources.apiCapex.endpoint +\r\n \"/approver/deleteConfirmed/\" +\r\n id\r\n );\r\n\r\n history.push(\"/approver\");\r\n };\r\n\r\n const activeRequests =\r\n data &&\r\n data.requests.filter((request) => {\r\n return request.status !== 1;\r\n });\r\n\r\n const approvedRequests =\r\n data &&\r\n data.requests.filter((request) => {\r\n return request.status === 1;\r\n });\r\n\r\n const initialValues =\r\n data && data.approver\r\n ? { ...data.approver }\r\n : {\r\n graphUserId: \"\",\r\n budgeted: 0,\r\n investmentTypes: [],\r\n level: 1,\r\n maxAnually: 0,\r\n name: \"\",\r\n nonBudgeted: 0,\r\n sites: [],\r\n };\r\n\r\n const totalBudgeted =\r\n data &&\r\n approvedRequests.reduce((previousValue, request) => {\r\n if (request.budgeted) {\r\n return previousValue + request.amount;\r\n } else {\r\n return previousValue;\r\n }\r\n }, 0);\r\n\r\n const totalNonBudgeted =\r\n data &&\r\n approvedRequests.reduce((previousValue, request) => {\r\n if (!request.budgeted) {\r\n return previousValue + request.amount;\r\n } else {\r\n return previousValue;\r\n }\r\n }, 0);\r\n\r\n const remainingNonBudgeted =\r\n data && data.approver.maxAnually - totalNonBudgeted;\r\n\r\n const date = new Date();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Admin\r\n \r\n \r\n \r\n Edit/review Approver\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Current status {date.getFullYear()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Active requests\r\n \r\n \r\n \r\n Budgeted\r\n \r\n \r\n \r\n Non-budgeted\r\n \r\n \r\n \r\n {data &&\r\n activeRequests.map((request) => (\r\n \r\n \r\n \r\n \r\n {request.name}\r\n \r\n \r\n \r\n \r\n \r\n {request.requester?.displayName}\r\n \r\n \r\n \r\n \r\n {request.budgeted ? (\r\n \r\n \r\n {request.amount}\r\n \r\n \r\n {\" \"}\r\n kEUR\r\n \r\n \r\n ) : (\r\n \"-\"\r\n )}\r\n \r\n \r\n \r\n \r\n {!request.budgeted ? (\r\n \r\n \r\n {request.amount}\r\n \r\n \r\n {\" \"}\r\n kEUR\r\n \r\n \r\n ) : (\r\n \"-\"\r\n )}\r\n \r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n \r\n \r\n {data && approvedRequests.length > 0 && (\r\n \r\n \r\n \r\n Approved requests & Budget\r\n \r\n \r\n \r\n Budgeted\r\n \r\n \r\n \r\n Non-budgeted\r\n \r\n \r\n \r\n )}\r\n \r\n {data &&\r\n approvedRequests.map((request) => (\r\n \r\n \r\n \r\n \r\n {request.name}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n request.requester?.displayName\r\n }\r\n \r\n \r\n \r\n \r\n {request.budgeted ? (\r\n \r\n \r\n {request.amount}\r\n \r\n \r\n {\" \"}\r\n kEUR\r\n \r\n \r\n ) : (\r\n \r\n -\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {!request.budgeted ? (\r\n \r\n \r\n {request.amount}\r\n \r\n \r\n {\" \"}\r\n kEUR\r\n \r\n \r\n ) : (\r\n \r\n -\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n Total\r\n \r\n \r\n {data && (\r\n \r\n \r\n {totalBudgeted}\r\n \r\n  kEUR\r\n \r\n )}\r\n \r\n \r\n {data && (\r\n \r\n \r\n {totalNonBudgeted}\r\n \r\n  kEUR\r\n \r\n )}\r\n \r\n \r\n \r\n Remaining non-budget\r\n \r\n \r\n \r\n
\r\n -\r\n
\r\n
\r\n \r\n \r\n \r\n {data && remainingNonBudgeted}\r\n \r\n \r\n {\" \"}\r\n kEUR\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ApproverEdit;\r\n","import React from \"react\";\r\nimport AdminTemplate from \"./template\";\r\n\r\nconst AdminIndex = (props) => {\r\n return ;\r\n};\r\n\r\nexport default AdminIndex;\r\n","import * as yup from \"yup\";\r\nimport React from \"react\";\r\nimport { Formik, Form, FieldArray } from \"formik\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport { ButtonGroup, Button, FormControl, Box } from \"@material-ui/core\";\r\nimport { capexApiPost, capexApiDelete, capexApiPut } from \"../../fetch\";\r\n\r\nconst validationSchema = yup.object({});\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n fieldArray: {\r\n paddingTop: \"10px\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n },\r\n field: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n },\r\n}));\r\n\r\nconst StyledButton = withStyles((theme) => ({\r\n root: {\r\n textTransform: \"unset !important\",\r\n height: \"60px\",\r\n backgroundColor: \"#191919\",\r\n color: \"#FFF\",\r\n },\r\n}))(Button);\r\n\r\nconst AddButton = withStyles((theme) => ({\r\n root: {\r\n textTransform: \"unset !important\",\r\n height: \"60px\",\r\n },\r\n}))(Button);\r\n\r\nconst FormComponent = (props) => {\r\n const { data, initialValues, url, onHandleSubmit } = props;\r\n const classes = useStyles();\r\n\r\n const handleSubmit = async (values) => {\r\n const { items } = values;\r\n const removed = data.filter(\r\n (aData) => !items.some((aItem) => aItem.id == aData.id)\r\n );\r\n\r\n const added = items.filter(\r\n (aItem) => !data.some((aData) => aData.id == aItem.id)\r\n );\r\n\r\n const updated = items.filter(\r\n (aItem) =>\r\n !data.some(\r\n (aData) => JSON.stringify(aItem) === JSON.stringify(aData)\r\n ) && !added.some((aData) => aData.id == aItem.id)\r\n );\r\n\r\n await Promise.all(\r\n added.map((item) => {\r\n const json = JSON.stringify(item);\r\n return new Promise(async (resolve) => {\r\n const result = await capexApiPost(url, json);\r\n resolve(result);\r\n });\r\n })\r\n );\r\n\r\n await Promise.all(\r\n removed.map((item) => {\r\n const deletedItem = { ...item, deleted: true };\r\n const json = JSON.stringify(deletedItem);\r\n return new Promise(async (resolve) => {\r\n const result = await capexApiPost(url + \"/edit\", json);\r\n resolve(result);\r\n });\r\n })\r\n );\r\n\r\n await Promise.all(\r\n updated.map((item) => {\r\n return new Promise(async (resolve) => {\r\n const json = JSON.stringify(item);\r\n const result = await capexApiPost(url + \"/edit\", json);\r\n resolve(result);\r\n });\r\n })\r\n );\r\n\r\n onHandleSubmit();\r\n };\r\n\r\n return (\r\n {\r\n handleSubmit(values);\r\n }}\r\n >\r\n {({ values }) => {\r\n return (\r\n
\r\n \r\n \r\n {\r\n return (\r\n
\r\n {values.items.length > 0 &&\r\n values.items.map(\r\n (item, index) =>\r\n props.makeField(\r\n item,\r\n index,\r\n fieldHelpers\r\n )\r\n )}\r\n
\r\n {\r\n fieldHelpers.push(\r\n props.makeNewItem()\r\n );\r\n }}\r\n >\r\n \r\n Add item\r\n \r\n \r\n
\r\n );\r\n }}\r\n />\r\n
\r\n \r\n \r\n Submit\r\n \r\n \r\n
\r\n
\r\n );\r\n }}\r\n \r\n );\r\n};\r\n\r\nexport default FormComponent;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { Field } from \"formik\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport { protectedResources } from \"../../authConfig\";\r\nimport DataTemplate from \"../../components/DataTemplate\";\r\nimport AdminTemplate from \"./template\";\r\nimport DeleteImage from \"./../../img/delete.png\";\r\nimport { Box, Link } from \"@material-ui/core\";\r\nimport Form from \"./form.jsx\";\r\nimport { Container, ColumnLeft, Column } from \"./../../components/Layout\";\r\n\r\nconst StyledLabel = styled.label`\r\n padding-right: 5px;\r\n height: 10px;\r\n`;\r\n\r\nconst StyledBox = withStyles((theme) => ({\r\n root: {\r\n margin: \"4px\",\r\n display: \"flex\",\r\n width: \"100%\",\r\n alignItems: \"center\",\r\n },\r\n}))(Box);\r\n\r\nconst RemoveButton = withStyles((theme) => ({\r\n root: {\r\n marginLeft: \"10px\",\r\n },\r\n}))(Link);\r\n\r\nconst AdminDivisions = (props) => {\r\n const [data, setData] = React.useState();\r\n const url = protectedResources.apiCapex.endpoint + \"/division\";\r\n const initialValues = data && { items: data };\r\n const dataTemplateRef = React.useRef();\r\n\r\n const onHandleSubmit = async () => {\r\n dataTemplateRef.current.loadData();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Admin\r\n \r\n \r\n Divisions\r\n \r\n \r\n \r\n {data && (\r\n {\r\n onHandleSubmit();\r\n }}\r\n makeNewItem={() => {\r\n return { name: \"\" };\r\n }}\r\n makeField={(item, index, fieldHelpers) => {\r\n return (\r\n \r\n \r\n Name\r\n \r\n \r\n {\r\n fieldHelpers.remove(index);\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n }}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AdminDivisions;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { Field } from \"formik\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport { protectedResources } from \"../../authConfig\";\r\nimport DataTemplate from \"../../components/DataTemplate\";\r\nimport AdminTemplate from \"./template\";\r\nimport DeleteImage from \"./../../img/delete.png\";\r\nimport { Box, Link } from \"@material-ui/core\";\r\nimport Form from \"./form.jsx\";\r\nimport { Container, ColumnLeft, Column } from \"./../../components/Layout\";\r\n\r\nconst StyledLabel = styled.label`\r\n padding-right: 5px;\r\n height: 10px;\r\n`;\r\n\r\nconst StyledBox = withStyles((theme) => ({\r\n root: {\r\n margin: \"4px\",\r\n display: \"flex\",\r\n width: \"100%\",\r\n alignItems: \"center\",\r\n },\r\n}))(Box);\r\n\r\nconst RemoveButton = withStyles((theme) => ({\r\n root: {\r\n marginLeft: \"10px\",\r\n },\r\n}))(Link);\r\n\r\nconst AdminFinanceTypes = (props) => {\r\n const [data, setData] = React.useState();\r\n const url = protectedResources.apiCapex.endpoint + \"/financeType\";\r\n const initialValues = data && { items: data };\r\n const dataTemplateRef = React.useRef();\r\n\r\n const onHandleSubmit = async () => {\r\n dataTemplateRef.current.loadData();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Admin\r\n \r\n \r\n Finance types\r\n \r\n \r\n \r\n {data && (\r\n {\r\n onHandleSubmit();\r\n }}\r\n makeNewItem={() => {\r\n return { name: \"\" };\r\n }}\r\n makeField={(item, index, fieldHelpers) => {\r\n return (\r\n \r\n \r\n Name\r\n \r\n \r\n {\r\n fieldHelpers.remove(index);\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n }}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AdminFinanceTypes;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { Field } from \"formik\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport { protectedResources } from \"../../authConfig\";\r\nimport DataTemplate from \"../../components/DataTemplate\";\r\nimport AdminTemplate from \"./template\";\r\nimport DeleteImage from \"./../../img/delete.png\";\r\nimport { Box, Link } from \"@material-ui/core\";\r\nimport Form from \"./form.jsx\";\r\nimport { Container, ColumnLeft, Column } from \"./../../components/Layout\";\r\n\r\nconst StyledLabel = styled.label`\r\n padding-right: 5px;\r\n height: 10px;\r\n`;\r\n\r\nconst StyledBox = withStyles((theme) => ({\r\n root: {\r\n margin: \"4px\",\r\n display: \"flex\",\r\n width: \"100%\",\r\n alignItems: \"center\",\r\n },\r\n}))(Box);\r\n\r\nconst RemoveButton = withStyles((theme) => ({\r\n root: {\r\n marginLeft: \"10px\",\r\n },\r\n}))(Link);\r\n\r\nconst AdminInvestmentTypes = (props) => {\r\n const [data, setData] = React.useState();\r\n const url = protectedResources.apiCapex.endpoint + \"/investmentType\";\r\n const initialValues = data && { items: data };\r\n const dataTemplateRef = React.useRef();\r\n\r\n const onHandleSubmit = async () => {\r\n dataTemplateRef.current.loadData();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Admin\r\n \r\n \r\n Investment types\r\n \r\n \r\n \r\n {data && (\r\n {\r\n onHandleSubmit();\r\n }}\r\n makeNewItem={() => {\r\n return { name: \"\" };\r\n }}\r\n makeField={(item, index, fieldHelpers) => {\r\n return (\r\n \r\n \r\n Name\r\n \r\n \r\n {\r\n fieldHelpers.remove(index);\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n }}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AdminInvestmentTypes;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { Field } from \"formik\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport { protectedResources } from \"../../authConfig\";\r\nimport DataTemplate from \"../../components/DataTemplate\";\r\nimport AdminTemplate from \"./template\";\r\nimport DeleteImage from \"./../../img/delete.png\";\r\nimport { Box, Link } from \"@material-ui/core\";\r\nimport Form from \"./form.jsx\";\r\nimport { Container, ColumnLeft, Column } from \"./../../components/Layout\";\r\n\r\nconst StyledLabel = styled.label`\r\n padding-right: 5px;\r\n height: 10px;\r\n`;\r\n\r\nconst StyledBox = withStyles((theme) => ({\r\n root: {\r\n margin: \"4px\",\r\n display: \"flex\",\r\n width: \"100%\",\r\n alignItems: \"center\",\r\n },\r\n}))(Box);\r\n\r\nconst RemoveButton = withStyles((theme) => ({\r\n root: {\r\n marginLeft: \"10px\",\r\n },\r\n}))(Link);\r\n\r\nconst AdminSites = (props) => {\r\n const [data, setData] = React.useState();\r\n const url = protectedResources.apiCapex.endpoint + \"/site\";\r\n const initialValues = data && { items: data };\r\n const dataTemplateRef = React.useRef();\r\n\r\n const onHandleSubmit = async () => {\r\n dataTemplateRef.current.loadData();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Admin\r\n \r\n \r\n Sites\r\n \r\n \r\n \r\n {data && (\r\n {\r\n onHandleSubmit();\r\n }}\r\n makeNewItem={() => {\r\n return { name: \"\" };\r\n }}\r\n makeField={(item, index, fieldHelpers) => {\r\n return (\r\n \r\n \r\n Name\r\n \r\n \r\n {\r\n fieldHelpers.remove(index);\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n }}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AdminSites;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n Box,\r\n} from \"@material-ui/core\";\r\nimport { protectedResources } from \"../../authConfig\";\r\nimport DataTemplate from \"../../components/DataTemplate\";\r\nimport AdminTemplate from \"./template\";\r\nimport EditLinkImage from \"./../../img/edit-link.png\";\r\nimport { ColumnContainer } from \"../../components/Layout\";\r\n\r\nconst EditLink = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n`;\r\n\r\nconst EditLinkText = styled.span`\r\n margin-right: 8px;\r\n`;\r\n\r\nconst AdminTexts = (props) => {\r\n const [data, setData] = React.useState();\r\n const url = protectedResources.apiCapex.endpoint + \"/text\";\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Admin\r\n \r\n \r\n Manage texts\r\n \r\n \r\n \r\n \r\n \r\n \r\n Key\r\n \r\n \r\n Text\r\n \r\n \r\n \r\n \r\n \r\n {data &&\r\n data.map((text, index) => (\r\n \r\n \r\n \r\n {text.key}\r\n \r\n \r\n \r\n \r\n {'\"'}\r\n {text.value}\r\n {'\"'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Edit\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AdminTexts;\r\n","import React, { useState } from \"react\";\r\nimport { useLocation, useHistory } from \"react-router-dom\";\r\nimport { Box, TextField, ButtonGroup, Button } from \"@material-ui/core\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport { protectedResources } from \"./../../authConfig\";\r\nimport AdminTemplate from \"./template\";\r\nimport { capexApiPost } from \"../../fetch\";\r\nimport { SubmitButton } from \"./../../components/Form\";\r\nimport DataTemplate from \"./../../components/DataTemplate.jsx\";\r\nimport { Container, ColumnLeft, Column } from \"./../../components/Layout\";\r\n\r\nconst styles = (theme) => ({\r\n outlinedInput: {\r\n border: \"1px solid\",\r\n borderColor: \"#A4AEB7\",\r\n borderRadius: 0,\r\n backgroundColor: \"#FFF !important\",\r\n padding: \"18px 26px 28px 26px\",\r\n },\r\n});\r\n\r\nconst TextDetails = (props) => {\r\n const { classes } = props;\r\n const [data, setData] = useState();\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n const [textInput, setTextInput] = React.useState(data && data.value);\r\n const location = useLocation();\r\n const history = useHistory();\r\n\r\n const handleSubmit = async () => {\r\n setIsSubmitting(true);\r\n\r\n const updatedText = { ...data };\r\n\r\n updatedText.value = textInput;\r\n\r\n const json = JSON.stringify(updatedText);\r\n\r\n await capexApiPost(\r\n protectedResources.apiCapex.endpoint + \"/text/edit/\",\r\n json\r\n );\r\n\r\n setIsSubmitting(false);\r\n };\r\n\r\n return (\r\n \r\n {\r\n setData(aData);\r\n setTextInput(aData.value);\r\n }}\r\n >\r\n \r\n \r\n {data && (\r\n \r\n \r\n \r\n Admin\r\n \r\n \r\n \r\n \r\n Manage text\r\n \r\n \r\n \r\n Editing\r\n \r\n \r\n \r\n {data.key}\r\n \r\n \r\n \r\n \r\n {data.description}\r\n \r\n \r\n \r\n Text\r\n \r\n \r\n {\r\n setTextInput(\r\n event.currentTarget.value\r\n );\r\n }}\r\n InputProps={{\r\n classes: {\r\n root: classes.outlinedInput,\r\n },\r\n }}\r\n />\r\n \r\n \r\n \r\n {\r\n handleSubmit();\r\n }}\r\n >\r\n \r\n Save changes\r\n \r\n \r\n {\r\n history.push(\"/texts/\");\r\n }}\r\n >\r\n \r\n Cancel\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withStyles(styles)(TextDetails);\r\n","import React from \"react\";\r\nimport DataTemplate from \"./../../components/DataTemplate.jsx\";\r\nimport styled from \"styled-components\";\r\nimport AdminTemplate from \"./../admin/template\";\r\nimport { protectedResources } from \"./../../authConfig\";\r\n\r\nconst Container = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n margin-top: 56px;\r\n`;\r\n\r\nconst Export = (props) => {\r\n const [data, setData] = React.useState();\r\n const url = protectedResources.apiCapex.endpoint + \"/admin/export\";\r\n\r\n return (\r\n \r\n \r\n \r\n Report - Capex summary\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Export;\r\n","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport MuiLink from \"@material-ui/core/Link\";\r\nimport ExportImage from \"./../img/export-link.png\";\r\n\r\nconst Link = withStyles({\r\n root: {\r\n \"&[disabled]\": {\r\n color: \"grey\",\r\n cursor: \"default\",\r\n \"&:hover\": {\r\n textDecoration: \"none\",\r\n },\r\n },\r\n },\r\n})(MuiLink);\r\n\r\nconst ExportLink = ({ disabled, onClick = () => {} }) => {\r\n return (\r\n {\r\n onClick();\r\n }}\r\n >\r\n \r\n Export (Excel)\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ExportLink;\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAABHNCSVQICAgIfAhkiAAAAWlJREFUOE/llDEyBEEUhndKSBVOYDYWIBeMEyAQW4GcExgnIBdYgRiR0AQOQJUDrBMQECq+T/VMzWypmd6tzbyqr6Zruufvv997PUmv18vgBpagK0Ys2IWntoUJk+/g4tsuReZ3YAW22oQV/YZTyCNEPU3RJTypqPvWhfvhpA0/04gqkMFDSIPO/5loGgp7NMucWqw1eJ6FqH16BjotY8TgILTa77tJqp+z/iS4G/L0Vq3DILiuej1WVIde5asgotNL8Mp6I91kH7xpRayoR/RjnRkZjPepzhehHyNqUd7gGM5bRHPmTM9yjOi4K4Vf4AIOYTVsWK2LEa07NXemYg4W4AO+IAV7VqeJoubC39lf/8i7cGSFTMEGmNdHmIdP2Azf+r0GUkXLXcoi8KqKISMpq+/YntyDa9iG+7CmUf26SNs4Z9Lj6Ujxep9qqNGnsaKuy4Kg6SrjlcEAivKFx58mzJ3udGv/NuIHdyNwZh7BsucAAAAASUVORK5CYII=\"","import React from \"react\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\r\nimport AdminTemplate from \"./../admin/template\";\r\nimport DataTemplate from \"./../../components/DataTemplate.jsx\";\r\nimport ExportLink from \"./../../components/ExportLink\";\r\nimport styled from \"styled-components\";\r\nimport { protectedResources } from \"./../../authConfig\";\r\nimport RemainingBudget from \"../../components/RemainingBudget.jsx\";\r\nimport { capexApiGet, downloadSummaryReport } from \"../../fetch\";\r\nimport {\r\n StyledMUITextField,\r\n StyledBox,\r\n SubmitButton,\r\n} from \"./../../components/Form\";\r\nimport {\r\n Box,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n ButtonGroup,\r\n} from \"@material-ui/core\";\r\nimport { ColumnContainer } from \"../../components/Layout.jsx\";\r\n\r\nconst Section = styled.div`\r\n border: 1px solid;\r\n border-color: #a4aeb7;\r\n -webkit-box-sizing: border-box;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n padding: 20px;\r\n`;\r\n\r\nconst CapexSummary = (props) => {\r\n const [data, setData] = React.useState();\r\n const [options, setOptions] = React.useState();\r\n const [isFetching, setIsFetching] = React.useState(false);\r\n const [isExporting, setIsExporting] = React.useState(false);\r\n const capexUrl = protectedResources.apiCapex.endpoint + \"/report/capex\";\r\n const exportUrl =\r\n protectedResources.apiCapex.endpoint + \"/report/exportSummary\";\r\n const capexOptionsUrl =\r\n protectedResources.apiCapex.endpoint + \"/report/capexOptions\";\r\n const [budgetedOptions, setBudgetedOptions] = React.useState([]);\r\n const [budgetedOption, setBudgetedOption] = React.useState(0);\r\n const currentYear = new Date().getFullYear();\r\n const [groupByOptions, setGroupByOptions] = React.useState([]);\r\n const [groupBy, setGroupBy] = React.useState(null);\r\n const [fiscalYearOptions, setFiscalYearOptions] = React.useState([]);\r\n const [fiscalYear, setFiscalYear] = React.useState(currentYear);\r\n\r\n const onHandleSubmit = async () => {\r\n setData(null);\r\n setIsFetching(true);\r\n\r\n const response = await capexApiGet(\r\n capexUrl + \"/\" + groupBy + \"/\" + fiscalYear + \"/\" + budgetedOption\r\n );\r\n\r\n setData(response);\r\n setIsFetching(false);\r\n };\r\n\r\n const exportSummaryReport = async () => {\r\n setIsExporting(true);\r\n\r\n const url =\r\n exportUrl + \"/\" + groupBy + \"/\" + fiscalYear + \"/\" + budgetedOption;\r\n\r\n await downloadSummaryReport(url);\r\n\r\n setIsExporting(false);\r\n };\r\n\r\n let budgetedOptionText = \"\";\r\n\r\n switch (budgetedOption) {\r\n case 0:\r\n budgetedOptionText = \"Budgeted & Non-budgeted\";\r\n break;\r\n case 1:\r\n budgetedOptionText = \"Budgeted\";\r\n break;\r\n case 2:\r\n budgetedOptionText = \"Non-budgeted\";\r\n break;\r\n }\r\n\r\n return (\r\n \r\n {\r\n setGroupByOptions(result.groupByOptions);\r\n setGroupBy(result.groupByOptions[0]);\r\n setFiscalYearOptions(result.fiscalYearOptions);\r\n setBudgetedOptions(result.budgetedOptions);\r\n setOptions(result);\r\n }}\r\n >\r\n \r\n \r\n Admin\r\n \r\n \r\n \r\n Report - Capex summary\r\n \r\n \r\n \r\n {\r\n exportSummaryReport();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Report settings\r\n \r\n \r\n \r\n
\r\n \r\n \r\n Group by\r\n \r\n \r\n \r\n Fiscal year\r\n \r\n \r\n \r\n \r\n Budgeted requests\r\n \r\n \r\n \r\n \r\n option}\r\n onChange={(e, option) => {\r\n setGroupBy(option);\r\n }}\r\n renderInput={(params) => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n option === -1\r\n ? \"All\"\r\n : option.toString()\r\n }\r\n onChange={(e, option) => {\r\n setFiscalYear(option);\r\n }}\r\n renderInput={(params) => (\r\n \r\n )}\r\n />\r\n \r\n \r\n {\r\n switch (option) {\r\n case 0:\r\n return \"All\";\r\n case 1:\r\n return \"Budgeted\";\r\n case 2:\r\n return \"Non-budgeted\";\r\n }\r\n }}\r\n onChange={(e, option) => {\r\n setBudgetedOption(option);\r\n }}\r\n renderInput={(params) => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n {\r\n onHandleSubmit();\r\n }}\r\n style={{\r\n backgroundColor: \"#393939\",\r\n color: \"#FFF\",\r\n }}\r\n >\r\n {isFetching ? (\r\n \r\n ) : (\r\n \r\n Generate report\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {data && (\r\n \r\n \r\n \r\n \r\n {fiscalYear === -1\r\n ? \"All fiscal years\"\r\n : fiscalYear}{\" \"}\r\n | {budgetedOptionText}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n By {groupBy}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n \r\n \r\n Requested amount\r\n \r\n \r\n \r\n \r\n (# of requests)\r\n \r\n \r\n \r\n \r\n Pending\r\n \r\n \r\n \r\n \r\n Declined\r\n \r\n \r\n \r\n \r\n Approved\r\n \r\n \r\n \r\n \r\n Remaining non-budgeted\r\n \r\n \r\n \r\n \r\n \r\n {data.map(\r\n (\r\n {\r\n name,\r\n approvedAmount,\r\n approvedCount,\r\n declinedAmount,\r\n declinedCount,\r\n pendingAmount,\r\n pendingCount,\r\n remainingNonBudgeted,\r\n requestCount,\r\n totalAmount,\r\n },\r\n index\r\n ) => (\r\n \r\n \r\n \r\n {name}\r\n \r\n \r\n \r\n \r\n {totalAmount}{\" \"}\r\n \r\n \r\n kEUR\r\n \r\n \r\n \r\n \r\n ({requestCount})\r\n \r\n \r\n \r\n \r\n {pendingAmount}{\" \"}\r\n \r\n \r\n kEUR\r\n \r\n \r\n ({pendingCount})\r\n \r\n \r\n \r\n \r\n {declinedAmount}{\" \"}\r\n \r\n \r\n kEUR\r\n \r\n \r\n ({declinedCount})\r\n \r\n \r\n \r\n \r\n {approvedAmount}{\" \"}\r\n \r\n \r\n kEUR\r\n \r\n \r\n ({approvedCount})\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CapexSummary;\r\n","import React, { Fragment } from \"react\";\nimport { withStyles } from \"@material-ui/core/styles\";\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\nimport styled from \"styled-components\";\nimport { Link } from \"react-router-dom\";\nimport DataTemplate from \"./../../components/DataTemplate.jsx\";\nimport AdminTemplate from \"./../admin/template\";\nimport { protectedResources } from \"./../../authConfig\";\nimport Status from \"./../../components/Status\";\nimport ViewLinkImage from \"./../../img/view-link.png\";\nimport formatDate from \"./../../utils/formatDate\";\nimport { StyledMUITextField } from \"./../../components/Form\";\nimport {\n Box,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n} from \"@material-ui/core\";\nimport { ColumnContainer } from \"../../components/Layout.jsx\";\n\nconst styles = (theme) => ({\n table: {\n minWidth: 800,\n },\n firstCell: {\n minWidth: \"250px\",\n },\n});\n\nconst ViewLink = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst ViewLinkText = styled.span`\n margin-right: 8px;\n`;\n\nconst Requests = (props) => {\n const { classes } = props;\n const [data, setData] = React.useState();\n const url = protectedResources.apiCapex.endpoint + \"/report/request\";\n const [investmentType, setInvestmentType] = React.useState(null);\n const [investmentTypeOptions, setinvestmentTypeOptions] = React.useState(\n []\n );\n const [siteOptions, setSiteOptions] = React.useState([]);\n const [site, setSite] = React.useState(null);\n const [fiscalYearOptions, setFiscalYearOptions] = React.useState([]);\n const [fiscalYear, setFiscalYear] = React.useState(null);\n\n const filteredRequests = data\n ? data.requests.filter((request) => {\n return (\n (site === null || request.site.id == site.id) &&\n (investmentType === null ||\n request.investmentType.id == investmentType.id) &&\n (fiscalYear === null || request.fiscalYear === fiscalYear)\n );\n })\n : [];\n\n return (\n \n {\n setSiteOptions(result.siteOptions);\n setFiscalYearOptions(result.fiscalYearOptions);\n setinvestmentTypeOptions(result.investmentTypeOptions);\n setData(result);\n }}\n >\n \n \n Admin\n \n \n Capex requests\n \n \n \n \n \n Site\n \n \n \n Investment types\n \n \n \n Fiscal year\n \n \n\n \n option.name}\n onChange={(e, option) => {\n setSite(option);\n }}\n renderInput={(params) => (\n \n )}\n />\n \n \n option.name}\n onChange={(e, option) => {\n setInvestmentType(option);\n }}\n renderInput={(params) => (\n \n )}\n />\n \n \n \n option.toString()\n }\n onChange={(e, option) => {\n setFiscalYear(option);\n }}\n renderInput={(params) => (\n \n )}\n />\n \n \n \n {data && (\n \n \n \n \n \n \n \n Date created\n \n \n \n \n Name of project\n \n \n \n \n Request ID\n \n \n \n \n Requested by\n \n \n \n \n Site\n \n \n \n \n Type of investment\n \n \n \n \n Fiscal year\n \n \n \n \n Amount\n \n \n \n \n Finance options\n \n \n \n \n Status\n \n \n \n \n \n \n {data &&\n filteredRequests.map(\n (request, index) => (\n \n \n \n {formatDate(\n request.created\n )}\n \n \n \n \n {request.name}\n \n \n \n \n {request.id}\n \n \n \n {request.requester ? (\n \n {\n request\n .requester\n .displayName\n }\n \n ) : (\n \n \n Requester\n account\n not\n found,\n id:\n \n
\n \n {\n request.requesterId\n }\n \n
\n )}\n
\n \n {request.site && (\n \n {\n request\n .site\n .name\n }\n \n )}\n \n \n {request.investmentType && (\n \n {\n request\n .investmentType\n .name\n }\n \n )}\n \n \n \n {\n request.fiscalYear\n }\n \n \n \n \n {request.amount}{\" \"}\n \n \n kEUR\n \n \n \n \n {request.financeType &&\n request\n .financeType\n .name}\n \n \n \n {\n \n }\n \n \n \n \n \n view\n \n \n \n \n \n \n )\n )}\n
\n \n
\n
\n )}\n
\n \n
\n );\n};\n\nexport default withStyles(styles)(Requests);\n","import React from \"react\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\r\nimport styled from \"styled-components\";\r\nimport DataTemplate from \"./../../components/DataTemplate.jsx\";\r\nimport AdminTemplate from \"./../admin/template\";\r\nimport { protectedResources } from \"./../../authConfig\";\r\nimport ExportLink from \"./../../components/ExportLink\";\r\nimport { capexApiGet, downloadSiteReport } from \"../../fetch\";\r\nimport { StyledMUITextField, SubmitButton } from \"./../../components/Form\";\r\nimport RemainingBudget from \"../../components/RemainingBudget.jsx\";\r\nimport {\r\n Box,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n ButtonGroup,\r\n} from \"@material-ui/core\";\r\nimport { ColumnContainer } from \"../../components/Layout.jsx\";\r\n\r\nconst styles = (theme) => ({\r\n table: {\r\n minWidth: 650,\r\n },\r\n firstCell: {\r\n minWidth: \"250px\",\r\n },\r\n});\r\n\r\nconst Section = styled.div`\r\n border: 1px solid;\r\n border-color: #a4aeb7;\r\n -webkit-box-sizing: border-box;\r\n -moz-box-sizing: border-box;\r\n box-sizing: border-box;\r\n padding: 20px;\r\n`;\r\n\r\nconst Site = (props) => {\r\n const { classes } = props;\r\n const [data, setData] = React.useState();\r\n const [options, setOptions] = React.useState();\r\n const [isFetching, setIsFetching] = React.useState(false);\r\n const [isExporting, setIsExporting] = React.useState(false);\r\n const siteUrl = protectedResources.apiCapex.endpoint + \"/report/site\";\r\n const exportUrl =\r\n protectedResources.apiCapex.endpoint + \"/report/exportSite\";\r\n const siteOptionsUrl =\r\n protectedResources.apiCapex.endpoint + \"/report/siteOptions\";\r\n\r\n const [budgetedOptions, setBudgetedOptions] = React.useState([]);\r\n const [budgetedOption, setBudgetedOption] = React.useState(0);\r\n const currentYear = new Date().getFullYear();\r\n const [siteOptions, setSiteOptions] = React.useState([]);\r\n const [site, setSite] = React.useState(null);\r\n const [fiscalYearOptions, setFiscalYearOptions] = React.useState([]);\r\n const [fiscalYear, setFiscalYear] = React.useState(currentYear);\r\n\r\n const onHandleSubmit = async () => {\r\n setData(null);\r\n setIsFetching(true);\r\n\r\n const response = await capexApiGet(\r\n siteUrl + \"/\" + site.id + \"/\" + fiscalYear + \"/\" + budgetedOption\r\n );\r\n\r\n setData(response);\r\n setIsFetching(false);\r\n };\r\n\r\n const exportSiteReport = async () => {\r\n setIsExporting(true);\r\n\r\n const url =\r\n exportUrl + \"/\" + site.id + \"/\" + fiscalYear + \"/\" + budgetedOption;\r\n\r\n await downloadSiteReport(url);\r\n\r\n setIsExporting(false);\r\n };\r\n\r\n let budgetedOptionText = \"\";\r\n\r\n switch (budgetedOption) {\r\n case 0:\r\n budgetedOptionText = \"Budgeted & Non-budgeted\";\r\n break;\r\n case 1:\r\n budgetedOptionText = \"Budgeted\";\r\n break;\r\n case 2:\r\n budgetedOptionText = \"Non-budgeted\";\r\n break;\r\n }\r\n\r\n return (\r\n \r\n {\r\n setSiteOptions(result.siteOptions);\r\n setSite(result.siteOptions[0]);\r\n setFiscalYearOptions(result.fiscalYearOptions);\r\n setBudgetedOptions(result.budgetedOptions);\r\n setOptions(result);\r\n }}\r\n >\r\n \r\n \r\n Admin\r\n \r\n \r\n Report - site\r\n \r\n \r\n {\r\n exportSiteReport();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Report settings\r\n \r\n \r\n \r\n \r\n Site\r\n \r\n \r\n \r\n Fiscal year\r\n \r\n \r\n \r\n \r\n Budgeted requests\r\n \r\n \r\n \r\n \r\n \r\n \r\n option.name\r\n }\r\n onChange={(e, option) => {\r\n setSite(option);\r\n }}\r\n renderInput={(params) => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n option === -1\r\n ? \"All\"\r\n : option.toString()\r\n }\r\n onChange={(e, option) => {\r\n setFiscalYear(option);\r\n }}\r\n renderInput={(params) => (\r\n \r\n )}\r\n />\r\n \r\n \r\n {\r\n switch (option) {\r\n case 0:\r\n return \"All\";\r\n case 1:\r\n return \"Budgeted\";\r\n case 2:\r\n return \"Non-budgeted\";\r\n }\r\n }}\r\n onChange={(e, option) => {\r\n setBudgetedOption(option);\r\n }}\r\n renderInput={(params) => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n {\r\n onHandleSubmit();\r\n }}\r\n style={{\r\n backgroundColor: \"#393939\",\r\n color: \"#FFF\",\r\n }}\r\n >\r\n {isFetching ? (\r\n \r\n ) : (\r\n \r\n Generate report\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {data && (\r\n \r\n \r\n \r\n \r\n {site.name} |\r\n {fiscalYear === -1\r\n ? \"All fiscal years\"\r\n : fiscalYear}{\" \"}\r\n | {budgetedOptionText}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Site\r\n \r\n \r\n \r\n \r\n Requested amount\r\n \r\n \r\n \r\n \r\n (# of requests)\r\n \r\n \r\n \r\n \r\n Pending\r\n \r\n \r\n \r\n \r\n Declined\r\n \r\n \r\n \r\n \r\n Approved\r\n \r\n \r\n \r\n \r\n Remaining non-budgeted\r\n \r\n \r\n \r\n \r\n \r\n {\r\n \r\n \r\n \r\n {data.total.name}\r\n \r\n \r\n \r\n \r\n {\r\n data.total\r\n .totalAmount\r\n }{\" \"}\r\n \r\n \r\n kEUR\r\n \r\n \r\n \r\n \r\n (\r\n {\r\n data.total\r\n .requestCount\r\n }\r\n )\r\n \r\n \r\n \r\n \r\n {\r\n data.total\r\n .pendingAmount\r\n }{\" \"}\r\n \r\n \r\n kEUR\r\n \r\n \r\n (\r\n {\r\n data.total\r\n .pendingCount\r\n }\r\n )\r\n \r\n \r\n \r\n \r\n {\r\n data.total\r\n .declinedAmount\r\n }{\" \"}\r\n \r\n \r\n kEUR\r\n \r\n \r\n (\r\n {\r\n data.total\r\n .declinedAmount\r\n }\r\n )\r\n \r\n \r\n \r\n \r\n {\r\n data.total\r\n .approvedAmount\r\n }{\" \"}\r\n \r\n \r\n kEUR\r\n \r\n \r\n (\r\n {\r\n data.total\r\n .approvedCount\r\n }\r\n )\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n By division\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Division\r\n \r\n \r\n \r\n \r\n Requested amount\r\n \r\n \r\n \r\n \r\n (# of requests)\r\n \r\n \r\n \r\n \r\n Pending\r\n \r\n \r\n \r\n \r\n Declined\r\n \r\n \r\n \r\n \r\n Approved\r\n \r\n \r\n \r\n \r\n Remaining non-budgeted\r\n \r\n \r\n \r\n \r\n \r\n {data.divisionRequests.map(\r\n (\r\n {\r\n name,\r\n approvedAmount,\r\n approvedCount,\r\n declinedAmount,\r\n declinedCount,\r\n pendingAmount,\r\n pendingCount,\r\n remainingNonBudgeted,\r\n requestCount,\r\n totalAmount,\r\n },\r\n index\r\n ) => (\r\n \r\n \r\n \r\n {name}\r\n \r\n \r\n \r\n \r\n {totalAmount}{\" \"}\r\n \r\n \r\n kEUR\r\n \r\n \r\n \r\n \r\n ({requestCount})\r\n \r\n \r\n \r\n \r\n {pendingAmount}{\" \"}\r\n \r\n \r\n kEUR\r\n \r\n \r\n ({pendingCount})\r\n \r\n \r\n \r\n \r\n {declinedAmount}{\" \"}\r\n \r\n \r\n kEUR\r\n \r\n \r\n ({declinedCount}\r\n )\r\n \r\n \r\n \r\n \r\n {approvedAmount}{\" \"}\r\n \r\n \r\n kEUR\r\n \r\n \r\n ({approvedCount}\r\n )\r\n \r\n \r\n \r\n \r\n -\r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n By type of investment\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Type of investment\r\n \r\n \r\n \r\n \r\n Requested amount\r\n \r\n \r\n \r\n \r\n (# of requests)\r\n \r\n \r\n \r\n \r\n Pending\r\n \r\n \r\n \r\n \r\n Declined\r\n \r\n \r\n \r\n \r\n Approved\r\n \r\n \r\n \r\n \r\n Remaining non-budgeted\r\n \r\n \r\n \r\n \r\n \r\n {data.investmentTypeRequests.map(\r\n (\r\n {\r\n name,\r\n approvedAmount,\r\n approvedCount,\r\n declinedAmount,\r\n declinedCount,\r\n pendingAmount,\r\n pendingCount,\r\n remainingNonBudgeted,\r\n requestCount,\r\n totalAmount,\r\n },\r\n index\r\n ) => (\r\n \r\n \r\n \r\n {name}\r\n \r\n \r\n \r\n \r\n {totalAmount}{\" \"}\r\n \r\n \r\n kEUR\r\n \r\n \r\n \r\n \r\n ({requestCount})\r\n \r\n \r\n \r\n \r\n {pendingAmount}{\" \"}\r\n \r\n \r\n kEUR\r\n \r\n \r\n ({pendingCount})\r\n \r\n \r\n \r\n \r\n {declinedAmount}{\" \"}\r\n \r\n \r\n kEUR\r\n \r\n \r\n ({declinedCount}\r\n )\r\n \r\n \r\n \r\n \r\n {approvedAmount}{\" \"}\r\n \r\n \r\n kEUR\r\n \r\n \r\n ({approvedCount}\r\n )\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n By approver\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Approver\r\n \r\n \r\n \r\n \r\n Requested amount\r\n \r\n \r\n \r\n \r\n (# of requests)\r\n \r\n \r\n \r\n \r\n Pending\r\n \r\n \r\n \r\n \r\n Declined\r\n \r\n \r\n \r\n \r\n Approved\r\n \r\n \r\n \r\n \r\n Remaining non-budgeted\r\n \r\n \r\n \r\n \r\n \r\n {data.approverRequests.map(\r\n (\r\n {\r\n name,\r\n approvedAmount,\r\n approvedCount,\r\n declinedAmount,\r\n declinedCount,\r\n pendingAmount,\r\n pendingCount,\r\n remainingNonBudgeted,\r\n requestCount,\r\n totalAmount,\r\n },\r\n index\r\n ) => (\r\n \r\n \r\n \r\n {name}\r\n \r\n \r\n \r\n \r\n {totalAmount}{\" \"}\r\n \r\n \r\n kEUR\r\n \r\n \r\n \r\n \r\n ({requestCount})\r\n \r\n \r\n \r\n \r\n {pendingAmount}{\" \"}\r\n \r\n \r\n kEUR\r\n \r\n \r\n ({pendingCount})\r\n \r\n \r\n \r\n \r\n {declinedAmount}{\" \"}\r\n \r\n \r\n kEUR\r\n \r\n \r\n ({declinedCount}\r\n )\r\n \r\n \r\n \r\n \r\n {approvedAmount}{\" \"}\r\n \r\n \r\n kEUR\r\n \r\n \r\n ({approvedCount}\r\n )\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default withStyles(styles)(Site);\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport AppBar from \"../../components/AppBar.jsx\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst Container = styled.div`\r\n display: flex;\r\n flex: 1;\r\n`;\r\n\r\nconst ErrorTemplate = (props) => {\r\n return (\r\n \r\n \r\n \r\n \r\n Index\r\n \r\n \r\n \r\n {props.children}\r\n \r\n );\r\n};\r\n\r\nexport default ErrorTemplate;\r\n","export default __webpack_public_path__ + \"static/media/dog.be183656.png\";","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport ErrorTemplate from \"./template\";\r\nimport Template from \"../../components/Template\";\r\nimport DogImage from \"./../../img/dog.png\";\r\n\r\nconst Container = styled.div`\r\n display: flex;\r\n padding: 20px;\r\n`;\r\n\r\nconst Content = styled.div`\r\n display: flex;\r\n flex: 1;\r\n`;\r\n\r\nconst Component = ({ error }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Component;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport ErrorTemplate from \"./template\";\r\nimport Template from \"../../components/Template\";\r\nimport DogImage from \"./../../img/dog.png\";\r\n\r\nconst Container = styled.div`\r\n display: flex;\r\n padding: 20px;\r\n`;\r\n\r\nconst Content = styled.div`\r\n display: flex;\r\n flex: 1;\r\n`;\r\n\r\nconst Component = ({ error }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Component;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport ErrorTemplate from \"./template\";\r\nimport Template from \"../../components/Template\";\r\nimport DogImage from \"./../../img/dog.png\";\r\n\r\nconst Container = styled.div`\r\n display: flex;\r\n padding: 20px;\r\n`;\r\n\r\nconst Content = styled.div`\r\n display: flex;\r\n flex: 1;\r\n`;\r\n\r\nconst Component = ({ error }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Component;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport ErrorTemplate from \"./template\";\r\nimport Template from \"./../../components/Template\";\r\nimport DogImage from \"./../../img/dog.png\";\r\n\r\nconst Container = styled.div`\r\n display: flex;\r\n padding: 20px;\r\n`;\r\n\r\nconst Content = styled.div`\r\n display: flex;\r\n flex: 1;\r\n`;\r\n\r\nconst Component = ({ error }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Component;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport ErrorTemplate from \"./template\";\r\nimport Template from \"../../components/Template\";\r\nimport DogImage from \"./../../img/dog.png\";\r\n\r\nconst Container = styled.div`\r\n display: flex;\r\n padding: 20px;\r\n`;\r\n\r\nconst Content = styled.div`\r\n display: flex;\r\n flex: 1;\r\n`;\r\n\r\nconst Component = ({ error }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Component;\r\n","export default __webpack_public_path__ + \"static/media/hildinganderslogo-black.32261700.png\";","import React from \"react\";\r\nimport { Button, ButtonGroup } from \"@material-ui/core\";\r\nimport { Link } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport { ContentGuard } from \"./../components/ContentGuard\";\r\nimport logo from \"./../img/hildinganderslogo-black.png\";\r\nimport AppBar from \"./../components/AppBar.jsx\";\r\nimport Template from \"./../components/Template.jsx\";\r\nimport { capexApiGet } from \"../fetch\";\r\nimport { protectedResources } from \"../authConfig\";\r\n\r\nconst Index = styled.div`\r\n display: flex;\r\n flex: 1;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n margin-bottom: 56px;\r\n`;\r\n\r\nconst Container = styled.div`\r\n display: flex;\r\n flex: 1;\r\n`;\r\n\r\nconst Menu = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n margin-top: 104px;\r\n`;\r\n\r\nconst Logo = styled.img`\r\n bottom: 0;\r\n right: 0;\r\n margin-right: 30px;\r\n position: absolute;\r\n`;\r\n\r\nconst Component = (props) => {\r\n const [securityGroups, setSecurityGroups] = React.useState();\r\n const url = protectedResources.apiCapex.endpoint + \"/groups/\";\r\n\r\n const getGroups = async () => {\r\n const response = await capexApiGet(url);\r\n setSecurityGroups(response);\r\n };\r\n\r\n React.useEffect(() => {\r\n getGroups();\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n {securityGroups && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Component;\r\n","import React from \"react\";\r\nimport { Route, Switch, useLocation, useHistory } from \"react-router-dom\";\r\nimport { useEffect } from \"react\";\r\nimport { Overage } from \"./pages/Overage\";\r\nimport { RouteGuard } from \"./components/RouteGuard\";\r\nimport RequestIndex from \"./pages/request/index.jsx\";\r\nimport RequestCreate from \"./pages/request/create.jsx\";\r\nimport RequestReview from \"./pages/request/review.jsx\";\r\nimport RequestDetails from \"./pages/request/details.jsx\";\r\nimport RequestEdit from \"./pages/request/edit.jsx\";\r\nimport RequestConfirm from \"./pages/request/confirm.jsx\";\r\nimport ApproverIndex from \"./pages/approver/index.jsx\";\r\nimport ApproverRequestError from \"./pages/approver/requestError.jsx\";\r\nimport ApproverRequests from \"./pages/approver/requests.jsx\";\r\nimport ApproverCreate from \"./pages/approver/create.jsx\";\r\nimport ApproverEdit from \"./pages/approver/edit.jsx\";\r\nimport AdminIndex from \"./pages/admin/index.jsx\";\r\nimport AdminDivisions from \"./pages/admin/divisions.jsx\";\r\nimport AdminFinanceTypes from \"./pages/admin/financeTypes.jsx\";\r\nimport AdminInvestmentTypes from \"./pages/admin/investmentTypes.jsx\";\r\nimport AdminSites from \"./pages/admin/sites.jsx\";\r\nimport AdminTexts from \"./pages/admin/texts.jsx\";\r\nimport TextDetails from \"./pages/admin/text.jsx\";\r\nimport AdminExport from \"./pages/admin/export.jsx\";\r\nimport ReportCapexSummary from \"./pages/report/capexSummary.jsx\";\r\nimport ReportRequests from \"./pages/report/requests.jsx\";\r\nimport ReportSite from \"./pages/report/site.jsx\";\r\nimport FourHundred from \"./pages/error/400.jsx\";\r\nimport FourOhOne from \"./pages/error/401.jsx\";\r\nimport FourOhThree from \"./pages/error/403.jsx\";\r\nimport FourOhFour from \"./pages/error/404.jsx\";\r\nimport FiveHundred from \"./pages/error/500.jsx\";\r\nimport Index from \"./pages/index.jsx\";\r\nimport { capexApiGet } from \"./fetch\";\r\nimport { protectedResources } from \"./authConfig\";\r\n\r\nconst Routes = ({ stateUrl }) => {\r\n const [securityGroups, setSecurityGroups] = React.useState();\r\n const location = useLocation();\r\n const query = new URLSearchParams(location.search);\r\n const history = useHistory();\r\n const url = protectedResources.apiCapex.endpoint + \"/groups/\";\r\n\r\n const getgGoups = async () => {\r\n const response = await capexApiGet(url);\r\n setSecurityGroups(response);\r\n };\r\n\r\n React.useEffect(() => {}, []);\r\n\r\n useEffect(() => {\r\n if (stateUrl) {\r\n history.replace(stateUrl);\r\n }\r\n\r\n getgGoups();\r\n }, []);\r\n\r\n if (!securityGroups) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Routes;\r\n","import CssBaseline from \"@material-ui/core/CssBaseline\";\r\nimport React from \"react\";\r\nimport { MsalProvider, MsalAuthenticationTemplate } from \"@azure/msal-react\";\r\nimport { ThemeProvider } from \"@material-ui/core/styles\";\r\nimport { BrowserRouter } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nimport { loginRequest } from \"./authConfig.js\";\r\nimport theme from \"./theme.jsx\";\r\nimport Routes from \"./Routes.jsx\";\r\nimport ErrorComponent from \"./components/Error.jsx\";\r\nimport LoadingComponent from \"./components/Loading.jsx\";\r\nimport { EventType, InteractionType } from \"@azure/msal-browser\";\r\n\r\nconst Container = styled.div`\r\n overflow: hidden;\r\n height: 100%;\r\n`;\r\n\r\nconst App = ({ instance }) => {\r\n const [stateUrl, setStateUrl] = React.useState(\"\");\r\n\r\n instance.addEventCallback((event) => {\r\n switch (event.eventType) {\r\n case EventType.LOGIN_SUCCESS:\r\n case EventType.ACQUIRE_TOKEN_SUCCESS:\r\n if (event.interactionType === InteractionType.Redirect) {\r\n setStateUrl(event.payload.state);\r\n }\r\n }\r\n });\r\n\r\n const authRequest = {\r\n ...loginRequest,\r\n state: window.location.pathname + window.location.search,\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default App;\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { PublicClientApplication, EventType } from \"@azure/msal-browser\";\r\nimport { msalConfig } from \"./authConfig\";\r\n\r\nimport App from \"./App.jsx\";\r\n\r\nimport \"./index.css\";\r\n\r\nexport const msalInstance = new PublicClientApplication(msalConfig);\r\n\r\nmsalInstance.enableAccountStorageEvents();\r\n\r\nconst accounts = msalInstance.getAllAccounts();\r\n\r\nif (accounts.length > 0) {\r\n msalInstance.setActiveAccount(accounts[0]);\r\n}\r\n\r\nmsalInstance.addEventCallback((event) => {\r\n switch (event.eventType) {\r\n case EventType.LOGIN_SUCCESS:\r\n if (event.payload.account) {\r\n const account = event.payload.account;\r\n msalInstance.setActiveAccount(account);\r\n }\r\n }\r\n});\r\n\r\nReactDOM.render(\r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n"],"sourceRoot":""}