{"version":3,"sources":["assets/doc-download.svg","assets/Logo_Saur_Industrieblanc.svg","assets/icon-close_survol.svg","assets/doc-chevron.svg","assets/doc-bin.svg","assets/doc-edit.svg","assets/doc-share.svg","assets/doc-update.svg","assets/AlertIcon.svg","assets/placeholder.svg","assets/arrow.svg","assets/icon-close.svg","assets/edit.svg","assets/bin.svg","assets/chevron.svg","assets/environnement_hover.svg","assets/dirtywater_hover.svg","assets/back.svg","assets/saurBanner.png","types/authentificationstoretypes.ts","stores/siteinformation.js","stores/authentification.ts","stores/index.js","serviceWorker.js","utils/localStorage.js","utils/utils.tsx","stores/actions/authentificationActions.ts","components/login/LoginKeyCloak.tsx","constants.ts","stores/actions/ChangeSiteInformationAction.js","authentication/authProvider.ts","authentication/token.js","components/SaurHeader/SaurHeader.tsx","components/SaurLayout/navigation.js","views/CollectInformations/TableStep.js","views/CollectInformations/Categorie/AddIndicator.js","views/CollectInformations/Categorie/DeleteIndicator.js","views/CollectInformations/Categorie/DeleteValue.js","views/CollectInformations/Categorie/AddValue.js","views/CollectInformations/Categorie/Editvalue.js","views/CollectInformations/Categorie/infoCell.js","services/IndicatorServices.ts","views/CollectInformations/Categorie/WeekPicker.tsx","views/CollectInformations/Categorie.js","views/CollectInformations/CollectInformations.js","views/StepIn/Datepicker.js","views/core.js","components/VolumeWater/VolumeWater.js","components/PH/Ph.js","components/WaterQuality/WaterQuality.js","components/WaterTemperature/WaterTemperature.js","components/WasteAndUnderProduct/WasteAndUnderProduct.js","views/StepOut/StepOut.js","views/StepIn/StepIn.js","views/Documents/Modals/edit.js","views/Documents/Modals/delete.js","views/Documents/Modals/import.js","services/documentServices.js","components/Helpers/ReactTableHelper.js","views/Documents/Document.js","views/Documents/Template/Table.js","views/Documents/Modals/generate.js","views/Documents/Template/TemplateTable.js","views/Documents/Template.js","services/AlarmServices.js","services/NotyfContext.js","components/DCO/DCO.tsx","views/Home/Home.tsx","views/Documents/History/Datepicker.js","views/Documents/Modals/historyExport.js","views/Documents/History/Table.js","views/Documents/History.js","routes/index.js","components/SaurLayout/Menu.js","components/SaurLayout/SaurLayout.js","components/Providers/keycloakProvider.tsx","App.tsx","index.js"],"names":["module","exports","ReduxAuthType","initialState","siteId","nomSite","siteinformation","state","action","type","initializing","initialized","idToken","refreshToken","token","authenticated","userInfo","name","email","roles","Initializing","tokenExp","authentification","payload","LoginSuccess","LoginError","RefreshToken","Logout","allReducers","createStore","combineReducers","siteInformation","window","__REDUX_DEVTOOLS_EXTENSION__","Boolean","location","hostname","match","LocalStorage","get","localStorage","getItem","set","value","setItem","parseJwt","base64","split","replace","jsonPayload","decodeURIComponent","atob","map","c","charCodeAt","toString","slice","join","JSON","parse","parsedToken","console","log","logout","clear","connect","props","useState","width","innerWidth","height","innerHeight","windowSize","setWindowSize","loginHover","setLoginHover","loginClicked","setLoginClicked","stringify","url","process","realm","clientId","currentProvider","setCurrentProvider","keycloak","useKeycloak","isLoggedIn","dispatch","useDispatch","useEffect","loadUserInfo","then","responce","userInfos","login","resizeWindow","addEventListener","removeEventListener","buttonsContainerStyle","position","top","left","backgroundColor","borderRadius","display","justifyContent","alignItems","flexDirection","color","fontFamily","loginButtonStyle","marginBottom","fontWeight","transition","style","src","LogoReact","className","onClick","scope","onMouseEnter","onMouseLeave","transform","alignContent","marginRight","newProvider","reload","defaultChecked","marginLeft","ChangeSiteInformation","authProvider","undefined","getAuthProvider","Keycloak","initKeycloakProvider","GetAccessToken","a","listeSite","setListeSite","setNomSite","setSiteId","getListSite","onchangeSite","useCallback","fetch","appSettings","apiendpoint","Accept","Authorization","headers","result","status","json","data","libelleFr","id","Fragment","mobile","full","text","alt","minimized","Nav","navbar","UncontrolledDropdown","nav","direction","DropdownToggle","Label","fontSize","length","DropdownMenu","site","index","DropdownItem","key","size","round","right","CATEGORIES","ANALYSES","AUTRES_DOC","AUTRES_REPORT","CONTRAT","CONTROLE_REGL","CR_REU","FACTURATION","GIDAF","MAINTENANCE","METROLOGIE","REPORT_ANNU","REPORT_MENS","SECURITE","SUIVI_AGRO","SUIVI_DECHETS","TRAVAUX","NAMES","Group","to","pathname","activeClassName","REGLEMENTAIRE","CategoriesHelper","items","pathArray","paths","push","toLowerCase","getIdfromPathName","path","Error","toUpperCase","getNameFromPathName","getGroupByPathName","item","find","x","includes","Cell","column","row","values","indc","day","time","Date","locale","fr","weekStartsOn","isBeforeToday","isBefore","val","valeur","valeurLabo","v","vl","valeurSiccite","vs","unite","uniteSiccite","CellIndicator","defaultPropGetter","Table","columns","getCellProps","useTable","getTableProps","getTableBodyProps","headerGroups","rows","prepareRow","headerGroup","getHeaderGroupProps","getHeaderProps","render","getRowProps","cells","cell","TableStep","nameStep","onClickCell","week","isOpen","Collapse","cellInfo","currentDay","isIndiCell","rowInfo","date","isIndc","useMemo","accessor","Header","format","Addindicator","selectionModal","loadingModal","indicatorOptionsFiltered","handleChangeIndicator","EtapeTraitementOptions","handleChangeEtape","onCloseAll","refSlect","submitIndicator","selectionIndicatorValue","CloseButton","Modal","ModalHeader","close","ModalBody","Spinner","placeholder","options","isClearable","onChange","ref","ModalFooter","disabled","DeleteIndicator","deleteselectionModal","submitDeleteIndicator","errorMessage","handleSubmit","onSubmit","form","DeleteValue","binModal","onValidBin","data-testid","validate","getValues","AddValue","newModal","toggleValidEdit","register","errors","triggerValidation","pattern","indicateurIdSiccite","EditValue","editModal","defaultValue","InfoCell","cellModal","toggleCellModal","toggleBin","toggleEdit","loadData","domaineIdn","dateDebut","dateFin","domaineId","method","body","Promise","reject","indicateurId","postIndicateurSuivi","afficher","resolve","getUnitIndicateur","indicateurSuiviId","etapeTraitementId","fetchDonneesIndicateurPost","typeAffichage","parametreId","DateFin","IndicateurSuiviId","TypeAffichage","ParametreId","EtapeTraitementId","SiteId","moment","WeekPicker","focused","setFocused","selectedWorkWeek","setSelectedWorkWeek","selectedYear","setSelectedYear","hoveredDays","setHoveredDays","currentDate","isoWeek","year","calculateActiveWeek","mon","clone","startOf","tue","add","wed","thu","fri","sat","onFocusChange","numberOfMonths","hideKeyboardShortcutsPanel","isDayBlocked","isOutsideRange","renderCalendarDay","dayClasses","classNames","dayOfMonth","isHighlighted","forEach","hoveredDay","isDayOfMonthMatch","isMonthMatch","month","isYearMatch","isDayHighlighted","newSelectedYear","newSelectedWorkWeek","onDateChange","onDateHovered","Math","random","displayFormat","toDate","formatIndicatorToSelect","datas","label","etapeTraitement","formatEtapeTraitementToSelect","Array","from","Set","getIndicatorData","formatData","dt","stepId","indicators","indicateurs","info","infoobj","valeursIndicateurs","vi","idx","informationsIndicateur","domain","setCurrentDate","startFormated","setStartFormated","endOf","endFormated","setEndFormated","isAfterCurrentDay","setIsAfterCurrentDay","setWeek","weekStart","weekEnd","eachDayOfInterval","start","end","setLoading","setLoadDataMessage","IndicatorServices","setIndicators","catch","resp","loading","setLoadingModal","setErrorMessage","loadDataMessage","setSelectionModal","indicatorOptions","setIndicatorOptions","setindicatorOptionsFiltered","setEtapeTraitementOptions","setselectionIndicatorValue","setDeleteSelectionModal","useRef","toggleDeleteSelection","_cell","setCell","setCellModal","setNewModal","toggle_NewValue","setBinModal","setEditModal","res","dataind","finally","useForm","mode","minHeight","filter","current","select","clearValue","cellu","response","aria-label","subtract","paddingRight","paddingLeft","role","tableau","openCellModal","idtableau","GoToHistory","history","useHistory","CollectInformations","toggle","bind","activeTab","fill","tabPane","tab","newArray","this","setState","TabPane","tabId","Container","fluid","marginTop","borderBottom","tabs","NavItem","NavLink","active","href","TabContent","Component","DateRangePicker","onSubmitDate","onCancelDate","noRange","control","setError","setValue","currentLeftDay","setCurrentLeftDay","currentRightDay","setCurrentRightDay","dayInterval","startOfMonth","endOfMonth","monthInterval","eachMonthOfInterval","startOfYear","endOfYear","yearInterval","eachYearOfInterval","subYears","dayRightInterval","monthRightInterval","yearRightInterval","isExists","getFullYear","getMonth","getDate","lastDayOfMonth","as","Select","message","DatePicker","textInterval","formatedDate","setFormatedDate","openMenu","setOpenMenu","isSearchable","selectedOption","triggeredAction","classNamePrefix","menuIsOpen","openMenuOnClick","onMenuOpen","closeMenuOnSelect","closeMenuOnScroll","formatDate","StartOfWeek","diff","getDay","setDate","month_name","VolumeWater","labels","dataComparaison","moyen","DateDebut","Action","Unite","DisplayMoyen","BarVolume","datasets","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","compareGraph","LineSeuil","lineTension","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","legend","OncheckedMoyen","onChangeGraph","findIndex","seuilMax","uniteIndicateurSuivi","LoadData","GetUnitIndicateur","all","prevuProp","reset","mini","Titre","datasetKeyProvider","maintainAspectRatio","responsive","variant","checked","dataOn","dataOff","Granularite","nextProps","prevState","lineSeuilMax","lineSeuilMin","Ph","line","forceUpdate","seuilMin","prevProp","nextProp","WaterQuality","moyenCharge","charges","ListButton","UniteCharge","UniteConcentration","BarConcentration","BarCharge","chargesComparaison","OnClickButton","lineSeuilMaxCharge","lineSeuilMaxConcentration","GrandeurEvalueeId","seuilMaxCharge","moyenCharges","uniteIndicateurSuiviCharge","uniteIndicateurSuiviConcentration","GetButtonList","prevProps","ButtonToolbar","button","Button","CardColumns","Card","CardBody","GranulariteCharge","WaterTemperature","resulta","prevoProps","nextProprs","WasteAndUnderProduct","ListDechetsProduits","Loading","SetUnite","dechet","titreDechet","volume","parseInt","uniteVolume","differenceVolume","periode","titreQuantite","background","quantite","uniteQuantite","differenceQuantite","ButtonPeriodBar","CustomDate","OnClickAction","outline","CardView","volumeWater","Moyen","ph","waterTemperature","waterQuality","StepOut","dateTime","DateNow","OnClichChangeDate","OnClickActionDechet","OnClichChangeDateDechet","datedebut","datefin","datedebutDechet","datefinDechet","TextInterval","actionDechet","TextDechet","DateDebutDechet","DateFinDechet","DisableButton","DisableButtonDechet","ChangeDate","ChangeDateDechet","currentFistDayofWeek","currentLastDayofWeek","getTime","getHours","hours","minutes","seconds","StepIn","prop","Edit","onClose","openModal","tag","LibelleFr","required","Delete","e","preventDefault","Import","aria-describedby","File","CategorieDocId","PageNumber","PageSize","SortBy","SortOrder","apiendpointdocument","GetCountOfModeleDocument","categorieDocId","typeDocId","ExportFiles","listModeleDocumentId","responseType","ImportFile","CotegorieDocId","TypeDocId","formData","FormData","append","UpdateModeleDocument","modeleDocumentId","deleteModeleDocument","loadEtapeTraitement","GetIndicateursSuivisFiltre","GetHistoriqueDonnees","IndicateursSuivisIds","Releve","idDocument","parseJSON","IndeterminateCheckbox","React","forwardRef","indeterminate","rest","defaultRef","resolvedRef","Pagination","canPreviousPage","gotoPage","canNextPage","pageCount","previousPage","nextPage","pageOptions","pageIndex","isSorted","Tableau","getSortByToggleProps","isSortedDesc","toggleRowSelected","isSelected","importFile","pageSize","pageNumber","sortBy","sortOrder","onDataFetch","setImportModal","DocumentServices","onSelectedRow","hiddenColumns","desc","manualPagination","manualSortBy","defaultCanSort","disableSortRemove","disableMultiSort","useSortBy","usePagination","useRowSelect","hooks","visibleColumns","visiblecolumns","disableSortBy","getToggleAllRowsSelectedProps","getToggleRowSelectedProps","selectedFlatRows","deleteModal","setDeleteModal","importModal","Navigation","categorieDocName","GroupDocName","_data","setData","setRow","setPageCount","setPageNumber","_pageSize","setPageSize","setSortBy","setOrder","startsWith","count","ceil","loadingSubmit","setLoadingSubmit","onImport","alert","chevron","verticalAlign","update","edit","bin","filename","nomFichier","fileDownload","blob","error","onDownload","download","share","selectedrow","visiblecolumn","Generate","title","today","optionsData","rules","generateModel","TemplateTable","onDataFetchModel","fileCount","open","generateModal","setGenerateModal","loadDataDocumentModele","loadDataDocumentGeneres","importTemplateModal","setImportTemplateModal","dataModel","setDataModel","loadingModel","setLoadingModel","pageCountModel","setPageCountModel","pageNumberModel","setPageNumberModel","pageSizeModel","setPageSizeModel","sortBy_Temp","setSortBy_Temp","sortOrder_Temp","setOrder_Temp","reponse","onImportModel","rowItem","AlarmsData","apiendpointalarm","DateFine","createContext","Notyf","duration","y","dismissible","setMoyen","uniteCharge","setUniteCharge","setLine","baseLineSeuilMax","initData","newLine","titre","formatD","selected","btnLabel","getWeek","startOfWeek","endOfWeek","nbrWeeks","reducer","_payload","AlertData","dateApparition","criticite","libelleVoieFr","dateRetourOk","notify","useContext","NotifyContext","goTo","siteConfig","setSiteConfig","modal","setModal","alertData","setAlertData","modalMiddle","setModalMiddle","toggleMiddle","alertDataMiddle","setAlertDataMiddle","CloseButtonMiddle","modalOut","setModalOut","toggleOut","alertDataOut","setAlertDataOut","CloseButtonOut","useReducer","dateState","dateStateDispach","conform","setConform","charge","setCharge","IndicatorService","AlarmServices","tauxConformiteConcentration","tauxConformiteCharge","toggleCallBack","namefileExportAlarme","iconclosehover","iconenvironnementhover","icondirtywaterhover","ArrowIcon","tabIndex","AlertIcon","homePageDCOIn","PlaceHolderImg","ChevronImg","currentStartDay","setCurrentStartDay","currentEndtDay","setCurrentEndDay","HistoryExport","setDateDebut","setDateFin","setEtapeTraitementId","setIndcateursSuivisIds","releve","setReleve","releveDisabled","setReleveDisabled","dataStep","setdataStep","dataFilter","setDataFilter","exportAll","setExportAll","setloadingModal","errorDown","setErrorDown","documentService","typeDonneeId","modeRenseignementId","selRef","unmountOnClose","isMulti","removedValue","setDatas","_pageNumber","historiqueDonnees","nbrPage","DataFetch","routes","exact","component","Home","Debut","Fin","dateInterval","setDateInterval","_EtapeTraitementId","_IndicateursSuivisIds","setOpenModal","back","Document","Template","DocumentLink","setOpen","NAVIGATION","target","SaurLayout","fixed","baniereSaur","route","withRouter","KeyCloakProvider","handleOnEvent","event","handleOnTokens","tokens","authClient","onEvent","onTokens","children","iconclose","iconedit","iconbin","getState","Suspense","fallback","config","ReactDOM","store","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.6d4baee9.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/doc-download.4be09f21.svg\";","module.exports = __webpack_public_path__ + \"static/media/Logo_Saur_Industrieblanc.e9bde856.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon-close_survol.7eed2ada.svg\";","module.exports = __webpack_public_path__ + \"static/media/doc-chevron.0a910735.svg\";","module.exports = __webpack_public_path__ + \"static/media/doc-bin.991c99d1.svg\";","module.exports = __webpack_public_path__ + \"static/media/doc-edit.dd3a2551.svg\";","module.exports = __webpack_public_path__ + \"static/media/doc-share.096fde7f.svg\";","module.exports = __webpack_public_path__ + \"static/media/doc-update.fbe693fa.svg\";","module.exports = __webpack_public_path__ + \"static/media/AlertIcon.326f5cbb.svg\";","module.exports = __webpack_public_path__ + \"static/media/placeholder.35ce7027.svg\";","module.exports = __webpack_public_path__ + \"static/media/arrow.a8daaad6.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon-close.391e44ca.svg\";","module.exports = __webpack_public_path__ + \"static/media/edit.33e8378a.svg\";","module.exports = __webpack_public_path__ + \"static/media/bin.e64175fa.svg\";","module.exports = __webpack_public_path__ + \"static/media/chevron.657069d6.svg\";","module.exports = __webpack_public_path__ + \"static/media/environnement_hover.e0ee5faa.svg\";","module.exports = __webpack_public_path__ + \"static/media/dirtywater_hover.7cbbdfb5.svg\";","module.exports = __webpack_public_path__ + \"static/media/back.7d452981.svg\";","module.exports = __webpack_public_path__ + \"static/media/saurBanner.340b79a5.png\";","export enum ReduxAuthType {\n Initializing,\n LoginSuccess,\n LoginError,\n RefreshToken,\n Logout,\n}\n\nexport interface ReduxAuthState {\n initializing: boolean;\n initialized: boolean;\n idToken: string;\n refreshToken: string;\n token: string;\n tokenExp: number;\n authenticated: boolean;\n userInfo: ReduxAuthUserInfo;\n state: ReduxAuthType;\n}\n\nexport interface ReduxAuthUserInfo {\n name: string;\n email: string;\n roles: Array;\n}\n\nexport interface ReduxAuthActionPayload {\n idToken?: string;\n refreshToken?: string;\n token?: string;\n tokenExp?: number;\n userInfo?: ReduxAuthUserInfo;\n}\n\nexport interface ReduxAuthAction {\n type: ReduxAuthType;\n payload: ReduxAuthActionPayload;\n}\n","const initialState = {\n siteId: null,\n nomSite: null,\n};\n\nconst siteinformation = (state = initialState, action = { type: null }) => {\n if (action.type === \"InformationChange\") {\n return {\n ...state,\n siteId: action.siteId,\n nomSite: action.nomSite,\n };\n } else {\n return state;\n }\n};\n\nexport default siteinformation;\n","import {\n ReduxAuthAction,\n ReduxAuthState,\n ReduxAuthType,\n} from \"../types/authentificationstoretypes\";\n\nexport const initialState: ReduxAuthState = {\n initializing: false,\n initialized: false,\n idToken: \"\",\n refreshToken: \"\",\n token: \"\",\n authenticated: false,\n userInfo: {\n name: \"\",\n email: \"\",\n roles: [],\n },\n state: ReduxAuthType.Initializing,\n tokenExp: 0,\n};\n\nconst authentification = (\n state = initialState,\n action: ReduxAuthAction = {\n type: ReduxAuthType.Initializing,\n payload: {},\n }\n) => {\n switch (action.type) {\n case ReduxAuthType.Initializing:\n return {\n ...state,\n initializing: true,\n initialized: false,\n authenticated: null,\n state: action.type,\n };\n case ReduxAuthType.LoginSuccess:\n return {\n ...state,\n initializing: false,\n initialized: true,\n state: action.type,\n userInfo: action.payload.userInfo,\n idToken: action.payload.idToken,\n refreshToken: action.payload.refreshToken,\n token: action.payload.token,\n authenticated: true,\n };\n case ReduxAuthType.LoginError:\n return {\n ...state,\n initializing: false,\n initialized: true,\n state: action.type,\n };\n case ReduxAuthType.RefreshToken:\n return {\n ...state,\n token: action.payload.token,\n tokenExp: action.payload.tokenExp,\n state: action.type,\n };\n case ReduxAuthType.Logout:\n return {\n ...state,\n authenticated: false,\n state: action.type,\n idToken: \"\",\n refreshToken: \"\",\n token: \"\",\n userInfo: {\n name: \"\",\n email: \"\",\n roles: [],\n },\n };\n default:\n return state;\n }\n};\n\nexport default authentification;\n","import { createStore, combineReducers } from \"redux\";\nimport siteInformation from \"./siteinformation.js\";\nimport authentification from \"./authentification.ts\";\n\nexport const allReducers = createStore(\n combineReducers({ authentification, siteInformation }),\n window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()\n);\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n // console.log(\n // 'This web app is being served cache-first by a service ' +\n // 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n // );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n // console.log(\n // 'New content is available and will be used when all ' +\n // 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n // );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n // console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n // console.log(\n // 'No internet connection found. App is running in offline mode.'\n // );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","export const LocalStorage = {\n token: {\n get: () => localStorage.getItem(\"token\"),\n set: (value) => localStorage.setItem(\"token\", value),\n },\n idToken: {\n get: () => localStorage.getItem(\"idToken\"),\n set: (value) => localStorage.setItem(\"idToken\", value),\n },\n refreshToken: {\n get: () => localStorage.getItem(\"refreshToken\"),\n set: (value) => localStorage.setItem(\"refreshToken\", value),\n },\n userInfo: {\n email: {\n get: () => localStorage.getItem(\"userInfo.email\"),\n set: (value) => localStorage.setItem(\"userInfo.email\", value),\n },\n name: {\n get: () => localStorage.getItem(\"userInfo.name\"),\n set: (value) => localStorage.setItem(\"userInfo.name\", value),\n },\n roles: {\n get: () => localStorage.getItem(\"userInfo.roles\"),\n set: (value) => localStorage.setItem(\"userInfo.roles\", value),\n },\n },\n ssoResponse: {\n get: () => localStorage.getItem(\"sso-response\"),\n set: (value) => localStorage.setItem(\"sso-response\", value),\n },\n};\n","export function parseJwt(token: string) {\n if (typeof token === \"undefined\") return {};\n var base64Url = token.split(\".\")[1];\n var base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n var jsonPayload = decodeURIComponent(\n atob(base64)\n .split(\"\")\n .map(function (c) {\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(\"\")\n );\n\n return JSON.parse(jsonPayload);\n}\n\nexport async function logoutRequest(refreshToken: string): Promise {\n const TOKEN_URL = \"/logout\";\n\n const body: any = {\n refresh_token: refreshToken,\n client_id: \"NEXTEP-KEYCLOAK-DEV\", //process.env.REACT_APP_KEYCLOAK_NEXTEP_CLIENT_ID,\n };\n\n var formBody = [];\n for (var property in body) {\n var encodedKey = encodeURIComponent(property);\n var encodedValue = encodeURIComponent(body[property]);\n formBody.push(encodedKey + \"=\" + encodedValue);\n }\n const stringBody = formBody.join(\"&\");\n\n fetch(\n `${\n process.env.REACT_APP_KEYCLOAK_REALM_NEXTEP_URL\n }/protocol/openid-connect/logout&redirect_uri=${encodeURIComponent(\n window.origin\n )}`,\n {\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n body: stringBody,\n method: \"POST\",\n }\n )\n .then((e) => {\n console.log(e);\n })\n .catch((e) => {\n console.log(e);\n });\n return Promise.resolve();\n}\n","// import { SsoResponse } from \"../../interfaces/ssoResponse\";\nimport { ReduxAuthType } from \"../../types/authentificationstoretypes\";\nimport { LocalStorage } from \"../../utils/localStorage\";\nimport { parseJwt } from \"../../utils/utils\";\nimport Keycloak from \"keycloak-js\";\nimport { useKeycloak } from \"@react-keycloak/web\";\n\nexport const login = (responce: Keycloak, userInfos: any) => {\n const parsedToken = parseJwt(responce.token!);\n LocalStorage.token.set(responce.token ?? \"\");\n LocalStorage.refreshToken.set(responce.refreshToken ?? \"\");\n console.log(\"responce\", responce);\n console.log(\"parsedToken\", parsedToken);\n return {\n type: ReduxAuthType.LoginSuccess,\n payload: {\n token: responce.token,\n userInfo: {\n name: userInfos.email, //responce.profile.preferred_username,\n email: userInfos.email,\n roles: userInfos.roles,\n },\n refreshToken: responce.refreshToken,\n },\n };\n};\n\nexport const refreshToken = (token: string, refreshToken: string) => {\n try {\n const parsedToken = parseJwt(token!);\n LocalStorage.token.set(token ?? \"\");\n LocalStorage.refreshToken.set(refreshToken ?? \"\");\n console.log(\"refreshToken\", token);\n return {\n type: ReduxAuthType.LoginSuccess,\n payload: {\n token: token,\n userInfo: {\n name: parsedToken.email, //profile.preferred_username,\n email: parsedToken.email,\n roles: parsedToken.roles,\n },\n refreshToken: refreshToken,\n },\n };\n } catch {\n logout();\n }\n};\n\nexport const logout = () => {\n localStorage.setItem(\"logginWith\", \"\");\n localStorage.clear();\n return {\n type: ReduxAuthType.Initializing,\n payload: {},\n };\n};\n\nexport {};\n","import React, { FC, useEffect, useState } from \"react\";\nimport { connect, useDispatch } from \"react-redux\";\nimport { useKeycloak } from \"@react-keycloak/web\";\nimport { login } from \"../../stores/actions/authentificationActions\";\nimport \"./LoginKeyCloak.css\";\nimport { KeyCloakProvider } from \"../../interfaces/keycloakProvider\";\nimport { getAuthProvider } from \"../../authentication/authProvider\";\nimport LogoReact from \"../../assets/Logo_Saur_Industrieblanc.svg\";\nimport { KeycloakLoginOptions } from \"keycloak-js\";\nimport { saurYellow } from \"../../constants\";\n\ntype LoginKeyCloakProps = {};\n\nconst LoginKeyCloak: FC = (props: LoginKeyCloakProps) => {\n const [windowSize, setWindowSize] = useState<{\n width: number;\n height: number;\n }>({ width: window.innerWidth, height: window.innerHeight });\n const [loginHover, setLoginHover] = useState(false);\n const [loginClicked, setLoginClicked] = useState(false);\n const [currentProvider, setCurrentProvider] = useState(\n JSON.parse(\n localStorage.getItem(\"provider\") ??\n JSON.stringify({\n url: process.env.REACT_APP_URL_KEYCLOAK,\n realm: process.env.REACT_APP_KEYCLOAK_REALM,\n clientId: process.env.REACT_APP_KEYCLOAK_NEXTEP_CLIENT_ID,\n })\n )\n );\n // at start, launching athentification\n // at first launch, authentification is not good, that's why whe authentificated with hence useEffect\n const { keycloak } = useKeycloak();\n const isLoggedIn = keycloak.authenticated;\n\n const dispatch = useDispatch();\n // trigger opening site when sign in is good\n useEffect(() => {\n if (isLoggedIn) {\n localStorage.setItem(\"logginWith\", \"keyCloak\");\n // get user infos for props of nextep\n keycloak.loadUserInfo().then((userInfo: any) => {\n dispatch(login(keycloak, userInfo));\n });\n }\n const resizeWindow = () => {\n setWindowSize({ width: window.innerWidth, height: window.innerHeight });\n };\n window.addEventListener(\"resize\", resizeWindow);\n return () => {\n window.removeEventListener(\"resize\", resizeWindow);\n };\n }, [isLoggedIn]);\n const buttonsContainerStyle: React.CSSProperties = {\n position: \"fixed\",\n top: windowSize.height / 2 - 200 + \"px\",\n left: windowSize.width / 2 - 150 + \"px\",\n width: \"300px\",\n height: \"250px\",\n backgroundColor: saurYellow,\n borderRadius: \"2px\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexDirection: \"column\",\n color: \"white\",\n fontFamily: \"Verdana\",\n };\n const loginButtonStyle: React.CSSProperties = {\n width: \"150px\",\n height: \"40px\",\n backgroundColor: loginHover ? \"#9e8b8b\" : \"#675d5d\",\n marginBottom: \"16px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontWeight: \"500\",\n transition: \"background-color 0.25s\",\n };\n\n const toogleProvider = () => {\n const newProvider: KeyCloakProvider = {\n url: process.env.REACT_APP_URL_KEYCLOAK ?? \"\",\n realm: process.env.REACT_APP_KEYCLOAK_REALM ?? \"\",\n clientId:\n currentProvider.clientId !==\n process.env.REACT_APP_KEYCLOAK_NEXTEP_CLIENT_ID\n ? process.env.REACT_APP_KEYCLOAK_NEXTEP_CLIENT_ID ?? \"\"\n : process.env.REACT_APP_KEYCLOAK_NEXTEP_CLIENT_ID_INTERNE ?? \"\",\n };\n\n localStorage.setItem(\"provider\", JSON.stringify(newProvider));\n setCurrentProvider(newProvider);\n window.location.reload();\n };\n\n return (\n
\n \n {\n keycloak.login({\n scope: process.env.REACT_APP_KEYCLOAK_NEXTEP_CLIENT_SCOPE,\n });\n localStorage.setItem(\"logginWith\", \"keyCloak\");\n setLoginClicked(true);\n }}\n onMouseEnter={() => {\n setLoginHover(true);\n }}\n onMouseLeave={() => {\n setLoginHover(false);\n }}\n >\n {!loginClicked ? (\n <>Login\n ) : (\n
\n
\n
\n
\n
\n
\n )}\n
\n \n \n Externe\n

\n \n \n Interne\n

\n \n \n );\n};\n\nexport default connect((state) => state)(LoginKeyCloak);\n","import { SiteConfig } from \"./types/api/siteConfig\";\n\nexport const baseSiteConfig: SiteConfig = {\n homePageDCOIn: \"NE4\",\n homePageDCOOut: \"NE5\",\n};\n\nexport const saurYellow: string = \"#FFCD00\";\nexport const saurDarkBlue: string = \"#0a3c5c\";\n","export const ChangeSiteInformation = (siteId, nomSite) => {\n return {\n type: \"InformationChange\",\n siteId: siteId,\n nomSite: nomSite,\n };\n};\n","import { OktaAuth } from \"@okta/okta-auth-js\";\nimport Keycloak from \"keycloak-js\";\nimport { KeyCloakProvider } from \"../interfaces/keycloakProvider\";\nimport { LocalStorage } from \"../utils/localStorage\";\nimport { allReducers } from \"../stores/index\";\nimport { ReduxAuthType } from \"../types/authentificationstoretypes\";\n\nlet authProvider: Keycloak | undefined = undefined;\n\nconst tokenCallback = (keycloak: Keycloak) => {\n LocalStorage.token.set(keycloak.token);\n LocalStorage.refreshToken.set(keycloak.refreshToken);\n LocalStorage.userInfo.roles.set(keycloak.tokenParsed?.realm_access?.roles);\n LocalStorage.userInfo.email.set(keycloak.tokenParsed?.email);\n LocalStorage.userInfo.name.set(keycloak.tokenParsed?.name);\n};\n\nconst initKeycloakProvider = (): Keycloak => {\n const keycloak = new Keycloak(\n JSON.parse(\n localStorage.getItem(\"provider\") ??\n JSON.stringify({\n url: process.env.REACT_APP_URL_KEYCLOAK,\n realm: process.env.REACT_APP_KEYCLOAK_REALM,\n clientId: process.env.REACT_APP_KEYCLOAK_NEXTEP_CLIENT_ID,\n })\n )\n );\n return keycloak;\n};\n\nexport const getAuthProvider = (): Keycloak => {\n // eslint-disable-next-line no-undef\n if (typeof authProvider === \"undefined\") {\n authProvider = initKeycloakProvider();\n }\n return authProvider;\n};\n","import { ReduxAuthState } from \"../types/authentificationstoretypes\";\nimport { getAuthProvider } from \"./authProvider\";\n\nexport async function GetAccessToken(authentification) {\n if (!authentification) return \"\";\n if (authentification.token) {\n return authentification.token;\n } else {\n return localStorage.token;\n }\n}\n","import React, { Component, useCallback, useEffect, useState } from \"react\";\nimport { connect, useDispatch } from \"react-redux\";\nimport {\n DropdownItem,\n DropdownMenu,\n DropdownToggle,\n Nav,\n UncontrolledDropdown,\n Label,\n} from \"reactstrap\";\nimport { ChangeSiteInformation } from \"../../stores/actions/ChangeSiteInformationAction.js\";\n//@ts-ignore\nimport { AppNavbarBrand, AppSidebarToggler } from \"@coreui/react\";\nimport { logout } from \"../../stores/actions/authentificationActions\";\n\nimport LogoReact from \"../../assets/Logo_Saur_Industrieblanc.svg\";\nimport Avatar from \"react-avatar\";\nimport \"./SaurHeader.css\";\nimport { GetAccessToken } from \"../../authentication/token\";\nimport { logoutRequest } from \"../../utils/utils\";\nimport { LocalStorage } from \"../../utils/localStorage\";\nimport { useKeycloak } from \"@react-keycloak/web\";\nimport { ReduxAuthState } from \"../../types/authentificationstoretypes\";\nimport { SiteInformation } from \"../../types/siteInformation\";\n\ninterface SaurHeaderProps {\n authentification: ReduxAuthState;\n siteInformation: SiteInformation;\n}\n\ninterface Site {\n id: string;\n libelleFr: string;\n}\n\nconst SaurHeader = (props: SaurHeaderProps) => {\n const { keycloak } = useKeycloak();\n const dispatch = useDispatch();\n\n const [listeSite, setListeSite] = useState([]);\n const [nomSite, setNomSite] = useState(\"\");\n const [siteId, setSiteId] = useState(\"\");\n\n useEffect(() => {\n getListSite();\n }, []);\n\n const onchangeSite = async (siteId: string, nomSite: string) => {\n setNomSite(nomSite);\n setSiteId(siteId);\n await dispatch(ChangeSiteInformation(siteId, nomSite));\n };\n\n // On click logout\n const onClick = async () => {\n keycloak.logout();\n localStorage.setItem(\"logginWith\", \"\");\n await dispatch(logout());\n };\n\n const getListSite = useCallback(async () => {\n try {\n let result = await fetch(\n `${(window as any).appSettings.apiendpoint}/Site`,\n {\n headers: {\n Accept: \"application/json\",\n Authorization: `Bearer ${await GetAccessToken(\n props.authentification\n )}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n if (result.status === 200) {\n let data = await result.json();\n setListeSite(data);\n setNomSite(data[0].libelleFr);\n setSiteId(data[0].id);\n await dispatch(ChangeSiteInformation(data[0].id, data[0].libelleFr));\n }\n } catch (ex) {}\n }, []);\n\n return (\n \n \n \n \n
\n \n
\n \n
\n );\n};\n\nexport default connect((state) => state)(SaurHeader);\n","import React from 'react';\nimport { NavLink } from 'react-router-dom';\n\n\n\nexport const CATEGORIES = {\n ANALYSES: \"ANALYSES\",\n AUTRES_DOC: \"AUTRES_DOC\",\n AUTRES_REPORT: \"AUTRES_REPORT\",\n CONTRAT: \"CONTRAT\",\n CONTROLE_REGL: \"CONTROLE_REGL\",\n CR_REU: \"CR_REU\",\n FACTURATION: \"FACTURATION\",\n GIDAF: \"GIDAF\",\n MAINTENANCE: \"MAINTENANCE\",\n METROLOGIE: \"METROLOGIE\",\n REPORT_ANNU: \"REPORT_ANNU\",\n REPORT_MENS: \"REPORT_MENS\",\n SECURITE: \"SECURITE\",\n SUIVI_AGRO: \"SUIVI_AGRO\",\n SUIVI_DECHETS: \"SUIVI_DECHETS\",\n TRAVAUX: \"TRAVAUX\",\n}\n\nexport const NAMES = {\n ANALYSES: \"analyses\",\n AUTRES_DOC: \"autres documents contractuels\",\n AUTRES_REPORT: \"reporting - autres\",\n CONTRAT: \"contrat\",\n CONTROLE_REGL: \"contrôles réglementaires\",\n CR_REU: \"Comptes rendus de réunion\",\n FACTURATION: \"facturation\",\n GIDAF: \"gidaf\",\n MAINTENANCE: \"maintenance\",\n METROLOGIE: \"métrologie\",\n REPORT_ANNU: \"Rapports annuels​\",\n REPORT_MENS: \"Rapports mensuels\",\n SECURITE: \"sécurité\",\n SUIVI_AGRO: \"suivi agronomique\",\n SUIVI_DECHETS: \"bordereaux de suivi de déchets\",\n TRAVAUX: \"travaux\",\n}\n\n\nexport const Group = [\n { value:[\"/analyses\",\"/controle_regl\",\"/metrologie\",\"/suivi_agro\",\"/suivi_dechets\", \"/gidaf\"], name:\"Suivi Réglementaire (ICPE)\"},\n { value:[\"/contrat\", \"/facturation\", \"/autres_doc\"], name:\"Documents contractuels\"},\n { value:[\"/securite\"], name:\"Sécurité\"},\n { value:[ \"/travaux\", \"/maintenance\"], name:\"Travaux et maintenance\"},\n { value:[\"/report_annu\",\"/report_mens\",\"/cr_reu\", \"/autres_report\"], name:\"Reporting\"},\n]\n\n\nexport const ANALYSES = () => ()\nexport const METROLOGIE = () => \nexport const SUIVI_AGRO = () => \nexport const SUIVI_DECHETS = () => \nexport const GIDAF = () => \nexport const TRAVAUX = () => \nexport const MAINTENANCE = () => \nexport const CONTRAT = () => \nexport const FACTURATION = () => \nexport const AUTRES_DOC = () => \nexport const REPORT_ANNU = () => \nexport const REPORT_MENS = () => \nexport const CR_REU = () => \nexport const AUTRES_REPORT = () => \nexport const REGLEMENTAIRE = () => \nexport const SECURITE = () => \n\n\n//return la liste des categories formatées en tableau pathArray = [/analyses, /autres_doc,...] \n// ou en objet paths={ ANALYSES: \"/analyses\", AUTRES_DOC: \"/autre_doc\",...} \nexport function CategoriesHelper() {\n const items = { ...CATEGORIES }\n const pathArray = [];\n const paths = {};\n\n for (var key in items) {\n pathArray.push(`/${items[key]}`.toLowerCase());\n paths[key] = `/${items[key]}`.toLowerCase();\n }\n\n return { pathArray, paths };\n}\n\nexport function getIdfromPathName(path = \"\") {\n if (path === null) { throw new Error(\"le paramètre est null\") }\n return path.replace('/', '').toUpperCase();\n}\n\n//récupère le nom du document en se basant sur l'url\nexport function getNameFromPathName(path = \"\") {\n if (path === null) { throw new Error(\"le paramètre est null\") }\n const name = NAMES[path.replace('/', '').toUpperCase()];\n return `${name === undefined ? \"\" : name}`.toUpperCase();\n}\n\n//récupère le nom du groupe de l'item en se basant sur l'url\nexport function getGroupByPathName(pathname){\n const item = Group.find(x=> x.value.includes(pathname));\n return item ? item.name : \"\";\n}","import React, { useMemo, useState } from \"react\";\nimport { useTable } from \"react-table\";\nimport { format, parse, isBefore } from \"date-fns\";\nimport { fr } from \"date-fns/locale\";\nimport \"./collect.scss\";\nimport { Collapse } from \"reactstrap\";\n\n//Composant pour afficher le tableau\n\nexport function Cell(props = {}) {\n const { value = {}, column = {}, row = { values: { indc: \"\" } } } = props;\n const indc = row.values.indc;\n const day = parse(column.time, \"P\", new Date(), {\n locale: fr,\n weekStartsOn: 1,\n });\n const isBeforeToday = isBefore(day, new Date());\n\n let val = \"\";\n\n if (value && value.valeur && value.valeurLabo) {\n val = { v: \"(routine)\", vl: \"(agréée)\" };\n }\n\n if (value && value.valeur && value.valeurSiccite) {\n val = { v: \"(quantité)\", vs: \"(siccité)\" };\n }\n return (\n value && (\n \n {isBeforeToday && value && value.valeur && (\n
\n
{`${value.valeur} ${\n indc.unite === null ? \"\" : indc.unite\n }`}
{\" \"}\n
\n {val.v}{\" \"}\n
\n
\n )}\n {isBeforeToday && value && value.valeurLabo && (\n
\n
\n {\" \"}\n {`${value.valeurLabo} ${\n indc.unite === null ? \"\" : indc.unite\n }`}{\" \"}\n
{\" \"}\n
\n {\" \"}\n {val.vl}\n
\n
\n )}\n {isBeforeToday && value && value.valeurSiccite && (\n
\n
\n {\" \"}\n {`${value.valeurSiccite} ${\n indc.uniteSiccite === null ? \"\" : indc.uniteSiccite\n }`}\n
\n
\n {val.vs}\n
\n
\n )}\n \n )\n );\n}\n\nexport function CellIndicator({ value = { libelleFr: \"\" } }) {\n return
{value.libelleFr}
;\n}\n\nexport const defaultPropGetter = () => ({});\n\nexport function Table({\n columns = [],\n data = [],\n getCellProps = defaultPropGetter,\n}) {\n const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } =\n useTable({\n columns,\n data,\n });\n\n return (\n <>\n \n \n {headerGroups.map((headerGroup) => (\n \n {headerGroup.headers.map((column) => (\n \n ))}\n \n ))}\n \n \n {rows.map((row) => {\n prepareRow(row);\n return (\n \n {row.cells.map((cell) => {\n return (\n \n {cell.render(\"Cell\")}\n \n );\n })}\n \n );\n })}\n \n
\n {column.render(\"Header\")}\n
\n \n );\n}\n\nexport default function TableStep({\n nameStep = \"\",\n data = [],\n onClickCell = () => {},\n week = [],\n}) {\n const [isOpen] = useState(true);\n\n //dans le cas ou on veut rajoute la ligne supplémentaire\n const columns = () => [\n {\n accessor: `indc`,\n Header: \"Indicateur\",\n Cell: CellIndicator,\n },\n ...week.map((day, index) => ({\n Cell: Cell,\n accessor: `id${index}`,\n Header: format(day, \"eee d MMM\", { locale: fr }),\n time: format(day, \"P\", { locale: fr }),\n })),\n ];\n\n return (\n
\n {}}>\n {nameStep}\n \n \n ({\n onClick: () => {\n const currentDay = parse(\n cellInfo.column.time,\n \"dd/MM/yyyy\",\n new Date(),\n { locale: fr }\n );\n const isIndiCell = cellInfo.column.id === \"indc\";\n if (isBefore(currentDay, new Date()) || isIndiCell) {\n onClickCell({\n cellInfo: cellInfo.value,\n rowInfo: cellInfo.row.values.indc,\n date: cellInfo.column.time,\n isIndc: cellInfo.column.id === \"indc\",\n });\n }\n },\n })}\n columns={useMemo(columns, [])}\n data={data}\n />\n \n
\n );\n}\n","import React from \"react\";\nimport {\n Modal,\n ModalHeader,\n ModalBody,\n ModalFooter,\n Spinner,\n} from \"reactstrap\";\nimport Select from \"react-select\";\n\nexport default function Addindicator({\n selectionModal,\n loadingModal,\n indicatorOptionsFiltered,\n handleChangeIndicator,\n EtapeTraitementOptions,\n handleChangeEtape,\n onCloseAll,\n refSlect,\n submitIndicator,\n selectionIndicatorValue,\n}) {\n const CloseButton = (\n
\n \n
\n );\n\n return (\n \n \n \n \n \n {loadingModal ? (\n
\n \n
\n ) : (\n
\n \n \n
\n )}\n
\n \n \n Annuler\n \n \n Valider\n \n \n
\n );\n}\n","import React from \"react\";\nimport {\n Modal,\n ModalHeader,\n ModalBody,\n ModalFooter,\n Spinner,\n} from \"reactstrap\";\n\nexport default function DeleteIndicator({\n deleteselectionModal,\n cell,\n submitDeleteIndicator,\n loadingModal,\n errorMessage,\n onCloseAll,\n handleSubmit = () => {},\n}) {\n const CloseButton = (\n
\n \n
\n );\n\n return (\n \n \n \n submitDeleteIndicator(data, cell))}\n >\n
\n {`Êtes-vous sûr(e) de vouloir supprimer l'indicateur ${\n cell && cell.cellInfo && cell.cellInfo.libelleFr\n } ?`}\n
\n {loadingModal && (\n
\n \n
\n )}\n {errorMessage && (\n

\n {errorMessage}\n

\n )}\n \n
\n \n \n Non\n \n \n Oui\n \n \n
\n );\n}\n","import React, { } from 'react';\nimport { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\n\n\n\n\n\nexport default function DeleteValue ({onCloseAll,binModal,handleSubmit=()=>{}, onValidBin , loadingModal , cell}){\n \n const CloseButton = (\n
\n \n
\n )\n\n return ( \n {cell && cell.rowInfo && cell.rowInfo.libelleFr}\n \n
onValidBin(data, cell))}>\n
\n Êtes-vous sûr(e) de vouloir supprimer cette donnée ?\n
\n
\n
\n \n \n \n \n
)\n}","import React from \"react\";\nimport {\n Modal,\n ModalHeader,\n ModalBody,\n ModalFooter,\n Spinner,\n} from \"reactstrap\";\n\nexport const validate = (getValues) => (value) => {\n const { valeurLabo = \"\", valeurSiccite = \"\" } = getValues();\n\n if (valeurLabo !== \"\" || value !== \"\" || valeurSiccite !== \"\") {\n return true;\n }\n\n return false;\n};\n\nexport default function AddValue({\n newModal,\n toggleValidEdit,\n handleSubmit = () => {},\n register = () => {},\n loadingModal,\n cell,\n errors,\n errorMessage,\n onCloseAll,\n getValues,\n triggerValidation,\n}) {\n const CloseButton = (\n
\n \n
\n );\n\n return (\n \n \n \n \n \n \n toggleValidEdit(data, cell))}\n >\n
\n
\n {\n // const { valeurLabo = \"\", valeurSiccite = \"\" } = getValues();\n\n // if (valeurLabo !== \"\" || value !== \"\" || valeurSiccite !== \"\") {\n // return true\n // }\n\n // return false;\n\n // }\n pattern: /^\\d*((,)\\d+)?$/,\n })}\n />{\" \"}\n {cell && cell.rowInfo && cell.rowInfo.unite}\n
\n {cell && cell.rowInfo && cell.rowInfo.indicateurIdSiccite && (\n
\n {\n triggerValidation();\n }}\n placeholder=\"Valeur de siccite\"\n name=\"valeurSiccite\"\n className={`edit-input ${\n errors && errors.valeurSiccite ? \"error-field\" : \"\"\n } `}\n ref={register({ pattern: /^\\d*((,)\\d+)?$/ })}\n />{\" \"}\n {cell && cell.rowInfo && cell.rowInfo.uniteSiccite}\n
\n )}\n {cell && cell.rowInfo && cell.rowInfo.valeurLabo && (\n
\n {\n triggerValidation();\n }}\n placeholder=\"Valeur analyse agréée\"\n name=\"valeurLabo\"\n className={`edit-input ${\n errors && errors.valeurLabo ? \"error-field\" : \"\"\n } `}\n ref={register({ pattern: /^\\d*((,)\\d+)?$/ })}\n />{\" \"}\n {cell && cell.rowInfo && cell.rowInfo.unite}\n
\n )}\n {loadingModal && (\n
\n \n
\n )}\n {errorMessage && (\n

\n {errorMessage}\n

\n )}\n
\n \n
\n \n \n Annuler\n \n \n Valider\n \n \n
\n );\n}\n","import React from \"react\";\nimport {\n Modal,\n ModalHeader,\n ModalBody,\n ModalFooter,\n Spinner,\n} from \"reactstrap\";\nimport { validate } from \"./AddValue\";\n\nexport default function EditValue({\n editModal,\n toggleValidEdit,\n cell,\n loadingModal,\n errorMessage,\n register = () => {},\n errors,\n onCloseAll,\n handleSubmit = () => {},\n getValues,\n triggerValidation,\n}) {\n const CloseButton = (\n
\n \n
\n );\n\n return (\n \n \n \n \n \n \n toggleValidEdit(data, cell))}\n >\n \n
\n {\" \"}\n {cell && cell.rowInfo && cell.rowInfo.unite}\n
\n {cell && cell.rowInfo && cell.rowInfo.valeurLabo && (\n \n )}\n
\n {cell && cell.rowInfo && cell.rowInfo.valeurLabo && (\n {\n triggerValidation();\n }}\n placeholder=\"Valeur analyse agréée\"\n disabled={loadingModal}\n ref={register({ pattern: /^\\d*((,)\\d+)?$/ })}\n className={`edit-input ${\n errors && errors.valeurLabo ? \"error-field\" : \"\"\n } `}\n defaultValue={cell && cell.cellInfo && cell.cellInfo.valeurLabo}\n />\n )}\n {cell &&\n cell.rowInfo &&\n cell.rowInfo.valeurLabo &&\n cell.rowInfo.unite}\n
\n {cell && cell.rowInfo && cell.rowInfo.indicateurIdSiccite && (\n \n )}\n
\n {cell && cell.rowInfo && cell.rowInfo.indicateurIdSiccite && (\n {\n triggerValidation();\n }}\n name=\"valeurSiccite\"\n disabled={loadingModal}\n ref={register({ pattern: /^\\d*((,)\\d+)?$/ })}\n className={`edit-input ${\n errors && errors.valeurSiccite ? \"error-field\" : \"\"\n } `}\n defaultValue={\n cell && cell.cellInfo && cell.cellInfo.valeurSiccite\n }\n />\n )}\n {cell &&\n cell.rowInfo &&\n cell.rowInfo.indicateurIdSiccite &&\n cell.rowInfo.uniteSiccite}\n
\n {loadingModal && (\n
\n \n
\n )}\n {errorMessage && (\n

\n {errorMessage}\n

\n )}\n \n
\n \n \n Valider\n \n \n
\n );\n}\n","import React from \"react\";\nimport { Modal, ModalHeader, ModalBody, ModalFooter } from \"reactstrap\";\n\nexport default function InfoCell({\n cellModal,\n cell,\n toggleCellModal,\n onCloseAll,\n toggleBin,\n toggleEdit,\n}) {\n const CloseButton = (\n
\n \n \n \n
\n );\n\n return (\n \n \n \n \n \n \n
\n {cell && cell.cellInfo && cell.cellInfo.valeur && (\n
\n {\" \"}\n \n Valeur:\n {\" \"}\n {`${cell && cell.cellInfo && cell.cellInfo.valeur} ${\n cell && cell.rowInfo && cell.rowInfo.unite === null\n ? \"\"\n : cell.rowInfo.unite\n }`}{\" \"}\n
\n )}\n {cell && cell.cellInfo && cell.cellInfo.valeurLabo && (\n
\n \n Valeur analyse agréée:\n {\" \"}\n {`${cell && cell.cellInfo && cell.cellInfo.valeurLabo} ${\n cell && cell.rowInfo && cell.rowInfo.unite === null\n ? \"\"\n : cell.rowInfo.unite\n }`}{\" \"}\n
\n )}\n {cell && cell.cellInfo && cell.cellInfo.valeurSiccite && (\n
\n \n Valeur de siccite:\n {\" \"}\n {`${cell && cell.cellInfo && cell.cellInfo.valeurSiccite} ${\n cell && cell.rowInfo && cell.rowInfo.uniteSiccite === null\n ? \"\"\n : cell.rowInfo.uniteSiccite\n }`}{\" \"}\n
\n )}\n
\n
\n \n {\n toggleCellModal();\n }}\n >\n Valider\n \n \n
\n );\n}\n","import { GetAccessToken } from \"../authentication/token\";\nimport { DonneesIndicateurCollectionModel } from \"../types/api/donneesIndicateurs/donneesIndicateurCollectionModel\";\nimport { DonneesIndicateurConsolideeModel } from \"../types/api/donneesIndicateurs/donneesIndicateurConsolideeModel\";\nimport { DonneesIndicateurPostModel } from \"../types/api/donneesIndicateurs/donneesIndicateurPostModel\";\nimport { DonneesIndicateurSuiviByDomainModel } from \"../types/api/donneesIndicateurs/donneesIndicateurSuiviByDomainModel\";\nimport { DonneesIndicateurSuiviModel } from \"../types/api/donneesIndicateurs/donneesIndicateurSuiviModel\";\nimport { DonneesIndicateurSuiviUnitModel } from \"../types/api/donneesIndicateurs/donneesIndicateurSuiviUnitModel\";\nimport { SiteConfig } from \"../types/api/siteConfig\";\nimport { ReduxAuthState } from \"../types/authentificationstoretypes\";\nimport { SiteInformation } from \"../types/siteInformation\";\n\nexport async function loadData(\n authentification: ReduxAuthState,\n { siteId, domaineIdn, dateDebut, dateFin }: DonneesIndicateurCollectionModel\n) {\n try {\n let result = await fetch(\n `${\n (window as any).appSettings.apiendpoint\n }/DonneeIndicateur/GetIndicateursCollections`,\n {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n siteId: siteId,\n domaineId: domaineIdn,\n dateDebut: dateDebut,\n dateFin: dateFin,\n }),\n }\n );\n\n if (result.status === 200) {\n return await result.json();\n }\n\n if (result.status === 204) {\n return await [];\n }\n\n return Promise.reject(\"Erreur serveur\");\n } catch (ex) {\n return Promise.reject(\"Erreur serveur\");\n }\n}\n\nexport async function editData(\n authentification: ReduxAuthState,\n {\n siteId,\n indicateurId,\n valeur,\n valeurLabo,\n date,\n indicateurIdSiccite,\n valeurSiccite,\n }: DonneesIndicateurConsolideeModel\n) {\n try {\n return await fetch(\n `${\n (window as any).appSettings.apiendpoint\n }/DonneeIndicateur/AddOrUpdateDonneeIndicateurConsolidees`,\n {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n siteId: siteId ?? \"\",\n indicateurId: indicateurId ?? \"\",\n valeur: valeur ?? \"\",\n valeurLabo: valeurLabo ?? \"\",\n date: date ?? \"\",\n indicateurIdSiccite: indicateurIdSiccite ?? \"\",\n valeurSiccite: valeurSiccite ?? \"\",\n }),\n }\n );\n } catch (ex) {\n return Promise.reject(\"Erreur serveur\");\n }\n}\n\nexport async function deleteData(\n authentification: ReduxAuthState,\n {\n siteId,\n indicateurId,\n valeur,\n valeurLabo,\n date,\n indicateurIdSiccite,\n valeurSiccite,\n }: DonneesIndicateurConsolideeModel\n) {\n try {\n return await fetch(\n `${\n (window as any).appSettings.apiendpoint\n }/DonneeIndicateur/DeleteDonneeIndicateurConsolidees`,\n {\n method: \"DELETE\",\n headers: {\n Accept: \"application/json\",\n\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n siteId: siteId ?? \"\",\n indicateurId: indicateurId ?? \"\",\n valeur: valeur ?? \"\",\n valeurLabo: valeurLabo ?? \"\",\n date: date ?? \"\",\n indicateurIdSiccite: indicateurIdSiccite ?? \"\",\n valeurSiccite: valeurSiccite ?? \"\",\n }),\n }\n );\n } catch (ex) {\n return Promise.reject(\"Erreur serveur\");\n }\n}\n\nexport async function loadDataIndicateurSuivi(\n authentification: ReduxAuthState,\n { siteId, domaineId }: DonneesIndicateurSuiviByDomainModel\n) {\n try {\n return await fetch(\n `${\n (window as any).appSettings.apiendpoint\n }/IndicateurSuivi/GetIndicateurs/${siteId}/${domaineId}`,\n {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n } catch (ex) {\n return Promise.reject(\"Erreur serveur\");\n }\n}\n\nexport async function loadEtapeTraitement(\n authentification: ReduxAuthState,\n { siteId, domaineId }: DonneesIndicateurSuiviByDomainModel\n) {\n try {\n return await fetch(\n `${(window as any).appSettings.apiendpoint}/EtapeTraitement/${siteId}${\n domaineId !== undefined ? \"/\" + domaineId : \"\"\n }`,\n {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n } catch (ex) {\n return Promise.reject(\"Erreur serveur\");\n }\n}\n\nexport async function postIndicateurSuivi(\n authentification: ReduxAuthState,\n { siteId, indicateurId, afficher }: DonneesIndicateurSuiviModel\n) {\n try {\n return await fetch(\n `${(window as any).appSettings.apiendpoint}/IndicateurSuivi`,\n {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n siteId: siteId,\n indicateurId: indicateurId,\n afficher: afficher,\n }),\n }\n );\n } catch (ex) {\n return Promise.reject(\"Erreur serveur\");\n }\n}\n\nexport async function getSiteConfig(\n authentification: ReduxAuthState,\n siteId: string\n): Promise {\n try {\n let responce = await fetch(\n `${\n (window as any).appSettings.apiendpoint\n }/Site/GetConfig?SiteId=${siteId}`,\n {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n Promise.resolve(await responce.json());\n } catch (ex) {\n return Promise.reject(\"Erreur serveur\");\n }\n}\n\nexport const getUnitIndicateur = async (\n authentification: ReduxAuthState,\n {\n siteId,\n indicateurSuiviId,\n etapeTraitementId,\n afficher,\n }: DonneesIndicateurSuiviUnitModel\n) => {\n try {\n return await fetch(\n `${\n (window as any).appSettings.apiendpoint\n }/DonneeIndicateur/GetUnitesIndicateursSuivis?SiteId=${siteId}&IndicateurSuiviId=${indicateurSuiviId}&ParametreId=DCO&EtapeTraitementId=${etapeTraitementId}&TypeAffichage=${afficher}`,\n {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n } catch (ex) {\n return Promise.reject(\"Erreur serveur\");\n }\n};\n\nexport const fetchDonneesIndicateurPost = async (\n authentification: ReduxAuthState,\n {\n siteId,\n dateDebut,\n dateFin,\n indicateurSuiviId,\n etapeTraitementId,\n typeAffichage,\n parametreId,\n }: DonneesIndicateurPostModel\n) => {\n try {\n return await fetch(\n `${(window as any).appSettings.apiendpoint}/DonneeIndicateur`,\n {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n dateDebut: dateDebut,\n DateFin: dateFin,\n IndicateurSuiviId: indicateurSuiviId,\n TypeAffichage: typeAffichage,\n ParametreId: parametreId,\n EtapeTraitementId: etapeTraitementId,\n SiteId: siteId,\n }),\n }\n );\n } catch (ex) {\n return Promise.reject(\"Erreur serveur\");\n }\n};\n","import React, { Component, useEffect, useState } from \"react\";\nimport moment, { Moment } from \"moment\";\nimport \"react-dates/initialize\";\nimport \"react-dates/lib/css/_datepicker.css\";\nimport { CalendarDay, CalendarDayShape, SingleDatePicker } from \"react-dates\";\nimport classNames from \"classnames\";\nimport { format } from \"date-fns\";\nimport { fr } from \"date-fns/locale\";\n\nmoment.locale(\"fr\");\n\ninterface WeekPickerProps {\n currentDate: Moment;\n onDateChange: (date: Moment | null) => void;\n}\n\nexport const WeekPicker = (props: WeekPickerProps) => {\n const [focused, setFocused] = useState(false);\n const [selectedWorkWeek, setSelectedWorkWeek] = useState(0);\n const [selectedYear, setSelectedYear] = useState(0);\n const [hoveredDays, setHoveredDays] = useState>([]);\n const [workWeekMarginLeft, setWorkWeekMarginLeft] = useState(0);\n\n moment.locale(\"fr\");\n\n useEffect(() => {\n setSelectedWorkWeek(props.currentDate.isoWeek());\n setSelectedYear(props.currentDate.year());\n setHoveredDays(calculateActiveWeek(props.currentDate));\n }, [props.currentDate]);\n\n const openPicker = () => {\n if (!focused) {\n setFocused(true);\n }\n };\n\n const isDayHighlighted = (date: Moment) => {\n let isHighlighted = false;\n hoveredDays.forEach((hoveredDay) => {\n const isDayOfMonthMatch = hoveredDay.date() === date.date();\n const isMonthMatch = hoveredDay.month() === date.month();\n const isYearMatch = hoveredDay.year() === date.year();\n if (isDayOfMonthMatch && isMonthMatch && isYearMatch) {\n isHighlighted = true;\n }\n });\n return isHighlighted;\n };\n\n const calculateActiveWeek = (date: Moment) => {\n const mon = date.clone().startOf(\"isoWeek\");\n const tue = mon.clone().add(1, \"d\");\n const wed = mon.clone().add(2, \"d\");\n const thu = mon.clone().add(3, \"d\");\n const fri = mon.clone().add(4, \"d\");\n const sat = mon.clone().add(5, \"d\");\n const sun = mon.clone().add(6, \"d\");\n return [sun, mon, tue, wed, thu, fri, sat];\n };\n\n const onDateHovered = (date: Moment) => {\n setHoveredDays(calculateActiveWeek(date));\n };\n\n const onDateChange = (date: Moment) => {\n const newSelectedYear = date.year();\n const newSelectedWorkWeek = date.isoWeek();\n setSelectedWorkWeek(newSelectedWorkWeek);\n setSelectedYear(newSelectedYear);\n setFocused(false);\n props.onDateChange(date);\n };\n\n const renderCalendarDay = (date: CalendarDayShape): JSX.Element => {\n const dayClasses = classNames(\n \"CalendarDay\",\n \"CalendarDay__default\",\n \"CalendarDay_1\",\n \"CalendarDay__default_2\"\n );\n let style = {\n width: \"39px\",\n height: \"38px\",\n };\n if (date.day) {\n const dayOfMonth = date.day.date();\n const isHighlighted = isDayHighlighted(date.day);\n let style = {\n width: \"39px\",\n height: \"38px\",\n backgroundColor: isHighlighted ? \"#42a5f5\" : \"white\",\n color: isHighlighted ? \"white\" : \"black\",\n };\n return (\n onDateChange(date.day!)}\n onMouseEnter={() => onDateHovered(date.day!)}\n >\n {dayOfMonth}\n \n );\n } else {\n return ;\n }\n };\n\n const previousWeek = () => {\n let newSelectedWorkWeek = selectedWorkWeek - 1;\n let newSelectedYear = selectedYear;\n if (newSelectedWorkWeek === 0) {\n newSelectedWorkWeek = 52;\n newSelectedYear = selectedYear - 1;\n }\n const date = moment().year(newSelectedYear).isoWeek(newSelectedWorkWeek);\n\n setSelectedWorkWeek(newSelectedWorkWeek);\n setSelectedYear(newSelectedYear);\n setHoveredDays(calculateActiveWeek(date));\n };\n\n const nextWeek = () => {\n let newSelectedWorkWeek = selectedWorkWeek + 1;\n let newSelectedYear = selectedYear;\n if (newSelectedWorkWeek === 53) {\n newSelectedWorkWeek = 1;\n newSelectedYear = selectedYear + 1;\n }\n const date = moment().year(newSelectedYear).isoWeek(newSelectedWorkWeek);\n setSelectedWorkWeek(newSelectedWorkWeek);\n setSelectedYear(newSelectedYear);\n setHoveredDays(calculateActiveWeek(date));\n };\n const date = moment()\n .year(selectedYear)\n .isoWeek(selectedWorkWeek)\n .startOf(\"isoWeek\");\n return (\n setFocused(focused)} // PropTypes.func.isRequired\n id=\"single_date_picker\" // PropTypes.string.isRequired,\n numberOfMonths={1}\n hideKeyboardShortcutsPanel={true}\n isDayBlocked={() => false}\n isOutsideRange={() => false}\n renderCalendarDay={renderCalendarDay}\n onDateChange={() => {}}\n displayFormat={`${format(date.toDate(), \"dd/MM/yyyy\", {\n locale: fr,\n })}`}\n />\n );\n};\n\nexport default WeekPicker;\n\n/*\n \n*/\n","import React, { useState, useEffect, useRef } from \"react\";\nimport Table from \"./TableStep\";\nimport { Spinner } from \"reactstrap\";\nimport { eachDayOfInterval, format, sub, add, isBefore } from \"date-fns\";\nimport { fr } from \"date-fns/locale\";\nimport { connect } from \"react-redux\";\nimport { useForm } from \"react-hook-form\";\nimport AddIndicator from \"./Categorie/AddIndicator\";\nimport DeleteIndicator from \"./Categorie/DeleteIndicator\";\nimport DeleteValue from \"./Categorie/DeleteValue\";\nimport EditValue from \"./Categorie/Editvalue\";\nimport AddValue from \"./Categorie/AddValue\";\nimport InfoCell from \"./Categorie/infoCell\";\nimport * as IndicatorServices from \"../../services/IndicatorServices\";\nimport WeekPicker from \"./Categorie/WeekPicker\";\nimport moment, { Moment } from \"moment\";\n\nexport function formatIndicatorToSelect(datas) {\n return datas.map((data) => ({\n value: data.id,\n label: data.libelleFr,\n etapeTraitementId: data.etapeTraitement.id,\n }));\n}\n\nexport function formatEtapeTraitementToSelect(datas) {\n return Array.from(\n new Set(\n datas\n .map((data) => ({\n value: data.etapeTraitement.id,\n label: data.etapeTraitement.libelleFr,\n }))\n .map(JSON.stringify)\n )\n ).map(JSON.parse);\n}\n\nexport function getIndicatorData(data = []) {\n const formatData = data.map((dt) => {\n return {\n stepId: dt.stepId,\n nameStep: dt.nameStep,\n indicators: dt.indicateurs.map((info) => {\n let infoobj = {};\n\n info.valeursIndicateurs.forEach((vi, idx) => {\n infoobj[`id${idx}`] = vi;\n });\n\n infoobj.indc = info.informationsIndicateur;\n\n return infoobj;\n }),\n };\n });\n\n return formatData;\n}\n\nfunction Category({ authentification, siteInformation, domain, name }) {\n const [currentDate, setCurrentDate] = useState(moment());\n const [startFormated, setStartFormated] = useState(\n format(moment(moment().startOf(\"isoWeek\")).toDate(), \"dd/MM/yyyy\")\n );\n const [endFormated, setEndFormated] = useState(\n format(moment(moment().endOf(\"isoWeek\")).toDate(), \"dd/MM/yyyy\")\n );\n const [isAfterCurrentDay, setIsAfterCurrentDay] = useState(false);\n const [week, setWeek] = useState([]);\n\n useEffect(() => {\n const weekStart = currentDate.clone().startOf(\"isoWeek\");\n const weekEnd = currentDate.clone().endOf(\"isoWeek\");\n setStartFormated(format(moment(weekStart).toDate(), \"dd/MM/yyyy\"));\n setEndFormated(format(moment(weekEnd).toDate(), \"dd/MM/yyyy\"));\n setWeek(\n eachDayOfInterval(\n {\n start: moment(weekStart).toDate(),\n end: moment(weekEnd).toDate(),\n },\n {}\n )\n );\n setIsAfterCurrentDay(isBefore(weekEnd.add(1, \"days\").toDate(), new Date()));\n }, [currentDate]);\n //Calcul de la période en cours\n\n const onPrevious = () => {\n setCurrentDate(currentDate.clone().subtract(7, \"d\"));\n };\n\n const onNext = () => {\n setCurrentDate(currentDate.clone().add(7, \"d\"));\n };\n\n //Chargement des données\n useEffect(() => {\n setLoading(true);\n setLoadDataMessage(\"\");\n\n if (siteInformation.siteId) {\n IndicatorServices.loadData(authentification, {\n siteId: siteInformation.siteId,\n domaineIdn: domain,\n dateDebut: startFormated,\n dateFin: endFormated,\n })\n .then((data) => {\n setIndicators(getIndicatorData(data));\n setLoading(false);\n })\n .catch((resp) => {\n setLoadDataMessage(\"erreur serveur\");\n setLoading(false);\n });\n }\n }, [\n siteInformation.siteId,\n authentification,\n domain,\n startFormated,\n endFormated,\n ]);\n\n //gestion du chargement\n const [loading, setLoading] = useState(false);\n const [loadingModal, setLoadingModal] = useState(false);\n const [errorMessage, setErrorMessage] = useState(false);\n\n //Gestion des tableaux d'indicateurs\n const [indicators, setIndicators] = useState([]);\n const [loadDataMessage, setLoadDataMessage] = useState(\"\");\n\n //gestion de la modale de selection des indicators\n const [selectionModal, setSelectionModal] = useState(false);\n const [indicatorOptions, setIndicatorOptions] = useState([]);\n const [indicatorOptionsFiltered, setindicatorOptionsFiltered] = useState([]);\n const [EtapeTraitementOptions, setEtapeTraitementOptions] = useState(null);\n const [selectionIndicatorValue, setselectionIndicatorValue] = useState(null);\n const [deleteselectionModal, setDeleteSelectionModal] = useState(false);\n\n const refSlect = useRef(null);\n\n const onSubmitIndicator = () => {\n setLoadingModal(true);\n setSelectionModal(!selectionModal);\n setErrorMessage(\"\");\n\n //Paralléliser l'appel\n IndicatorServices.loadDataIndicateurSuivi(authentification, {\n siteId: siteInformation.siteId,\n domaineId: domain,\n })\n .then(async (res) => {\n if (res.status === 200 || res.status === 204) {\n const datas = await res.json();\n setIndicatorOptions(formatIndicatorToSelect(datas));\n setindicatorOptionsFiltered(formatIndicatorToSelect(datas));\n setEtapeTraitementOptions(formatEtapeTraitementToSelect(datas));\n }\n })\n .finally(() => {\n setLoadingModal(false);\n })\n .catch(() => {\n setErrorMessage(\"Erreur Serveur\");\n setLoadingModal(false);\n });\n };\n\n const handleChangeIndicator = (data) => {\n setselectionIndicatorValue(data);\n };\n\n const handleChangeEtape = (data) => {\n if (data === null) {\n setindicatorOptionsFiltered(indicatorOptions);\n } else {\n setindicatorOptionsFiltered(\n indicatorOptions.filter((x) => x.etapeTraitementId === data.value)\n );\n if (\n selectionIndicatorValue &&\n selectionIndicatorValue.etapeTraitementId !== data.value\n ) {\n refSlect.current.select.clearValue();\n }\n }\n };\n\n const submitIndicator = () => {\n setLoadingModal(true);\n setErrorMessage(\"\");\n\n IndicatorServices.postIndicateurSuivi(authentification, {\n siteId: siteInformation.siteId,\n indicateurId: selectionIndicatorValue.value,\n afficher: true,\n })\n .then(() => {\n IndicatorServices.loadData(authentification, {\n siteId: siteInformation.siteId,\n domaineIdn: domain,\n dateDebut: startFormated,\n dateFin: endFormated,\n }).then((data) => {\n setIndicators(getIndicatorData(data));\n });\n })\n .finally(() => {\n setLoadingModal(false);\n onCloseAll();\n })\n .catch(() => {\n setErrorMessage(\"Erreur Serveur\");\n setLoadingModal(false);\n });\n };\n\n const toggleDeleteSelection = () => {\n setDeleteSelectionModal(!deleteselectionModal);\n };\n\n const submitDeleteIndicator = () => {\n setLoadingModal(true);\n setErrorMessage(\"\");\n IndicatorServices.postIndicateurSuivi(authentification, {\n siteId: siteInformation.siteId,\n indicateurId: _cell.rowInfo.indicateurId,\n afficher: false,\n })\n .then(() => {\n IndicatorServices.loadData(authentification, {\n siteId: siteInformation.siteId,\n domaineIdn: domain,\n dateDebut: startFormated,\n dateFin: endFormated,\n }).then((data) => {\n setIndicators(getIndicatorData(data));\n });\n })\n .finally(() => {\n setLoadingModal(false);\n toggleDeleteSelection();\n })\n .catch(() => {\n setErrorMessage(\"Erreur Serveur\");\n setLoadingModal(false);\n });\n };\n\n //Gestion des cellules\n const [_cell, setCell] = useState(null);\n const [cellModal, setCellModal] = useState(false);\n const toggleCellModal = () => setCellModal(!cellModal);\n\n const openCellModal = ({ cellInfo, rowInfo, date, isIndc }) => {\n setCell({ cellInfo, rowInfo, date });\n\n if (isIndc) {\n toggleDeleteSelection();\n return;\n }\n\n if (\n cellInfo.valeur === null &&\n cellInfo.valeurLabo === null &&\n cellInfo.valeurSiccite === null\n ) {\n toggle_NewValue();\n } else {\n toggleCellModal();\n }\n };\n\n //gestion modale de création\n const [newModal, setNewModal] = useState(false);\n const toggle_NewValue = () => {\n setNewModal(!newModal);\n };\n\n //gestion de modale de suppression\n const [binModal, setBinModal] = useState(false);\n const toggleBin = () => {\n setBinModal(!binModal);\n };\n\n const onValidBin = (data, cellu) => {\n setLoadingModal(true);\n setErrorMessage(\"\");\n\n IndicatorServices.deleteData(authentification, {\n valeur: data.valeur,\n valeurSiccite: data.valeurSiccite,\n valeurLabo: cellu.valeurLabo,\n date: cellu.date,\n indicateurId: cellu && cellu.rowInfo && cellu.rowInfo.indicateurId,\n indicateurIdSiccite:\n cellu && cellu.rowInfo && cellu.rowInfo.indicateurIdSiccite,\n siteId: siteInformation.siteId,\n })\n .then((response) => {\n if (response.status === 200) {\n IndicatorServices.loadData(authentification, {\n siteId: siteInformation.siteId,\n domaineIdn: domain,\n dateDebut: startFormated,\n dateFin: endFormated,\n }).then((dataind) => {\n setIndicators(getIndicatorData(dataind));\n });\n }\n\n if (response.status === 500) {\n setErrorMessage(\"erreur serveur\");\n }\n })\n .finally(() => {\n setLoadingModal(false);\n onCloseAll();\n })\n .catch(() => {\n setLoadingModal(false);\n setErrorMessage(\"Erreur Serveur\");\n });\n };\n\n //gestion de modale d'édition\n const [editModal, setEditModal] = useState(false);\n\n const toggleEdit = () => {\n setEditModal(!editModal);\n };\n\n const toggleValidEdit = (data, cell) => {\n setLoadingModal(true);\n setErrorMessage(\"\");\n\n IndicatorServices.editData(authentification, {\n valeur: data.valeur,\n valeurSiccite: data.valeurSiccite,\n valeurLabo: data.valeurLabo,\n\n date: cell.date,\n indicateurId: cell && cell.rowInfo && cell.rowInfo.indicateurId,\n indicateurIdSiccite:\n cell && cell.rowInfo && cell.rowInfo.indicateurIdSiccite,\n siteId: siteInformation.siteId,\n })\n .then((res) => {\n if (res.status === 200) {\n IndicatorServices.loadData(authentification, {\n siteId: siteInformation.siteId,\n domaineIdn: domain,\n dateDebut: startFormated,\n dateFin: endFormated,\n }).then((dataind) => {\n setIndicators(getIndicatorData(dataind));\n });\n }\n\n if (res.status === 500) {\n setErrorMessage(\"erreur serveur\");\n }\n })\n .finally(() => {\n setLoadingModal(false);\n onCloseAll();\n })\n .catch(() => {\n setLoadingModal(false);\n setErrorMessage(\"Erreur Serveur\");\n });\n };\n\n //gestion de toutes les modales\n\n const onCloseAll = () => {\n setNewModal(false);\n setCellModal(false);\n setEditModal(false);\n setBinModal(false);\n setSelectionModal(false);\n setDeleteSelectionModal(false);\n };\n\n const { register, handleSubmit, errors, getValues, triggerValidation } =\n useForm({\n mode: \"onChange\",\n });\n\n if (loadDataMessage !== \"\")\n return
Erreur serveur
;\n\n return loading ? (\n \n \n \n ) : (\n
\n \n \n \n \n \n \n\n
\n \n {\"<<\"}\n \n
\n
{`Période du `}
\n {\n setCurrentDate(date);\n }}\n />\n
{` au ${format(\n currentDate.clone().add(6, \"d\").toDate(),\n \"dd/MM/yyyy\",\n {\n locale: fr,\n }\n )}`}
\n
\n {isAfterCurrentDay && (\n \n {\">>\"}\n \n )}\n
\n
\n {\" \"}\n \n Ajouter un indicateur\n \n
\n {indicators.length === 0 && (\n \n Veuillez ajouter des indicateurs\n
\n )}\n\n {indicators.map((tableau, index) => (\n
\n {\n openCellModal({\n cellInfo,\n idtableau: tableau.stepId,\n rowInfo,\n date,\n isIndc,\n });\n }}\n />\n
\n ))}\n \n );\n}\n\nexport default connect((state) => state)(Category);\n","import React, { Component } from \"react\";\nimport {\n Nav,\n NavItem,\n NavLink,\n TabContent,\n TabPane,\n Container,\n} from \"reactstrap\";\nimport Category from \"./Categorie\";\nimport { useHistory } from \"react-router-dom\";\n\n//Button pour aller directement à l'historique\nfunction GoToHistory() {\n const history = useHistory();\n return (\n {\n history.push(\"/history\");\n }}\n >\n {\" \"}\n Voir l'historique\n \n );\n}\n\nclass CollectInformations extends Component {\n constructor(props) {\n super(props);\n\n this.toggle = this.toggle.bind(this);\n this.state = {\n activeTab: new Array(4).fill(\"1\"),\n };\n }\n\n //active l'onglet\n toggle(tabPane, tab) {\n const newArray = this.state.activeTab.slice();\n newArray[tabPane] = tab;\n this.setState({\n activeTab: newArray,\n });\n }\n\n tabPane() {\n return (\n <>\n \n {this.state.activeTab[0] === \"1\" && (\n \n )}\n \n \n {this.state.activeTab[0] === \"2\" && (\n \n )}\n \n \n {this.state.activeTab[0] === \"3\" && (\n \n )}\n \n \n {this.state.activeTab[0] === \"4\" && (\n \n )}\n \n \n );\n }\n\n render() {\n return (\n <>\n \n \n \n \n
\n {/* div reservé à de future infos */}\n
\n
\n \n \n {this.tabPane()}\n \n
\n
\n \n );\n }\n}\n\nexport default CollectInformations;\n","import React, { useState, useEffect } from \"react\";\nimport Select from \"react-select\";\nimport {\n lastDayOfMonth,\n isExists,\n eachDayOfInterval,\n eachMonthOfInterval,\n eachYearOfInterval,\n startOfYear,\n endOfYear,\n startOfMonth,\n endOfMonth,\n format,\n subYears,\n set,\n isBefore,\n} from \"date-fns\";\nimport { fr } from \"date-fns/locale\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport \"../StepIn/datepicker.scss\";\n\nexport function DateRangePicker({\n onSubmitDate,\n onCancelDate,\n noRange = false,\n}) {\n const { handleSubmit, errors, control, setError, setValue } = useForm();\n\n const currentDay = new Date();\n\n const [currentLeftDay, setCurrentLeftDay] = useState(new Date());\n const [currentRightDay, setCurrentRightDay] = useState(new Date());\n\n const dayInterval = eachDayOfInterval({\n start: startOfMonth(currentLeftDay),\n end: endOfMonth(currentLeftDay),\n });\n const monthInterval = eachMonthOfInterval({\n start: startOfYear(currentDay),\n end: endOfYear(currentDay),\n });\n const yearInterval = eachYearOfInterval({\n start: subYears(currentDay, 5),\n end: currentDay,\n });\n\n const dayRightInterval = eachDayOfInterval({\n start: startOfMonth(currentRightDay),\n end: endOfMonth(currentRightDay),\n });\n const monthRightInterval = eachMonthOfInterval({\n start: startOfYear(currentDay),\n end: endOfYear(currentDay),\n });\n const yearRightInterval = eachYearOfInterval({\n start: subYears(currentDay, 5),\n end: currentDay,\n });\n\n useEffect(() => {\n if (\n isExists(\n currentLeftDay.getFullYear(),\n currentLeftDay.getMonth(),\n currentLeftDay.getDate()\n )\n ) {\n setValue(\"leftDay\", {\n label: format(currentLeftDay, \"d\", { locale: fr }),\n value: currentLeftDay.getDate(),\n });\n setValue(\"leftMonth\", {\n label: format(currentLeftDay, \"MMM\", { locale: fr }),\n value: currentLeftDay.getMonth(),\n });\n setValue(\"leftYear\", {\n label: format(currentLeftDay, \"yyy\", { locale: fr }),\n value: currentLeftDay.getFullYear(),\n });\n } else {\n setValue(\"leftMonth\", {\n label: format(lastDayOfMonth(currentLeftDay), \"MMM\"),\n value: currentLeftDay.getMonth(),\n });\n }\n\n if (\n isExists(\n currentRightDay.getFullYear(),\n currentRightDay.getMonth(),\n currentRightDay.getDate()\n )\n ) {\n setValue(\"rightDay\", {\n label: format(currentRightDay, \"d\", { locale: fr }),\n value: currentRightDay.getDate(),\n });\n setValue(\"rightMonth\", {\n label: format(currentRightDay, \"MMM\", { locale: fr }),\n value: currentRightDay.getMonth(),\n });\n setValue(\"rightYear\", {\n label: format(currentRightDay, \"yyy\", { locale: fr }),\n value: currentRightDay.getFullYear(),\n });\n } else {\n setValue(\"rightMonth\", {\n label: format(lastDayOfMonth(currentRightDay), \"MMM\"),\n value: currentRightDay.getMonth(),\n });\n }\n }, [setValue, currentLeftDay, currentRightDay]);\n\n return (\n <>\n {\n //dans le cas ou on a un seul DatePicker\n if (noRange) {\n onSubmitDate({ left: currentLeftDay });\n return;\n }\n\n //dans le cas si on a 2 dates pciker on vérifie si les dates sont valides\n if (isBefore(currentRightDay, currentLeftDay)) {\n setError(\n \"form\",\n \"inval\",\n \"la date de début ne peut être inférieure à la date de fin\"\n );\n return;\n }\n\n onSubmitDate({ left: currentLeftDay, right: currentRightDay });\n })}\n className=\"d-flex align-items-center w-100\"\n >\n ({\n label: format(day, \"d\", { locale: fr }),\n value: format(day, \"d\"),\n }))}\n className=\"flex-grow-1 mr-2\"\n control={control}\n onChange={(data) => {\n setCurrentLeftDay(set(currentLeftDay, { date: data[0].value }));\n }}\n />\n ({\n label: format(day, \"MMM\", { locale: fr }),\n value: day.getMonth(),\n }))}\n className=\"flex-grow-1 mx-2\"\n name=\"leftMonth\"\n control={control}\n onChange={(data) => {\n setCurrentLeftDay(set(currentLeftDay, { month: data[0].value }));\n }}\n />\n ({\n label: format(day, \"yyy\", { locale: fr }),\n value: format(day, \"y\"),\n }))}\n className=\"flex-grow-1 mx-2\"\n name=\"leftYear\"\n control={control}\n onChange={(data) => {\n setCurrentLeftDay(set(currentLeftDay, { year: data[0].value }));\n }}\n />\n {noRange === false && (\n <>\n Au\n ({\n label: format(day, \"d\", { locale: fr }),\n value: format(day, \"d\"),\n }))}\n className=\"flex-grow-1 mx-2\"\n name=\"rightDay\"\n control={control}\n onChange={(data) => {\n setCurrentRightDay(\n set(currentRightDay, { date: data[0].value })\n );\n }}\n />\n\n ({\n label: format(day, \"MMM\", { locale: fr }),\n value: day.getMonth(),\n }))}\n className=\"flex-grow-1 mx-2\"\n name=\"rightMonth\"\n control={control}\n onChange={(data) => {\n setCurrentRightDay(\n set(currentRightDay, { month: data[0].value })\n );\n }}\n />\n ({\n label: format(day, \"yyy\", { locale: fr }),\n value: format(day, \"y\"),\n }))}\n className=\"flex-grow-1 ml-2\"\n name=\"rightYear\"\n control={control}\n onChange={(data) => {\n setCurrentRightDay(\n set(currentRightDay, { year: data[0].value })\n );\n }}\n />\n \n )}\n \n
\n \n {errors && errors.form && errors.form.message}\n \n
\n
\n \n Annuler\n \n \n OK\n \n
\n \n );\n}\n\nfunction formatDate({ start = new Date(), end = new Date() }) {\n return {\n label: (\n <>\n \n \n ),\n value: null,\n };\n}\n\nexport default function DatePicker({\n onSubmitDate,\n onCancelDate,\n className,\n textInterval = \"\",\n noRange = false,\n}) {\n const [formatedDate, setFormatedDate] = useState(null);\n const [openMenu, setOpenMenu] = useState(false);\n\n const _onSubmitDate = (data) => {\n setFormatedDate(formatDate({ start: data.left, end: data.right }));\n onSubmitDate({ start: data.left, end: data.right });\n setOpenMenu(false);\n };\n\n const _onCancelDate = () => {\n setOpenMenu(false);\n };\n\n return (\n
\n {\n if (triggeredAction.action === \"clear\") {\n setFormatedDate(null);\n //setDateDebut(sub(new Date(), { months: 3 }));\n //setDateFin(new Date());\n onCancelDate();\n }\n }}\n classNamePrefix=\"selectPicker\"\n menuIsOpen={openMenu}\n openMenuOnClick={true}\n onMenuOpen={() => {\n setOpenMenu(true);\n }}\n placeholder={\n \n }\n isClearable={true}\n closeMenuOnSelect={false}\n closeMenuOnScroll={false}\n options={[\n {\n label: (\n \n ),\n },\n ]}\n />{\" \"}\n
\n );\n}\n","export function StartOfWeek(date) {\n var diff = date.getDate() - date.getDay() + (date.getDay() === 0 ? -6 : 1);\n return new Date(date.setDate(diff));\n }\n \nexport function month_name(dt) {\n let mlist = [\"Janvier\", \"Février\", \"Mars\", \"d'Avril\", \"Mai\", \"Juin\", \"Juillet\", \"Août\", \"Septembre\", \"Octobre\", \"Novembre\", \"Décembre\"];\n return mlist[dt.getMonth()];\n}","//Librairies\nimport React, { Component } from \"react\";\nimport { Bar } from \"react-chartjs-2\";\nimport { Label } from \"reactstrap\";\nimport moment from \"moment\";\nimport { connect } from \"react-redux\";\nimport { AppSwitch } from \"@coreui/react\";\n//Services\nimport { GetAccessToken } from \"../../authentication/token\";\n\nclass VolumeWater extends Component {\n constructor(props) {\n super(props);\n this.state = {\n labels: null,\n data: null,\n dataComparaison: [],\n moyen: null,\n DateDebut: this.props.DateDebut,\n DateFin: this.props.DateFin,\n Action: this.props.Action,\n Unite: null,\n SiteId: this.props.siteInformation.siteId,\n DisplayMoyen: false,\n BarVolume: {\n labels: null,\n datasets: [\n {\n label: \"Volume d'eau\",\n backgroundColor: \"#FFCD00\",\n borderColor: \"#FFCD00\",\n borderWidth: 1,\n hoverBackgroundColor: \"#FFCD00\",\n hoverBorderColor: \"#FFCD00\",\n data: null,\n },\n ],\n },\n compareGraph: false,\n };\n\n this.BarVolume = {\n labels: null,\n datasets: [\n {\n id: \"n\",\n label: \"Volume d'eau\",\n backgroundColor: \"#FFCD00\",\n borderColor: \"#FFCD00\",\n borderWidth: 1,\n hoverBackgroundColor: \"#FFCD00\",\n hoverBorderColor: \"#FFCD00\",\n data: null,\n },\n ],\n };\n\n this.LineSeuil = {\n fill: false,\n type: \"line\",\n lineTension: 0.1,\n backgroundColor: \"#F24C07\",\n borderColor: \"#F24C07\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0.0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"#F24C07\",\n pointBackgroundColor: \"#F24C07\",\n pointBorderWidth: 1,\n pointHoverRadius: 5,\n pointHoverBackgroundColor: \"#F24C07\",\n pointHoverBorderColor: \"#F24C07\",\n pointHoverBorderWidth: 2,\n pointRadius: 1,\n pointHitRadius: 10,\n data: null,\n };\n\n this.options = {\n legend: {\n display: false,\n },\n };\n this.OncheckedMoyen = this.OncheckedMoyen.bind(this);\n this.onChangeGraph = this.onChangeGraph.bind(this);\n }\n\n OncheckedMoyen() {\n if (!this.state.DisplayMoyen) {\n this.BarVolume.datasets[\n this.BarVolume.datasets.findIndex((item) => item.id === \"n\")\n ].data = this.state.moyen;\n this.setState({ BarVolume: this.BarVolume, DisplayMoyen: true });\n } else {\n this.BarVolume.datasets[\n this.BarVolume.datasets.findIndex((item) => item.id === \"n\")\n ].data = this.state.data;\n this.setState({ BarVolume: this.BarVolume, DisplayMoyen: false });\n }\n }\n\n datasetKeyProvider() {\n return Math.random();\n }\n\n //Method to load data from back-end\n async LoadData() {\n this.onChangeGraph(true);\n\n try {\n let result = await fetch(\n `${window.appSettings.apiendpoint}/DonneeIndicateur`,\n {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${await GetAccessToken(\n this.props.authentification\n )}`,\n Accept: \"application/json\",\n\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n DateDebut: moment(this.state.DateDebut).format(\n \"DD/MM/YYYY HH:mm:ss\"\n ),\n\n IndicateurSuiviId: this.props.IndicateurSuiviId,\n\n ParametreId: null,\n SiteId: this.state.SiteId,\n TypeAffichage: this.state.Action,\n DateFin: moment(this.state.DateFin).format(\"DD/MM/YYYY HH:mm:ss\"),\n }),\n }\n );\n if (result.status === 200) {\n let data = await result.json();\n this.BarVolume.labels = data.labels;\n this.BarVolume.datasets[\n this.BarVolume.datasets.findIndex((item) => item.id === \"n\")\n ].data = data.data;\n\n //on est en jour donc pas d'icidence lors de la comparaison\n if (this.state.Action === \"Jour\") {\n if (data.seuilMax !== null) {\n if (this.BarVolume.datasets.length === 1) {\n this.LineSeuil.data = data.seuilMax;\n this.BarVolume.datasets.push(this.LineSeuil);\n } else {\n this.BarVolume.datasets[1].data = data.seuilMax;\n }\n }\n } else {\n this.BarVolume.datasets = this.BarVolume.datasets.filter(\n (item) => item.type !== \"line\"\n );\n }\n\n this.setState({\n BarVolume: this.BarVolume,\n data: data.data,\n moyen: data.moyen,\n dataComparaison: data.dataComparaison,\n });\n }\n } catch (ex) {}\n }\n\n async GetUnitIndicateur() {\n try {\n let result = await fetch(\n `${window.appSettings.apiendpoint}/DonneeIndicateur/GetUnitesIndicateursSuivis?SiteId=${this.state.SiteId}&IndicateurSuiviId=${this.props.IndicateurSuiviId}&TypeAffichage=${this.props.Action}`,\n {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n\n Authorization: `Bearer ${await GetAccessToken(\n this.props.authentification\n )}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n if (result.status === 200) {\n let data = await result.json();\n this.setState({ Unite: data.uniteIndicateurSuivi });\n }\n } catch (ex) {}\n }\n\n //Method executed After rendering compenont\n async componentDidMount() {\n await Promise.all([await this.LoadData(), await this.GetUnitIndicateur()]);\n }\n\n // Method to set state when props change\n static getDerivedStateFromProps(nextProps, prevState) {\n if (\n nextProps.DateDebut !== prevState.DateDebut &&\n nextProps.DateFin !== prevState.DateFin\n ) {\n return {\n DateDebut: nextProps.DateDebut,\n DateFin: nextProps.DateFin,\n Action: nextProps.Action,\n };\n } else return null;\n }\n\n // Method de refresh data after changing prpos\n async componentDidUpdate(prevuProp) {\n if (\n prevuProp.DateDebut !== this.state.DateDebut &&\n prevuProp.DateFin !== this.state.DateFin\n ) {\n this.setState({\n DateDebut: prevuProp.DateDebut,\n DateFin: prevuProp.DateFin,\n Action: prevuProp.Action,\n });\n await this.LoadData();\n }\n\n if (prevuProp.Action !== this.state.Action) {\n await this.GetUnitIndicateur();\n }\n\n if (this.state.SiteId !== this.props.siteInformation.siteId) {\n this.setState({ SiteId: this.props.siteInformation.siteId });\n await this.LoadData();\n }\n }\n\n onChangeGraph(reset) {\n if (reset === true) {\n this.BarVolume.datasets = this.BarVolume.datasets.filter(\n (item) => item.id !== \"N-1\"\n );\n this.setState({ compareGraph: false, BarVolume: this.BarVolume });\n return;\n }\n\n if (!this.state.compareGraph) {\n this.BarVolume.datasets.push({\n id: \"N-1\",\n label: \"Volume d'eau n-1\",\n backgroundColor: \"#0a3c5c\",\n borderColor: \"#0a3c5c\",\n borderWidth: 1,\n hoverBackgroundColor: \"#0a3c5c\",\n hoverBorderColor: \"#0a3c5c\",\n data: this.state.dataComparaison,\n });\n } else {\n this.BarVolume.datasets = this.BarVolume.datasets.filter(\n (item) => item.id !== \"N-1\"\n );\n }\n\n this.setState({\n compareGraph: !this.state.compareGraph,\n BarVolume: this.BarVolume,\n });\n }\n\n render() {\n return this.props.mini ? (\n
\n \n\n
\n \n
\n
\n ) : (\n
\n
\n
\n \n {this.props.Action === \"Mois\" && (\n \n \n
\n )}\n
\n
\n
\n \n {this.state.Granularite}\n \n
\n \n \n );\n }\n}\n\nexport default connect((state) => state)(VolumeWater);\n","//Librairies\nimport React, { Component } from \"react\";\nimport { Line } from \"react-chartjs-2\";\nimport { Label } from \"reactstrap\";\nimport moment from \"moment\";\nimport { connect } from \"react-redux\";\n//Services\nimport { GetAccessToken } from \"../../authentication/token\";\n\nconst lineSeuilMax = {\n label: null,\n fill: false,\n lineTension: 0.1,\n backgroundColor: \"#F24C07\",\n borderColor: \"#F24C07\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0.0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"#F24C07\",\n pointBackgroundColor: \"#F24C07\",\n pointBorderWidth: 1,\n pointHoverRadius: 5,\n pointHoverBackgroundColor: \"#F24C07\",\n pointHoverBorderColor: \"#F24C07\",\n pointHoverBorderWidth: 2,\n pointRadius: 1,\n pointHitRadius: 10,\n data: null,\n};\n\nconst lineSeuilMin = {\n label: null,\n fill: false,\n lineTension: 0.1,\n backgroundColor: \"#0a3c5c\",\n borderColor: \"#0a3c5c\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0.0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"#0a3c5c\",\n pointBackgroundColor: \"#0a3c5c\",\n pointBorderWidth: 1,\n pointHoverRadius: 5,\n pointHoverBackgroundColor: \"#0a3c5c\",\n pointHoverBorderColor: \"#0a3c5c\",\n pointHoverBorderWidth: 2,\n pointRadius: 1,\n pointHitRadius: 10,\n data: null,\n};\n\n// Component to Get Input and Output PH\nclass Ph extends Component {\n constructor(props) {\n super(props);\n this.state = {\n labels: null,\n data: null,\n moyen: null,\n DateDebut: this.props.DateDebut,\n DateFin: this.props.DateFin,\n Action: this.props.Action,\n Unite: null,\n SiteId: this.props.siteInformation.siteId,\n line: {\n labels: null,\n datasets: [\n {\n label: \"PH\",\n fill: false,\n lineTension: 0.1,\n backgroundColor: \"rgba(75,192,192,0.4)\",\n borderColor: \"#FFCD00\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0.0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"#FFCD00\",\n pointBackgroundColor: \"#FFCD00\",\n pointBorderWidth: 1,\n pointHoverRadius: 5,\n pointHoverBackgroundColor: \"#FFCD00\",\n pointHoverBorderColor: \"rgba(220,220,220,1)\",\n pointHoverBorderWidth: 2,\n pointRadius: 1,\n pointHitRadius: 10,\n data: null,\n },\n ],\n },\n };\n this.options = {\n legend: {\n display: false,\n },\n };\n }\n\n async LoadData() {\n try {\n let result = await fetch(\n `${window.appSettings.apiendpoint}/DonneeIndicateur`,\n {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${await GetAccessToken(\n this.props.authentification\n )}`,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify({\n SiteId: this.state.SiteId,\n DateDebut: moment(this.state.DateDebut).format(\n \"DD/MM/YYYY HH:mm:ss\"\n ),\n DateFin: moment(this.state.DateFin).format(\"DD/MM/YYYY HH:mm:ss\"),\n IndicateurSuiviId: this.props.IndicateurSuiviId,\n TypeAffichage: this.state.Action,\n ParametreId: null,\n }),\n }\n );\n if (result.status === 200) {\n let data = await result.json();\n this.state.line.datasets[0].data = data.data;\n this.state.line.labels = data.labels;\n this.forceUpdate();\n if (!this.state.line.datasets[1] && data.seuilMax) {\n lineSeuilMax.label = \"Seuil Max\";\n this.state.line.datasets.push(lineSeuilMax);\n lineSeuilMax.data = data.seuilMax;\n this.forceUpdate();\n } else {\n this.state.line.datasets[1].data = data.seuilMax;\n this.forceUpdate();\n }\n if (!this.state.line.datasets[2] && data.seuilMin) {\n this.state.line.datasets.push(lineSeuilMin);\n lineSeuilMin.label = \"Seuil Min\";\n lineSeuilMin.data = data.seuilMin;\n this.forceUpdate();\n } else {\n this.state.line.datasets[2].data = data.seuilMin;\n this.forceUpdate();\n }\n this.setState({ moyen: data.moyen });\n }\n } catch (ex) {}\n }\n\n async GetUnitIndicateur() {\n try {\n let result = await fetch(\n `${window.appSettings.apiendpoint}/DonneeIndicateur/GetUnitesIndicateursSuivis?SiteId=${this.state.SiteId}&IndicateurSuiviId=${this.props.IndicateurSuiviId}&TypeAffichage=${this.props.Action}`,\n {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n Authorization: `Bearer ${await GetAccessToken(\n this.props.authentification\n )}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n if (result.status === 200) {\n let data = await result.json();\n this.setState({ Unite: data.uniteIndicateurSuivi });\n }\n } catch (ex) {}\n }\n\n //Method executed After rendering compenont\n async componentDidMount() {\n await Promise.all([await this.LoadData(), await this.GetUnitIndicateur()]);\n }\n\n static getDerivedStateFromProps(nextProp, prevState) {\n if (\n nextProp.DateDebut !== prevState.DateDebut &&\n nextProp.DateFin !== prevState.DateFin\n ) {\n return {\n DateDebut: nextProp.DateDebut,\n DateFin: nextProp.DateFin,\n Action: nextProp.Action,\n };\n } else return null;\n }\n\n // Method de refresh data after changing prpos\n async componentDidUpdate(prevProp) {\n if (\n prevProp.DateDebut !== this.state.DateDebut &&\n prevProp.DateFin !== this.state.DateFin\n ) {\n this.setState({\n DateDebut: prevProp.DateDebut,\n DateFin: prevProp.DateFin,\n Action: prevProp.Action,\n });\n await this.LoadData();\n }\n if (prevProp.Action !== this.state.Action) {\n await this.GetUnitIndicateur();\n }\n if (this.state.SiteId !== this.props.siteInformation.siteId) {\n this.setState({ SiteId: this.props.siteInformation.siteId });\n await this.LoadData();\n }\n }\n\n render() {\n return (\n
\n \n
\n \n {this.state.Granularite}\n \n
\n \n
\n );\n }\n}\n\nexport default connect((state) => state)(Ph);\n","//Librairies\nimport { AppSwitch } from \"@coreui/react\";\nimport moment from \"moment\";\nimport React, { Component } from \"react\";\nimport { Line } from \"react-chartjs-2\";\nimport { connect } from \"react-redux\";\nimport {\n Button,\n ButtonToolbar,\n Card,\n CardBody,\n CardColumns,\n Label,\n} from \"reactstrap\";\n//Services\nimport { GetAccessToken } from \"../../authentication/token\";\n//Css\nimport \"./WaterQuality.css\";\n\nclass WaterQuality extends Component {\n constructor(props) {\n super(props);\n this.state = {\n labels: null,\n data: null,\n moyen: null,\n moyenCharge: null,\n charges: null,\n ListButton: null,\n DateDebut: this.props.DateDebut,\n DateFin: this.props.DateFin,\n Action: this.props.Action,\n ParametreId: \"DCO\",\n IndicateurSuiviId: this.props.EtapeTraitementId === \"2\" ? \"NE5\" : \"NE4\",\n UniteCharge: null,\n UniteConcentration: null,\n SiteId: this.props.siteInformation.siteId,\n BarConcentration: {\n labels: null,\n datasets: [\n {\n id: \"concent\",\n label: \"Concentration\",\n fill: false,\n lineTension: 0.1,\n backgroundColor: \"rgba(75,192,192,0.4)\",\n borderColor: \"#FFCD00\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0.0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"#FFCD00\",\n pointBackgroundColor: \"#FFCD00\",\n pointBorderWidth: 1,\n pointHoverRadius: 5,\n pointHoverBackgroundColor: \"#FFCD00\",\n pointHoverBorderColor: \"#FFCD00\",\n pointHoverBorderWidth: 2,\n pointRadius: 1,\n pointHitRadius: 10,\n data: null,\n },\n ],\n },\n BarCharge: {\n labels: null,\n datasets: [\n {\n id: \"charge\",\n label: \"Charge\",\n fill: false,\n lineTension: 0.1,\n backgroundColor: \"rgba(75,192,192,0.4)\",\n borderColor: \"#FFCD00\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0.0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"#FFCD00\",\n pointBackgroundColor: \"#FFCD00\",\n pointBorderWidth: 1,\n pointHoverRadius: 5,\n pointHoverBackgroundColor: \"#FFCD00\",\n pointHoverBorderColor: \"#FFCD00\",\n pointHoverBorderWidth: 2,\n pointRadius: 1,\n pointHitRadius: 10,\n data: null,\n },\n ],\n },\n compareGraph: false,\n chargesComparaison: null,\n };\n\n this.options = {\n legend: {\n display: false,\n },\n };\n\n this.OnClickButton = this.OnClickButton.bind(this);\n this.OncheckedMoyen = this.OncheckedMoyen.bind(this);\n\n this.lineSeuilMaxCharge = {\n type: \"line\",\n label: \"Seuil Max\",\n fill: false,\n lineTension: 0.1,\n backgroundColor: \"#F24C07\",\n borderColor: \"#F24C07\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0.0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"#F24C07\",\n pointBackgroundColor: \"#F24C07\",\n pointBorderWidth: 1,\n pointHoverRadius: 5,\n pointHoverBackgroundColor: \"#F24C07\",\n pointHoverBorderColor: \"#F24C07\",\n pointHoverBorderWidth: 2,\n pointRadius: 1,\n pointHitRadius: 10,\n data: null,\n };\n\n this.lineSeuilMaxConcentration = {\n label: \"Seuil Max\",\n fill: false,\n lineTension: 0.1,\n backgroundColor: \"#F24C07\",\n borderColor: \"#F24C07\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0.0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"#F24C07\",\n pointBackgroundColor: \"#F24C07\",\n pointBorderWidth: 1,\n pointHoverRadius: 5,\n pointHoverBackgroundColor: \"#F24C07\",\n pointHoverBorderColor: \"#F24C07\",\n pointHoverBorderWidth: 2,\n pointRadius: 1,\n pointHitRadius: 10,\n data: null,\n };\n\n this.BarConcentration = {\n labels: null,\n datasets: [\n {\n id: \"concent\",\n label: \"Concentration\",\n fill: false,\n lineTension: 0.1,\n backgroundColor: \"rgba(75,192,192,0.4)\",\n borderColor: \"#FFCD00\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0.0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"#FFCD00\",\n pointBackgroundColor: \"#FFCD00\",\n pointBorderWidth: 1,\n pointHoverRadius: 5,\n pointHoverBackgroundColor: \"#FFCD00\",\n pointHoverBorderColor: \"#FFCD00\",\n pointHoverBorderWidth: 2,\n pointRadius: 1,\n pointHitRadius: 10,\n data: null,\n },\n ],\n };\n\n this.BarCharge = {\n labels: null,\n datasets: [\n {\n id: \"charge\",\n label: \"Charge\",\n fill: false,\n lineTension: 0.1,\n backgroundColor: \"rgba(75,192,192,0.4)\",\n borderColor: \"#FFCD00\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0.0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"#FFCD00\",\n pointBackgroundColor: \"#FFCD00\",\n pointBorderWidth: 1,\n pointHoverRadius: 5,\n pointHoverBackgroundColor: \"#FFCD00\",\n pointHoverBorderColor: \"#FFCD00\",\n pointHoverBorderWidth: 2,\n pointRadius: 1,\n pointHitRadius: 10,\n data: null,\n },\n ],\n };\n\n this.onChangeGraph = this.onChangeGraph.bind(this);\n }\n\n OncheckedMoyen() {\n if (!this.state.DisplayMoyen) {\n this.BarConcentration.datasets[\n this.BarConcentration.datasets.findIndex(\n (item) => item.id === \"concent\"\n )\n ].data = this.state.moyen;\n this.BarCharge.datasets[\n this.BarCharge.datasets.findIndex((item) => item.id === \"charge\")\n ].data = this.state.moyenCharge;\n this.setState({\n BarConcentration: this.BarConcentration,\n BarCharge: this.BarCharge,\n DisplayMoyen: true,\n });\n } else {\n this.BarConcentration.datasets[\n this.BarConcentration.datasets.findIndex(\n (item) => item.id === \"concent\"\n )\n ].data = this.state.data;\n this.BarCharge.datasets[\n this.BarCharge.datasets.findIndex((item) => item.id === \"charge\")\n ].data = this.state.charges;\n this.setState({\n BarConcentration: this.BarConcentration,\n BarCharge: this.BarCharge,\n DisplayMoyen: false,\n });\n }\n }\n\n async OnClickButton(parametreId, indicateurSuiviId) {\n await this.setState({\n ParametreId: parametreId,\n IndicateurSuiviId: indicateurSuiviId,\n });\n Promise.all([await this.LoadData(), await this.GetUnitIndicateur()]);\n }\n\n // // Method to get accessToken\n // async GetAccessToken() {\n // if (this.props.authentification.accessToken && this.props.authentification.accessToken.expiresOn > new Date()) {\n // return this.props.authentification.accessToken.accessToken;\n // }\n // else {\n // let token = await getAuthProvider().getAccessToken();\n // return token.accessToken;\n // }\n // }\n\n async GetButtonList() {\n try {\n let result = await fetch(\n `${window.appSettings.apiendpoint}/IndicateurSuivi/${this.state.SiteId}/${this.props.GrandeurEvalueeId}/${this.props.EtapeTraitementId}`,\n {\n headers: {\n Accept: \"application/json\",\n \"Access-Control-Allow-Origin\": \"*\",\n Authorization: `Bearer ${await GetAccessToken(\n this.props.authentification\n )}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n if (result.status === 200) {\n let data = await result.json();\n this.setState({ ListButton: data });\n }\n } catch (ex) {}\n }\n\n async LoadData() {\n this.onChangeGraph(true);\n\n try {\n let result = await fetch(\n `${window.appSettings.apiendpoint}/DonneeIndicateur`,\n {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Access-Control-Allow-Origin\": \"*\",\n Authorization: `Bearer ${await GetAccessToken(\n this.props.authentification\n )}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n DateDebut: moment(this.state.DateDebut).format(\n \"DD/MM/YYYY HH:mm:ss\"\n ),\n DateFin: moment(this.state.DateFin).format(\"DD/MM/YYYY HH:mm:ss\"),\n IndicateurSuiviId: this.state.IndicateurSuiviId,\n TypeAffichage: this.state.Action,\n ParametreId: this.state.ParametreId,\n EtapeTraitementId: this.props.EtapeTraitementId,\n SiteId: this.state.SiteId,\n }),\n }\n );\n if (result.status === 200) {\n let data = await result.json();\n this.BarConcentration.labels = data.labels;\n this.BarConcentration.datasets[0].data = data.data;\n this.BarCharge.labels = data.labels;\n this.BarCharge.datasets[\n this.BarCharge.datasets.findIndex((item) => item.id === \"charge\")\n ].data = data.charges;\n\n //on est en jour donc pas d'incidence lors de la comparaison\n if (data.seuilMaxCharge !== null) {\n if (this.BarCharge.datasets.length === 1) {\n this.lineSeuilMaxCharge.data = data.seuilMaxCharge;\n this.BarCharge.datasets.push(this.lineSeuilMaxCharge);\n } else {\n this.BarCharge.datasets[1].data = data.seuilMaxCharge;\n }\n } else if (this.BarCharge.datasets.length > 1) {\n this.BarCharge.datasets = this.BarCharge.datasets.filter(\n (item) => item.type !== \"line\"\n );\n }\n\n if (data.seuilMax !== null) {\n if (this.BarConcentration.datasets.length === 1) {\n this.lineSeuilMaxConcentration.data = data.seuilMax;\n this.BarConcentration.datasets.push(this.lineSeuilMaxConcentration);\n } else {\n this.BarConcentration.datasets[1].data = data.seuilMax;\n }\n } else {\n this.BarConcentration.datasets[\n this.BarConcentration.datasets.findIndex(\n (item) => item.id === \"concent\"\n )\n ].data = [];\n this.BarConcentration.datasets =\n this.BarConcentration.datasets.filter(\n (item) => item.id === \"concent\"\n );\n }\n\n console.log(data);\n\n this.setState({\n BarConcentration: this.BarConcentration,\n BarCharge: this.BarCharge,\n data: data.data,\n charges: data.charges,\n moyen: data.moyen,\n moyenCharge: data.moyenCharges,\n chargesComparaison: data.chargesComparaison,\n });\n } else if (result.status === 204) {\n this.setState({\n labels: null,\n data: null,\n moyen: null,\n charges: null,\n chargesComparaison: null,\n });\n }\n } catch (ex) {\n console.log(\"Erreur\");\n }\n }\n\n async GetUnitIndicateur() {\n try {\n let result = await fetch(\n `${window.appSettings.apiendpoint}/DonneeIndicateur/GetUnitesIndicateursSuivis?SiteId=${this.state.SiteId}&IndicateurSuiviId=${this.state.IndicateurSuiviId}&ParametreId=${this.state.ParametreId}&EtapeTraitementId=${this.props.EtapeTraitementId}&TypeAffichage=${this.props.Action}`,\n {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n \"Access-Control-Allow-Origin\": \"*\",\n Authorization: `Bearer ${await GetAccessToken(\n this.props.authentification\n )}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n if (result.status === 200) {\n let data = await result.json();\n this.setState({\n UniteCharge: data.uniteIndicateurSuiviCharge,\n UniteConcentration: data.uniteIndicateurSuiviConcentration,\n });\n }\n } catch (ex) {}\n }\n\n async componentDidMount() {\n await Promise.all([\n await this.GetButtonList(),\n await this.LoadData(),\n await this.GetUnitIndicateur(),\n ]);\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n if (\n nextProps.DateDebut !== prevState.DateDebut &&\n nextProps.DateFin !== prevState.DateFin\n ) {\n return {\n DateDebut: nextProps.DateDebut,\n DateFin: nextProps.DateFin,\n Action: nextProps.Action,\n };\n } else return null;\n }\n\n // Method de refresh data after changing prpos\n async componentDidUpdate(prevProps) {\n if (\n prevProps.DateDebut !== this.state.DateDebut &&\n prevProps.DateFin !== this.state.DateFin\n ) {\n this.setState({\n DateDebut: prevProps.DateDebut,\n DateFin: prevProps.DateFin,\n Action: prevProps.Action,\n });\n await this.LoadData();\n }\n if (prevProps.Action !== this.state.Action) {\n await this.GetUnitIndicateur();\n }\n if (this.state.SiteId !== this.props.siteInformation.siteId) {\n this.setState({\n SiteId: this.props.siteInformation.siteId,\n ParametreId: \"DCO\",\n IndicateurSuiviId: this.props.EtapeTraitementId === \"2\" ? \"NE5\" : \"NE4\",\n });\n await Promise.all([await this.LoadData(), await this.GetButtonList()]);\n }\n }\n\n onChangeGraph(reset) {\n if (reset === true) {\n this.BarCharge.datasets = this.BarCharge.datasets.filter(\n (item) => item.id !== \"chargeN-1\"\n );\n this.setState({ compareGraph: false, BarCharge: this.BarCharge });\n return;\n }\n\n if (!this.state.compareGraph) {\n this.BarCharge.datasets.push({\n id: \"chargeN-1\",\n label: \"Charge N-1\",\n fill: false,\n lineTension: 0.1,\n backgroundColor: \"#0a3c5c\",\n borderColor: \"#0a3c5c\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0.0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"#0a3c5c\",\n pointBackgroundColor: \"#0a3c5c\",\n pointBorderWidth: 1,\n pointHoverRadius: 5,\n pointHoverBackgroundColor: \"#0a3c5c\",\n pointHoverBorderColor: \"#0a3c5c\",\n pointHoverBorderWidth: 2,\n pointRadius: 1,\n pointHitRadius: 10,\n data: this.state.chargesComparaison,\n });\n } else {\n this.BarCharge.datasets = this.BarCharge.datasets.filter(\n (item) => item.id !== \"chargeN-1\"\n );\n }\n\n this.setState({\n compareGraph: !this.state.compareGraph,\n BarCharge: this.BarCharge,\n });\n }\n\n render() {\n return (\n
\n
\n
\n \n
\n
\n \n {this.state.ListButton &&\n this.state.ListButton.map((button) => (\n \n this.OnClickButton(button.parametreId, button.id)\n }\n className={\n this.state.ParametreId === button.parametreId\n ? \"btn-pill btn-selected\"\n : \"btn-pill\"\n }\n >\n {button.parametreId}\n \n ))}\n {this.props.Action === \"Mois\" && (\n \n \n
\n )}\n \n \n \n \n
\n \n {this.state.Granularite}\n \n
\n \n
\n \n Concentration ({this.state.UniteConcentration})\n \n
\n
\n
\n \n \n
\n \n {this.state.GranulariteCharge}\n \n
\n \n
\n \n Charge ({this.state.UniteCharge})\n \n
\n
\n
\n
\n \n );\n }\n}\n\nexport default connect((state) => state)(WaterQuality);\n","import React, { Component } from \"react\";\nimport { Line } from \"react-chartjs-2\";\nimport { Label } from \"reactstrap\";\nimport moment from \"moment\";\nimport { connect } from \"react-redux\";\nimport { GetAccessToken } from \"../../authentication/token\";\n\nexport const lineSeuilMax = {\n label: null,\n fill: false,\n lineTension: 0.1,\n backgroundColor: \"#F24C07\",\n borderColor: \"#F24C07\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0.0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"#F24C07\",\n pointBackgroundColor: \"#F24C07\",\n pointBorderWidth: 1,\n pointHoverRadius: 5,\n pointHoverBackgroundColor: \"#F24C07\",\n pointHoverBorderColor: \"#F24C07\",\n pointHoverBorderWidth: 2,\n pointRadius: 1,\n pointHitRadius: 10,\n data: null,\n};\n\nexport const lineSeuilMin = {\n label: null,\n fill: false,\n lineTension: 0.1,\n backgroundColor: \"#0a3c5c\",\n borderColor: \"#0a3c5c\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0.0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"#0a3c5c\",\n pointBackgroundColor: \"#0a3c5c\",\n pointBorderWidth: 1,\n pointHoverRadius: 5,\n pointHoverBackgroundColor: \"#0a3c5c\",\n pointHoverBorderColor: \"#0a3c5c\",\n pointHoverBorderWidth: 2,\n pointRadius: 1,\n pointHitRadius: 10,\n data: null,\n};\n\nclass WaterTemperature extends Component {\n // Constructor\n constructor(props) {\n super(props);\n\n this.options = {\n legend: {\n display: false,\n },\n };\n\n this.state = {\n labels: null,\n data: null,\n moyen: null,\n DateDebut: this.props.DateDebut,\n DateFin: this.props.DateFin,\n Action: this.props.Action,\n Unite: null,\n SiteId: this.props.siteInformation.siteId,\n line: {\n labels: null,\n datasets: [\n {\n data: null,\n lineTension: 0.1,\n backgroundColor: \"#FFCD00\",\n borderColor: \"#FFCD00\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0.0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"#FFCD00\",\n pointBackgroundColor: \"#FFCD00\",\n pointBorderWidth: 1,\n pointHoverRadius: 5,\n pointHoverBackgroundColor: \"#FFCD00\",\n pointHoverBorderColor: \"rgba(220,220,220,1)\",\n pointHoverBorderWidth: 2,\n pointRadius: 1,\n pointHitRadius: 10,\n label: \"Température\",\n fill: false,\n },\n ],\n },\n };\n }\n\n // Methof of loading data to display\n async LoadData() {\n try {\n let resulta = await fetch(\n `${window.appSettings.apiendpoint}/DonneeIndicateur`,\n {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${await GetAccessToken(\n this.props.authentification\n )}`,\n },\n body: JSON.stringify({\n TypeAffichage: this.state.Action,\n DateDebut: moment(this.state.DateDebut).format(\n \"DD/MM/YYYY HH:mm:ss\"\n ),\n IndicateurSuiviId: this.props.IndicateurSuiviId,\n ParametreId: null,\n SiteId: this.state.SiteId,\n DateFin: moment(this.state.DateFin).format(\"DD/MM/YYYY HH:mm:ss\"),\n }),\n }\n );\n if (resulta.status === 200) {\n let data = await resulta.json();\n this.state.line.labels = data.labels;\n this.state.line.datasets[0].data = data.data;\n this.forceUpdate();\n if (!this.state.line.datasets[1] && data.seuilMax) {\n lineSeuilMax.label = \"Seuil Max\";\n lineSeuilMax.data = data.seuilMax;\n this.state.line.datasets.push(lineSeuilMax);\n this.forceUpdate();\n } else {\n this.state.line.datasets[1].data = data.seuilMax;\n this.forceUpdate();\n }\n if (!this.state.line.datasets[2] && data.seuilMin) {\n lineSeuilMin.label = \"Seuil Min\";\n lineSeuilMin.data = data.seuilMin;\n this.state.line.datasets.push(lineSeuilMin);\n this.forceUpdate();\n } else {\n this.state.line.datasets[2].data = data.seuilMin;\n this.forceUpdate();\n }\n this.setState({ moyen: data.moyen });\n }\n } catch (ex) {}\n }\n\n // Method de refresh data after changing prpos\n async componentDidUpdate(prevoProps) {\n if (\n prevoProps.DateDebut !== this.state.DateDebut &&\n prevoProps.DateFin !== this.state.DateFin\n ) {\n this.setState({\n Action: prevoProps.Action,\n DateDebut: prevoProps.DateDebut,\n DateFin: prevoProps.DateFin,\n });\n await this.LoadData();\n }\n if (prevoProps.Action !== this.state.Action) {\n await this.GetUnitIndicateur();\n }\n if (this.state.SiteId !== this.props.siteInformation.siteId) {\n this.setState({ SiteId: this.props.siteInformation.siteId });\n\n await this.LoadData();\n }\n }\n\n //Method executed After rendering compenont\n async componentDidMount() {\n await Promise.all([await this.LoadData(), await this.GetUnitIndicateur()]);\n }\n\n // Method To get granularite Value\n async GetUnitIndicateur() {\n try {\n let result = await fetch(\n `${window.appSettings.apiendpoint}/DonneeIndicateur/GetUnitesIndicateursSuivis?SiteId=${this.state.SiteId}&IndicateurSuiviId=${this.props.IndicateurSuiviId}&TypeAffichage=${this.props.Action}`,\n {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n Authorization: `Bearer ${await GetAccessToken(\n this.props.authentification\n )}`,\n\n \"Content-Type\": \"application/json\",\n },\n }\n );\n if (result.status === 200) {\n let data = await result.json();\n this.setState({ Unite: data.uniteIndicateurSuivi });\n }\n } catch (ex) {}\n }\n\n // Method to set state when props change\n static getDerivedStateFromProps(nextProprs, prevState) {\n if (\n nextProprs.DateDebut !== prevState.DateDebut &&\n nextProprs.DateFin !== prevState.DateFin\n ) {\n return {\n DateDebut: nextProprs.DateDebut,\n DateFin: nextProprs.DateFin,\n Action: nextProprs.Action,\n };\n } else return null;\n }\n\n render() {\n return (\n
\n \n
\n \n {this.state.Granularite}\n \n
\n \n
\n );\n }\n}\n\nexport default connect((state) => state)(WaterTemperature);\n","//Librairies\nimport React, { Component } from \"react\";\nimport { Label, Spinner } from \"reactstrap\";\nimport { CircularProgressbarWithChildren } from \"react-circular-progressbar\";\nimport { connect } from \"react-redux\";\nimport moment from \"moment\";\n//Services\nimport { GetAccessToken } from \"../../authentication/token\";\n//css\nimport \"react-circular-progressbar/dist/styles.css\";\nimport \"./WasteAndUnderProduct.scss\";\n\nclass WasteAndUnderProduct extends Component {\n constructor(props) {\n super(props);\n this.state = {\n ListDechetsProduits: null,\n SiteId: this.props.siteInformation.siteId,\n Unite: \"S\",\n Loading: true,\n };\n }\n\n async LoadData() {\n try {\n this.setState({ Loading: true });\n let result = await fetch(\n `${window.appSettings.apiendpoint}/DonneeIndicateur/GetDechetsProduits`,\n {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n\n Authorization: `Bearer ${await GetAccessToken(\n this.props.authentification\n )}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n DateDebut: moment(this.state.DateDebut).format(\n \"DD/MM/YYYY HH:mm:ss\"\n ),\n TypeAffichage: this.state.Action,\n SiteId: this.state.SiteId,\n }),\n }\n );\n if (result.status === 200) {\n let data = await result.json();\n this.setState({ ListDechetsProduits: data, Loading: false });\n }\n } catch (ex) {}\n }\n\n //Method executed After rendering compenont\n async componentDidMount() {\n await this.LoadData();\n }\n\n // Method to set state when props change\n static getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.DateDebut !== prevState.DateDebut) {\n return {\n DateDebut: nextProps.DateDebut,\n Action: nextProps.Action,\n };\n } else return null;\n }\n\n // Method de refresh data after changing prpos\n async componentDidUpdate(prevProps) {\n if (prevProps.DateDebut !== this.state.DateDebut) {\n this.setState({\n DateDebut: prevProps.DateDebut,\n Action: prevProps.Action,\n });\n await this.LoadData();\n if (prevProps.Action !== this.state.Action) {\n this.SetUnite();\n }\n }\n if (this.state.SiteId !== this.props.siteInformation.siteId) {\n this.setState({ SiteId: this.props.siteInformation.siteId });\n await this.LoadData();\n }\n }\n\n SetUnite() {\n switch (this.state.Action) {\n case \"Annee\":\n this.setState({ Unite: \"A\" });\n break;\n\n case \"Mois\":\n this.setState({ Unite: \"M\" });\n break;\n\n case \"Semaine\":\n this.setState({ Unite: \"S\" });\n break;\n\n default:\n break;\n }\n }\n\n render() {\n return (\n
\n \n {this.state.Loading && (\n
\n \n
\n )}\n
\n {this.state.ListDechetsProduits &&\n this.state.ListDechetsProduits.map((dechet, index) => (\n \n
\n \n
\n
\n
\n
\n \n
\n
\n \n {this.state.Action !== \"Semaine\" && (\n \n )}\n
\n
\n {dechet.titreQuantite &&
}\n {dechet.titreQuantite && (\n
\n
\n \n
\n
\n
\n \n
\n \n {this.state.Action !== \"Semaine\" && (\n \n )}\n
\n \n
\n
\n
\n )}\n
\n
\n ))}\n
\n
\n );\n }\n}\n\nexport default connect((state) => state)(WasteAndUnderProduct);\n","//Librairies\nimport React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport {\n Card,\n CardBody,\n CardColumns,\n Button,\n ButtonToolbar,\n Spinner,\n Container,\n} from \"reactstrap\";\nimport { set, format } from \"date-fns\";\n//Applications\nimport VolumeWater from \"../../components/VolumeWater/VolumeWater\";\nimport Ph from \"../../components/PH/Ph.js\";\nimport WaterQuality from \"../../components/WaterQuality/WaterQuality.js\";\nimport WaterTemperature from \"../../components/WaterTemperature/WaterTemperature.js\";\nimport WasteAndUnderProduct from \"../../components/WasteAndUnderProduct/WasteAndUnderProduct.js\";\nimport DateRangePicker from \"../StepIn/Datepicker\";\nimport { StartOfWeek, month_name } from \"../core\";\n//Assets\nimport \"../../styles/Button.css\";\nimport \"../../styles/Label.css\";\nimport \"../../styles/Spinner.css\";\n\nexport function ButtonPeriodBar({\n DateDebut = null,\n DateFin = null,\n action = null,\n CustomDate = null,\n OnClickAction = () => {},\n}) {\n return (\n \n {\n if (CustomDate) {\n OnClickAction(\"Custom\", {\n start: DateDebut,\n end: DateFin,\n time: \"Annee\",\n });\n } else {\n OnClickAction(\"Annee\");\n }\n }}\n >\n Année\n \n {\n if (CustomDate) {\n OnClickAction(\"Custom\", {\n start: DateDebut,\n end: DateFin,\n time: \"Mois\",\n });\n } else {\n OnClickAction(\"Mois\");\n }\n }}\n >\n Mois\n \n {\n if (CustomDate) {\n OnClickAction(\"Custom\", {\n start: DateDebut,\n end: DateFin,\n time: \"Semaine\",\n });\n } else {\n OnClickAction(\"Semaine\");\n }\n }}\n >\n Semaine\n \n {\n if (CustomDate) {\n OnClickAction(\"Custom\", {\n start: DateDebut,\n end: DateFin,\n time: \"Jour\",\n });\n } else {\n OnClickAction(\"Jour\");\n }\n }}\n >\n Jour\n \n {\n if (CustomDate) {\n OnClickAction(\"Custom\", {\n start: DateDebut,\n end: DateFin,\n time: \"Heure\",\n });\n } else {\n OnClickAction(\"Heure\");\n }\n }}\n >\n Heure\n \n \n );\n}\n\nexport function CardView({\n DateDebut = null,\n DateFin = null,\n action = {},\n volumeWater = { Titre: \"\", IndicateurSuiviId: \"\", Moyen: \"\" },\n ph = { IndicateurSuiviId: \"\" },\n waterTemperature = { IndicateurSuiviId: \"\" },\n waterQuality = { Titre: \"\", EtapeTraitementId: \"\", GrandeurEvalueeId: \"\" },\n}) {\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nclass StepOut extends Component {\n constructor(props) {\n super(props);\n let dateTime = new Date();\n this.DateNow = new Date(\n dateTime.getFullYear(),\n dateTime.getMonth(),\n dateTime.getDate()\n );\n this.OnClickAction = this.OnClickAction.bind(this);\n this.OnClichChangeDate = this.OnClichChangeDate.bind(this);\n this.OnClickActionDechet = this.OnClickActionDechet.bind(this);\n this.OnClichChangeDateDechet = this.OnClichChangeDateDechet.bind(this);\n let datedebut = new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth(),\n this.DateNow.getDate() - 14\n );\n let datefin = new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth(),\n this.DateNow.getDate(),\n 0,\n 0,\n 0\n );\n let datedebutDechet = StartOfWeek(\n new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth(),\n this.DateNow.getDate()\n ),\n 0,\n 0,\n 0\n );\n let datefinDechet = new Date(\n datedebutDechet.getFullYear(),\n datedebutDechet.getMonth(),\n datedebutDechet.getDate() + 6,\n 0,\n 0,\n 0\n );\n this.state = {\n action: \"Jour\",\n DateDebut: datedebut,\n DateFin: datefin,\n TextInterval: `Du ${datedebut.getDate()} ${month_name(\n datedebut\n )} au ${datefin.getDate()} ${month_name(datefin)}`,\n actionDechet: \"Semaine\",\n TextDechet: `Du ${datedebutDechet.getDate()} ${month_name(\n datedebutDechet\n )} au ${datefinDechet.getDate()} ${month_name(datefinDechet)}`,\n DateDebutDechet: datedebutDechet,\n DateFinDechet: datefinDechet,\n DisableButton: true,\n DisableButtonDechet: true,\n CustomDate: false,\n };\n }\n\n // On click Next or Privious\n OnClichChangeDate(props) {\n if (props === \"Next\") {\n this.ChangeDate(1);\n } else {\n this.ChangeDate(-1);\n }\n }\n\n // On click Next or Privious\n OnClichChangeDateDechet(props) {\n if (props === \"Next\") {\n this.ChangeDateDechet(1);\n } else {\n this.ChangeDateDechet(-1);\n }\n }\n\n // Method to change date\n OnClickActionDechet(props, payload) {\n let datedebut;\n switch (props) {\n case \"Annee\":\n datedebut = new Date(this.DateNow.getFullYear(), 0, 1, 0, 0, 0);\n this.setState({\n actionDechet: \"Annee\",\n DateDebutDechet: datedebut,\n TextDechet: `Année ${datedebut.getFullYear()}`,\n DisableButtonDechet: true,\n });\n break;\n case \"Mois\":\n datedebut = new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth(),\n 1,\n 0,\n 0,\n 0\n );\n this.setState({\n actionDechet: \"Mois\",\n DateDebutDechet: datedebut,\n TextDechet: `${month_name(datedebut)} ${datedebut.getFullYear()}`,\n DisableButtonDechet: true,\n });\n break;\n case \"Semaine\":\n datedebut = StartOfWeek(\n new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth(),\n this.DateNow.getDate()\n ),\n 0,\n 0,\n 0\n );\n let datefin = new Date(\n datedebut.getFullYear(),\n datedebut.getMonth(),\n datedebut.getDate() + 6,\n 0,\n 0,\n 0\n );\n this.setState({\n actionDechet: \"Semaine\",\n DateDebutDechet: datedebut,\n DateFinDechet: datefin,\n TextDechet: `Du ${datedebut.getDate()} ${month_name(\n datedebut\n )} au ${datefin.getDate()} ${month_name(datefin)}`,\n DisableButtonDechet: true,\n });\n break;\n\n default:\n break;\n }\n }\n\n ChangeDateDechet(props) {\n let datedebut;\n switch (this.state.actionDechet) {\n case \"Annee\":\n datedebut = new Date(\n this.state.DateDebutDechet.getFullYear() + props,\n 0,\n 1\n );\n this.setState({\n DateDebutDechet: datedebut,\n TextDechet: `Année ${datedebut.getFullYear()}`,\n DisableButtonDechet:\n datedebut.getFullYear() === this.DateNow.getFullYear()\n ? true\n : false,\n });\n break;\n case \"Mois\":\n datedebut = new Date(\n this.state.DateDebutDechet.getFullYear(),\n this.state.DateDebutDechet.getMonth() + props,\n 1\n );\n this.setState({\n DateDebutDechet: datedebut,\n TextDechet: `${month_name(datedebut)} ${datedebut.getFullYear()}`,\n DisableButtonDechet:\n datedebut.getFullYear() === this.DateNow.getFullYear() &&\n datedebut.getMonth() === this.DateNow.getMonth()\n ? true\n : false,\n });\n break;\n case \"Semaine\":\n datedebut = new Date(\n this.state.DateDebutDechet.getFullYear(),\n this.state.DateDebutDechet.getMonth(),\n this.state.DateDebutDechet.getDate() + props * 7\n );\n let datefin = new Date(\n this.state.DateFinDechet.getFullYear(),\n this.state.DateFinDechet.getMonth(),\n this.state.DateFinDechet.getDate() + props * 7\n );\n let currentFistDayofWeek = StartOfWeek(\n new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth(),\n this.DateNow.getDate()\n ),\n 0,\n 0,\n 0\n );\n let currentLastDayofWeek = new Date(\n currentFistDayofWeek.getFullYear(),\n currentFistDayofWeek.getMonth(),\n currentFistDayofWeek.getDate() + 6,\n 0,\n 0,\n 0\n );\n this.setState({\n DateDebutDechet: datedebut,\n DateFinDechet: datefin,\n TextDechet: `Du ${datedebut.getDate()} ${month_name(\n datedebut\n )} au ${datefin.getDate()} ${month_name(datefin)}`,\n DisableButtonDechet:\n datedebut.getTime() === currentFistDayofWeek.getTime() &&\n datefin.getTime() === currentLastDayofWeek.getTime()\n ? true\n : false,\n });\n break;\n\n default:\n break;\n }\n }\n\n // Method to change date\n ChangeDate(props) {\n let datedebut, datefin;\n switch (this.state.action) {\n case \"Annee\":\n datedebut = new Date(this.state.DateDebut.getFullYear() + props, 0, 1);\n datefin = new Date(this.state.DateFin.getFullYear() + props, 0, 1);\n this.setState({\n DateDebut: datedebut,\n DateFin: datefin,\n TextInterval: `De ${datedebut.getFullYear()} à ${datefin.getFullYear()} `,\n DisableButton:\n datefin.getFullYear() === this.DateNow.getFullYear() ? true : false,\n });\n break;\n case \"Mois\":\n datedebut = new Date(\n this.state.DateDebut.getFullYear(),\n this.state.DateDebut.getMonth() + props,\n 1\n );\n datefin = new Date(\n this.state.DateFin.getFullYear(),\n this.state.DateFin.getMonth() + props,\n 1\n );\n this.setState({\n DateDebut: datedebut,\n DateFin: datefin,\n TextInterval: `De ${month_name(\n datedebut\n )} ${datedebut.getFullYear()} à ${month_name(\n datefin\n )} ${datefin.getFullYear()}`,\n DisableButton:\n datefin.getFullYear() === this.DateNow.getFullYear() &&\n datefin.getMonth() === this.DateNow.getMonth()\n ? true\n : false,\n });\n break;\n case \"Semaine\":\n datedebut = new Date(\n this.state.DateDebut.getFullYear(),\n this.state.DateDebut.getMonth(),\n this.state.DateDebut.getDate() + props * 7\n );\n datefin = new Date(\n this.state.DateFin.getFullYear(),\n this.state.DateFin.getMonth(),\n this.state.DateFin.getDate() + props * 7\n );\n this.setState({\n DateDebut: datedebut,\n DateFin: datefin,\n TextInterval: `Du ${datedebut.getDate()} ${month_name(\n datedebut\n )} au ${datefin.getDate()} ${month_name(datefin)}`,\n DisableButton:\n datefin.getTime() === this.DateNow.getTime() ? true : false,\n });\n break;\n case \"Jour\":\n datedebut = new Date(\n this.state.DateDebut.getFullYear(),\n this.state.DateDebut.getMonth(),\n this.state.DateDebut.getDate() + props\n );\n datefin = new Date(\n this.state.DateFin.getFullYear(),\n this.state.DateFin.getMonth(),\n this.state.DateFin.getDate() + props\n );\n this.setState({\n DateDebut: datedebut,\n DateFin: datefin,\n TextInterval: `Du ${datedebut.getDate()} ${month_name(\n datedebut\n )} au ${datefin.getDate()} ${month_name(datefin)}`,\n DisableButton:\n datefin.getTime() === this.DateNow.getTime() ? true : false,\n });\n break;\n case \"Heure\":\n datedebut = new Date(\n this.state.DateDebut.getFullYear(),\n this.state.DateDebut.getMonth(),\n this.state.DateDebut.getDate(),\n this.state.DateDebut.getHours() + props,\n 0,\n 0\n );\n datefin = new Date(\n this.state.DateFin.getFullYear(),\n this.state.DateFin.getMonth(),\n this.state.DateFin.getDate(),\n this.state.DateFin.getHours() + props,\n 0,\n 0\n );\n this.setState({\n DateDebut: datedebut,\n DateFin: datefin,\n TextInterval: `Du ${datedebut.getDate()} ${month_name(\n datedebut\n )} ${datedebut.getHours()}h au ${datefin.getDate()} ${month_name(\n datefin\n )} ${datefin.getHours()}h`,\n DisableButton:\n datefin.getTime() === this.DateNow.getTime() ? true : false,\n });\n\n break;\n\n default:\n break;\n }\n }\n\n // On click Buttons Annee - Mois - Semaine - Jour - Heure\n OnClickAction(props, payload) {\n let datedebut, datefin;\n\n switch (props) {\n case \"Jour\":\n datedebut = new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth(),\n this.DateNow.getDate() - 14,\n 0,\n 0,\n 0\n );\n datefin = new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth(),\n this.DateNow.getDate(),\n 0,\n 0,\n 0\n );\n this.setState({\n action: \"Jour\",\n DateDebut: datedebut,\n TextInterval: `Du ${datedebut.getDate()} ${month_name(\n datedebut\n )} au ${datefin.getDate()} ${month_name(datefin)}`,\n DisableButton: true,\n CustomDate: false,\n DateFin: datefin,\n });\n break;\n case \"Heure\":\n datedebut = new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth(),\n this.DateNow.getDate() - 1,\n 0,\n 0,\n 0\n );\n datefin = new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth(),\n this.DateNow.getDate(),\n 0,\n 0,\n 0\n );\n this.setState({\n TextInterval: `Du ${datedebut.getDate()} ${month_name(\n datedebut\n )} ${datedebut.getHours()}h au ${datefin.getDate()} ${month_name(\n datefin\n )} ${datefin.getHours()}h`,\n DisableButton: true,\n CustomDate: false,\n action: \"Heure\",\n DateDebut: datedebut,\n DateFin: datefin,\n });\n break;\n\n case \"Annee\":\n datedebut = new Date(this.DateNow.getFullYear() - 4, 0, 1, 0, 0, 0);\n datefin = new Date(this.DateNow.getFullYear(), 0, 1, 0, 0, 0);\n this.setState({\n action: \"Annee\",\n DateDebut: datedebut,\n DateFin: datefin,\n TextInterval: `De ${datedebut.getFullYear()} à ${datefin.getFullYear()} `,\n DisableButton: true,\n CustomDate: false,\n });\n break;\n case \"Mois\":\n datedebut = new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth() - 11,\n 1,\n 0,\n 0,\n 0\n );\n datefin = new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth(),\n 1,\n 0,\n 0,\n 0\n );\n this.setState({\n action: \"Mois\",\n DateDebut: datedebut,\n DateFin: datefin,\n TextInterval: `De ${month_name(\n datedebut\n )} ${datedebut.getFullYear()} à ${month_name(\n datefin\n )} ${datefin.getFullYear()}`,\n DisableButton: true,\n CustomDate: false,\n });\n break;\n\n case \"Custom\":\n const { start, end, time } = payload;\n datedebut = start;\n datefin = end;\n this.setState({\n action: time,\n DisableButton: true,\n DateDebut: set(datedebut, { hours: 0, minutes: 0, seconds: 0 }),\n TextInterval: `${format(datedebut, \"d MMMM yyy\")} au ${format(\n datefin,\n \"d MMMM yyy\"\n )}`,\n DateFin: set(datefin, { hours: 0, minutes: 0, seconds: 0 }),\n CustomDate: true,\n });\n break;\n case \"Semaine\":\n datedebut = StartOfWeek(\n new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth() - 3,\n this.DateNow.getDate()\n ),\n 0,\n 0,\n 0\n );\n datefin = new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth(),\n this.DateNow.getDate(),\n 0,\n 0,\n 0\n );\n this.setState({\n action: \"Semaine\",\n DisableButton: true,\n DateDebut: datedebut,\n DateFin: datefin,\n CustomDate: false,\n TextInterval: `Du ${datedebut.getDate()} ${month_name(\n datedebut\n )} au ${datefin.getDate()} ${month_name(datefin)}`,\n });\n break;\n\n default:\n break;\n }\n }\n\n render() {\n return (\n \n
\n {!this.props.siteInformation.siteId && (\n
\n \n
\n )}\n \n \n
\n {this.props.siteInformation.siteId && (\n \n )}\n {this.props.siteInformation.siteId && (\n \n
\n {\n this.OnClickAction(\"Custom\", {\n start,\n end,\n time: this.state.action,\n });\n }}\n onCancelDate={() => {\n this.OnClickAction(\"Semaine\");\n }}\n className=\"mt-2 mb-2 flex-grow-1\"\n />\n {/* */}\n {this.state.CustomDate === false && (\n \n this.OnClichChangeDate(\"Previous\")}\n >\n this.OnClichChangeDate(\"Next\")}\n >\n \n )}\n
\n\n \n \n this.OnClickActionDechet(\"Annee\")}\n >\n Année\n \n this.OnClickActionDechet(\"Mois\")}\n >\n Mois\n \n this.OnClickActionDechet(\"Semaine\")}\n >\n Semaine\n \n \n
\n \n {this.state.TextDechet}\n \n \n this.OnClichChangeDateDechet(\"Previous\")}\n >\n this.OnClichChangeDateDechet(\"Next\")}\n >\n \n
\n \n \n \n \n \n
\n )}\n \n
\n );\n }\n}\nexport default connect((state) => state)(StepOut);\n","//Librairies\nimport React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport {\n //Card, CardBody, CardColumns,\n Button,\n ButtonToolbar,\n Spinner,\n Container,\n} from \"reactstrap\";\nimport { set, format } from \"date-fns\";\n//Application\n// import VolumeWater from '../../components/VolumeWater/VolumeWater'\n// import Ph from '../../components/PH/Ph.js'\n// import WaterQuality from '../../components/WaterQuality/WaterQuality.js'\n// import WaterTemperature from '../../components/WaterTemperature/WaterTemperature.js'\nimport DateRangePicker from \"../StepIn/Datepicker\";\nimport { StartOfWeek, month_name } from \"../core\";\n//Assets\nimport \"../../styles/Button.css\";\nimport \"../../styles/Label.css\";\nimport \"../../styles/Spinner.css\";\nimport { ButtonPeriodBar, CardView } from \"../StepOut/StepOut\";\n\nclass StepIn extends Component {\n constructor(props) {\n super(props);\n this.DateNow = new Date();\n this.OnClickAction = this.OnClickAction.bind(this);\n this.OnClichChangeDate = this.OnClichChangeDate.bind(this);\n\n let datedebut = new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth(),\n this.DateNow.getDate() - 14\n );\n let datefin = new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth(),\n this.DateNow.getDate(),\n 0,\n 0,\n 0\n );\n this.state = {\n action: \"Jour\",\n DateDebut: datedebut,\n DateFin: datefin,\n TextInterval: `Du ${datedebut.getDate()} ${month_name(\n datedebut\n )} au ${datefin.getDate()} ${month_name(datefin)}`,\n DisableButton: true,\n CustomDate: false,\n };\n }\n\n // On click Next or Privious\n OnClichChangeDate(props) {\n if (props === \"Next\") {\n this.ChangeDate(1);\n } else {\n this.ChangeDate(-1);\n }\n }\n\n // Method to change date\n ChangeDate(prop) {\n let datedebut, datefin;\n switch (this.state.action) {\n case \"Semaine\":\n datedebut = new Date(\n this.state.DateDebut.getFullYear(),\n this.state.DateDebut.getMonth(),\n this.state.DateDebut.getDate() + prop * 7\n );\n datefin = new Date(\n this.state.DateFin.getFullYear(),\n this.state.DateFin.getMonth(),\n this.state.DateFin.getDate() + prop * 7\n );\n this.setState({\n DateDebut: datedebut,\n DateFin: datefin,\n TextInterval: `Du ${datedebut.getDate()} ${month_name(\n datedebut\n )} au ${datefin.getDate()} ${month_name(datefin)}`,\n DisableButton:\n datefin.getFullYear() === this.DateNow.getFullYear() &&\n datefin.getMonth() === this.DateNow.getMonth() &&\n datefin.getDate() === this.DateNow.getDate()\n ? true\n : false,\n });\n break;\n case \"Heure\":\n datedebut = new Date(\n this.state.DateDebut.getFullYear(),\n this.state.DateDebut.getMonth(),\n this.state.DateDebut.getDate(),\n this.state.DateDebut.getHours() + prop,\n 0,\n 0\n );\n datefin = new Date(\n this.state.DateFin.getFullYear(),\n this.state.DateFin.getMonth(),\n this.state.DateFin.getDate(),\n this.state.DateFin.getHours() + prop,\n 0,\n 0\n );\n this.setState({\n DateDebut: datedebut,\n DateFin: datefin,\n TextInterval: `Du ${datedebut.getDate()} ${month_name(\n datedebut\n )} ${datedebut.getHours()}h au ${datefin.getDate()} ${month_name(\n datefin\n )} ${datefin.getHours()}h`,\n DisableButton:\n datefin.getFullYear() === this.DateNow.getFullYear() &&\n datefin.getMonth() === this.DateNow.getMonth() &&\n datefin.getDate() === this.DateNow.getDate() &&\n datefin.getHours() === 0\n ? true\n : false,\n });\n break;\n case \"Jour\":\n datedebut = new Date(\n this.state.DateDebut.getFullYear(),\n this.state.DateDebut.getMonth(),\n this.state.DateDebut.getDate() + prop\n );\n datefin = new Date(\n this.state.DateFin.getFullYear(),\n this.state.DateFin.getMonth(),\n this.state.DateFin.getDate() + prop\n );\n this.setState({\n DateDebut: datedebut,\n DateFin: datefin,\n TextInterval: `Du ${datedebut.getDate()} ${month_name(\n datedebut\n )} au ${datefin.getDate()} ${month_name(datefin)}`,\n DisableButton:\n datefin.getFullYear() === this.DateNow.getFullYear() &&\n datefin.getMonth() === this.DateNow.getMonth() &&\n datefin.getDate() === this.DateNow.getDate()\n ? true\n : false,\n });\n break;\n case \"Annee\":\n datedebut = new Date(this.state.DateDebut.getFullYear() + prop, 0, 1);\n datefin = new Date(this.state.DateFin.getFullYear() + prop, 0, 1);\n this.setState({\n DateDebut: datedebut,\n DateFin: datefin,\n TextInterval: `De ${datedebut.getFullYear()} à ${datefin.getFullYear()} `,\n DisableButton:\n datefin.getFullYear() === this.DateNow.getFullYear() ? true : false,\n });\n break;\n case \"Mois\":\n datedebut = new Date(\n this.state.DateDebut.getFullYear(),\n this.state.DateDebut.getMonth() + prop,\n 1\n );\n datefin = new Date(\n this.state.DateFin.getFullYear(),\n this.state.DateFin.getMonth() + prop,\n 1\n );\n this.setState({\n DateDebut: datedebut,\n DateFin: datefin,\n TextInterval: `De ${month_name(\n datedebut\n )} ${datedebut.getFullYear()} à ${month_name(\n datefin\n )} ${datefin.getFullYear()}`,\n DisableButton:\n datefin.getFullYear() === this.DateNow.getFullYear() &&\n datefin.getMonth() === this.DateNow.getMonth()\n ? true\n : false,\n });\n break;\n\n default:\n break;\n }\n }\n\n // On click Buttons Annee - Mois - Semaine - Jour - Heure\n OnClickAction(props, payload) {\n let datedebut, datefin;\n\n switch (props) {\n case \"Custom\":\n const { start, end, time } = payload;\n datedebut = start;\n datefin = end;\n this.setState({\n action: time,\n DateDebut: set(datedebut, { hours: 0, minutes: 0, seconds: 0 }),\n DateFin: set(datefin, { hours: 0, minutes: 0, seconds: 0 }),\n TextInterval: `${format(datedebut, \"d MMMM yyy\")} au ${format(\n datefin,\n \"d MMMM yyy\"\n )}`,\n DisableButton: true,\n CustomDate: true,\n });\n break;\n\n case \"Mois\":\n datedebut = new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth() - 11,\n 1,\n 0,\n 0,\n 0\n );\n datefin = new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth(),\n 1,\n 0,\n 0,\n 0\n );\n this.setState({\n action: \"Mois\",\n DateDebut: datedebut,\n DateFin: datefin,\n TextInterval: `De ${month_name(\n datedebut\n )} ${datedebut.getFullYear()} à ${month_name(\n datefin\n )} ${datefin.getFullYear()}`,\n DisableButton: true,\n CustomDate: false,\n });\n break;\n case \"Semaine\":\n datedebut = StartOfWeek(\n new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth() - 3,\n this.DateNow.getDate()\n ),\n 0,\n 0,\n 0\n );\n datefin = new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth(),\n this.DateNow.getDate(),\n 0,\n 0,\n 0\n );\n this.setState({\n action: \"Semaine\",\n DateDebut: datedebut,\n DateFin: datefin,\n TextInterval: `Du ${datedebut.getDate()} ${month_name(\n datedebut\n )} au ${datefin.getDate()} ${month_name(datefin)}`,\n DisableButton: true,\n CustomDate: false,\n });\n break;\n case \"Annee\":\n datedebut = new Date(this.DateNow.getFullYear() - 4, 0, 1, 0, 0, 0);\n datefin = new Date(this.DateNow.getFullYear(), 0, 1, 0, 0, 0);\n this.setState({\n action: \"Annee\",\n DateDebut: datedebut,\n DateFin: datefin,\n TextInterval: `De ${datedebut.getFullYear()} à ${datefin.getFullYear()} `,\n DisableButton: true,\n CustomDate: false,\n });\n break;\n case \"Jour\":\n datedebut = new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth(),\n this.DateNow.getDate() - 14,\n 0,\n 0,\n 0\n );\n datefin = new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth(),\n this.DateNow.getDate(),\n 0,\n 0,\n 0\n );\n this.setState({\n action: \"Jour\",\n DateDebut: datedebut,\n DateFin: datefin,\n TextInterval: `Du ${datedebut.getDate()} ${month_name(\n datedebut\n )} au ${datefin.getDate()} ${month_name(datefin)}`,\n DisableButton: true,\n CustomDate: false,\n });\n break;\n case \"Heure\":\n datedebut = new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth(),\n this.DateNow.getDate() - 1,\n 0,\n 0,\n 0\n );\n datefin = new Date(\n this.DateNow.getFullYear(),\n this.DateNow.getMonth(),\n this.DateNow.getDate(),\n 0,\n 0,\n 0\n );\n this.setState({\n action: \"Heure\",\n DateDebut: datedebut,\n DateFin: datefin,\n TextInterval: `Du ${datedebut.getDate()} ${month_name(\n datedebut\n )} ${datedebut.getHours()}h au ${datefin.getDate()} ${month_name(\n datefin\n )} ${datefin.getHours()}h`,\n DisableButton: true,\n CustomDate: false,\n });\n break;\n\n default:\n break;\n }\n }\n\n render() {\n return (\n \n
\n {!this.props.siteInformation.siteId && (\n
\n \n
\n )}\n \n \n
\n {this.props.siteInformation.siteId && (\n \n
\n \n
\n
\n {\n this.OnClickAction(\"Custom\", {\n start,\n end,\n time: this.state.action,\n });\n }}\n onCancelDate={() => {\n this.OnClickAction(\"Semaine\");\n }}\n className=\"mt-2 mb-2 flex-grow-1\"\n />\n {this.state.CustomDate === false && (\n \n this.OnClichChangeDate(\"Previous\")}\n >\n this.OnClichChangeDate(\"Next\")}\n >\n \n )}\n
\n \n
\n )}\n \n
\n );\n }\n}\nexport default connect((state) => state)(StepIn);\n","import React from 'react';\nimport { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\nimport { useForm } from \"react-hook-form\";\n\n\n\nexport default function Edit({ onSubmit, loadingModal, onClose, openModal, tag =\"\"}) {\n const { register , handleSubmit, errors } = useForm();\n\n const CloseButton = (\n
\n \n
\n )\n\n return (\n \n \n
\n

Libéllé à modifier

\n\n
\n \n \n
\n {errors &&

{errors && errors.LibelleFr && errors.LibelleFr.message}

}\n
\n
\n \n \n \n \n
)\n}","import React from 'react';\nimport { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\n\n\nexport default function Delete({ onSubmit, loadingModal, onClose, openModal, rows = [] }) {\n\n const CloseButton = (\n
\n \n
\n )\n\n return (\n \n \n
{e.preventDefault(); onSubmit()}}>\n
Êtes-vous sûr(e) de vouloir supprimer le(s) document(s) suivants ?
\n
    \n {rows.map((name, idx) =>
    {name}
    )}\n
\n
\n
\n \n \n \n \n
)\n}","import React from 'react';\nimport { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\nimport { useForm } from \"react-hook-form\";\n\n\nexport default function Import({ onSubmit, loadingModal, onClose, openModal=false }) {\n\n const { register, handleSubmit , errors} = useForm();\n\n const CloseButton = (\n
\n \n
\n )\n\n return (\n \n \n
\n

Le fichier à importer

\n \n
\n \n \n
\n {errors &&

{errors && errors.File && errors.File.message}

}\n
\n
\n \n \n \n \n
)\n}","import { format } from \"date-fns\";\nimport { GetAccessToken } from \"../authentication/token\";\n\nexport async function GetListOfModeleDocumentSimple(\n authentification,\n { siteId, CategorieDocId, PageNumber, PageSize, SortBy, SortOrder }\n) {\n try {\n return await fetch(\n `${window.appSettings.apiendpointdocument}/ModeleDocument/GetListOfModeleDocumentSimple?siteId=${siteId}&CategorieDocId=${CategorieDocId}&PageNumber=${PageNumber}&PageSize=${PageSize}&SortBy=${SortBy}&SortOrder=${SortOrder}`,\n {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n \"Access-Control-Allow-Origin\": \"*\",\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n } catch (ex) {\n return Promise.reject(\"Erreur serveur\");\n }\n}\n\nexport async function GetListOfModeleDocumentModele(\n authentification,\n { siteId, CategorieDocId, PageNumber, PageSize, SortBy, SortOrder }\n) {\n try {\n return await fetch(\n `${window.appSettings.apiendpointdocument}/ModeleDocument/GetListOfModeleDocumentModele?siteId=${siteId}&CategorieDocId=${CategorieDocId}&PageNumber=${PageNumber}&PageSize=${PageSize}&SortBy=${SortBy}&SortOrder=${SortOrder}`,\n {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n \"Access-Control-Allow-Origin\": \"*\",\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n } catch (ex) {\n return Promise.reject(\"Erreur serveur\");\n }\n}\n\nexport async function GetListOfModeleDocumentGenere(\n authentification,\n { siteId, CategorieDocId, PageNumber, PageSize, SortBy, SortOrder }\n) {\n try {\n return await fetch(\n `${window.appSettings.apiendpointdocument}/ModeleDocument/GetListOfModeleDocumentGenere?siteId=${siteId}&CategorieDocId=${CategorieDocId}&PageNumber=${PageNumber}&PageSize=${PageSize}&SortBy=${SortBy}&SortOrder=${SortOrder}`,\n {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n \"Access-Control-Allow-Origin\": \"*\",\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n } catch (ex) {\n return Promise.reject(\"Erreur serveur\");\n }\n}\n\nexport async function GetCountOfModeleDocument(\n authentification,\n { siteId, categorieDocId, typeDocId }\n) {\n try {\n return await fetch(\n `${window.appSettings.apiendpointdocument}/ModeleDocument/${siteId}/GetCountOfModeleDocument/${categorieDocId}/${typeDocId}`,\n {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n \"Access-Control-Allow-Origin\": \"*\",\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n } catch (ex) {\n return Promise.reject(\"Erreur serveur\");\n }\n}\n\nexport async function ExportFiles(\n authentification,\n { siteId, listModeleDocumentId }\n) {\n try {\n return await fetch(\n `${\n window.appSettings.apiendpointdocument\n }/ModeleDocument/ExportFiles?siteId=${siteId}&${listModeleDocumentId\n .map((id) => `listModeleDocumentId=${id}`)\n .join(\"&\")}`,\n {\n method: \"GET\",\n headers: {\n \"Access-Control-Allow-Origin\": \"*\",\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n },\n responseType: \"stream\",\n }\n );\n } catch (ex) {\n return Promise.reject(\"Erreur serveur\");\n }\n}\n\nexport async function ImportFile(\n authentification,\n { siteId, CotegorieDocId, TypeDocId, LibelleFr, File }\n) {\n const formData = new FormData();\n formData.append(\"siteId\", siteId);\n formData.append(\"CotegorieDocId\", CotegorieDocId);\n formData.append(\"TypeDocId\", TypeDocId);\n formData.append(\"LibelleFr\", LibelleFr);\n formData.append(\"File\", File[0]);\n\n try {\n return fetch(\n `${window.appSettings.apiendpointdocument}/ModeleDocument/ImportFile`,\n {\n method: \"POST\",\n headers: {\n \"Access-Control-Allow-Origin\": \"*\",\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n },\n body: formData,\n }\n );\n } catch (ex) {\n return Promise.reject(\"Erreur serveur\");\n }\n}\n\nexport async function UpdateModeleDocument(\n authentification,\n { siteId, modeleDocumentId, LibelleFr }\n) {\n try {\n return await fetch(\n `${window.appSettings.apiendpointdocument}/ModeleDocument/${siteId}/UpdateLibelleFrDocuement/${modeleDocumentId}`,\n {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Access-Control-Allow-Origin\": \"*\",\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n body: `\"${LibelleFr}\"`,\n }\n );\n } catch (ex) {\n return Promise.reject(\"Erreur serveur\");\n }\n}\n\nexport async function deleteModeleDocument(\n authentification,\n { siteId, listModeleDocumentId }\n) {\n try {\n return await fetch(\n `${\n window.appSettings.apiendpointdocument\n }/ModeleDocument?siteId=${siteId}&${listModeleDocumentId\n .map((id) => `listModeleDocumentId=${id}`)\n .join(\"&\")}`,\n {\n method: \"DELETE\",\n headers: {\n Accept: \"application/json\",\n \"Access-Control-Allow-Origin\": \"*\",\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n } catch (ex) {\n return Promise.reject(\"Erreur serveur\");\n }\n}\n\nexport async function loadEtapeTraitement(authentification, { siteId }) {\n try {\n return await fetch(\n `${window.appSettings.apiendpoint}/EtapeTraitement/${siteId}`,\n {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n \"Access-Control-Allow-Origin\": \"*\",\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n } catch (ex) {\n return Promise.reject(\"Erreur serveur\");\n }\n}\n\nexport async function GetIndicateursSuivisFiltre(authentification, { siteId }) {\n try {\n return await fetch(\n `${window.appSettings.apiendpoint}/IndicateurSuivi/GetIndicateursSuivisFiltre/${siteId}`,\n {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n \"Access-Control-Allow-Origin\": \"*\",\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n } catch (ex) {\n return Promise.reject(\"Erreur serveur\");\n }\n}\n\nexport async function GetHistoriqueDonnees(\n authentification,\n {\n siteId,\n DateDebut,\n DateFin,\n EtapeTraitementId,\n IndicateursSuivisIds,\n Releve,\n PageNumber,\n PageSize,\n }\n) {\n try {\n return await fetch(\n `${window.appSettings.apiendpoint}/HistoriqueDonnees?siteId=${siteId}${\n DateDebut === null ? \"\" : `&DateDebut=${DateDebut}`\n }${DateFin === null ? \"\" : `&DateFin=${DateFin}`}${\n EtapeTraitementId === null\n ? \"\"\n : `&EtapeTraitementId=${EtapeTraitementId}`\n }&${IndicateursSuivisIds.map((id) => `IndicateursSuivisIds=${id}`).join(\n \"&\"\n )}&Releve=${Releve}&PageNumber=${PageNumber}&PageSize=${PageSize}`,\n {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n \"Access-Control-Allow-Origin\": \"*\",\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n } catch (ex) {\n return Promise.reject(ex);\n }\n}\n\nexport async function DownloadHistorique(\n authentification,\n {\n siteId,\n DateDebut,\n DateFin,\n EtapeTraitementId,\n IndicateursSuivisIds,\n Releve,\n }\n) {\n try {\n return await fetch(\n `${\n window.appSettings.apiendpoint\n }/HistoriqueDonnees/DownloadHistoriqueFile?siteId=${siteId}${\n DateDebut === null ? \"\" : `&DateDebut=${DateDebut}`\n }${DateFin === null ? \"\" : `&DateFin=${DateFin}`}${\n EtapeTraitementId === null\n ? \"\"\n : `&EtapeTraitementId=${EtapeTraitementId}`\n }&${IndicateursSuivisIds.map(\n (item) => `IndicateursSuivisIds=${item.value}`\n ).join(\"&\")}&Releve=${Releve}`,\n {\n method: \"GET\",\n headers: {\n \"Access-Control-Allow-Origin\": \"*\",\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n },\n responseType: \"stream\",\n }\n );\n } catch (ex) {\n return Promise.reject(ex);\n }\n}\n\nexport async function GenerateGidafFile(\n authentification,\n { siteId, periode, idDocument }\n) {\n try {\n let response = await fetch(\n `${window.appSettings.apiendpointdocument}/ModeleDocument/GenerateGidafFile`,\n {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Access-Control-Allow-Origin\": \"*\",\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n siteId: siteId,\n periode: format(periode, \"MM/yyyy\"),\n idDocument: idDocument,\n }),\n }\n );\n\n if (response.status === 200) {\n return await response;\n } else {\n return Promise.reject(\"Erreur serveur\");\n }\n } catch (ex) {\n return Promise.reject(\"Erreur serveur\");\n }\n}\n","import React from 'react';\nimport { format, parseJSON } from 'date-fns';\n\n\nexport function formatedDate(data) {\n return data.value ? format(parseJSON(data.value), 'dd/MM/yyyy') : \"\"\n}\n\n\n\nexport const IndeterminateCheckbox = React.forwardRef(\n ({ indeterminate, ...rest }, ref) => {\n const defaultRef = React.useRef()\n const resolvedRef = ref || defaultRef\n\n React.useEffect(() => {\n resolvedRef.current.indeterminate = indeterminate\n }, [resolvedRef, indeterminate])\n\n return (\n <>\n \n \n )\n }\n)\n\n\n\nexport function Pagination({ canPreviousPage, gotoPage, canNextPage, pageCount, previousPage, nextPage, pageOptions, pageIndex, isSorted = false }) {\n return (
\n \n\n \n {`${pageOptions.length !== 0 ? `Page ${pageIndex + 1} of ${pageOptions.length}` : \"\"}`} \n \n
)\n\n}\n\n\nexport function Tableau({ className = \"\", getTableProps = () => { }, headerGroups = [], prepareRow, rows = [], getTableBodyProps = () => { }, isSorted }) {\n return (\n \n \n {headerGroups.map(headerGroup => (\n \n {isSorted \n ? headerGroup.headers.map(column => (\n \n {\n column.isSorted\n ? (column.isSortedDesc\n ?
{column.render('Header')}
\n :
{column.render('Header')}
)\n : column.render('Header')\n }\n \n ))\n : headerGroup.headers.map(column => (\n
\n ))\n }\n \n ))}\n \n \n {rows.map(row => {\n prepareRow(row)\n return (\n { row.toggleRowSelected() }} className={`${row.isSelected ? \"selected\" : \"\"}`} {...row.getRowProps()}>\n {row.cells.map(cell => {\n return (\n \n {cell.render('Cell')}\n \n )\n })}\n \n )\n })}\n \n
\n {column.render('Header')}\n
\n\n )\n}","//librairies\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Container } from \"reactstrap\";\nimport { useHistory } from \"react-router-dom\";\nimport { Spinner } from \"reactstrap\";\nimport { useTable, useRowSelect, usePagination, useSortBy } from \"react-table\";\nimport fileDownload from \"js-file-download\";\n//Assets\nimport \"./document.scss\";\nimport chevron from \"../../assets/doc-chevron.svg\";\nimport bin from \"../../assets/doc-bin.svg\";\nimport edit from \"../../assets/doc-edit.svg\";\nimport share from \"../../assets/doc-share.svg\";\nimport download from \"../../assets/doc-download.svg\";\nimport update from \"../../assets/doc-update.svg\";\nimport ModalEdit from \"./Modals/edit\";\nimport ModalDelete from \"./Modals/delete\";\nimport Modalimport from \"./Modals/import\";\n//Services\nimport * as DocumentServices from \"../../services/documentServices\";\n//Application\nimport * as Navigation from \"../../components/SaurLayout/navigation\";\nimport {\n IndeterminateCheckbox,\n formatedDate,\n Pagination,\n Tableau,\n} from \"../../components/Helpers/ReactTableHelper\";\nimport { addListener } from \"@okta/okta-auth-js\";\n\nexport async function importFile(\n { authentification, SiteId, categorieDocId, TypeDocId, LibelleFr, File },\n { pageSize, pageNumber, sortBy, sortOrder, onDataFetch, setImportModal }\n) {\n try {\n const resultDoc = await DocumentServices.ImportFile(authentification, {\n siteId: SiteId,\n CotegorieDocId: categorieDocId,\n TypeDocId: TypeDocId,\n LibelleFr: LibelleFr,\n File: File,\n });\n\n //réponse correcte on recharge le tableau\n if (resultDoc.status === 200) {\n onDataFetch({\n pageSize: pageSize,\n pageIndex: pageNumber,\n SortBy: sortBy,\n SortOrder: sortOrder,\n }).then(() => {\n setImportModal(false);\n });\n }\n } catch (error) {\n return Promise.reject(\"Erreur serveur\");\n }\n}\n\nfunction Table({\n data,\n onSelectedRow = () => {},\n onDataFetch,\n pageNumber = 1,\n pageSize = 30,\n}) {\n const columns = React.useMemo(\n () => [\n {\n Header: \"id\",\n accessor: \"id\", // accessor is the \"key\" in the data\n },\n {\n Header: \"Libellé\",\n accessor: \"libelleFr\", // accessor is the \"key\" in the data\n },\n {\n Header: \"Nom du fichier\",\n accessor: \"nomFichier\",\n },\n {\n Header: \"Ajouté le\",\n accessor: \"dateCreation\",\n Cell: formatedDate,\n },\n {\n Header: \"Modifié le\",\n accessor: \"dateModification\",\n Cell: formatedDate,\n },\n ],\n []\n );\n\n const {\n rows,\n getTableProps,\n getTableBodyProps,\n headerGroups,\n gotoPage,\n prepareRow,\n selectedFlatRows,\n canPreviousPage,\n canNextPage,\n pageOptions,\n pageCount,\n previousPage,\n nextPage,\n state: { pageIndex, sortBy },\n } = useTable(\n {\n columns,\n data,\n initialState: {\n pageIndex: 0,\n hiddenColumns: \"id\",\n sortBy: [{ id: \"dateModification\", desc: true }],\n pageSize: pageSize,\n },\n manualPagination: true, // Tell the usePagination\n manualSortBy: true,\n defaultCanSort: true,\n disableSortRemove: true,\n disableMultiSort: true,\n pageCount: pageNumber,\n },\n useSortBy,\n usePagination,\n useRowSelect,\n (hooks) => {\n hooks.visibleColumns.push((visiblecolumns) => [\n // Let's make a column for selection\n {\n id: \"selection\",\n accessor: \"selector\",\n // The header can use the table's getToggleAllRowsSelectedProps method\n // to render a checkbox\n disableSortBy: true,\n // The header can use the table's getToggleAllRowsSelectedProps method\n // to render a checkbox\n Header: ({ getToggleAllRowsSelectedProps }) => (\n \n ),\n // The cell can use the individual row's getToggleRowSelectedProps method\n // to the render a checkbox\n Cell: ({ row }) => (\n \n ),\n },\n ...visiblecolumns,\n ]);\n }\n );\n\n useEffect(() => {\n onSelectedRow(selectedFlatRows);\n }, [onSelectedRow, selectedFlatRows]);\n\n useEffect(() => {\n const SortBy = sortBy[0].id;\n const SortOrder = sortBy[0].desc ? \"desc\" : \"asc\";\n onDataFetch({ pageIndex, pageSize, SortBy, SortOrder });\n }, [onDataFetch, pageIndex, pageSize, sortBy]);\n\n return (\n <>\n \n {rows.length > pageSize - 1 && (\n \n )}\n \n );\n}\n\nfunction loadData(\n authentification,\n { categorieDocId, siteId, pageNumber, pageSize, SortBy, SortOrder }\n) {\n return DocumentServices.GetListOfModeleDocumentSimple(authentification, {\n CategorieDocId: categorieDocId,\n siteId: siteId,\n PageNumber: pageNumber,\n PageSize: pageSize,\n SortBy,\n SortOrder,\n });\n}\n\nfunction Document({ authentification, siteInformation }) {\n //const notif = useContext(NotifContext);\n\n //gestion des modales\n const [editModal, setEditModal] = useState(false);\n const [deleteModal, setDeleteModal] = useState(false);\n const [importModal, setImportModal] = useState(false);\n\n //récupération du titre via l'url\n const pathname = useHistory().location.pathname;\n const history = useHistory();\n const categorieDocId = Navigation.getIdfromPathName(pathname);\n const categorieDocName = Navigation.getNameFromPathName(pathname);\n const GroupDocName = Navigation.getGroupByPathName(pathname);\n\n //gestion tableau document genere\n const [_data, setData] = useState([]);\n const [row, setRow] = useState([]);\n const [loading, setLoading] = React.useState(true);\n const [pageCount, setPageCount] = React.useState(0);\n const [pageNumber, setPageNumber] = React.useState(1);\n const [_pageSize, setPageSize] = React.useState(20);\n const [sortBy, setSortBy] = React.useState(null);\n const [sortOrder, setOrder] = React.useState(null);\n\n const onDataFetch = React.useCallback(\n async ({ pageSize, pageIndex, SortBy, SortOrder }) => {\n if (siteInformation.siteId !== null) {\n setLoading(true);\n setPageNumber(pageIndex);\n setPageSize(pageSize);\n setSortBy(SortBy);\n setOrder(SortOrder);\n\n Promise.all([\n loadData(authentification, {\n siteId: siteInformation.siteId,\n categorieDocId: categorieDocId,\n pageNumber: pageIndex,\n pageSize: pageSize,\n SortBy,\n SortOrder,\n }),\n DocumentServices.GetCountOfModeleDocument(authentification, {\n siteId: siteInformation.siteId,\n categorieDocId: categorieDocId,\n typeDocId: \"DOC_SIMPLE\",\n }),\n ])\n .then(async (result) => {\n if (!`${result[0].status}`.startsWith(\"20\")) {\n return Promise.reject(\"erreur serveur\");\n }\n\n if (!`${result[1].status}`.startsWith(\"20\")) {\n return Promise.reject(\"erreur serveur\");\n }\n\n let data = [];\n let count = 0;\n if (result[0].status === 200) {\n data = await result[0].json();\n count = await result[1].json();\n }\n\n setData(data);\n setPageCount(Math.ceil(count / pageSize));\n setLoading(false);\n return Promise.resolve();\n })\n .catch(() => {\n return Promise.reject(\"erreur serveur\");\n });\n }\n },\n [authentification, categorieDocId, siteInformation]\n );\n\n const [loadingSubmit, setLoadingSubmit] = useState(false);\n //gestion de l'import\n const onImport = async (data) => {\n setLoadingSubmit(true);\n importFile(\n {\n authentification,\n SiteId: siteInformation.siteId,\n categorieDocId: categorieDocId,\n TypeDocId: \"DOC_SIMPLE\",\n LibelleFr: data.LibelleFr,\n File: data.File,\n },\n {\n onDataFetch: onDataFetch,\n pageSize: _pageSize,\n pageNumber: pageNumber,\n sortBy: sortBy,\n sortOrder: sortOrder,\n setImportModal: setImportModal,\n }\n )\n .then(() => {\n setLoadingSubmit(false);\n })\n .catch((e) => {\n setLoadingSubmit(false);\n alert(e);\n });\n };\n\n //gestion du telechargement\n const onDownload = () => {\n const listModeleDocumentId = row.map((item) => item.values.id);\n DocumentServices.ExportFiles(authentification, {\n siteId: siteInformation.siteId,\n listModeleDocumentId,\n })\n .then(async (result) => {\n const filename =\n row.length === 1 ? row[0].values.nomFichier : `${categorieDocId}.zip`;\n fileDownload(await result.blob(), filename);\n })\n .catch((error) => {\n console.log(error);\n });\n };\n\n const onUpdate = (data) => {\n DocumentServices.UpdateModeleDocument(authentification, {\n siteId: siteInformation.siteId,\n LibelleFr: data.LibelleFr,\n modeleDocumentId: row[0].values.id,\n })\n .then(async (res) => {\n if (res.status === 200) {\n onDataFetch({\n pageSize: _pageSize,\n pageIndex: pageNumber,\n SortBy: sortBy,\n SortOrder: sortOrder,\n }).then(() => {\n setEditModal(false);\n });\n }\n })\n .catch(() => {\n throw new Error(\"erreur serveur\");\n });\n };\n\n const onDelete = () => {\n const listModeleDocumentId = row.map((item) => item.values.id);\n DocumentServices.deleteModeleDocument(authentification, {\n siteId: siteInformation.siteId,\n listModeleDocumentId: listModeleDocumentId,\n })\n .then(async (res) => {\n if (res.status === 200) {\n onDataFetch({\n pageSize: _pageSize,\n pageIndex: pageNumber,\n SortBy: sortBy,\n SortOrder: sortOrder,\n }).then(() => {\n setDeleteModal(false);\n });\n }\n })\n .catch((errors) => {\n throw new Error(errors);\n });\n };\n\n return (\n <>\n
\n {\n setEditModal(false);\n }}\n onSubmit={onUpdate}\n />\n item.values.libelleFr)}\n openModal={deleteModal}\n onClose={() => {\n setDeleteModal(false);\n }}\n onSubmit={onDelete}\n />\n {\n setImportModal(false);\n }}\n loadingModal={loadingSubmit}\n onSubmit={onImport}\n />\n\n \n
\n {\n history.push(\"/document\");\n }}\n >\n \"chevron\"\n {\" \"}\n {`${GroupDocName} / ${categorieDocName}`}\n
\n\n
\n
\n {\" \"}\n
\n {loading && }\n
{\" \"}\n
\n\n
\n
\n {\n onDataFetch({\n pageSize: _pageSize,\n pageIndex: pageNumber,\n SortBy: sortBy,\n SortOrder: sortOrder,\n });\n }}\n >\n \"actualiser\"{\" \"}\n \n Actualiser\n \n \n
\n
\n 1}\n className=\"btn\"\n onClick={() => {\n setEditModal(true);\n }}\n >\n \"modifier\"{\" \"}\n \n Modifier\n \n \n
\n
\n {\n setDeleteModal(true);\n }}\n >\n \"effacer\"{\" \"}\n \n Supprimer\n \n \n
\n
\n {\n onDownload();\n }}\n >\n \"download\"\n \n {\" \"}\n Télécharger{\" \"}\n \n \n
\n
\n 0}\n className=\"btn\"\n onClick={() => {\n setImportModal(true);\n }}\n >\n \"import\"{\" \"}\n \n Importer\n \n \n
\n
\n\n
\n {\n setRow(selectedrow);\n }}\n pageNumber={pageCount}\n loading={loading}\n onDataFetch={onDataFetch}\n pageSize={_pageSize}\n />\n
\n
\n
\n
\n \n );\n}\n\nexport default connect((state) => state)(Document);\n","//Librairies\nimport React, { useEffect } from \"react\";\nimport { useTable, useRowSelect, usePagination, useSortBy } from \"react-table\";\n//Assets\nimport \"./../document.scss\";\nimport \"./../template.scss\";\n//Applications\nimport {\n formatedDate,\n IndeterminateCheckbox,\n Tableau,\n} from \"../../../components/Helpers/ReactTableHelper\";\nimport { Pagination } from \"../../../components/Helpers/ReactTableHelper\";\n\nexport default function Table({\n datas = [],\n onSelectedRow = () => {},\n onDataFetch = () => {},\n pageNumber = 1,\n pageSize = 20,\n}) {\n const data = React.useMemo(() => datas, [datas]);\n\n const columns = React.useMemo(\n () => [\n {\n Header: \"Id\",\n accessor: \"id\", // accessor is the \"key\" in the data\n },\n {\n Header: \"Libellé\",\n accessor: \"libelleFr\",\n },\n {\n Header: \"Nom du Modèle\",\n accessor: \"nomModele\",\n },\n {\n Header: \"Nom du Fichier\",\n accessor: \"nomFichier\",\n },\n {\n Header: \"Période considérée\",\n accessor: \"periodeConsideree\", // accessor is the \"key\" in the data,\n Cell: formatedDate,\n },\n {\n Header: \"Date Ajout\",\n accessor: \"dateAjout\", // accessor is the \"key\" in the data\n Cell: formatedDate,\n },\n ],\n []\n );\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n rows,\n prepareRow,\n selectedFlatRows,\n canPreviousPage,\n canNextPage,\n pageOptions,\n pageCount,\n gotoPage,\n nextPage,\n previousPage,\n state: { pageIndex, sortBy },\n } = useTable(\n {\n columns,\n data,\n initialState: {\n hiddenColumns: \"id\",\n pageIndex: 0,\n pageSize: pageSize,\n sortBy: [{ id: \"dateAjout\", desc: true }],\n },\n manualPagination: true, // Tell the usePagination\n manualSortBy: true,\n defaultCanSort: true,\n disableSortRemove: true,\n disableMultiSort: true,\n pageCount: pageNumber,\n },\n useSortBy,\n usePagination,\n useRowSelect,\n (hooks) => {\n hooks.visibleColumns.push((visiblecolumn) => {\n return [\n // Let's make a column for selection\n {\n id: \"selection\",\n accessor: \"selector\",\n // The header can use the table's getToggleAllRowsSelectedProps method\n // to render a checkbox\n disableSortBy: true,\n Header: ({ getToggleAllRowsSelectedProps }) => (\n \n ),\n // The cell can use the individual row's getToggleRowSelectedProps method\n // to the render a checkbox\n Cell: ({ row }) => (\n \n ),\n },\n ...visiblecolumn,\n ];\n });\n }\n );\n\n useEffect(() => {\n onSelectedRow(selectedFlatRows);\n }, [onSelectedRow, selectedFlatRows]);\n\n useEffect(() => {\n const SortBy = sortBy[0].id;\n const SortOrder = sortBy[0].desc ? \"desc\" : \"asc\";\n onDataFetch({ pageIndex, pageSize, SortBy, SortOrder });\n }, [onDataFetch, pageIndex, pageSize, sortBy]);\n\n return (\n
\n \n {rows.length > pageSize - 1 && (\n \n )}\n
\n );\n}\n","import React from 'react';\nimport { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\nimport Select from 'react-select'\nimport { eachMonthOfInterval, format } from 'date-fns';\nimport { fr } from 'date-fns/locale';\n\nimport { useForm, Controller } from 'react-hook-form';\n\nexport default function Generate({ onSubmit, loadingModal, onClose, openModal, id, title }) {\n\n const { handleSubmit, errors, control } = useForm();\n\n\n const today = new Date()\n\n const monthInterval = eachMonthOfInterval({\n start: new Date(today.getFullYear(), 0),\n end: today\n })\n\n const optionsData = monthInterval.map(month => ({ value: month, label: format(month, \"LLLL yyyy\", {locale:fr}) }))\n\n const CloseButton = (\n
\n \n
\n )\n\n return (\n \n \n {\n onSubmit({periode:data.periode.value, id:id});\n })}>\n

Document à générer

\n
\n \n \n
\n {errors &&

{errors && errors.periode && errors.periode.message}

}\n \n
\n \n \n \n \n
)\n}","//Librairies\nimport React, { useEffect, useState } from \"react\";\nimport { useTable, useRowSelect, usePagination, useSortBy } from \"react-table\";\nimport fileDownload from \"js-file-download\";\n\n//Assets\nimport \"../document.scss\";\nimport \"../template.scss\";\n//Applications\nimport ModalGenerate from \"../Modals/generate\";\nimport DeleteDoc from \"../Modals/delete\";\nimport * as DocumentServices from \"../../../services/documentServices\";\nimport { formatedDate } from \"../../../components/Helpers/ReactTableHelper\";\nimport {\n Pagination,\n Tableau,\n} from \"../../../components/Helpers/ReactTableHelper\";\n\nexport function generateModel(\n authentification,\n { siteId, periode, idDocument }\n) {\n return DocumentServices.GenerateGidafFile(authentification, {\n siteId,\n periode,\n idDocument,\n });\n}\n\nexport default function TemplateTable({\n datas = [],\n onDataFetchModel = () => {},\n onDataFetch = () => {},\n pageNumber = 1,\n pageSize = 5,\n authentification,\n siteId,\n fileCount,\n}) {\n const [generateModal, setGenerateModal] = useState({\n open: false,\n payload: null,\n });\n const [deleteModal, setDeleteModal] = useState({\n open: false,\n payload: null,\n });\n\n const data = React.useMemo(() => datas, [datas]);\n\n const columns = React.useMemo(\n () => [\n {\n Header: \"id\",\n accessor: \"id\", // accessor is the \"key\" in the data\n },\n {\n Header: \"Nom du fichier\",\n accessor: \"nomFichier\",\n },\n {\n Header: \"Date Ajout\",\n accessor: \"dateAjout\",\n Cell: formatedDate,\n },\n {\n Header: \"\",\n accessor: \"generate\",\n Cell: (cell) => (\n <>\n {\n e.preventDefault();\n setGenerateModal({\n open: true,\n payload: {\n id: cell.row.values.id,\n title: cell.row.values.nomFichier,\n },\n });\n }}\n >\n Générer\n \n {\n e.preventDefault();\n\n DocumentServices.ExportFiles(authentification, {\n siteId,\n listModeleDocumentId: [cell.row.values.id],\n })\n .then(async (result) => {\n const filename = cell.row.values.nomFichier;\n fileDownload(await result.blob(), filename);\n })\n .catch((message) => {});\n }}\n >\n \n \n {\n e.preventDefault();\n setDeleteModal({\n open: true,\n payload: {\n id: cell.row.values.id,\n title: cell.row.values.nomFichier,\n },\n });\n }}\n >\n \n \n \n ),\n },\n ],\n [setGenerateModal]\n );\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n rows,\n prepareRow,\n canPreviousPage,\n canNextPage,\n pageOptions,\n pageCount,\n gotoPage,\n nextPage,\n previousPage,\n state: { pageIndex, sortBy },\n } = useTable(\n {\n columns,\n data,\n initialState: {\n hiddenColumns: \"id\",\n pageIndex: 0,\n pageSize: pageSize,\n sortBy: [{ id: \"dateAjout\", desc: true }],\n },\n manualPagination: true, // Tell the usePagination\n manualSortBy: true,\n defaultCanSort: true,\n disableSortRemove: true,\n disableMultiSort: true,\n pageCount: pageNumber,\n },\n useSortBy,\n usePagination,\n useRowSelect\n );\n\n useEffect(() => {\n const SortBy = sortBy[0].id;\n const SortOrder = sortBy[0].desc ? \"desc\" : \"asc\";\n onDataFetchModel({ pageIndex, pageSize, SortBy, SortOrder });\n }, [onDataFetchModel, pageIndex, pageSize, sortBy]);\n\n return (\n <>\n {\n setGenerateModal({ open: false, payload: null });\n }}\n onSubmit={({ periode, id }) => {\n generateModel(authentification, {\n siteId,\n periode: periode,\n idDocument: id,\n })\n .then(async () => {\n setGenerateModal({ open: false, payload: null });\n onDataFetchModel({ pageIndex, pageSize });\n onDataFetch({ pageIndex, pageSize });\n })\n .catch((error) => {\n console.log(\"error generate\", error);\n });\n }}\n />\n {\n setDeleteModal({ open: false, payload: null });\n }}\n onSubmit={() => {\n DocumentServices.deleteModeleDocument(authentification, {\n siteId: siteId,\n listModeleDocumentId: [deleteModal.payload.id],\n })\n .then(async (res) => {\n if (res.status === 200) {\n onDataFetchModel({ pageIndex, pageSize });\n setDeleteModal({ open: false, payload: null });\n }\n })\n .catch(() => {\n throw new Error(\"erreur serveur\");\n });\n }}\n openModal={deleteModal.open}\n />\n\n \n {rows.length > pageSize - 1 && (\n \n )}\n \n );\n}\n","//Librairies\nimport React, { useState } from \"react\";\nimport { Container } from \"reactstrap\";\nimport { Spinner } from \"reactstrap\";\nimport { useHistory } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport fileDownload from \"js-file-download\";\n//Assets\nimport \"./document.scss\";\nimport \"./template.scss\";\nimport chevron from \"../../assets/doc-chevron.svg\";\nimport bin from \"../../assets/doc-bin.svg\";\nimport edit from \"../../assets/doc-edit.svg\";\nimport share from \"../../assets/doc-share.svg\";\nimport download from \"../../assets/doc-download.svg\";\nimport update from \"../../assets/doc-update.svg\";\n//Applications\nimport ModalEdit from \"./Modals/edit\";\nimport ModalDelete from \"./Modals/delete\";\nimport Modalimport from \"./Modals/import\";\nimport * as DocumentServices from \"../../services/documentServices\";\nimport * as Navigation from \"../../components/SaurLayout/navigation\";\nimport Table from \"./Template/Table\";\nimport TemplateTable from \"./Template/TemplateTable\";\nimport { importFile } from \"./Document\";\n\n/**\n * Charge les données pour le tableau du modèle\n * @param {*} authentification\n * @param {*} param1\n */\nexport function loadDataDocumentModele(\n authentification,\n { categorieDocId, siteId, pageNumber, pageSize, SortBy, SortOrder }\n) {\n return DocumentServices.GetListOfModeleDocumentModele(authentification, {\n CategorieDocId: categorieDocId,\n siteId: siteId,\n PageNumber: pageNumber,\n PageSize: pageSize,\n SortBy,\n SortOrder,\n });\n}\n\n/**\n * Charge les données pour les documents générés\n * @param {*} authentification\n * @param {*} param1\n */\nexport function loadDataDocumentGeneres(\n authentification,\n { categorieDocId, siteId, pageNumber, pageSize, SortBy, SortOrder }\n) {\n return DocumentServices.GetListOfModeleDocumentGenere(authentification, {\n CategorieDocId: categorieDocId,\n siteId: siteId,\n PageNumber: pageNumber,\n PageSize: pageSize,\n SortBy,\n SortOrder,\n });\n}\n\nfunction Template({ authentification, siteInformation }) {\n //gestion des modales\n const [editModal, setEditModal] = useState(false);\n const [deleteModal, setDeleteModal] = useState(false);\n const [importModal, setImportModal] = useState(false);\n const [importTemplateModal, setImportTemplateModal] = useState(false);\n\n //récupération de la catégorie via l'url\n const pathname = useHistory().location.pathname;\n const history = useHistory();\n const categorieDocId = Navigation.getIdfromPathName(pathname);\n const categorieDocName = Navigation.getNameFromPathName(pathname);\n const GroupDocName = Navigation.getGroupByPathName(pathname);\n\n //gestion tableau model\n const [dataModel, setDataModel] = useState([]);\n const [loadingModel, setLoadingModel] = React.useState(true);\n const [pageCountModel, setPageCountModel] = React.useState(0);\n const [pageNumberModel, setPageNumberModel] = React.useState(1);\n const [pageSizeModel, setPageSizeModel] = React.useState(5);\n const [sortBy_Temp, setSortBy_Temp] = React.useState(null);\n const [sortOrder_Temp, setOrder_Temp] = React.useState(null);\n\n const onDataFetchModel = React.useCallback(\n async ({ pageSize, pageIndex, SortBy, SortOrder }) => {\n if (siteInformation.siteId !== null) {\n setLoadingModel(true);\n setPageNumberModel(pageIndex);\n setPageSizeModel(pageSize);\n setSortBy_Temp(SortBy);\n setOrder_Temp(SortOrder);\n\n Promise.all([\n loadDataDocumentModele(authentification, {\n siteId: siteInformation.siteId,\n categorieDocId: categorieDocId,\n pageNumber: pageIndex,\n pageSize: pageSize,\n SortBy,\n SortOrder,\n }),\n DocumentServices.GetCountOfModeleDocument(authentification, {\n siteId: siteInformation.siteId,\n categorieDocId: categorieDocId,\n typeDocId: \"MODELE\",\n }),\n ])\n .then(async (reponse) => {\n if (!`${reponse[0].status}`.startsWith(\"20\")) {\n return Promise.reject(\n \"erreur serveur reponse chargement document\"\n );\n }\n if (!`${reponse[1].status}`.startsWith(\"20\")) {\n return Promise.reject(\n \"erreur serveur reponse chargement des pages\"\n );\n }\n let data = [];\n let count = 0;\n if (reponse[0].status === 200) {\n data = await reponse[0].json();\n count = await reponse[1].json();\n }\n setLoadingModel(false);\n setPageCountModel(Math.ceil(count / pageSize));\n setDataModel(data);\n return Promise.resolve();\n })\n\n .catch((error) => {\n return Promise.reject(\"erreur serveur fetch\", error);\n });\n }\n },\n [authentification, categorieDocId, siteInformation]\n );\n\n const onImportModel = async (data) => {\n try {\n const resultDoc = await DocumentServices.ImportFile(authentification, {\n siteId: siteInformation.siteId,\n CotegorieDocId: categorieDocId,\n TypeDocId: \"MODELE\",\n LibelleFr: data.LibelleFr,\n File: data.File,\n });\n\n if (resultDoc.status === 200) {\n onDataFetch({ pageSize: _pageSize, pageIndex: pageNumber }).then(() => {\n setImportTemplateModal(false);\n });\n onDataFetchModel({\n pageSize: pageSizeModel,\n pageIndex: pageNumberModel,\n SortBy: sortBy_Temp,\n SortOrder: sortOrder_Temp,\n });\n }\n } catch (error) {\n alert(\"Erreur durant l'import du model\");\n }\n };\n\n //gestion tableau document genere\n const [_data, setData] = useState([]);\n const [row, setRow] = useState([]);\n const [loading, setLoading] = React.useState(true);\n const [pageCount, setPageCount] = React.useState(0);\n const [pageNumber, setPageNumber] = React.useState(1);\n const [_pageSize, setPageSize] = React.useState(20);\n const [sortBy, setSortBy] = React.useState(null);\n const [sortOrder, setOrder] = React.useState(null);\n\n const onDataFetch = React.useCallback(\n async ({ pageSize, pageIndex, SortBy, SortOrder }) => {\n if (siteInformation.siteId !== null) {\n setLoading(true);\n setPageNumber(pageIndex);\n setPageSize(pageSize);\n setSortBy(SortBy);\n setOrder(SortOrder);\n\n Promise.all([\n loadDataDocumentGeneres(authentification, {\n siteId: siteInformation.siteId,\n categorieDocId: categorieDocId,\n pageNumber: pageIndex,\n pageSize: pageSize,\n SortBy,\n SortOrder,\n }),\n DocumentServices.GetCountOfModeleDocument(authentification, {\n siteId: siteInformation.siteId,\n categorieDocId: categorieDocId,\n typeDocId: \"DOC_MODELE\",\n }),\n ])\n .catch(() => {\n return Promise.reject(\"erreur serveur\");\n })\n .then(async (response) => {\n if (!`${response[0].status}`.startsWith(\"20\")) {\n return Promise.reject(\"erreur serveur\");\n }\n\n if (!`${response[1].status}`.startsWith(\"20\")) {\n return Promise.reject(\"erreur serveur\");\n }\n\n let data = [];\n let count = 0;\n if (response[0].status === 200) {\n data = await response[0].json();\n count = await response[1].json();\n }\n\n setPageCount(Math.ceil(count / pageSize));\n setData(data);\n setLoading(false);\n return Promise.resolve();\n });\n }\n },\n [authentification, siteInformation, categorieDocId]\n );\n\n //gestion de l'import\n const onImport = async (data) => {\n importFile(\n {\n authentification,\n SiteId: siteInformation.siteId,\n categorieDocId: categorieDocId,\n TypeDocId: \"DOC_SIMPLE\",\n LibelleFr: data.LibelleFr,\n File: data.File,\n },\n {\n onDataFetch: onDataFetch,\n pageSize: _pageSize,\n pageNumber: pageNumber,\n sortBy: sortBy,\n sortOrder: sortOrder,\n setImportModal: setImportModal,\n }\n ).catch((e) => {\n alert(e);\n });\n };\n\n //gestion de l'import\n const onUpdateImport = (data) => {\n DocumentServices.UpdateModeleDocument(authentification, {\n siteId: siteInformation.siteId,\n LibelleFr: data.LibelleFr,\n modeleDocumentId: row[0].values.id,\n })\n .then(async (res) => {\n if (res.status === 200) {\n onDataFetch({\n pageSize: _pageSize,\n pageIndex: pageNumber,\n SortBy: sortBy,\n SortOrder: sortOrder,\n }).then(() => {\n setEditModal(false);\n });\n }\n })\n .catch(() => {\n throw new Error(\"erreur serveur\");\n });\n };\n\n //gestion du telechargement\n const onDownload = () => {\n const listModeleDocumentId = row.map((item) => item.values.id);\n DocumentServices.ExportFiles(authentification, {\n siteId: siteInformation.siteId,\n listModeleDocumentId,\n }).then(async (result) => {\n const filename =\n row.length === 1 ? row[0].values.nomFichier : `${categorieDocId}.zip`;\n fileDownload(await result.blob(), filename);\n });\n };\n\n //gestion de la suppression\n const onDelete = () => {\n const listModeleDocumentId = row.map((item) => item.values.id);\n\n DocumentServices.deleteModeleDocument(authentification, {\n siteId: siteInformation.siteId,\n listModeleDocumentId: listModeleDocumentId,\n })\n .then(async (res) => {\n if (res.status === 200) {\n onDataFetch({\n pageSize: _pageSize,\n pageIndex: pageNumber,\n SortBy: sortBy,\n SortOrder: sortOrder,\n }).then(() => {\n setDeleteModal(false);\n });\n }\n })\n .catch(() => {\n throw new Error(\"erreur serveur\");\n });\n };\n\n return (\n
\n {/* modale pour model */}\n {\n setImportTemplateModal(false);\n }}\n onSubmit={onImportModel}\n />\n {/* Modale pour document_model */}\n {\n setEditModal(false);\n }}\n onSubmit={onUpdateImport}\n />\n item.values.nomFichier)}\n openModal={deleteModal}\n onClose={() => {\n setDeleteModal(false);\n }}\n onSubmit={onDelete}\n />\n {\n setImportModal(false);\n }}\n onSubmit={onImport}\n />\n\n \n
\n {\n history.push(\"/document\");\n }}\n >\n \"chevron\"\n {\" \"}\n {`${GroupDocName} / ${categorieDocName}`}\n
\n\n
\n
\n Modèle de documents {categorieDocName}{\" \"}\n
\n {\" \"}\n {loadingModel && }{\" \"}\n
\n
\n
\n {\n setImportTemplateModal(true);\n }}\n >\n Importer un nouveau modèle\n \n
\n
\n \n
\n
\n\n
\n
\n \n
\n {loading && }\n
\n
\n
\n
\n {\n onDataFetch({\n pageSize: _pageSize,\n pageIndex: pageNumber,\n SortBy: sortBy,\n SortOrder: sortOrder,\n });\n onDataFetchModel({\n pageSize: pageSizeModel,\n pageIndex: pageNumberModel,\n SortBy: sortBy_Temp,\n SortOrder: sortOrder_Temp,\n });\n }}\n >\n \"actualiser\"{\" \"}\n \n Actualiser\n \n \n
\n
\n 1}\n className=\"btn\"\n onClick={() => {\n setEditModal(true);\n }}\n >\n \"modifier\"{\" \"}\n \n Modifier\n \n \n
\n
\n {\n setDeleteModal(true);\n }}\n >\n \"supprimer\"{\" \"}\n \n Supprimer\n \n \n
\n
\n {\n onDownload();\n }}\n >\n \"telecharger\"\n \n {\" \"}\n Télécharger{\" \"}\n \n \n
\n
\n 0}\n className=\"btn\"\n onClick={() => {\n setImportModal(true);\n }}\n >\n \"importer\"{\" \"}\n \n Importer\n \n \n
\n
\n\n
\n {\n setRow(rowItem);\n }}\n pageNumber={pageCount}\n loading={loading}\n onDataFetch={onDataFetch}\n pageSize={_pageSize}\n />\n
\n
\n
\n
\n );\n}\n\nexport default connect((state) => state)(Template);\n","import { format } from \"date-fns\";\nimport { fr } from \"date-fns/locale\";\nimport { GetAccessToken } from \"../authentication/token\";\n\nexport async function AlarmsData(\n { dateDebut, dateFin, SiteId, EtapeTraitementId },\n authentification\n) {\n let data = [];\n\n try {\n let result = await fetch(\n `${window.appSettings.apiendpointalarm}/DonneesAlarmes`,\n {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n dateDebut: format(dateDebut, \"dd/MM/yyyy\"),\n dateFin: format(dateFin, \"dd/MM/yyyy\"),\n siteId: SiteId,\n EtapeTraitementId: EtapeTraitementId,\n }),\n }\n );\n\n if (result.status === 200) {\n data = await result.json();\n console.log(data);\n }\n\n if (result.status === 204) {\n data = [];\n }\n } catch (ex) {\n throw new Error(\"Erreur serveur\");\n }\n\n return data;\n}\n\nexport async function GetTauxConformite(\n authentification,\n { siteId, TypeAffichage, DateDebut, DateFine }\n) {\n try {\n return await fetch(\n `${\n window.appSettings.apiendpoint\n }/DonneeIndicateur/GetTauxConformite?siteId=${siteId}&TypeAffichage=${TypeAffichage}&DateDebut=${format(\n DateDebut,\n \"dd/MM/yyyy\",\n { locale: fr }\n )}&DateFine=${format(DateFine, \"dd/MM/yyyy\", { locale: fr })}`,\n {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n } catch (ex) {\n return Promise.reject();\n }\n}\n\n// Récupère le fichier à télécharger\nexport async function DownloadAlarmeFile(\n authentification,\n { dateDebut, dateFin, SiteId, EtapeTraitementId }\n) {\n let data;\n\n try {\n const response = await fetch(\n `${window.appSettings.apiendpointalarm}/DonneesAlarmes/DownloadAlarmeFile`,\n {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n\n Authorization: `Bearer ${await GetAccessToken(authentification)}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n dateDebut: format(dateDebut, \"dd/MM/yyyy\"),\n dateFin: format(dateFin, \"dd/MM/yyyy\"),\n siteId: SiteId,\n EtapeTraitementId: EtapeTraitementId,\n }),\n responseType: \"stream\",\n }\n );\n\n data = await response.blob();\n } catch (exception) {\n throw new Error(\"Erreur Serveur\");\n }\n\n return data;\n}\n","import React from 'react'\nimport { Notyf } from 'notyf';\n\nexport default React.createContext(\n new Notyf({\n duration: 0,\n position: { x: \"center\", y: \"top\" },\n dismissible: true// Set your global Notyf configuration here\n })\n);","import React, { Component, useCallback, useEffect, useState } from \"react\";\nimport { Line } from \"react-chartjs-2\";\nimport { Label } from \"reactstrap\";\nimport moment from \"moment\";\nimport { connect } from \"react-redux\";\nimport { GetAccessToken } from \"../../authentication/token\";\nimport { SiteInformation } from \"../../types/siteInformation\";\nimport { DCOLine, DCOLineDataset } from \"../../types/components/dcoLine\";\nimport { ReduxAuthState } from \"../../types/authentificationstoretypes\";\nimport {\n fetchDonneesIndicateurPost,\n getUnitIndicateur,\n loadData,\n} from \"../../services/IndicatorServices\";\nimport authentification from \"../../stores/authentification\";\n\ninterface DCOProps {\n authentification: ReduxAuthState;\n siteInformation: SiteInformation;\n dateDebut: string;\n dateFin: string;\n action: string;\n etapeTraitementId: string;\n indicateurSuiviId: string;\n titre: string;\n moyen: string;\n}\n// Component to Get Input and Output DCO\nconst DCO = (props: DCOProps) => {\n const [labels, setLabels] = useState(null);\n const [data, setData] = useState(null);\n const [moyen, setMoyen] = useState(null);\n const [dateDebut, setDateDebut] = useState(props.dateDebut);\n const [dateFin, setDateFin] = useState(props.dateFin);\n const [uniteCharge, setUniteCharge] = useState(\"\");\n const [line, setLine] = useState({\n labels: null,\n datasets: [\n {\n label: \"Charge DCO\",\n fill: false,\n lineTension: 0.1,\n backgroundColor: \"rgba(75,192,192,0.4)\",\n borderDash: [],\n borderDashOffset: 0.0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"#FFCD00\",\n pointBackgroundColor: \"#FFCD00\",\n pointBorderWidth: 1,\n pointHoverRadius: 5,\n pointHoverBackgroundColor: \"#FFCD00\",\n pointHoverBorderColor: \"rgba(220,220,220,1)\",\n pointHoverBorderWidth: 2,\n pointRadius: 1,\n pointHitRadius: 10,\n data: null,\n borderColor: \"#FFCD00\",\n borderCapStyle: \"butt\",\n },\n ],\n });\n\n const baseLineSeuilMax: DCOLineDataset = {\n label: \"Max Charge\",\n fill: false,\n lineTension: 0.1,\n backgroundColor: \"#F24C07\",\n borderColor: \"#F24C07\",\n borderCapStyle: \"butt\",\n borderDash: [],\n borderDashOffset: 0.0,\n borderJoinStyle: \"miter\",\n pointBorderColor: \"#F24C07\",\n pointBackgroundColor: \"#F24C07\",\n pointHoverBackgroundColor: \"#F24C07\",\n pointHoverBorderColor: \"#F24C07\",\n pointHoverBorderWidth: 2,\n pointRadius: 1,\n pointHitRadius: 10,\n data: null,\n pointBorderWidth: 1,\n pointHoverRadius: 5,\n };\n\n useEffect(() => {\n const initData = async () => {\n Promise.all([await LoadData(), await GetUnitIndicateur()]);\n };\n initData();\n }, []);\n\n const GetUnitIndicateur = useCallback(async () => {\n try {\n let result = await getUnitIndicateur(props.authentification, {\n siteId: props.siteInformation.siteId,\n indicateurSuiviId: props.indicateurSuiviId,\n etapeTraitementId: props.etapeTraitementId,\n afficher: props.action,\n });\n if (result.status === 200) {\n let data = await result.json();\n setUniteCharge(data.uniteIndicateurSuiviCharge);\n }\n } catch (ex) {}\n }, []);\n\n const LoadData = useCallback(async () => {\n try {\n let result = await fetchDonneesIndicateurPost(props.authentification, {\n dateDebut: moment(props.dateDebut).format(\"DD/MM/YYYY HH:mm:ss\"),\n dateFin: moment(props.dateFin).format(\"DD/MM/YYYY HH:mm:ss\"),\n indicateurSuiviId: props.indicateurSuiviId,\n typeAffichage: props.action,\n parametreId: \"DCO\",\n etapeTraitementId: props.etapeTraitementId,\n siteId: props.siteInformation.siteId,\n });\n if (result.status === 200) {\n let data = await result.json();\n const newLine = { ...line };\n newLine.labels = data.labels;\n newLine.datasets[0].data = data.charges;\n if (data.seuilMaxCharge !== null) {\n if (line.datasets.length === 1) {\n newLine.datasets.push({\n ...baseLineSeuilMax,\n data: data.seuilMaxCharge,\n });\n } else {\n newLine.datasets[1].data = data.seuilMaxCharge;\n }\n }\n setLine(newLine);\n setMoyen(data.moyen);\n }\n } catch (ex) {}\n }, []);\n\n useEffect(() => {\n LoadData();\n }, [props.dateDebut, props.dateFin]);\n\n useEffect(() => {\n GetUnitIndicateur();\n }, [props.action]);\n\n return (\n
\n \n
\n {\" \"}\n \n
\n
\n );\n};\n\nexport default connect((state) => state)(DCO);\n","//librairies\nimport React, { useState, useReducer, useEffect, useContext } from \"react\";\nimport {\n Modal,\n ModalHeader,\n ModalBody,\n ModalFooter,\n Spinner,\n Container,\n} from \"reactstrap\";\nimport { connect } from \"react-redux\";\nimport { Link, useHistory } from \"react-router-dom\";\nimport { format } from \"react-string-format\";\nimport moment from \"moment\";\nimport fileDownload from \"js-file-download\";\nimport {\n startOfWeek,\n endOfWeek,\n startOfMonth,\n endOfMonth,\n format as formatD,\n} from \"date-fns\";\nimport { fr } from \"date-fns/locale\";\n//Css\nimport \"../../styles/Button.css\";\nimport \"../../styles/Label.css\";\nimport \"../../styles/Spinner.css\";\nimport \"./home.scss\";\n//Assets\nimport ArrowIcon from \"../../assets/arrow.svg\";\nimport AlertIcon from \"../../assets/AlertIcon.svg\";\nimport StepImg from \"../../assets/progres-01.png\";\nimport ChevronImg from \"../../assets/chevron.svg\";\nimport PlaceHolderImg from \"../../assets/placeholder.svg\";\nimport iconclosehover from \"../../assets/icon-close_survol.svg\";\nimport iconenvironnementhover from \"../../assets/environnement_hover.svg\";\nimport icondirtywaterhover from \"../../assets/dirtywater_hover.svg\";\n//Services\nimport * as AlarmServices from \"../../services/AlarmServices\";\nimport * as IndicatorService from \"../../services/IndicatorServices\";\nimport NotifyContext from \"../../services/NotyfContext\";\n//Application\nimport VolumeWater from \"../../components/VolumeWater/VolumeWater\";\nimport DCO from \"../../components/DCO/DCO\";\nimport { BaseAction } from \"../../types/baseAction\";\nimport { DateWidgetLabel } from \"../../types/dateWidgetLabel\";\nimport { DonneesAlarmes } from \"../../types/api/donneesAlarme\";\nimport { LocationDescriptor } from \"history\";\nimport { SiteInformation } from \"../../types/siteInformation\";\nimport { ReduxAuthState } from \"../../types/authentificationstoretypes\";\nimport { SiteConfig } from \"../../types/api/siteConfig\";\nimport { baseSiteConfig } from \"../../constants\";\n//import { StartOfWeek, month_name } from '../core'\n\nconst DateNow = new Date();\n\nconst initialState = getMonth();\n\nexport function getMonth(): DateWidgetLabel {\n let dateDebut = startOfMonth(DateNow);\n let dateFin = endOfMonth(DateNow);\n let label = `mois de ${formatD(dateDebut, \"LLLL\", { locale: fr })}`;\n return {\n selected: \"Mois\",\n label: ` Le ${label}`,\n btnLabel: label,\n dateDebut: dateDebut,\n dateFin: dateFin,\n };\n}\n\nexport function getWeek(): DateWidgetLabel {\n let dateDebut = startOfWeek(DateNow, { weekStartsOn: 1, locale: fr });\n let dateFin = endOfWeek(DateNow);\n let nbrWeeks = `Semaine n° ${formatD(DateNow, \"w\", { locale: fr })}`;\n let label = `Du ${dateDebut.getDate()} ${formatD(dateDebut, \"LLLL\", {\n locale: fr,\n })} au ${dateFin.getDate()} ${formatD(dateFin, \"LLLL\", { locale: fr })}`;\n\n return {\n selected: \"Semaine\",\n label: label,\n btnLabel: nbrWeeks,\n dateDebut: dateDebut,\n dateFin: dateFin,\n };\n}\n\n//Cast return as any, because useReduce doesn't like the typescript type DateWidgetLabel\nexport function reducer(_payload: null, action: BaseAction) {\n if (action.type === \"Semaine\") {\n return getWeek() as any;\n } else {\n return getMonth() as any;\n }\n}\n\nexport function AlertData(data: Array) {\n return data.map((alert) => (\n \n \n {!alert.dateApparition ? \"-\" : alert.dateApparition.split(\" \")[0]}\n \n \n {!alert.dateApparition ? \"-\" : alert.dateApparition.split(\" \")[1]}\n \n {alert.criticite}\n {alert.libelleVoieFr}\n {alert.dateRetourOk}\n \n ));\n}\n\ninterface HomeProps {\n authentification: ReduxAuthState;\n siteInformation: SiteInformation;\n}\n\nfunction Home({ authentification, siteInformation }: HomeProps) {\n const notify = useContext(NotifyContext);\n const history = useHistory();\n\n const goTo = (url: LocationDescriptor) => {\n history.push(url);\n };\n\n //configuration des entrées et sorties DCO\n const [siteConfig, setSiteConfig] = useState();\n\n //gestion bouton alarm en entrée\n const [modal, setModal] = useState(false);\n const toggle = () => setModal(!modal);\n const [alertData, setAlertData] = useState>([]);\n const CloseButton = (\n \n );\n\n //gestion bouton alarm en performance step\n const [modalMiddle, setModalMiddle] = useState(false);\n const toggleMiddle = () => setModalMiddle(!modalMiddle);\n const [alertDataMiddle, setAlertDataMiddle] = useState>(\n []\n );\n const CloseButtonMiddle = (\n \n );\n\n //gestion bouton alarm en sortie\n const [modalOut, setModalOut] = useState(false);\n const toggleOut = () => setModalOut(!modalOut);\n const [alertDataOut, setAlertDataOut] = useState>([]);\n const CloseButtonOut = (\n \n );\n\n //gestion de la période\n const [dateState, dateStateDispach] = useReducer(reducer, initialState);\n\n //variable taux de conformité\n const [conform, setConform] = useState(\"\");\n const [charge, setCharge] = useState(\"\");\n\n //au chargement de la page\n useEffect(() => {\n if (siteInformation.siteId !== null) {\n IndicatorService.getSiteConfig(authentification, siteInformation.siteId)\n .then(setSiteConfig)\n .catch((error) => {\n //notify.error(error.message)\n });\n AlarmServices.AlarmsData(\n {\n SiteId: siteInformation.siteId, //SiteId : 49176SE00002\n dateDebut: dateState.dateDebut,\n dateFin: dateState.dateFin,\n EtapeTraitementId: 1,\n },\n authentification\n )\n .then(setAlertData)\n .catch((error) => {\n //notify.error(error.message)\n });\n\n AlarmServices.AlarmsData(\n {\n SiteId: siteInformation.siteId, //SiteId : 49176SE00002\n dateDebut: dateState.dateDebut,\n dateFin: dateState.dateFin,\n EtapeTraitementId: 2,\n },\n authentification\n )\n .then(setAlertDataOut)\n .catch((error) => {\n // notify.error(error.message)\n });\n\n AlarmServices.AlarmsData(\n {\n SiteId: siteInformation.siteId, //SiteId : 49176SE00002\n dateDebut: dateState.dateDebut,\n dateFin: dateState.dateFin,\n EtapeTraitementId: 3,\n },\n authentification\n )\n .then(setAlertDataMiddle)\n .catch((error) => {\n // notify.error(error.message)\n });\n\n AlarmServices.GetTauxConformite(authentification, {\n siteId: siteInformation.siteId,\n TypeAffichage: \"Jour\",\n DateDebut: dateState.dateDebut,\n DateFine: dateState.dateFin,\n })\n .then(async (res) => {\n if (res.status === 200) {\n const result = await res.json();\n setConform(result.tauxConformiteConcentration);\n setCharge(result.tauxConformiteCharge);\n }\n })\n .catch(() => {\n //console.log('catch')\n });\n }\n }, [siteInformation.siteId, authentification, dateState, notify]);\n\n /**\n * telechargement des alertes\n * @param {string} name\n * @param {number} EtapeTraitementId\n * @param {function} toggle\n */\n const onDownload =\n (name: string, EtapeTraitementId: number, toggleCallBack: () => void) =>\n () => {\n AlarmServices.DownloadAlarmeFile(authentification, {\n dateDebut: dateState.dateDebut,\n dateFin: dateState.dateFin,\n SiteId: siteInformation.siteId,\n EtapeTraitementId,\n })\n .then((data) => {\n fileDownload(\n data,\n format(\n (window as any).appSettings.namefileExportAlarme, // Cast windon on as any, tant que le system d'appSettings n'est pas changé\n name,\n moment(dateState.dateDebut).format(\"DDMMYYYY\"),\n moment(dateState.dateFin).format(\"DDMMYYYY\")\n )\n );\n toggleCallBack();\n })\n .catch((error) => {\n //notify.error(error.message);\n });\n };\n\n return (\n <>\n \n \n Sortie usine / Entrée STEP - Alertes{\" \"}\n \n \n {alertData && alertData.length > 0 ? (\n <>\n \n \n \n \n \n \n \n \n \n \n {AlertData(alertData)}\n
Date apparitionHeure apparitionCriticitéLibellé alarmeDate et heure de résolution
\n \n ) : (\n
\n Aucune Alerte\n
\n )}\n
\n \n \n Télécharger\n \n \n
\n\n \n \n Performance STEP - Alertes\n \n \n {alertDataMiddle && alertDataMiddle.length > 0 ? (\n <>\n \n \n \n \n \n \n \n \n \n \n {AlertData(alertDataMiddle)}\n
Date apparitionHeure apparitionCriticitéLibellé alarmeDate et heure de résolution
\n \n ) : (\n
\n Aucune Alerte\n
\n )}\n
\n\n \n \n Télécharger\n \n \n
\n\n \n \n Rejets / Sortie STEP - Alertes\n \n \n {alertDataOut && alertDataOut.length > 0 ? (\n <>\n \n \n \n \n \n \n \n \n \n \n {AlertData(alertDataOut)}\n
Date apparitionHeure apparitionCriticitéLibellé alarmeDate et heure de résolution
\n \n ) : (\n
\n Aucune Alerte\n
\n )}\n
\n \n \n Télécharger\n \n \n
\n\n {!siteInformation.siteId && (\n
\n \n
\n )}\n {siteInformation.siteId && (\n
\n
\n \"preloadicone\"\n \"preloadicone\"\n \"preloadicone\"\n
\n \n
\n
\n
\n
\n {dateState.label}\n
\n
\n dateStateDispach({ type: \"Mois\" })}\n className={`${\n dateState.selected === \"Mois\" ? \"btn-selected\" : \"\"\n } btn-pill btn btn-secondary text-nowrap firstUpper w-100`}\n >\n {getMonth().btnLabel}\n \n dateStateDispach({ type: \"Semaine\" })}\n className={`${\n dateState.selected === \"Semaine\" ? \"btn-selected\" : \"\"\n } btn-pill btn btn-secondary text-nowrap w-100`}\n >\n {getWeek().btnLabel}\n \n
\n
\n
\n
\n
\n goTo(\"/stepin\")}\n type=\"button\"\n className=\"btn btn-img dirtywater\"\n >\n \n \n
\n
\n\n
\n {/* */}\n
\n {}}\n type=\"button\"\n className=\"btn btn-img performance\"\n >\n \n \n
\n
\n\n
\n
\n goTo(\"/stepout\")}\n type=\"button\"\n className=\"btn btn-img environnement\"\n >\n \n
\n
\n
\n\n
\n
\n 0 ? \"d-flex\" : \"d-none\"\n } w-100 btn-go flex-grow-1 align-items-center pl-3 home-btn home-btn-alert text-decoration-none`}\n >\n \"arrow\"{\" \"}\n
\n {alertData && alertData.length === 1\n ? `${alertData && alertData[0].libelleVoieFr}`\n : `${alertData && alertData.length} alertes`}\n
\n \n
\n\n {/* d-none d-xl-block */}\n
\n 0\n ? \"d-flex\"\n : \"d-none\"\n } w-100 btn-go flex-grow-1 align-items-center pl-3 home-btn home-btn-alert text-decoration-none`}\n >\n \"arrow\"{\" \"}\n
\n {alertDataMiddle && alertDataMiddle.length === 1\n ? `${\n alertDataMiddle &&\n alertDataMiddle[0].libelleVoieFr\n }`\n : `${\n alertDataMiddle && alertDataMiddle.length\n } alertes`}\n
\n \n
\n
\n 0\n ? \"d-flex\"\n : \"d-none\"\n } w-100 btn-go flex-grow-1 align-items-center pl-3 home-btn home-btn-alert text-decoration-none`}\n >\n \"arrow\"{\" \"}\n
\n {alertDataOut && alertDataOut.length === 1\n ? `${alertDataOut && alertDataOut[0].libelleVoieFr}`\n : `${alertDataOut && alertDataOut.length} alertes`}\n
\n \n
\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n
Énergie
\n
\n \"placeholder\"\n
\n
\n
\n
Réactifs
{\" \"}\n
\n {\" \"}\n \"placeholder\"{\" \"}\n
{\" \"}\n
\n
\n
\n Sous-produits\n
{\" \"}\n
\n {\" \"}\n \"placeholder\"{\" \"}\n
{\" \"}\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n\n
\n
\n
\n
\n \n
\n {\" \"}\n Conformité DCO\n
\n
\n
\n
\n {conform ? `${conform} %` : \"-\"}\n
\n
\n \n Concentration\n \n
\n
\n
\n
\n {charge ? `${charge} %` : \"-\"}\n
\n
\n Charge\n
\n
\n
\n \n
\n
\n\n \n \n +\n Ajouter des données STEP\n \n \"arrow\"\n \n
\n
\n
\n
\n )}\n \n );\n}\n\nexport default connect((state) => state)(Home);\n","import React, { useState, useEffect } from 'react';\nimport Select from 'react-select'\nimport { lastDayOfMonth, isExists, eachDayOfInterval, eachMonthOfInterval, eachYearOfInterval, startOfYear, endOfYear, startOfMonth, endOfMonth, format, subYears, set, isBefore } from 'date-fns'\nimport {fr} from \"date-fns/locale\"\nimport { useForm, Controller } from 'react-hook-form';\n\nimport '../history.scss';\n\n\nexport default function DatePicker({ onSubmitDate, onCancelDate }) {\n const { handleSubmit, errors, control, setError, setValue } = useForm();\n\n const currentDay = new Date();\n\n const [currentStartDay, setCurrentStartDay] = useState(new Date());\n const [currentEndtDay, setCurrentEndDay] = useState(new Date());\n\n const dayInterval = eachDayOfInterval({ start: startOfMonth(currentStartDay), end: endOfMonth(currentStartDay) })\n const monthInterval = eachMonthOfInterval({ start: startOfYear(currentDay), end: endOfYear(currentDay) })\n const yearInterval = eachYearOfInterval({ start: subYears(currentDay, 5), end: currentDay })\n\n const dayRightInterval = eachDayOfInterval({ start: startOfMonth(currentEndtDay), end: endOfMonth(currentEndtDay) })\n const monthRightInterval = eachMonthOfInterval({ start: startOfYear(currentDay), end: endOfYear(currentDay) })\n const yearRightInterval = eachYearOfInterval({ start: subYears(currentDay, 5), end: currentDay })\n\n useEffect(() => {\n\n if (isExists(currentStartDay.getFullYear(), currentStartDay.getMonth(), currentStartDay.getDate())) {\n setValue(\"leftDay\", { label: format(currentStartDay, 'd',{locale:fr}), value: currentStartDay.getDate() })\n setValue(\"leftMonth\", { label: format(currentStartDay, 'MMM',{locale:fr}), value: currentStartDay.getMonth() })\n setValue(\"leftYear\", { label: format(currentStartDay, 'yyy',{locale:fr}), value: currentStartDay.getFullYear() })\n } else {\n setValue(\"leftMonth\", { label: format(lastDayOfMonth(currentStartDay), 'MMM'), value: currentStartDay.getMonth() })\n }\n\n if (isExists(currentEndtDay.getFullYear(), currentEndtDay.getMonth(), currentEndtDay.getDate())) {\n setValue(\"rightDay\", { label: format(currentEndtDay, 'd',{locale:fr}), value: currentEndtDay.getDate() })\n setValue(\"rightMonth\", { label: format(currentEndtDay, 'MMM',{locale:fr}), value: currentEndtDay.getMonth() })\n setValue(\"rightYear\", { label: format(currentEndtDay, 'yyy',{locale:fr}), value: currentEndtDay.getFullYear() })\n }\n else {\n setValue(\"rightMonth\", { label: format(lastDayOfMonth(currentEndtDay), 'MMM'), value: currentEndtDay.getMonth() })\n }\n\n }, [setValue, currentStartDay, currentEndtDay])\n\n\n return (<>\n
{\n\n if (isBefore(currentEndtDay, currentStartDay)) {\n setError('form', \"inval\", \"la date de début ne peut être inférieure à la date de fin\");\n return;\n }\n\n onSubmitDate({ left: currentStartDay, right: currentEndtDay });\n\n })} className=\"d-flex align-items-center\">\n ({ label: format(day, 'd',{locale:fr}), value: format(day, 'd',{locale:fr}) }))}\n className=\"flex-grow-1 mr-2\"\n control={control}\n onChange={(data) => {\n setCurrentStartDay(set(currentStartDay, { date: data[0].value }))\n }}\n />\n ({ label: format(day, 'MMM',{locale:fr}), value: day.getMonth() }))}\n className=\"flex-grow-1 mx-2\"\n name=\"leftMonth\"\n control={control}\n onChange={(data) => {\n setCurrentStartDay(set(currentStartDay, { month: data[0].value }))\n }}\n />\n ({ label: format(day, 'yyy',{locale:fr}), value: format(day, 'y',{locale:fr}) }))}\n className=\"flex-grow-1 mx-2\"\n name=\"leftYear\"\n control={control}\n onChange={(data) => {\n setCurrentStartDay(set(currentStartDay, { year: data[0].value }))\n }}\n />\n Au\n ({ label: format(day, 'd',{locale:fr}), value: format(day, 'd',{locale:fr}) }))}\n className=\"flex-grow-1 mx-2\"\n name=\"rightDay\"\n control={control}\n onChange={(data) => {\n setCurrentEndDay(set(currentEndtDay, { date: data[0].value }))\n }}\n />\n\n ({ label: format(day, 'MMM',{locale:fr}), value: day.getMonth() }))}\n className=\"flex-grow-1 mx-2\"\n name=\"rightMonth\"\n control={control}\n onChange={(data) => {\n setCurrentEndDay(set(currentEndtDay, { month: data[0].value }))\n }}\n />\n ({ label: format(day, 'yyy',{locale:fr}), value: format(day, 'y',{locale:fr}) }))}\n className=\"flex-grow-1 ml-2\"\n name=\"rightYear\"\n control={control}\n onChange={(data) => {\n setCurrentEndDay(set(currentEndtDay, { year: data[0].value }))\n }}\n />\n\n \n
\n {errors && errors.form && errors.form.message}\n
\n
\n \n \n
\n \n )\n}","import React, { useState, useEffect, useRef } from \"react\";\nimport { Modal, ModalHeader, ModalBody, ModalFooter } from \"reactstrap\";\nimport Select from \"react-select\";\nimport { Spinner } from \"reactstrap\";\nimport DateRangePicker from \"../History/Datepicker\";\nimport * as documentService from \"../../../services/documentServices\";\nimport fileDownload from \"js-file-download\";\nimport \"../history.scss\";\n\nimport { format } from \"date-fns\";\nimport { fr } from \"date-fns/locale\";\n\nexport default function HistoryExport({\n onClose,\n openModal,\n onSubmit,\n authentification,\n siteInformation = \"f4k351t3\",\n}) {\n const [formatedDate, setFormatedDate] = useState(null);\n const [DateDebut, setDateDebut] = useState(null);\n const [DateFin, setDateFin] = useState(null);\n const [openMenu, setOpenMenu] = useState(false);\n const [EtapeTraitementId, setEtapeTraitementId] = useState(null);\n const [IndicateursSuivisIds, setIndcateursSuivisIds] = useState([]);\n const [releve, setReleve] = useState(false);\n const [releveDisabled, setReleveDisabled] = useState(false);\n const [dataStep, setdataStep] = useState([]);\n const [dataFilter, setDataFilter] = useState([]);\n const [exportAll, setExportAll] = useState(false);\n const [loadingModal, setloadingModal] = useState(false);\n const [errorDown, setErrorDown] = useState(\"\");\n\n const onSubmitDate = (data) => {\n setFormatedDate({\n label: `${format(data.left, \"dd/MM/yyy\", { locale: fr })}-${format(\n data.right,\n \"dd/MM/yyy\",\n { locale: fr }\n )}`,\n value: \"\",\n });\n setDateDebut(data.left);\n setDateFin(data.right);\n setOpenMenu(false);\n };\n\n const onCancelDate = () => {\n setOpenMenu(false);\n };\n\n const onSubmitStep = (data) => {\n if (data !== null) {\n setEtapeTraitementId(data.value);\n } else {\n setEtapeTraitementId(null);\n }\n };\n\n const onSubmitIndicator = (data, triggeredAction) => {\n if (triggeredAction && triggeredAction.action === \"remove-value\") {\n setIndcateursSuivisIds(\n IndicateursSuivisIds.filter((x) => {\n return x.value !== triggeredAction.removedValue.value;\n })\n );\n return;\n }\n\n if (data.length < 9) {\n setIndcateursSuivisIds(data);\n }\n };\n\n useEffect(() => {\n if (siteInformation.siteId !== null) {\n documentService\n .loadEtapeTraitement(authentification, {\n siteId: siteInformation.siteId,\n })\n .then(async (res) => {\n if (`${res.status}`.startsWith(\"20\")) {\n const data = await res.json();\n setdataStep(\n data.map((item) => ({ label: item.libelleFr, value: item.id }))\n );\n }\n })\n .catch((error) => {\n throw new Error({ message: error });\n });\n }\n }, [siteInformation.siteId, authentification]);\n\n useEffect(() => {\n if (IndicateursSuivisIds.length !== 1) {\n setReleveDisabled(true);\n setReleve(false);\n return;\n }\n\n if (\n IndicateursSuivisIds.map((x) => x.typeDonneeId).includes(\"_INDEX\") ||\n IndicateursSuivisIds.map((x) => x.modeRenseignementId).includes(\"_AUTO\")\n ) {\n setReleveDisabled(false);\n return;\n }\n\n setReleveDisabled(true);\n setReleve(false);\n }, [setReleveDisabled, IndicateursSuivisIds]);\n\n useEffect(() => {\n if (siteInformation.siteId !== null) {\n documentService\n .GetIndicateursSuivisFiltre(authentification, {\n siteId: siteInformation.siteId,\n })\n .then(async (res) => {\n if (`${res.status}`.startsWith(\"20\")) {\n const data = await res.json();\n\n setDataFilter(\n data.map((item) => ({\n label: item.libelleFr,\n value: item.id,\n modeRenseignementId: item.modeRenseignementId,\n typeDonneeId: item.typeDonneeId,\n }))\n );\n }\n })\n .catch((error) => {\n throw new Error({ message: error });\n });\n }\n }, [siteInformation.siteId, authentification]);\n\n const onSubmitFilter = () => {\n setErrorDown(\"\");\n documentService\n .DownloadHistorique(authentification, {\n DateDebut:\n DateDebut === null\n ? null\n : format(DateDebut, \"d/MM/yyy\", { locale: fr }),\n DateFin:\n DateFin === null ? null : format(DateFin, \"d/MM/yyy\", { locale: fr }),\n EtapeTraitementId,\n IndicateursSuivisIds,\n Releve: releve,\n siteId: siteInformation.siteId,\n })\n .then(async (response) => {\n setloadingModal(true);\n fileDownload(await response.blob(), \"Historiques.xlsx\");\n reset();\n setloadingModal(false);\n onSubmit();\n })\n .catch((error) => {\n setErrorDown(error);\n });\n };\n\n const CloseButton = (\n
\n \n
\n );\n\n const selRef = useRef();\n\n const reset = () => {\n setExportAll(false);\n };\n\n return (\n \n \n \n
\n
\n Précisez vos critères de téléchargement des données{\" \"}\n
\n {loadingModal && }\n
\n
\n {\n if (triggeredAction.action === \"clear\") {\n setFormatedDate(null);\n setDateDebut(null);\n setDateFin(null);\n }\n }}\n classNamePrefix=\"selectPicker\"\n menuIsOpen={openMenu}\n openMenuOnClick={false}\n onMenuOpen={() => {\n setOpenMenu(true);\n }}\n placeholder=\"Date\"\n isClearable={true}\n closeMenuOnSelect={false}\n closeMenuOnScroll={false}\n options={[\n {\n label: (\n \n ),\n },\n ]}\n />\n \n \n \n {\n setReleve(!releve);\n }}\n />{\" \"}\n Relevé{\" \"}\n \n
\n
\n {errorDown && (\n {errorDown}\n )}\n
\n
\n \n \n Annuler\n \n \n Valider\n \n \n
\n );\n}\n","import React, { useMemo, useState, useEffect } from \"react\";\nimport { useTable, useRowSelect, usePagination } from \"react-table\";\n\nimport {\n Pagination,\n Tableau,\n} from \"../../../components/Helpers/ReactTableHelper\";\nimport \"../history.scss\";\n\nexport default function Table({\n data = [],\n onSelectedRow = () => [],\n onDataFetch = () => {},\n pageNumber = 1,\n pageSize = 20,\n DateDebut,\n DateFin,\n EtapeTraitementId,\n IndicateursSuivisIds,\n Releve,\n SiteId,\n authentification,\n}) {\n const columns = React.useMemo(\n () => [\n {\n Header: \"id\",\n accessor: \"id\", // accessor is the \"key\" in the data\n },\n {\n Header: \"Date\",\n accessor: \"date\", // accessor is the \"key\" in the data\n },\n {\n Header: \" Catégorie\",\n accessor: \"domaineLibelleFr\",\n },\n {\n Header: \"\",\n accessor: \"etapeTraitementId\",\n },\n {\n Header: \"Etape de la filière\",\n accessor: \"etapeTraitementLibelleFr\",\n },\n {\n Header: \"\",\n accessor: \"indicateurSuiviId\",\n },\n {\n Header: \"Indicateur \",\n accessor: \"libelleIndicateurSuivi\",\n },\n {\n Header: \"Valeur\",\n accessor: \"valeur\",\n },\n {\n Header: \"Valeur certifiée\",\n accessor: \"valeurLabo\",\n },\n ],\n []\n );\n\n const [datas, setDatas] = useState(data);\n const [_pageNumber, setPageNumber] = React.useState(pageNumber);\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n rows,\n prepareRow,\n selectedFlatRows,\n canPreviousPage,\n canNextPage,\n pageOptions,\n pageCount,\n gotoPage,\n nextPage,\n previousPage,\n state: { pageIndex },\n } = useTable(\n {\n columns,\n data: useMemo(() => datas, [datas]),\n initialState: {\n hiddenColumns: [\"id\", \"etapeTraitementId\", \"indicateurSuiviId\"],\n pageIndex: 0,\n pageSize: pageSize,\n },\n manualPagination: true, // Tell the usePagination\n pageCount: _pageNumber,\n },\n usePagination,\n useRowSelect\n );\n\n useEffect(() => {\n onSelectedRow(selectedFlatRows);\n }, [onSelectedRow, selectedFlatRows]);\n\n useEffect(() => {\n if (SiteId !== null) {\n onDataFetch({\n pageIndex,\n pageSize,\n DateDebut,\n DateFin,\n EtapeTraitementId,\n IndicateursSuivisIds,\n Releve,\n SiteId,\n authentification,\n }).then((res) => {\n setDatas(res.historiqueDonnees);\n setPageNumber(Math.ceil(res.nbrPage / pageSize));\n });\n }\n }, [\n onDataFetch,\n pageIndex,\n pageSize,\n DateDebut,\n DateFin,\n EtapeTraitementId,\n IndicateursSuivisIds,\n Releve,\n SiteId,\n authentification,\n ]);\n\n return (\n <>\n \n {rows.length > pageSize - 1 && (\n \n )}\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Container } from \"reactstrap\";\nimport { useHistory } from \"react-router-dom\";\nimport Select from \"react-select\";\nimport { Spinner } from \"reactstrap\";\nimport back from \"../../assets/back.svg\";\nimport download from \"../../assets/doc-download.svg\";\nimport { format } from \"date-fns\";\nimport { fr } from \"date-fns/locale\";\nimport * as documentService from \"../../services/documentServices\";\nimport ImportHistory from \"./Modals/historyExport\";\nimport \"./history.scss\";\nimport DateRangePicker from \"./History/Datepicker\";\nimport Table from \"./History/Table\";\n\nexport const DataFetch = async ({\n authentification,\n SiteId,\n DateDebut,\n DateFin,\n EtapeTraitementId,\n IndicateursSuivisIds,\n PageNumber,\n PageSize,\n Releve,\n}) => {\n try {\n if (SiteId !== null) {\n const response = await documentService.GetHistoriqueDonnees(\n authentification,\n {\n siteId: SiteId,\n DateDebut: DateDebut === null ? null : format(DateDebut, \"d/MM/yyy\"),\n DateFin: DateFin === null ? null : format(DateFin, \"d/MM/yyy\"),\n EtapeTraitementId,\n IndicateursSuivisIds,\n PageNumber,\n PageSize,\n Releve,\n }\n );\n\n if (`${response.status}`.startsWith(\"20\")) {\n const data = await response.json();\n return await data;\n } else {\n return [];\n }\n }\n\n return [];\n } catch (error) {\n return [];\n }\n};\n\nfunction History({ authentification, siteInformation }) {\n const [formatedDate, setFormatedDate] = useState(null);\n const [openMenu, setOpenMenu] = useState(false);\n //options pour les etapes\n const [dataStep, setdataStep] = useState([]);\n //options pour les filtres\n const [dataFilter, setDataFilter] = useState([]);\n\n //gestion du tableau\n const [loading] = useState(false);\n\n //gestion des indicateurs pour le tableau\n const [dateInterval, setDateInterval] = useState({ Debut: null, Fin: null });\n\n const [_EtapeTraitementId, setEtapeTraitementId] = useState(null);\n const [_IndicateursSuivisIds, setIndcateursSuivisIds] = useState([]);\n const [releve, setReleve] = useState(false);\n const [releveDisabled, setReleveDisabled] = useState(false);\n\n //gestion de la modale\n const [openModal, setOpenModal] = useState(false);\n\n useEffect(() => {\n if (siteInformation.siteId !== null) {\n documentService\n .loadEtapeTraitement(authentification, {\n siteId: siteInformation.siteId,\n })\n .then(async (res) => {\n if (`${res.status}`.startsWith(\"20\")) {\n const data = await res.json();\n setdataStep(\n data.map((item) => ({ label: item.libelleFr, value: item.id }))\n );\n }\n })\n .catch((error) => {\n throw new Error({ message: error });\n });\n }\n }, [siteInformation.siteId, authentification]);\n\n useEffect(() => {\n if (siteInformation.siteId !== null) {\n documentService\n .GetIndicateursSuivisFiltre(authentification, {\n siteId: siteInformation.siteId,\n })\n .then(async (res) => {\n if (`${res.status}`.startsWith(\"20\")) {\n const data = await res.json();\n setDataFilter(\n data.map((item) => ({\n label: item.libelleFr,\n value: item.id,\n modeRenseignementId: item.modeRenseignementId,\n typeDonneeId: item.typeDonneeId,\n }))\n );\n }\n })\n .catch((error) => {\n throw new Error({ message: error });\n });\n }\n }, [siteInformation.siteId, authentification]);\n\n useEffect(() => {\n if (_IndicateursSuivisIds.length !== 1) {\n setReleveDisabled(true);\n setReleve(false);\n return;\n }\n\n if (\n _IndicateursSuivisIds.map((x) => x.typeDonneeId).includes(\"_INDEX\") ||\n _IndicateursSuivisIds.map((x) => x.modeRenseignementId).includes(\"_AUTO\")\n ) {\n setReleveDisabled(false);\n return;\n }\n\n setReleveDisabled(true);\n setReleve(false);\n }, [setReleveDisabled, _IndicateursSuivisIds]);\n\n const onDataFetch = React.useCallback(\n async ({\n pageSize,\n pageIndex,\n DateDebut,\n DateFin,\n EtapeTraitementId,\n IndicateursSuivisIds,\n Releve,\n SiteId,\n }) => {\n return DataFetch({\n authentification,\n DateDebut,\n DateFin,\n EtapeTraitementId,\n IndicateursSuivisIds: IndicateursSuivisIds.map((item) => item.value),\n PageNumber: pageIndex,\n PageSize: pageSize,\n Releve,\n SiteId: SiteId,\n });\n },\n [authentification]\n );\n\n const onDownload = () => {\n setOpenModal(true);\n };\n\n const onSubmitDate = (data) => {\n setFormatedDate({\n label: `${format(data.left, \"dd/MM/yyy\", { locale: fr })}-${format(\n data.right,\n \"dd/MM/yyy\",\n { locale: fr }\n )}`,\n value: \"\",\n });\n setDateInterval({ Debut: data.left, Fin: data.right });\n setOpenMenu(false);\n };\n\n const onCancelDate = () => {\n setOpenMenu(false);\n };\n\n const onSubmitStep = (data) => {\n if (data !== null) {\n setEtapeTraitementId(data.value);\n } else {\n setEtapeTraitementId(null);\n }\n };\n\n const onSubmitIndicator = (data, triggeredAction) => {\n if (triggeredAction && triggeredAction.action === \"remove-value\") {\n setIndcateursSuivisIds(\n _IndicateursSuivisIds.filter((x) => {\n return x.value !== triggeredAction.removedValue.value;\n })\n );\n return;\n }\n\n if (data.length < 9) {\n setIndcateursSuivisIds(data);\n }\n };\n\n const history = useHistory();\n\n return (\n
\n {/*hack pour réinitialiser les valeurs de la modale*/}\n {openModal && (\n {\n setOpenModal(false);\n }}\n onSubmit={() => {\n setOpenModal(false);\n }}\n authentification={authentification}\n siteInformation={siteInformation}\n />\n )}\n \n
\n \n INDICATEURS STEP\n \n
\n\n
\n
\n \n
\n
\n {\n onDownload();\n }}\n >\n \"download\"\n \n {\" \"}\n Télécharger{\" \"}\n \n \n
\n
\n {\n history.push(\"/collectinformations\");\n }}\n >\n \"import\"{\" \"}\n \n Retour\n \n \n
\n
\n
\n\n
\n {loading && }\n
\n\n
\n {\n if (triggeredAction.action === \"clear\") {\n setFormatedDate(null);\n setDateInterval({ Debut: null, Fin: null });\n }\n }}\n classNamePrefix=\"selectPicker\"\n menuIsOpen={openMenu}\n openMenuOnClick={false}\n onMenuOpen={() => {\n setOpenMenu(true);\n }}\n placeholder=\"Date\"\n isClearable={true}\n closeMenuOnSelect={false}\n closeMenuOnScroll={false}\n options={[\n {\n label: (\n \n ),\n },\n ]}\n />\n \n \n \n
\n\n
\n \n
\n
\n
\n
\n );\n}\n\nexport default connect((state) => state)(History);\n","import CollectInformations from \"../views/CollectInformations/CollectInformations\";\nimport StepIn from \"../views/StepIn/StepIn\";\nimport StepOut from \"../views/StepOut/StepOut\";\nimport Document from \"../views/Documents/Document\";\nimport Template from \"../views/Documents/Template\";\nimport Menu from \"../components/SaurLayout/Menu\";\nimport Home from \"../views/Home/Home\";\nimport History from \"../views/Documents/History\";\n\n// https://github.com/ReactTraining/react-router/tree/master/packages/react-router-config\nconst routes = [\n { path: \"/\", exact: true, name: \"Welcome\" },\n { path: \"/home\", name: \"Home\", component: Home },\n { path: \"/stepin\", name: \"Entrée Step\", component: StepIn },\n { path: \"/stepout\", name: \"Sortie Step\", component: StepOut },\n {\n path: \"/collectinformations\",\n name: \"Collect Information\",\n component: CollectInformations,\n },\n { path: \"/history\", name: \"Historique\", component: History },\n { path: \"/document\", name: \"Menu\", component: Menu },\n { path: \"/analyses\", name: \"Analyses\", component: Document },\n { path: \"/metrologie\", name: \"Métrologie\", component: Document },\n { path: \"/suivi_agro\", name: \"Suivi agronomique\", component: Document },\n {\n path: \"/suivi_dechets\",\n name: \"Bordereaux de suivi des déchets\",\n component: Document,\n },\n { path: \"/gidaf\", name: \"GIDAF\", component: Template },\n { path: \"/travaux\", name: \"Travaux\", component: Document },\n { path: \"/maintenance\", name: \"Maintenance\", component: Document },\n { path: \"/contrat\", name: \"Contrat\", component: Document },\n { path: \"/facturation\", name: \"Facturation\", component: Document },\n { path: \"/autres_doc\", name: \"Autres document\", component: Document },\n { path: \"/report_annu\", name: \"Rapports annuels\", component: Document },\n { path: \"/report_mens\", name: \"Rapports mensuels\", component: Document },\n { path: \"/cr_reu\", name: \"CR de réunion\", component: Document },\n { path: \"/autres_report\", name: \"Autres \", component: Document },\n { path: \"/securite\", name: \"Securité\", component: Document },\n {\n path: \"/controle_regl\",\n name: \"Controle réglementaire \",\n component: Document,\n },\n];\n\nexport default routes;\n","import React from \"react\";\nimport { Container } from \"reactstrap\";\nimport { useHistory } from \"react-router-dom\";\nimport { CategoriesHelper, NAMES } from \"./navigation\";\nimport \"./menu.scss\";\n\n// export function ButtonNav({onClick, btnClassName , className}){\n// \n// }\n\nexport default function Menu() {\n let history = useHistory();\n\n return (\n
\n
\n \n DOCUMENTS\n \n
\n \n
\n {/* pour mettre des infos dans le future */}\n
\n\n
\n
\n
\n \n
\n {\n history.push(CategoriesHelper().paths.ANALYSES);\n }}\n className=\"btn btn-outline-primary mx-4\"\n >\n
{NAMES.ANALYSES}
\n \n {\n history.push(CategoriesHelper().paths.CONTROLE_REGL);\n }}\n className=\"btn btn-outline-primary mx-4\"\n >\n
{NAMES.CONTROLE_REGL}
\n \n {\n history.push(CategoriesHelper().paths.METROLOGIE);\n }}\n className=\"btn btn-outline-primary mx-4\"\n >\n
{NAMES.METROLOGIE}
\n \n {\n history.push(CategoriesHelper().paths.SUIVI_AGRO);\n }}\n className=\"btn btn-outline-primary mx-4\"\n >\n
{NAMES.SUIVI_AGRO}
\n \n {\n history.push(CategoriesHelper().paths.SUIVI_DECHETS);\n }}\n className=\"btn btn-outline-primary mx-4\"\n >\n
{NAMES.SUIVI_DECHETS}
\n \n {\n history.push(CategoriesHelper().paths.GIDAF);\n }}\n className=\"btn btn-outline-primary mx-4\"\n >\n
\n {NAMES.GIDAF}\n
\n \n
\n
\n
\n \n\n
\n {\n history.push(CategoriesHelper().paths.CONTRAT);\n }}\n className=\"btn btn-outline-primary mx-4\"\n >\n
{NAMES.CONTRAT}
\n \n {\n history.push(CategoriesHelper().paths.FACTURATION);\n }}\n className=\"btn btn-outline-primary mx-4\"\n >\n
{NAMES.FACTURATION}
\n \n {\n history.push(CategoriesHelper().paths.AUTRES_DOC);\n }}\n className=\"btn btn-outline-primary mx-4\"\n >\n
{NAMES.AUTRES_DOC}
\n \n
\n
\n
\n\n
\n
\n \n\n
\n {\n history.push(CategoriesHelper().paths.SECURITE);\n }}\n className=\"btn btn-outline-primary mx-4\"\n >\n
{NAMES.SECURITE}
\n \n
\n
\n
\n \n\n
\n {\n history.push(CategoriesHelper().paths.TRAVAUX);\n }}\n className=\"btn btn-outline-primary mx-4\"\n >\n
{NAMES.TRAVAUX}
\n \n {\n history.push(CategoriesHelper().paths.MAINTENANCE);\n }}\n className=\"btn btn-outline-primary mx-4\"\n >\n
{NAMES.MAINTENANCE}
\n \n
\n
\n
\n \n\n
\n {\n history.push(CategoriesHelper().paths.REPORT_ANNU);\n }}\n className=\"btn btn-outline-primary mx-4\"\n >\n
{NAMES.REPORT_ANNU}
\n \n {\n history.push(CategoriesHelper().paths.REPORT_MENS);\n }}\n className=\"btn btn-outline-primary mx-4\"\n >\n
{NAMES.REPORT_MENS}
\n \n {\n history.push(CategoriesHelper().paths.CR_REU);\n }}\n className=\"btn btn-outline-primary mx-4\"\n >\n
{NAMES.CR_REU}
\n \n {\n history.push(CategoriesHelper().paths.AUTRES_REPORT);\n }}\n className=\"btn btn-outline-primary mx-4\"\n >\n
{NAMES.AUTRES_REPORT}
\n \n
\n
\n
\n
\n
\n
\n );\n}\n","import React, { Component, useState, useEffect } from \"react\";\nimport {\n AppHeader,\n AppSidebar,\n AppSidebarFooter,\n AppSidebarForm,\n AppSidebarHeader,\n AppSidebarMinimizer,\n} from \"@coreui/react\";\nimport {\n Redirect,\n Route,\n Switch,\n withRouter,\n NavLink,\n useHistory,\n} from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport SaurHeader from \"../SaurHeader/SaurHeader\";\nimport \"./SaurLayout.scss\";\n// sidebar nav config\nimport * as NAVIGATION from \"./navigation\";\n// routes config\nimport routes from \"../../routes/index\";\nimport baniereSaur from \"../../assets/saurBanner.png\";\n\nexport function DocumentLink() {\n const [open, setOpen] = useState(false);\n const history = useHistory();\n\n useEffect(() => {\n if (\n NAVIGATION.CategoriesHelper().pathArray.includes(\n history.location.pathname\n )\n ) {\n setOpen(true);\n }\n }, [history.location.pathname]);\n\n return (\n {\n if (e.target.id === \"navDropdown\") {\n setOpen(!open);\n }\n }}\n className={`nav-item nav-dropdown ${open ? \"open\" : \"\"}`}\n >\n \n \n Documents\n \n
    \n
  • \n \n
  • \n\n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n\n
  • \n \n
  • \n
  • \n \n
  • \n\n
  • \n \n
  • \n
  • \n \n
  • \n\n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
