{"version":3,"sources":["i18n/imports/index.js","i18n/index.js","api/fetcher.js","api/index.js","theme/variants.js","theme/typography.js","theme/overrides.js","theme/breakpoints.js","theme/props.js","theme/shadows.js","theme/index.js","components/Loader.js","components/Async.js","routes/index.js","components/Sidebar.js","components/Header.js","components/Footer.js","layouts/Dashboard.js","layouts/Auth.js","pages/auth/Page404.js","routes/Routes.js","App.js","redux/reducers/index.js","redux/reducers/themeReducers.js","redux/constants.js","redux/store/index.js","index.js"],"names":["langs","FRA","ENU","resources","i18n","use","LanguageDetector","initReactI18next","init","imports","res","key","dict","translationKey","Translations","elem","langKey","translation","compileImports","translations","fallbackLng","interpolation","escapeValue","fetcherNoTreatment","method","route","content","options","headers","Accept","Authorization","getToken","mode","body","JSON","stringify","fetch","API_URL","fetcher","signal","isLoggedIn","then","status","Promise","reject","get","indexOf","json","text","catch","err","console","log","toUpperCase","removeToken","window","location","name","useFetch","useState","response","setResponse","useEffect","abortController","AbortController","abort","config","apiUrl","hostname","sessionStorage","getItem","setItem","confirm","KEY","setToken","token","localStorage","undefined","removeItem","variants","palette","primary","main","contrastText","secondary","header","color","grey","background","search","indicator","sidebar","brand","footer","online","category","fontWeight","badge","typography","useNextVariants","fontFamily","join","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","h1","lineHeight","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","button","textTransform","overrides","MuiCardHeader","action","marginTop","marginRight","MuiPickersDay","day","MuiPickersYear","root","height","MuiPickersCalendar","transitionContainer","MuiPickersCalendarHeader","iconButton","backgroundColor","switchHeader","marginBottom","MuiPickersClock","container","margin","MuiPickersClockNumber","clockNumber","left","width","MuiPickerDTHeader","dateHeader","timeHeader","MuiPickersTimePicker","hourMinuteLabel","MuiPickersToolbar","toolbar","breakpoints","values","xs","sm","md","lg","xl","props","MuiButtonBase","disableRipple","titleTypographyProps","variant","createShadow","px","shadows","themes","map","lang","locale","frFR","enUS","createMuiTheme","spacing","theme","Root","styled","div","Loader","CircularProgress","m","sleep","r","setTimeout","asyncComponent","importComponent","state","component","a","default","this","setState","C","React","Component","SignIn","async","ResetPassword","Page500","PageNetworkError","Profile","Team","TeamContactDetails","Umbrella","Contacts","CommercialAgreementSigningList","CommercialAgreementActiveList","CommercialAgreementDetails","LegalDocumentsList","SalesInvoiceWaitingList","SalesInvoicePaidList","SalesInvoiceCanceledList","SalesInvoiceDetails","Directory","ContractorDetails","Dashboard","ProfileNotFound","authRoutes","id","path","icon","children","profileRoutes","dashboardRoutes","isHome","profileNotFound","Help","teamRoutes","teamContactDetailsRoutes","umbrellaRoutes","contactsRoutes","legalRoutes","commercialAgreementList","commercialAgreementDetails","salesInvoiceList","salesInvoiceDetails","directoryRoutes","People","dashboard","auth","NavLink","forwardRef","ref","innerRef","Drawer","MuiDrawer","Scrollbar","PerfectScrollbar","List","MuiList","Items","Brand","ListItem","up","Category","activeClassName","darken","CategoryText","ListItemText","CategoryIconLess","ExpandLess","rgba","CategoryIconMore","ExpandMore","Link","LinkText","LinkBadge","Chip","fontWeightBold","CategoryBadge","SidebarSection","Typography","Logo","img","SidebarCategory","isOpen","classes","isCollapsable","rest","label","SidebarLink","to","dense","exact","withRouter","staticContext","t","useTranslation","history","useHistory","pathName","pathname","_routes","routes","forEach","index","isActive","open","containsHome","Object","assign","initOpenRoutes","openRoutes","setOpenRoutes","Button","alt","onClick","push","src","disablePadding","Fragment","keys","item","toggle","Collapse","in","timeout","unmountOnExit","AppBar","MuiAppBar","IconButton","MuiIconButton","Flag","UserButton","AccountIcon","AccountCircle","LanguageMenu","anchorMenu","setAnchorMenu","setLanguage","lng","changeLanguage","closeMenu","aria-owns","Boolean","aria-haspopup","event","currentTarget","Menu","anchorEl","onClose","MenuItem","UserMenu","user","startIcon","Skeleton","AccFirstName","target","href","RouterLink","connect","withTheme","onDrawerToggle","position","elevation","Toolbar","Grid","alignItems","Hidden","mdUp","aria-label","Wrapper","common","white","MuiListItem","MuiTypography","Footer","smDown","disableTypography","justify","Date","getFullYear","GlobalStyle","createGlobalStyle","AppContent","Paper","MuiPaper","MainContent","withWidth","mobileOpen","setMobileOpen","handleDrawerToggle","CssBaseline","implementation","PaperProps","style","p","isWidthUp","Auth","MuiButton","Page404","title","align","gutterBottom","goBack","mt","renderRoute","Layout","requiresAuth","childRoutes","render","Routes","DashboardLayout","AuthLayout","store","themeReducer","selectedTheme","maTheme","currentTheme","language","titleTemplate","defaultTitle","StylesProvider","injectFirst","utils","DateFnsUtils","combineReducers","actions","type","payload","createStore","rootReducer","__REDUX_DEVTOOLS_EXTENSION__","ReactDOM","document","getElementById"],"mappings":"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","file":"static/js/main.e3ea9752.chunk.js","sourcesContent":["// Déclaration statique de tout les fichiers JSON pour que le compilateur React les mettent dans le bundle final\r\n\r\nimport LangActivityAccountEntry from './LangActivityAccountEntry.json';\r\nimport LangActivityReport from './LangActivityReport.json';\r\nimport LangCharge from './LangCharge.json';\r\nimport LangCommercialAgreement from './LangCommercialAgreement.json';\r\nimport LangContact from './LangContact.json';\r\nimport LangContractor from './LangContractor.json';\r\nimport LangCustomer from './LangCustomer.json';\r\nimport LangDashboard from './LangDashboard.json';\r\nimport LangGeneral from './LangGeneral.json';\r\nimport LangInvoiceRequest from './LangInvoiceRequest.json';\r\nimport LangLogin from './LangLogin.json';\r\nimport LangSalesInvoiced from './LangSalesInvoiced.json';\r\nimport LangSettings from './LangSettings.json';\r\nimport LangTraining from './LangTraining.json';\r\nimport LangWage from './LangWage.json';\r\nimport LangWorkContract from './LangWorkContract.json';\r\n\r\nexport default {\r\n langs: {\r\n FRA: 'fr',\r\n ENU: 'en'\r\n },\r\n resources: [\r\n LangActivityAccountEntry,\r\n LangActivityReport,\r\n LangCharge,\r\n LangCommercialAgreement,\r\n LangContact,\r\n LangContractor,\r\n LangCustomer,\r\n LangDashboard,\r\n LangGeneral,\r\n LangInvoiceRequest,\r\n LangLogin,\r\n LangSalesInvoiced,\r\n LangSettings,\r\n LangTraining,\r\n LangWage,\r\n LangWorkContract\r\n ]\r\n};\r\n","import i18n from \"i18next\";\r\nimport { initReactI18next } from \"react-i18next\";\r\n\r\nimport translations from \"./translations.json\";\r\nimport LanguageDetector from 'i18next-browser-languagedetector';\r\n\r\nimport imports from './imports';\r\n\r\n// Import des ressources de traduction de CWA\r\n// !! Si des clés de traduction sont en doublon dans les imports, seule la dernière rencontrés est conservée\r\n// !! Si des clés de traduction sont en doublon entre les traductions de ce projet et les imports, les imports prennent le dessus\r\nconst compileImports = (imports, res) => {\r\n const langs = imports.langs;\r\n \r\n for (const key in imports.resources) {\r\n const dict = imports.resources[key];\r\n\r\n for (const translationKey in dict.Translations) {\r\n const elem = dict.Translations[translationKey];\r\n\r\n for (const langKey in langs) {\r\n const translation = elem[langKey];\r\n res[langs[langKey]].translation[translationKey] = translation;\r\n }\r\n }\r\n }\r\n\r\n return res;\r\n};\r\n\r\ni18n\r\n .use(LanguageDetector)\r\n .use(initReactI18next)\r\n .init({\r\n resources: compileImports(imports, translations),\r\n fallbackLng: 'fr',\r\n\r\n interpolation: {\r\n escapeValue: false,\r\n }\r\n });\r\n\r\nexport default i18n;\r\n","import { isLoggedIn, getToken, removeToken, API_URL } from './';\r\nimport { useState, useEffect } from 'react';\r\n\r\nexport const fetcherNoTreatment = (method, route, content = null) => {\r\n const options = {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${getToken()}`,\r\n },\r\n mode: \"cors\",\r\n body: JSON.stringify(content),\r\n };\r\n return fetch(API_URL + route, options);\r\n}\r\n\r\nexport const fetcher = (signal, method, route, content = null) => {\r\n\tconst options = {\r\n\t\tsignal: signal,\r\n\t\tmethod: method,\r\n\t\theaders: {\r\n\t\t\tAccept: \"application/json\"\r\n\t\t},\r\n\t\tmode: \"cors\"\r\n\t};\r\n\r\n\tif (isLoggedIn()) {\r\n\t\toptions.headers[\"Authorization\"] = `Bearer ${getToken()}`;\r\n\t}\r\n\r\n\tif (content !== null) {\r\n\t\toptions.headers[\"Content-Type\"] = \"application/json\";\r\n\t\toptions.body = JSON.stringify(content);\r\n\t}\r\n\r\n\treturn fetch(`${API_URL}${route}`, options)\r\n\t\t.then(res => {\r\n\t\t\tif (res.status === 401 && isLoggedIn())\r\n\t\t\t\treturn Promise.reject(\"INVALID_TOKEN\");\r\n\r\n\t\t\tif (res.status === 500)\r\n\t\t\t\treturn Promise.reject(\"UNKNOWN_ERROR\");\r\n\r\n\t\t\tif ((res.status < 200 || res.status >= 300) && res.status !== 401)\r\n\t\t\t\treturn Promise.reject(\"UNKNOWN_ERROR\");\r\n\r\n\t\t\tif(res.status === 204)\r\n\t\t\t\treturn res.status;\r\n\r\n\t\t\tif (res.headers.get(\"Content-Type\").indexOf(\"application/json\") !== -1)\r\n\t\t\t\treturn res.json();\r\n\r\n\t\t\treturn res.status === 200 ? res.text() : res.status;\r\n\t\t})\r\n\t\t.catch(err => {\r\n\t\t\tconsole.log(err, `${method?.toUpperCase()} ${route}`);\r\n\r\n\t\t\tif (err === \"INVALID_TOKEN\") {\r\n\t\t\t\tremoveToken();\r\n\t\t\t\twindow.location = \"/\";\r\n\t\t\t}\r\n\t\t\telse if (err === \"UNKNOWN_ERROR\") {\r\n\t\t\t\twindow.location = \"/500\";\r\n\t\t\t}\r\n\t\t\telse if (err.name !== 'AbortError') {\r\n\t\t\t\twindow.location = '/networkerror';\r\n\t\t\t}\r\n\r\n\t\t\treturn Promise.reject();\r\n\t\t});\r\n};\r\n\r\nconst useFetch = (method, route, content = null) => {\r\n\tconst [response, setResponse] = useState();\r\n\r\n\tuseEffect(() => {\r\n\t\tconst abortController = new AbortController();\r\n\t\tconst signal = abortController.signal;\r\n\r\n\t\tfetcher(signal, method, route, content)\r\n\t\t\t.then(res => setResponse(res))\r\n\t\t\t.catch(() => {});\r\n\r\n\t\treturn () => abortController.abort();\r\n\t}, [method, route, content]);\r\n\r\n\treturn response;\r\n};\r\n\r\nexport default useFetch;\r\n","// L'URL de l'API peut être modifiée dans le fichier public/config.js\r\nexport const API_URL = window.config.apiUrl;\r\n\r\n// Vérification de l'URL du proxy en production\r\n// Sauf cas extrême, l'URL ne DOIT PAS pointer sur localhost\r\nif (\r\n\tAPI_URL.indexOf('localhost') > -1 &&\r\n\twindow.location.hostname !== \"localhost\" &&\r\n\tsessionStorage.getItem('localhost') !== \"true\") {\r\n\tsessionStorage.setItem('localhost', window.confirm(\"L'API est configuré en local ! Cela peut provoquer des erreurs réseau.\\nCliquez sur \\\"OK\\\" pour ne plus voir ce message.\"));\r\n}\r\n\r\nconst KEY = 'API_TOKEN';\r\n\r\nexport const setToken = token => localStorage.setItem(KEY, token);\r\n\r\nexport const getToken = () => localStorage.getItem(KEY);\r\n\r\nexport const isLoggedIn = () => getToken() !== '' && getToken() !== null && getToken() !== undefined;\r\n\r\nexport const removeToken = () => localStorage.removeItem(KEY);\r\n","import { grey } from \"@material-ui/core/colors\";\r\n\r\nconst orangeVariant = {\r\n name: \"Orange\",\r\n palette: {\r\n primary: {\r\n main: \"#353d40\",\r\n contrastText: \"#FFF\"\r\n },\r\n secondary: {\r\n main: \"#353d40\",\r\n contrastText: \"#FFF\"\r\n }\r\n },\r\n header: {\r\n color: grey[500],\r\n background: \"#FFF\",\r\n search: {\r\n color: grey[800]\r\n },\r\n indicator: {\r\n background: \"#353d40\"\r\n }\r\n },\r\n sidebar: {\r\n color: \"#FFF\",\r\n background: \"#353d40\",\r\n header: {\r\n color: \"#FFF\",\r\n background: \"#353d40\",\r\n brand: {\r\n color: \"#3a4244\"\r\n }\r\n },\r\n footer: {\r\n color: \"#FFF\",\r\n background: \"#353d40\",\r\n online: {\r\n background: \"#FFF\"\r\n }\r\n },\r\n category: {\r\n fontWeight: 400\r\n },\r\n badge: {\r\n color: \"#000\",\r\n background: \"#FFF\"\r\n }\r\n },\r\n body: {\r\n background: \"#F7F9FC\"\r\n },\r\n footer: {\r\n color: grey[800]\r\n }\r\n};\r\n\r\nconst variants = [\r\n orangeVariant\r\n];\r\n\r\nexport default variants;\r\n","const typography = {\r\n useNextVariants: true,\r\n fontFamily: [\r\n \"Nunito\",\r\n \"-apple-system\",\r\n \"BlinkMacSystemFont\",\r\n '\"Segoe UI\"',\r\n \"Roboto\",\r\n '\"Helvetica Neue\"',\r\n \"Arial\",\r\n \"sans-serif\",\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"'\r\n ].join(\",\"),\r\n fontSize: 14,\r\n fontWeightLight: 300,\r\n fontWeightRegular: 400,\r\n fontWeightMedium: 600,\r\n h1: {\r\n fontSize: \"2rem\",\r\n fontWeight: 600,\r\n lineHeight: 1.2\r\n },\r\n h2: {\r\n fontSize: \"1.75rem\",\r\n fontWeight: 600,\r\n lineHeight: 1.2\r\n },\r\n h3: {\r\n fontSize: \"1.5rem\",\r\n fontWeight: 600,\r\n lineHeight: 1.2\r\n },\r\n h4: {\r\n fontSize: \"1.25rem\",\r\n fontWeight: 600,\r\n lineHeight: 1.2\r\n },\r\n h5: {\r\n fontSize: \"1.125rem\",\r\n fontWeight: 600,\r\n lineHeight: 1.2\r\n },\r\n h6: {\r\n fontSize: \"1.0625rem\",\r\n fontWeight: 600,\r\n lineHeight: 1.2\r\n },\r\n subtitle1: {\r\n fontSize: 20\r\n },\r\n subtitle2: {\r\n fontSize: 18\r\n },\r\n body1: {\r\n fontSize: 16\r\n },\r\n body2: {\r\n fontSize: 14\r\n },\r\n button: {\r\n textTransform: \"none\"\r\n }\r\n};\r\n\r\nexport default typography;\r\n","const overrides = {\r\n MuiCardHeader: {\r\n action: {\r\n marginTop: \"-4px\",\r\n marginRight: \"-4px\"\r\n }\r\n },\r\n MuiPickersDay: {\r\n day: {\r\n fontWeight: \"300\"\r\n }\r\n },\r\n MuiPickersYear: {\r\n root: {\r\n height: \"64px\"\r\n }\r\n },\r\n MuiPickersCalendar: {\r\n transitionContainer: {\r\n marginTop: \"6px\"\r\n }\r\n },\r\n MuiPickersCalendarHeader: {\r\n iconButton: {\r\n backgroundColor: \"transparent\",\r\n \"& > *\": {\r\n backgroundColor: \"transparent\"\r\n }\r\n },\r\n switchHeader: {\r\n marginTop: \"2px\",\r\n marginBottom: \"4px\"\r\n }\r\n },\r\n MuiPickersClock: {\r\n container: {\r\n margin: `32px 0 4px`\r\n }\r\n },\r\n MuiPickersClockNumber: {\r\n clockNumber: {\r\n left: `calc(50% - 16px)`,\r\n width: \"32px\",\r\n height: \"32px\"\r\n }\r\n },\r\n MuiPickerDTHeader: {\r\n dateHeader: {\r\n \"& h4\": {\r\n fontSize: \"2.125rem\",\r\n fontWeight: 400\r\n }\r\n },\r\n timeHeader: {\r\n \"& h3\": {\r\n fontSize: \"3rem\",\r\n fontWeight: 400\r\n }\r\n }\r\n },\r\n MuiPickersTimePicker: {\r\n hourMinuteLabel: {\r\n \"& h2\": {\r\n fontSize: \"3.75rem\",\r\n fontWeight: 300\r\n }\r\n }\r\n },\r\n MuiPickersToolbar: {\r\n toolbar: {\r\n \"& h4\": {\r\n fontSize: \"2.125rem\",\r\n fontWeight: 400\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport default overrides;\r\n","const breakpoints = {\r\n values: {\r\n xs: 0,\r\n sm: 600,\r\n md: 960,\r\n lg: 1280,\r\n xl: 1440\r\n }\r\n};\r\n\r\nexport default breakpoints;\r\n","const props = {\r\n MuiButtonBase: {\r\n disableRipple: true\r\n },\r\n MuiCardHeader: {\r\n titleTypographyProps: { variant: \"h6\" }\r\n }\r\n};\r\n\r\nexport default props;\r\n","function createShadow(px) {\r\n return `0 0 ${px}px 0 rgba(53,64,82,.05)`;\r\n}\r\n\r\nconst shadows = [\r\n \"none\",\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14)\r\n];\r\n\r\nexport default shadows;\r\n","import { createMuiTheme } from \"@material-ui/core/styles\";\r\nimport { frFR, enUS } from '@material-ui/core/locale';\r\n\r\nimport variants from \"./variants\";\r\nimport typography from \"./typography\";\r\nimport overrides from \"./overrides\";\r\nimport breakpoints from \"./breakpoints\";\r\nimport props from \"./props\";\r\nimport shadows from \"./shadows\";\r\n\r\nconst theme = (variant, lang) => {\r\n const locale = lang === 'fr' ? frFR : enUS;\r\n\r\n return createMuiTheme(\r\n {\r\n spacing: 4,\r\n breakpoints: breakpoints,\r\n overrides: overrides,\r\n props: props,\r\n typography: typography,\r\n shadows: shadows,\r\n body: variant.body,\r\n header: variant.header,\r\n palette: variant.palette,\r\n sidebar: variant.sidebar,\r\n footer: variant.footer\r\n },\r\n variant.name,\r\n locale\r\n );\r\n};\r\n\r\nconst themes = variants.map(variant => lang => theme(variant, lang));\r\n\r\nexport default themes;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nimport { CircularProgress } from \"@material-ui/core\";\r\n\r\nconst Root = styled.div`\r\n justify-content: center;\r\n align-items: center;\r\n display: flex;\r\n min-height: 100%;\r\n`;\r\n\r\nfunction Loader() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Loader;\r\n","import React from \"react\";\r\n\r\nimport Loader from \"./Loader\";\r\n\r\nconst sleep = m => new Promise(r => setTimeout(r, m));\r\n\r\nexport default function asyncComponent(importComponent) {\r\n class AsyncComponent extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n component: null\r\n };\r\n }\r\n\r\n async componentDidMount() {\r\n await sleep(150);\r\n\r\n const { default: component } = await importComponent();\r\n\r\n this.setState({\r\n component: component\r\n });\r\n }\r\n\r\n render() {\r\n const C = this.state.component;\r\n\r\n return C ? : \r\n }\r\n }\r\n\r\n return AsyncComponent;\r\n}\r\n","import React from \"react\";\r\n\r\nimport async from \"../components/Async\";\r\n\r\nimport {\r\n User,\r\n Users\r\n} from \"react-feather\";\r\n\r\nimport {\r\n EuroSymbol as InvoiceIcon,\r\n InsertDriveFile as CommercialAgreementsIcon,\r\n AttachFile as LegalIcon,\r\n People as PeopleIcon,\r\n Contacts as ContactsIcon,\r\n Help as HelpIcon,\r\n Dashboard as DashboardIcon\r\n} from \"@material-ui/icons\";\r\n\r\n// Auth components\r\nconst SignIn = async(() => import(\"../pages/auth/SignIn\"));\r\nconst ResetPassword = async(() => import(\"../pages/auth/ResetPassword\"));\r\n//const Page404 = async(() => import(\"../pages/auth/Page404\"));\r\nconst Page500 = async(() => import(\"../pages/auth/Page500\"));\r\nconst PageNetworkError = async(() => import(\"../pages/auth/PageNetworkError\"));\r\n\r\n// Pages components\r\nconst Profile = async(() => import(\"../pages/pages/Profile\"));\r\nconst Team = async(() => import(\"../pages/pages/Team\"));\r\nconst TeamContactDetails = async(() => import(\"../pages/pages/TeamContactDetails\"));\r\nconst Umbrella = async(() => import(\"../pages/pages/Umbrella\"));\r\nconst Contacts = async(() => import(\"../pages/pages/Contacts\"));\r\nconst CommercialAgreementSigningList = async(() => import(\"../pages/pages/CommercialAgreementSigningList\"));\r\nconst CommercialAgreementActiveList = async(() => import(\"../pages/pages/CommercialAgreementActiveList\"));\r\nconst CommercialAgreementDetails = async(() => import(\"../pages/pages/CommercialAgreementDetails\"));\r\nconst LegalDocumentsList = async(() => import(\"../pages/pages/LegalDocuments\"));\r\nconst SalesInvoiceWaitingList = async(() => import(\"../pages/pages/SalesInvoiceWaitingList\"));\r\nconst SalesInvoicePaidList = async(() => import(\"../pages/pages/SalesInvoicePaidList\"));\r\nconst SalesInvoiceCanceledList = async(() => import(\"../pages/pages/SalesInvoiceCanceledList\"));\r\nconst SalesInvoiceDetails = async(() => import(\"../pages/pages/SalesInvoiceDetails\"));\r\nconst Directory = async(() => import(\"../pages/pages/DirectoryList\"));\r\nconst ContractorDetails = async(() => import(\"../pages/pages/ContractorDetails\"));\r\nconst Dashboard = async(() => import(\"../pages/pages/Dashboard\"));\r\nconst ProfileNotFound = async(() => import('../pages/pages/ContactNotFound'));\r\n\r\n\r\nconst authRoutes = {\r\n id: \"Auth\",\r\n path: \"/auth\",\r\n icon: ,\r\n children: [\r\n {\r\n path: \"/auth/login\",\r\n name: \"Connexion\",\r\n component: SignIn\r\n },\r\n {\r\n path: \"/auth/reset-password\",\r\n name: \"Reset Password\",\r\n component: ResetPassword\r\n },\r\n {\r\n path: \"/500\",\r\n name: \"Erreur interne\",\r\n component: Page500\r\n },\r\n {\r\n path: \"/networkerror\",\r\n name: \"Erreur réseau\",\r\n component: PageNetworkError\r\n }\r\n ]\r\n};\r\n\r\nconst profileRoutes = {\r\n id: \"profile\",\r\n path: \"/profil\",\r\n icon: ,\r\n component: Profile,\r\n children: null\r\n}\r\n\r\nconst dashboardRoutes = {\r\n id: \"dashboard\",\r\n path: \"/\",\r\n icon: ,\r\n component: Dashboard,\r\n children: null,\r\n isHome: true\r\n}\r\n\r\nconst profileNotFound = {\r\n id: \"profileNotFound\",\r\n path: \"/profilenotfound\",\r\n icon: ,\r\n component: ProfileNotFound,\r\n children: null\r\n}\r\n\r\nconst teamRoutes = {\r\n id: \"team\",\r\n path: \"/team\",\r\n icon: ,\r\n component: Team,\r\n children: null\r\n}\r\n\r\nconst teamContactDetailsRoutes = {\r\n id: \"teamContactDetails\",\r\n path: \"/team/:no\",\r\n icon: ,\r\n component: TeamContactDetails,\r\n children: null\r\n};\r\n\r\nconst umbrellaRoutes = {\r\n id: \"umbrella\",\r\n path: \"/umbrella\",\r\n icon: ,\r\n component: Umbrella,\r\n children: null\r\n};\r\n\r\nconst contactsRoutes = {\r\n id: \"2ip-contacts\",\r\n path: \"/contacts\",\r\n icon: ,\r\n component: Contacts,\r\n children: null\r\n};\r\n\r\nconst legalRoutes = {\r\n id: \"legal-kit\",\r\n path: \"/legal\",\r\n icon: ,\r\n component: LegalDocumentsList,\r\n children: null\r\n};\r\n\r\nconst commercialAgreementList = {\r\n id: \"commercialAgreement\",\r\n path: \"/commercial-agreements\",\r\n icon: ,\r\n children: [\r\n {\r\n path: \"/commercial-agreements/signing\",\r\n name: \"ca-signing\",\r\n component: CommercialAgreementSigningList\r\n },\r\n {\r\n path: \"/commercial-agreements/active\",\r\n name: \"ca-actives\",\r\n component: CommercialAgreementActiveList\r\n }\r\n ]\r\n};\r\n\r\nconst commercialAgreementDetails = {\r\n id: \"CommercialAgreement\",\r\n path: \"/commercial-agreements/:no\",\r\n icon: ,\r\n component: CommercialAgreementDetails,\r\n children: null\r\n};\r\n\r\nconst salesInvoiceList = {\r\n id: \"Invoices\",\r\n path: \"/sales-invoice\",\r\n icon: ,\r\n children: [\r\n {\r\n path: \"/sales-invoice/waiting\",\r\n name: \"invoices-waiting\",\r\n component: SalesInvoiceWaitingList\r\n },\r\n {\r\n path: \"/sales-invoice/paid\",\r\n name: \"invoices-paid\",\r\n component: SalesInvoicePaidList\r\n },\r\n {\r\n path: \"/sales-invoice/cancelled\",\r\n name: \"invoices-cancelled\",\r\n component: SalesInvoiceCanceledList\r\n }\r\n ]\r\n};\r\n\r\nconst salesInvoiceDetails = {\r\n id: \"invoice\",\r\n path: \"/sales-invoice/:no\",\r\n icon: ,\r\n component: SalesInvoiceDetails,\r\n children: null\r\n}\r\n\r\nconst directoryRoutes = {\r\n id: \"directory\",\r\n path: \"/directory\",\r\n icon: ,\r\n component: Directory,\r\n children: null\r\n};\r\n\r\nconst contractorDetailsRoutes = {\r\n id: \"contractorDetails\",\r\n path: \"/contractor/:no\",\r\n icon: ,\r\n component: ContractorDetails,\r\n children: null\r\n};\r\n\r\n// Mise en commentaire du module des évènements\r\n/*const eventsRoutes = {\r\n id: \"events\",\r\n path: \"/events\",\r\n icon: ,\r\n component: Events,\r\n children: null\r\n};*/\r\n\r\nexport const dashboard = [\r\n dashboardRoutes,\r\n umbrellaRoutes,\r\n contactsRoutes,\r\n legalRoutes,\r\n commercialAgreementList,\r\n commercialAgreementDetails,\r\n salesInvoiceList,\r\n profileRoutes,\r\n teamRoutes,\r\n teamContactDetailsRoutes,\r\n salesInvoiceDetails,\r\n profileNotFound,\r\n directoryRoutes,\r\n contractorDetailsRoutes,\r\n //eventsRoutes\r\n];\r\n\r\nexport const auth = [authRoutes];\r\n\r\nexport default [\r\n dashboardRoutes,\r\n contactsRoutes,\r\n legalRoutes,\r\n commercialAgreementList,\r\n salesInvoiceList,\r\n directoryRoutes,\r\n profileNotFound,\r\n umbrellaRoutes,\r\n //eventsRoutes\r\n];\r\n","import React, { useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { rgba } from \"polished\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nimport { NavLink as RouterNavLink, withRouter } from \"react-router-dom\";\r\nimport { darken } from \"polished\";\r\n\r\nimport PerfectScrollbar from \"react-perfect-scrollbar\";\r\nimport \"../vendor/perfect-scrollbar.css\";\r\n\r\nimport {\r\n Chip,\r\n Button,\r\n Collapse,\r\n Drawer as MuiDrawer,\r\n List as MuiList,\r\n ListItem,\r\n ListItemText,\r\n Typography\r\n} from \"@material-ui/core\";\r\n\r\nimport { ExpandLess, ExpandMore } from \"@material-ui/icons\";\r\n\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nimport routes from \"../routes/index\";\r\n\r\nconst NavLink = React.forwardRef((props, ref) => (\r\n \r\n));\r\n\r\nconst Drawer = styled(MuiDrawer)`\r\n border-right: 0;\r\n\r\n > div {\r\n border-right: 0;\r\n }\r\n`;\r\n\r\nconst Scrollbar = styled(PerfectScrollbar)`\r\n background-color: ${props => props.theme.sidebar.background};\r\n border-right: 1px solid rgba(0, 0, 0, 0.12);\r\n`;\r\n\r\nconst List = styled(MuiList)`\r\n background-color: ${props => props.theme.sidebar.background};\r\n`;\r\n\r\nconst Items = styled.div`\r\n padding-top: ${props => props.theme.spacing(2.5)}px;\r\n padding-bottom: ${props => props.theme.spacing(2.5)}px;\r\n`;\r\n\r\nconst Brand = styled(ListItem)`\r\n font-size: ${props => props.theme.typography.h5.fontSize};\r\n font-weight: ${props => props.theme.typography.fontWeightMedium};\r\n color: ${props => props.theme.sidebar.header.color};\r\n background-color: ${props => props.theme.sidebar.header.background};\r\n font-family: ${props => props.theme.typography.fontFamily};\r\n min-height: 56px;\r\n padding-left: ${props => props.theme.spacing(6)}px;\r\n padding-right: ${props => props.theme.spacing(6)}px;\r\n\r\n ${props => props.theme.breakpoints.up(\"sm\")} {\r\n min-height: 64px;\r\n }\r\n`;\r\n\r\nconst Category = styled(ListItem)`\r\n padding-top: ${props => props.theme.spacing(3)}px;\r\n padding-bottom: ${props => props.theme.spacing(3)}px;\r\n padding-left: ${props => props.theme.spacing(6)}px;\r\n padding-right: ${props => props.theme.spacing(5)}px;\r\n font-weight: ${props => props.theme.typography.fontWeightRegular};\r\n\r\n svg {\r\n color: ${props => props.theme.sidebar.color};\r\n font-size: 20px;\r\n width: 20px;\r\n height: 20px;\r\n opacity: 0.5;\r\n }\r\n\r\n &:hover {\r\n background: rgba(0, 0, 0, 0.08);\r\n }\r\n\r\n &.${props => props.activeClassName} {\r\n background-color: ${props => darken(0.05, props.theme.sidebar.background)};\r\n\r\n span {\r\n color: ${props => props.theme.sidebar.color};\r\n }\r\n }\r\n`;\r\n\r\nconst CategoryText = styled(ListItemText)`\r\n margin: 0;\r\n span {\r\n color: ${props => props.theme.sidebar.color};\r\n font-size: ${props => props.theme.typography.body1.fontSize}px;\r\n font-weight: ${props => props.theme.sidebar.category.fontWeight};\r\n padding: 0 ${props => props.theme.spacing(4)}px;\r\n }\r\n`;\r\n\r\nconst CategoryIconLess = styled(ExpandLess)`\r\n color: ${props => rgba(props.theme.sidebar.color, 0.5)};\r\n`;\r\n\r\nconst CategoryIconMore = styled(ExpandMore)`\r\n color: ${props => rgba(props.theme.sidebar.color, 0.5)};\r\n`;\r\n\r\nconst Link = styled(ListItem)`\r\n padding-left: ${props => props.theme.spacing(15)}px;\r\n padding-top: ${props => props.theme.spacing(2)}px;\r\n padding-bottom: ${props => props.theme.spacing(2)}px;\r\n\r\n span {\r\n color: ${props => rgba(props.theme.sidebar.color, 0.7)};\r\n }\r\n\r\n &:hover span {\r\n color: ${props => rgba(props.theme.sidebar.color, 0.9)};\r\n }\r\n\r\n &.${props => props.activeClassName} {\r\n background-color: ${props => darken(0.06, props.theme.sidebar.background)};\r\n\r\n span {\r\n color: ${props => props.theme.sidebar.color};\r\n }\r\n }\r\n`;\r\n\r\nconst LinkText = styled(ListItemText)`\r\n color: ${props => props.theme.sidebar.color};\r\n span {\r\n font-size: ${props => props.theme.typography.body1.fontSize}px;\r\n }\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n`;\r\n\r\nconst LinkBadge = styled(Chip)`\r\n font-size: 11px;\r\n font-weight: ${props => props.theme.typography.fontWeightBold};\r\n height: 20px;\r\n position: absolute;\r\n right: 12px;\r\n top: 8px;\r\n background: ${props => props.theme.sidebar.badge.background};\r\n\r\n span.MuiChip-label,\r\n span.MuiChip-label:hover {\r\n cursor: pointer;\r\n color: ${props => props.theme.sidebar.badge.color};\r\n padding-left: ${props => props.theme.spacing(2)}px;\r\n padding-right: ${props => props.theme.spacing(2)}px;\r\n }\r\n`;\r\n\r\nconst CategoryBadge = styled(LinkBadge)`\r\n top: 12px;\r\n`;\r\n\r\nconst SidebarSection = styled(Typography)`\r\n color: ${props => props.theme.sidebar.color};\r\n padding: ${props => props.theme.spacing(4)}px\r\n ${props => props.theme.spacing(6)}px ${props => props.theme.spacing(1)}px;\r\n opacity: 0.9;\r\n display: block;\r\n`;\r\n\r\nconst Logo = styled.img`\r\n height: 75px;\r\n margin: auto;\r\n`;\r\n\r\nfunction SidebarCategory({\r\n name,\r\n icon,\r\n classes,\r\n isOpen,\r\n isCollapsable,\r\n badge,\r\n ...rest\r\n}) {\r\n return (\r\n \r\n {icon}\r\n {name}\r\n {isCollapsable ? (\r\n isOpen ? (\r\n \r\n ) : (\r\n \r\n )\r\n ) : null}\r\n {badge ? : \"\"}\r\n \r\n );\r\n}\r\n\r\nfunction SidebarLink({ name, to, badge }) {\r\n return (\r\n \r\n {name}\r\n {badge ? : \"\"}\r\n \r\n );\r\n}\r\n\r\nfunction Sidebar({ classes, staticContext, location, ...rest }) {\r\n const { t } = useTranslation();\r\n\r\n const initOpenRoutes = () => {\r\n /* Open collapse element that matches current url */\r\n const pathName = location.pathname;\r\n\r\n let _routes = {};\r\n\r\n routes.forEach((route, index) => {\r\n const isActive = pathName.indexOf(route.path) === 0;\r\n const isOpen = route.open;\r\n const isHome = route.containsHome && pathName === \"/\" ? true : false;\r\n\r\n _routes = Object.assign({}, _routes, {[index]: isActive || isOpen || isHome})\r\n });\r\n\r\n return _routes;\r\n };\r\n\r\n const history = useHistory();\r\n const [openRoutes, setOpenRoutes] = useState(() => initOpenRoutes());\r\n\r\n const toggle = index => {\r\n // Collapse all elements\r\n Object.keys(openRoutes).forEach(\r\n item => openRoutes[index] || setOpenRoutes(openRoutes => Object.assign({}, openRoutes, {[item]: false}))\r\n )\r\n \r\n // Toggle selected element\r\n setOpenRoutes(openRoutes => Object.assign({}, openRoutes, {[index]: !openRoutes[index]}));\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {routes.map((category, index) => (\r\n \r\n {category.header ? (\r\n {category.header}\r\n ) : null}\r\n\r\n {category.children ? (\r\n \r\n toggle(index)}\r\n />\r\n\r\n \r\n {category.children.map((route, 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\n \r\n \r\n \r\n Déconnexion\r\n \r\n \r\n \r\n */}\r\n \r\n );\r\n}\r\n\r\nexport default withRouter(Sidebar);\r\n","import React, { useState } from \"react\";\r\nimport styled, { withTheme } from \"styled-components\";\r\nimport useFetch from \"../api/fetcher\";\r\nimport { connect } from \"react-redux\";\r\nimport Skeleton from '@material-ui/lab/Skeleton';\r\nimport { Link as RouterLink, withRouter, useHistory } from \"react-router-dom\";\r\n\r\nimport { removeToken } from '../api';\r\n\r\nimport {\r\n Button,\r\n Grid,\r\n Hidden,\r\n Menu,\r\n MenuItem,\r\n AppBar as MuiAppBar,\r\n IconButton as MuiIconButton,\r\n Toolbar\r\n} from \"@material-ui/core\";\r\n\r\nimport { Menu as MenuIcon, AccountCircle } from \"@material-ui/icons\";\r\n\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nimport i18n from '../i18n';\r\n\r\nconst AppBar = styled(MuiAppBar)`\r\n background: ${props => props.theme.header.background};\r\n color: ${props => props.theme.header.color};\r\n box-shadow: ${props => props.theme.shadows[1]};\r\n`;\r\n\r\nconst IconButton = styled(MuiIconButton)`\r\n margin: 0 ${props => props.theme.spacing(2)}px;\r\n\r\n svg {\r\n width: 22px;\r\n height: 22px;\r\n }\r\n`;\r\n\r\nconst Flag = styled.img`\r\n border-radius: 50%;\r\n width: 22px;\r\n height: 22px;\r\n`;\r\n\r\nconst UserButton = styled(Button)`\r\n font-size: 15px;\r\n height: 40px;\r\n`;\r\n\r\nconst AccountIcon = styled(AccountCircle)`\r\n height: 28px;\r\n width: 28px;\r\n`;\r\n\r\nfunction LanguageMenu() {\r\n const [anchorMenu, setAnchorMenu] = useState(null);\r\n\r\n const { t } = useTranslation();\r\n\r\n const toggleMenu = event => {\r\n setAnchorMenu(event.currentTarget);\r\n };\r\n\r\n const setLanguage = (lng) => {\r\n i18n.changeLanguage(lng);\r\n closeMenu();\r\n };\r\n\r\n const closeMenu = () => {\r\n setAnchorMenu(null);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n setLanguage('en')}>\r\n English\r\n \r\n setLanguage('fr')}>\r\n Français\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst UserMenu = withRouter(() => {\r\n const [anchorMenu, setAnchorMenu] = useState(null);\r\n const user = useFetch('GET', '/login/identity');\r\n\r\n const history = useHistory();\r\n\r\n const { t } = useTranslation();\r\n\r\n const toggleMenu = event => {\r\n setAnchorMenu(event.currentTarget);\r\n };\r\n\r\n const closeMenu = () => {\r\n setAnchorMenu(null);\r\n };\r\n\r\n const logout = () => {\r\n removeToken();\r\n history.push(\"/auth/login\");\r\n };\r\n\r\n return (\r\n \r\n }\r\n height={30}\r\n >\r\n {user === undefined ? : user.AccFirstName === null ? t('missing') : user.AccFirstName}\r\n \r\n \r\n \r\n {t('profile')}\r\n \r\n history.push(\"/team\")}>\r\n {t('team')}\r\n \r\n \r\n {t('disconnect')}\r\n \r\n \r\n \r\n );\r\n});\r\n\r\nconst Header = ({ onDrawerToggle }) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 connect()(withTheme(Header));\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nimport {\r\n Grid,\r\n Hidden,\r\n List,\r\n ListItemText,\r\n ListItem as MuiListItem,\r\n Typography as MuiTypography\r\n} from \"@material-ui/core\";\r\n\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst Wrapper = styled.div`\r\n padding: ${props => props.theme.spacing(1) / 4}px\r\n ${props => props.theme.spacing(4)}px;\r\n background: ${props => props.theme.palette.common.white};\r\n position: relative;\r\n`;\r\n\r\nconst ListItem = styled(MuiListItem)`\r\n display: inline-block;\r\n width: auto;\r\n padding-left: ${props => props.theme.spacing(2)}px;\r\n padding-right: ${props => props.theme.spacing(2)}px;\r\n\r\n &,\r\n &:hover,\r\n &:active {\r\n color: #000;\r\n }\r\n`;\r\n\r\nconst Typography = styled(MuiTypography)`\r\n color: ${props => props.theme.footer.color};\r\n`;\r\n\r\nfunction Footer() {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('privacy-policy')}} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {`© ${new Date().getFullYear()} - Europe Tech Group`}} />\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Footer;\r\n","import React, { useState } from \"react\";\r\nimport styled, { createGlobalStyle } from \"styled-components\";\r\n\r\nimport Sidebar from \"../components/Sidebar\";\r\nimport Header from \"../components/Header\";\r\nimport Footer from \"../components/Footer\";\r\n\r\nimport { spacing } from \"@material-ui/system\";\r\nimport {\r\n Hidden,\r\n CssBaseline,\r\n Paper as MuiPaper,\r\n withWidth\r\n} from \"@material-ui/core\";\r\n\r\nimport { isWidthUp } from \"@material-ui/core/withWidth\";\r\n\r\nconst drawerWidth = 260;\r\n\r\nconst GlobalStyle = createGlobalStyle`\r\n html,\r\n body,\r\n #root {\r\n height: 100%;\r\n }\r\n\r\n body {\r\n background: ${props => props.theme.body.background};\r\n }\r\n\r\n .MuiCardHeader-action .MuiIconButton-root {\r\n padding: 4px;\r\n width: 28px;\r\n height: 28px;\r\n }\r\n`;\r\n\r\nconst Root = styled.div`\r\n display: flex;\r\n min-height: 100vh;\r\n`;\r\n\r\nconst Drawer = styled.div`\r\n ${props => props.theme.breakpoints.up(\"md\")} {\r\n width: ${drawerWidth}px;\r\n flex-shrink: 0;\r\n }\r\n`;\r\n\r\nconst AppContent = styled.div`\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nconst Paper = styled(MuiPaper)(spacing);\r\n\r\nconst MainContent = styled(Paper)`\r\n flex: 1;\r\n background: ${props => props.theme.body.background};\r\n\r\n @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\r\n flex: none;\r\n }\r\n\r\n .MuiPaper-root .MuiPaper-root {\r\n box-shadow: none;\r\n }\r\n`;\r\n\r\nconst Dashboard = ({children, routes, width}) => {\r\n const [mobileOpen, setMobileOpen] = useState(false);\r\n\r\n const handleDrawerToggle = () => {\r\n setMobileOpen(!mobileOpen);\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 {children}\r\n \r\n