\n \n );\n}\n\nclass SaurLayout extends Component {\n render() {\n return (\n
\n \n \n \n
\n \n \n \n {/* */}\n \n
    \n
  • \n \n \n Accueil\n \n
  • \n
  • \n \n \n Entrée STEP\n \n
  • \n
  • \n \n \n Indicateurs STEP\n \n
  • \n
  • \n \n \n Sortie STEP\n \n
  • \n \n
\n
\n \n \n
\n \n
\n \n
\n {/* */}\n \n {routes.map((route, idx) => {\n return route.component ? (\n }\n />\n ) : null;\n })}\n \n \n {/* */}\n
\n
\n \n );\n }\n}\n\nexport default connect((state) => state)(withRouter(SaurLayout));\n","import { ReactKeycloakProvider } from \"@react-keycloak/web\";\nimport React from \"react\";\nimport { connect, useDispatch } from \"react-redux\";\nimport { getAuthProvider } from \"../../authentication/authProvider\";\nimport { AuthClientTokens } from \"@react-keycloak/core\";\nimport {\n logout,\n refreshToken,\n} from \"../../stores/actions/authentificationActions\";\n\nexport const KeyCloakProvider = (props: { children: JSX.Element }) => {\n const dispatch = useDispatch();\n\n const handleOnEvent = async (event: any, error: any) => {\n if (event === \"onTokenExpired\") {\n }\n };\n\n const handleOnTokens = async (tokens: AuthClientTokens) => {\n if (tokens.token && tokens.refreshToken)\n dispatch(refreshToken(tokens.token, tokens.refreshToken));\n else dispatch(logout());\n };\n return (\n \n {props.children}\n \n );\n};\n\nexport default connect((state) => state)(KeyCloakProvider);\n","//Librairies\nimport React from \"react\";\nimport { HashRouter, Route, Switch } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\n//css\nimport \"./styles/App.scss\";\nimport \"notyf/notyf.min.css\";\n//prechargement\nimport iconclose from \"./assets/icon-close.svg\";\nimport iconclosehover from \"./assets/icon-close_survol.svg\";\nimport iconedit from \"./assets/edit.svg\";\nimport iconbin from \"./assets/bin.svg\";\nimport { allReducers } from \"./stores\";\nimport { useKeycloak } from \"@react-keycloak/web\";\nimport LoginKeyCloak from \"./components/login/LoginKeyCloak\";\nimport { SaurLayout } from \"./components\";\nimport { KeyCloakProvider } from \"./components/Providers/keycloakProvider\";\nimport {\n ReduxAuthState,\n ReduxAuthType,\n} from \"./types/authentificationstoretypes\";\n\nconst loading = () => (\n
\n
\n
\n);\n\nexport const App = () => {\n const { keycloak } = useKeycloak();\n\n return (\n <>\n {/* prechargement des icones pour éviter l'effet clipping.... la div est caché pour ne pas être visible*/}\n
\n \"preloadicone\"\n \"preloadicone\"\n \"preloadicone\"\n \"preloadicone\"\n
\n\n {(allReducers.getState().authentification as ReduxAuthState).state ===\n ReduxAuthType.Initializing ? (\n \n ) : (\n \n \n \n \n \n }\n />\n \n \n \n \n \n )}\n \n );\n};\n\nexport default connect((state) => state)(App);\n","//Librairies\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Provider } from \"react-redux\";\nimport { allReducers } from \"./stores/index\";\nimport * as serviceWorker from \"./serviceWorker\";\nimport { LocalStorage } from \"./utils/localStorage\";\n//Application\nimport App from \"./App\";\nimport \"./styles/index.css\";\nimport { ReactKeycloakProvider } from \"@react-keycloak/web\";\nimport LoginKeyCloack from \"./components/login/LoginKeyCloak\";\nimport Keycloak from \"keycloak-js\";\nimport { getAuthProvider } from \"./authentication/authProvider\";\n\nconst tokenCallback = (keycloak) => {\n LocalStorage.token.set(keycloak.token);\n LocalStorage.refreshToken.set(keycloak.refreshToken);\n LocalStorage.userInfo.roles.set(keycloak.tokenParsed.realm_access.roles);\n LocalStorage.userInfo.email.set(keycloak.tokenParsed.email);\n LocalStorage.userInfo.name.set(keycloak.tokenParsed.name);\n};\n\n// set local storage logginWith\nlocalStorage.setItem(\"logginWith\", \"\");\n\nfetch(\"../../../appsettings.json\")\n .then((response) => response.json())\n .then((config) => {\n window.appSettings = config;\n const keycloak = getAuthProvider();\n // eslint-disable-next-line no-undef\n ReactDOM.render(\n \n \n \n \n ,\n document.getElementById(\"root\")\n ); // If you want your app to work offline and load faster, you can change\n // unregister() to register() below. Note this comes with some pitfalls.\n // Learn more about service workers: https://bit.ly/CRA-PWA\n serviceWorker.unregister();\n });\n"],"sourceRoot":""}